iOS开发-服务器动态控制客户端方案浅解析

受限于AppStore的审核制度,版本提交后审核后需要等待一段审核时间才能上线,于是聪明的开发者就想出了一些手段,可以避开审核,动态更新客户端。

目前,已经被使用的技术方案有两大派:

1.HTML5

2.解析渲染

先说HTML5,其实这项功能在开发者中使用还是比较多的,目前主流的特别动态的页面,大部分还是由HTML5实现完成,比如淘宝的一些介绍页面、一些不能明确当前样式的界面等等。也有类似PhoneGap这样的框架直接把HTML5做的应用打包成原生应用,虽然比较灵活,可惜体验上相比原生确实差了不少。

再说解析渲染,关于这个还要分低端版、中端版和高端版。

  • 低端版:简单的特定的控制字段解析,比如控制一个按钮是否显示,控制一个功能是否开放等等,这种做法需要提前客户端和服务端双方做好约定,对得上号才能正常工作。

    如果要加新的控制,对不起请下一版本吧。不过应对小范围的控制,还是可以的,也是目前用的比较多的方式。

  • 中端版:利用脚本动态加载代码,达到创建和改变类功能和属性的目的。代表有大众点评基于Wax修改的WaxPatch框架,利用Lua脚本+runtime方法实现,不过由于语言和功能的问题,貌似并没有大范围普及开,不过各位小范围打补丁的时候可以尝试。
  • 高端版:近期Facebook又开始折腾了,开源了React Native,基于JS做的一次比较大的尝试,和普通的HTML5的区别在于:Facebook通过自己强大的开发团队,做了一套JS->原生控件的映射,要注意并不是性能比较弱的WebView,这点上不得不佩服他们,目前该组件刚刚开源不久,具体效果有待验证,但是我相信未来会有它一席之地。

本文仅仅是抛砖引玉,欢迎更多的人留言拍砖讨论。

时间: 2024-10-25 04:10:33

iOS开发-服务器动态控制客户端方案浅解析的相关文章

iOS开发网络篇—JSON数据的解析

iOS开发网络篇—JSON数据的解析 iOS开发网络篇—JSON介绍 一.什么是JSON JSON是一种轻量级的数据格式,一般用于数据交互 服务器返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除外) JSON的格式很像OC中的字典和数组 {"name" : "jack", "age" : 10} {"names" : ["jack", "rose", "jim

iOS开发网络篇—XML数据的解析

iOS开发网络篇—XML数据的解析 iOS开发网络篇—XML介绍 一.XML简单介绍 XML:全称是Extensible Markup Language,译作“可扩展标记语言” 跟JSON一样,也是常用的一种用于交互的数据格式,一般也叫XML文档(XML Document) XML举例 <videos> <video name="小黄人 第01部" length="30" /> <video name="小黄人 第02部&qu

蓝懿IOS网络服务器与客户端

服务器和客户端 网络架构: CS:Client  Server :优势:用户体验度高  缺点:不能跨平台 BS:Browser Server:优势:跨平台,缺点:性能依赖于网速 长连接和短连接 长连接:保证数据的实时性 TCP协议:需要建立连接 保证数据安全  属于长连接 UDP协议:可以实现1对多(广播)传输效率高(因为不用建立连接)不能保证数据准确到达 Socket:是在TCP或UDP协议上所提供的数据传输的方法集 连接:请求响应式,大部分网络请求都是短连接 TTP ip:内网(局域网之内1

iOS开发系列--绘图与滤镜全面解析

概述 在iOS中可以很容易的开发出绚丽的界面效果,一方面得益于成功系统的设计,另一方面得益于它强大的开发框架.今天我们将围绕iOS中两大图形.图形绘图框架进行介绍:Quartz 2D绘制2D图形和Core Image中强大的滤镜功能. Quartz 2D 基本图形绘制 视图刷新 其他图形上下文 Core Image Quartz 2D 在iOS中常用的绘图框架就是Quartz 2D,Quartz 2D是Core Graphics框架的一部分,是一个强大的二维图像绘制引擎.Quartz 2D在UI

IOS开发网络篇-JSON文件的解析

一.什么是JSON数据 1.JSON的简单介绍 JSON:是一种轻量级的传输数据的格式,用于数据的交互 JSON是javascript语言的一个子集.javascript是个脚本语言(不需要编译),用来给HTML增加动态功能. javascript和java没有半毛钱的关系! 服务器返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除外). 2.JSON的语法规则 <1> 数据以键值的方式保存; 键(key)必须用双引号("key"),与键值之间以':'分隔;

IOS开发专题---转化解析JSON格式为字符格式(原生类库解析)

1,不浪费时间,本代码经实践检验通过! //网络请求代码段 //post  request NSURL *url=[NSURL URLWithString:@"http://192.168.253.101:8080/ERP/mobile/login.action"]; NSMutableURLRequest *request =[[NSMutableURLRequest alloc]initWithURL:url cachePolicy:NSURLRequestUseProtocolC

iOS开发——网络编程OC篇&amp;数据解析总结

数据解析总结 1 //***************************************************XML 2 3 /** 4 NSXML 5 */ 6 /** 7 // 1. 开始解析XML文档 8 - (void)parserDidStartDocument: 9 10 // 2. 开始解析某个元素,会遍历整个XML,识别元素节点名称 11 - (void)parser:didStartElement:namespaceURI:qualifiedName:attrib

iOS开发 服务器请求出来的数据按日期重新分组

在APP开发中经常碰到这种情况,后台给的数据需要我们按照某种条件分组.比如我的项目中:需要把数组中的数据按照时间分类分组,同一天的数据放在一起比如8-20号的数据分一组,8-21号的数据分一组.代码如下: #import "ViewController.h" #import "model.h" @interface ViewController ()<UITableViewDelegate,UITableViewDataSource> { NSMutab

iOS开发中的NSDateFormatter日期格式解析总结

在工作中,常常遇到将时间解析出来转换成自己相应要求的时间格式,之前也有收集相应的转换格式,如今将自己收集的一部分了做个分享,应该比較完好了,欢迎大家继续补充 年 y 将年份 (0-9) 显示为不带前导零的数字 yy 以带前导零的两位数字格式显示年份 yyy 以四位数字格式显示年份 yyyy 以四位数字格式显示年份 月 M 将月份显示为不带前导零的数字(如一月表示为 1) MM 将月份显示为带前导零的数字(比如 01/12/01) MMM 将月份显示为缩写形式(比如 Jan) MMMM 将月份显示