http://www.cocoaui.com/en

https://github.com/ideawu/cocoaui

传统的 iOS 应用由于苹果自身的技术所限, 无法实现丰富的 UI 换皮肤(主题)功能, 更不用说 UI 热更新. 如果要实现换皮肤功能, 只能在开发阶段, 提前考虑和设计好几套 UI(xib), 然后在 app 运行时进行切换. 对于想在节日或者某些特殊节点临时给界面加一些点缀, 苹果自身的技术就无法实现了, 只能由开发者自己开动脑筋. 但无论如何, 都需要开发者"提前"想好所有的可能性! 这基本不现实.

而基于 CocoaUI 框架的 iOS 应用, 由于使用 XML+CSS 语言来定义界面, 所以只要程序员在代码中发起一个简单的 HTTP 请求, 就能从服务器端获取一套新的 UI, 从而实现 UI 热更新. 当然, 这要求在业务逻辑功能不变的前提下, 因为 CocoaUI 框架只解决 UI 相关的问题, 而业务逻辑仍然使用 Objective-C/Swift 语言来编写.

对于使用 CocoaUI 框架的应用来说, 要实现换皮肤(UI 热更新), 思路是这样的:

1. 开发阶段, 将一套完整的 XML+CSS 以及图片文件引入项目中, 打包时将包含这些 UI 资源文件, 所以应用在启动和使用过程中, 性能不会有任何影响.

2. 程序中实现文件更新功能, 在运行阶段从服务器端下载新的一套或者几套 XML+CSS+图片 UI 资源文件, 可以采用一些成熟的现有技术, 如断点续传, patch 更新等.

3. 一旦一套完整的 UI 资源文件下载完毕, 就可以根据服务器端的指令, 在某个时间, 或者根据某个条件触发, 切换到新的界面上来.

当然, 你可以用你自己喜欢的加密技术, 用来保护你的 UI 资源, 对于 CocoaUI 来说, 它关心的只是 XML+CSS, 而不一定是文件.

CocoaUI 是一个开源的强大的 iOS 原生 UI 框架, 并不是一个使用 WebView 的混合型浏览器框架. 官方网站是: http://www.cocoaui.com/

What is the CocoaUI ?的更多相关文章

  1. 最近读cocoaui源代码有感

    上半年为了做一个ios的应用,引入了cocoaui库,主要是用来布局ios界面,发现简化了不少代码和工作量.因为在写第一个ios应用的时候,用的代码布局,在适配4s和6的机型时候,几乎被搞死,大量的约 ...

  2. 五分钟,运用cocoaui库,搭建主流iOS app中我的界面

    本项目基于天天团购项目,在上一篇中有说到! 首先介绍一些cocoaui,是国内的一名程序员做的开源的开源系统,目的是为了简化ios布局!官网地址:www.cocoaui.com,github地址:ht ...

  3. 开源一个基于天天团购的团购app

    可能大家都知道天天团购开源系统,一个做团购的开源项目很赞,前些日子做了基于天天团购系统做的团购客户端和移动端服务器!源代码放出,有了解的可以看看,希望收益! 先说服务器:app的服务器,基于天天团购的 ...

  4. iOS 常用开源代码整理

    本文章不定期整理. 1.AFNetworking AFNetworking 采用 NSURLConnection + NSOperation, 主要方便与服务端 API 进行数据交换, 操作简单, 功 ...

  5. iOS开发(0):框架QMUIKit的使用 | 使用第三方UI框架 | cocoapods的使用

    对于移动APP来说,客户端(iOS或android)的界面开发是必不可少的工作.为了减轻界面开发的工作量,也为了提高开发的速度,选择一个良好的界面框架,是有意义的. iOS开源的界面框架有很多,比如c ...

  6. js插件大全 jquery插件大全

    CocoaUI - 一个强大的 iOS UI 框架 http://www.cocoaui.com/ tab,slider,轮播不错的说 http://www.superslide2.com/index ...

随机推荐

  1. nginx-fastcgi 第九章

    CGI全称通用网关接口 Commmon Gateway Interface 用于HTTP服务上的程序服务通信交流的一种工具,CGI程序须运行在网络服务器上. 传统CGI接口方式性能较差,由于每次HTT ...

  2. D8 双连通分量

    记得有个梗那一天,zw学生zzh大佬说逃不掉的路变成a不掉的题哈哈哈哈: 分离的路径: BZOJ 1718POJ 3177LUOGU 286: 思路:在同一个边双连通分量中,任意两点都有至少两条独立路 ...

  3. URL和URI简单辨析

    URI 全称为 Universal Resource Identifier,统一资源标识符,用来唯一的标识一个资源. URL 全称为Universal Resource Locator,统一资源定位器 ...

  4. 【论文笔记】CBAM: Convolutional Block Attention Module

    CBAM: Convolutional Block Attention Module 2018-09-14 21:52:42 Paper:http://openaccess.thecvf.com/co ...

  5. [JavaScript] 给input标签传值

    body: <input type="text" style="width: 240px;" name="orgname" id=&q ...

  6. Multivariate normal distribution | 多元正态分布

    现在终于需要用到了.

  7. python-html基础操作

    介绍: HTML  是网页内容的载体.包括文字,图片,信息等用户浏览的信息CSS   样式是改变内容外观表现.像字体,颜色,背景,边框等JavaScript   是实现网页上的特效效果.如鼠标滑过背景 ...

  8. Bilinear CNN与 Randomly Wired Neural Network

    最近主要学习了两篇论文以及相关的代码. 1.Bilinear CNN 这篇论文主要是在细粒度分类上应用的,在全连接层之前,在所有的卷积计算完成之后,进行的Bilinear计算,关键的代码如下: def ...

  9. 机器学习 之LightGBM算法

    目录 1.基本知识点简介 2.LightGBM轻量级提升学习方法 2.1 leaf-wise分裂策略 2.2 基于直方图的排序算法 2.3 支持类别特征和高效并行处理 1.基本知识点简介 在集成学习的 ...

  10. MVC实战之排球计分(六)—— 使用EF框架,创建Controller,生成数据库。

    在上篇博客我们写到,此软件的数据库连接我们使用的是EF框架,code first模式下, 通过模型类,在创建controller的时候直接生成数据库,完成数据库的连接,与操作. 在使用EF框架之前,我 ...