实现iOS图片等资源文件的热更新化(零): 序

必要的序

以后在写系列文章,准备把基本的规划和动机等,单独作为一个小的序言部分给独立出来.序言部分,可以较为完整地交待系列文章的写作动机,所展示的编码技术可能的应用场景等.个人,我还是比较看重文章或者书籍等的序言部分的.真有相对确定确实有价值的东西,才会进一步去阅读.所以,我觉得,序,总是必要的.

关于我写博客的节奏

我会尽可能地使每一个系列的文章,能相对完整.但是,就像你看到的这样,前一个系列还在讲Spark,这篇文章就开始讲 iOS 开发的一些问题.到底要闹哪样?

还能怎么样?开心就好!干嘛要让那些不存在的东西,束缚自己呢!我觉得,理想的生活节奏就是,做自己喜欢的事,然后分享给有需要的人看.这就够了.

所以说,未来不管你在博客中看到什么诡异的系列主题,都不用感到惊讶!如果刚好自己也感兴趣,一起来玩喽~

当然,有人说,天天BUG,还解不完呢,哪有闲心写BUG呢!这是问题,或许也是答案!你用来解决某个BUG的精湛技巧,或许在QA或者PM眼里,不过是理所当然地而已;就算他们给你一个赞,你也明白,其实他们可能根本就不懂你解决的这个问题的真正意义.

但是编码的众多有趣属性中的一种就是: 别人的不认同,并没有办法真正否定你天马行空般编码技术的价值和意义.写出来,哪怕只有一个人,能真心看懂,发自肺腑地给个赞--足矣!

为什么要实现iOS图片等资源文件的热更新化?

首先说一下,这个系列要做什么.要做的事,简单说,就是把图片,CSS样式等资源文件从项目中剥离出来,放到一个特定的目录里;然后,我们每次都这个特定地目录读取数据;最重要的是,我们可以动态更新这个目录,实现图片等资源文件的动态更新,即热更新.

这件事,本身思路并不难,各个技术细节,多花点时间,总是可以解决的.但考虑到,在实际地生产环境中,可能是App已经迭代更新了大半年了,图片PM脑袋一热说,我们要做个 换肤 功能.然后,自然要把所有涉及图片的操作剥离重写下,而且也要把图片资源从 Images.xcassets 导出.当然,从原始素材导出替换也是可以的,只要你有足够的时间,只要你不怕进度太慢被PM打死,都是OK的.哈哈!

所以说,本系列的重点不在于热更新技术本身,而是在于如何用最小的成本,赋予一个中规中矩的iOS App的资源部分,以热更新的能力!好吧,略显绕口,意会!事实也是如此!

作为资源热更新之外的附加收获,你的App资源文件体积,应该也可以缩小 2/3 左右,当然,也再也不用为了一个图片素材升级App了.另外,本系列所指的资源,也包括内置的js,css文件,通常是用来加速H5页面网络访问的,大家都懂的,不细说了,原理都差不多.

此系列文章规划

系列,争取本周内更新完毕,在不是很侧重的地方,会适当缩减篇幅.

实现iOS图片等资源文件的热更新化(一): 从Images.xcassets导出合适的图片

此文会基于一个已有的脚本工具自动导出所有的图片;最终给出的是一个从 Images.xcassets 到基于文件夹的精简 合适 的图片资源集的完整过程.难点在于从完整图片集到精简图片集,肯定是基于一个定制化的脚本,自定义导出的.如果自己手动导出?那,还有的忙喽~

实现iOS图片等资源文件的热更新化(二):自定义的动态 imageNamed

这篇文章,要解决的是,使用一个自定义的 imageNamed 函数来替代系统的 imageNamed 函数.内部逻辑,将贯穿对比论证 关于"合适"的图片的定义.对iOS加载图片的规则不是很熟悉的童鞋,可以着重看这篇.

实现iOS图片等资源文件的热更新化(三):动态的资源文件夹

此文,将尝试动态从某个不确定的文件夹中加载资源文件.文章,会继续完善自定义的 imageNamed 函数,并为下一篇文章铺垫.

实现iOS图片等资源文件的热更新化(四): 一个最小化的补丁更新逻辑.

以前写过一个补丁更新的文章,此处会做一个更精简的最小化实现,以便于集成.为了使逻辑具有通用性,将剥离对AFNetworking和ReativeCocoa的依赖.

实现iOS图片等资源文件的热更新化(五): 一个简单完整的资源热更新页面

一个简单的关于页面,有一个图片,版本号,App名称等,着重演示各个系列的文章完整集成示例.有耐心的,可以直接等着最后一篇文章更新.我还没写好呢,没法提前发. O(∩_∩)O哈哈~

系列专属github地址: https://github.com/ios122/ios_assets_hot_update

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏极客编程

Vuebnb:一个用vue.js和Laravel构建的全栈应用

今年我一直在写一本新书叫全栈Vue网站开发:Vue.js,Vuex和Laravel。它会在Packt出版社在2018年初出版。

541
来自专栏phodal

听我说说我的博客: 月访问量过万的个人IT博客的技术史

我的博客是如何工作的? HTTP服务器 当你开发在网页上访问我的博客的时候,你可能会注意到上面的协议是HTTPS。 ? 但是并不会察觉到它是HTTP2.0。而这...

20310
来自专栏Python中文社区

雪球网沪深全站股票评论爬虫

專 欄 ❈ 蜗牛仔,Python中文社区专栏作者,怒学Python爬虫,争当爬虫工程师, github地址: https://github.com/xiaob...

2926
来自专栏大数据挖掘DT机器学习

数据爬取、清洗到分析,如何徒手研究上海二手房房价

本文由作者:孙培培 原创投稿 声明:本文所公布代码及数据仅作学习用,若别有用途则后果自行承担。 提到上海,不得不提上海的高房价,最近一篇上海各市辖区均价的文章...

2866
来自专栏猿湿Xoong

Android SystemUI(一):图文并茂的介绍 :D

1534
来自专栏贾鹏辉的技术专栏@CrazyCodeBoy

React Native 和iOS Simulator 那点事

React Native 和iOS Simulator 那点事 尊重版权,未经授权不得转载 本文出自:贾鹏辉的技术博客(http://www.devio.o...

3524
来自专栏北京马哥教育

小白用Python | 十分钟Python玩微信教程

代码放在这里: wzyonggege/python-wechat-itchat 词云那里可以换成小黄人图片 ? ------------------------...

3437
来自专栏北京马哥教育

Python爬虫爬取知乎小结

最近学习了一点网络爬虫,并实现了使用Python来爬取知乎的一些功能,这里做一个小的总结。网络爬虫是指通过一定的规则自动的从网上抓取一些信息的程序或脚本。我们知...

26510
来自专栏数据小魔方

流量结构分布图——炫酷和弦图

昨日的桑基图其实还有一个小伙伴儿,他俩表达的信息差不多,都用于对流量分布结构进行分解和呈现,该图就是和弦图,样子看起来要比桑基图更加炫酷,但是也更加难懂,这也就...

3585
来自专栏互联网杂技

react+redux+webpack教程1

经历了EXT、YUI时代,又经历了Angular时代,我们正在步入React时代。 前端开发框架凭借JS极其灵活强大的特性模样越来越“怪异”,正是这怪异让我们对...

3245

扫码关注云+社区