移动开发每周阅读清单:iOS多线程安全、构建Android MVVM应用框架

简介:

(我进去瞅了一眼又退出了。)

『移动开发每周阅读清单』第三十七期与大家见面了,上周支付宝来抢头条了,我想事情变成这样不是他们的本意,只能说产品经理还是很重要啊。

提示:点击文末阅读原文可打开带链接的版本。

提示2:文末有小福利~

新闻

Apple 停止了 AirPort 产品线开发

根据彭博社报道,Apple 已经停止包括 AirPort Express、AirPort Extreme 等无线路由产品的开发。Apple 希望可以将人手用在带来收益更高的下一代苹果产品中。不过并不清楚苹果会在什么时间点停止生产这些产品,目前这些产品还可以买到,如果你想要买一款留做纪念,可能要抓紧了。

安卓7.1开发者预览版Beta2放出:更接近完全体

11月23日消息,谷歌刚刚推出了安卓7.1第二个开发者预览版,这也将是安卓7.1最后一个预览版,之后谷歌会推出安卓7.1.1正式版。安卓7.1开发者预览版支持Nexus5X、Nexus6P、Nexus9和Pixel C,据谷歌表示,安卓7.1开发者预览版2在系统稳定性和UI方面接近“完全体”。

教程

iOS

iOS多线程到底不安全在哪里?

iOS 多线程安全的概念在很多地方都会遇到,为什么不安全,不安全又该怎么去定义,其实是个值得深究的话题。共享状态,多线程共同访问某个对象的 property ,在 iOS 编程里是很普遍的使用场景。本文从 Property 的多线程安全说起,分享了对 memory layout 和原子性的理解,并解释了 atomic 和 nonatomic 的区别。

Swift: UserDefaults protocol

一篇类似SwiftyUserDefaults框架的分享,介绍了如何在 Swift 中合理的使用 protocol 场景。

APP 缓存数据线程安全问题探讨

本文探讨了在多线程下如何处理 Cache 的问题,分享了三种解决方案:加锁、分线程 cache 、 数据不可变。

预加载与智能预加载

本文介绍了 iOS 中几种预加载的方案,以及 ASDK 中是如何处理预加载的。

Android

Redex初探与Interdex:Andorid冷启动优化

早在去年10月份,facebook就发布了介绍redex的文章,这个据说可以直接对apk做处理,既提高启动性能,又可减少安装包的利器让安卓开发者们都心动不已。直到今年4月,redex终于开源了,作者第一时间对redex做了研究。虽然由于坑多,最终没有接入到项目构建中,但受Interdex启发,在应用冷启动速度优化方面有了新的收获。

使用Buck构建Android工程

Buck构建工具,其实早已不是什么新奇的事物,它是一款由Facebook开发、维护并开源的性能强大的构建工具。不仅在Facebook的全系列产品中广泛应用,而且在国内的微信团队也有使用。其构建的目标代码相当广泛,且对Android工程有所优化,核心思想是多任务并发的构建策略,充分发挥多核优势,Buck可以极大的加快Android工程全量构建的速度,是目前Android全量构建策略中的不二选择。

如何构建Android MVVM应用框架

说到Android MVVM,相信大家都会想到Google 2015年推出的DataBinding框架。然而两者的概念是不一样的,不能混为一谈。MVVM是一种架构模式,而DataBinding是一个实现数据和UI绑定的框架,是构建MVVM模式的一个工具。那么在Android中是如何通过DataBinding去构建MVVM的应用框架的?View、ViewModel、Model每一层的职责如何?它们之间联系怎样、分工如何、代码应该如何设计?本文给出了答案。

Writing-Better-Adapters 译文及示例

对于Android开发者来说,实现Adapter是最频繁的工作之一。Adapter是所有列表的基本,而列表也是很多App的基本组成。编写一个列表控件的方法大多数时间都是一样的:用一个绑定了Adapter的View来展示数据。然而一直这样会让我们对自己编写的代码变得盲目或者说我们一直在重复创造低级代码。阅读文章,看看作者是如何提高Adapter代码质量的。

开源项目

iOS

Apple 开源 macOS 10.12 Sierra Darwin 代码

Apple 公布了 macOS 10.12 Sierra 的开源 Darwin 代码,代码包含了 macOS、iOS、watchOS 和 tvOS 基于的 Unix 组件的核心集合,包括驱动程序和未加密的内核及其 BSD 部分。

RocketData

LinkedIn 的数据缓存框架,针对不可变Model。

Swimat

快捷对代码排版的 Xcode Extensions 。

StatefulViewController

带状态 ViewController ,方便快速添加各种状态视图。

Android

update

一款清晰灵活简单易用的Android应用更新库。

blurkit-android

这是一款使用简单的模糊工具,可以通过XML来配置。

工作

有招聘移动开发工程师需求可以给我发邮件:amos@infoq.com,附上公司名称介绍、招聘需求、待遇、联系方式等等。我会选择一些放在这里。

Android&iOS研发工程师 by QQ

坐标深圳。负责QQ上视频直播、短视频分享和QQ群相关的开发工作,欢迎对新技术有热情并好学的同学。简历发送至 cppgohan@qq.com

企业产品iOS开发工程师 by QQ

坐标上海。负责企点、企业QQ、手机QQ iOS平台的企业功能开发工作。要求3年以上iOS平台软件开发经验。简历发送至 sunnylyme@163.com

活动

宣传社区办的一些移动相关的线下活动,有想放在这里的欢迎和我打招呼,友情帮宣传。

ArchSummit全球架构师峰会

地点北京。ArchSummit秉承“实践第一、案例为主”的原则,展示新技术在行业应用中的最新实践,技术在企业转型中的加速作用,帮助企业技术管理者、CTO、架构师做好技术选型、技术团队组建与管理,并确立技术对于产品和业务的关键作用。




本文作者:佚名
来源:51CTO
目录
相关文章
|
16天前
|
开发工具 Android开发 iOS开发
探索Android与iOS开发的差异与挑战
【7月更文挑战第11天】在移动应用开发的广阔天地中,Android和iOS两大平台如同双子星座般耀眼,各自拥有独特的开发生态和用户群体。本文将深入分析这两个平台的显著差异,从技术架构到开发工具,再到市场定位,揭示它们之间的异同。通过比较,我们不仅能够更好地理解各自的优势和局限,还能洞察未来移动应用开发的趋势。
|
19天前
|
Java Android开发 iOS开发
探索Android与iOS开发的差异:平台选择对项目成功的影响
【7月更文挑战第8天】在移动应用开发的广阔天地中,Android与iOS两大平台各自占据着半壁江山。本文将深入探讨这两个平台在开发环境、用户界面设计、性能优化以及市场覆盖等方面的根本差异,并分析这些差异如何影响项目的成功。通过比较和分析,旨在为开发者在选择平台时提供更全面的视角,帮助他们根据项目需求和目标市场做出更明智的决策。
|
21天前
|
安全 Android开发 iOS开发
Android vs iOS:哪个操作系统更适合你的智能设备?
在今天的移动设备市场上,Android和iOS是两个主要的操作系统选择。本文将分析它们的优缺点,帮助读者选择最适合自己需求的操作系统。 【7月更文挑战第6天】
28 2
|
2天前
|
缓存 安全 Java
为什么手动创建的线程池比使用Executors类提供的线程池更安全
为什么手动创建的线程池比使用Executors类提供的线程池更安全
|
4天前
|
开发工具 Android开发 iOS开发
探索Android与iOS开发环境的差异性
在移动应用开发的广阔天地中,Android和iOS两大平台如同双子星座般耀眼。本文将深入探讨这两个操作系统的开发环境,揭示它们在编程语言、工具、用户界面设计以及性能优化等方面的显著差异。通过对比分析,旨在为开发者提供清晰的平台选择指导,并帮助他们理解各自环境下的最佳实践。
|
9天前
|
安全 Java Android开发
探索安卓与iOS开发的差异:构建未来应用的关键考量
【7月更文挑战第18天】在移动应用开发的广阔天地中,安卓和iOS两大平台各领风骚。本文将深入探讨这两个平台在开发过程中的主要差异,包括编程语言、用户界面设计、性能优化、安全性以及市场策略等方面。通过比较分析,旨在为开发者提供决策支持,帮助他们选择最适合自己项目需求的平台,同时考虑到用户体验和市场需求的变化,为未来的应用开发指明方向。
|
7天前
|
开发工具 Android开发 Swift
探索Android与iOS开发的差异与挑战
【7月更文挑战第20天】在移动应用开发的广阔天地中,Android和iOS两大平台如同双子星座,各自闪耀着独特的光芒。本文将深入探讨这两个平台在开发过程中的主要差异,以及开发者面临的技术挑战。我们将从开发环境、编程语言、用户界面设计、性能优化、安全性考量等多个维度展开讨论,旨在为那些即将踏入或已在这片星空下航行的开发者提供一盏明灯。
|
16天前
|
Java 开发工具 Android开发
探索Android与iOS开发的差异与挑战
【7月更文挑战第11天】在移动应用开发的广阔天地中,Android和iOS两大平台各领风骚。本文将深入探讨这两个平台的开发差异,从编程语言、用户界面设计到开发工具等方面进行比较,并分析开发者面临的挑战。通过对比分析,旨在为开发者提供一个全面的视角,帮助他们更好地选择适合自己项目需求的开发平台。
22 0
|
16天前
|
设计模式 安全 NoSQL
Java面试题:设计一个线程安全的单例模式,并解释其内存占用和垃圾回收机制;使用生产者消费者模式实现一个并发安全的队列;设计一个支持高并发的分布式锁
Java面试题:设计一个线程安全的单例模式,并解释其内存占用和垃圾回收机制;使用生产者消费者模式实现一个并发安全的队列;设计一个支持高并发的分布式锁
24 0
|
16天前
|
安全 Java 调度
Java面试题:Java内存优化、多线程安全与并发框架实战,如何在Java应用中实现内存优化?在多线程环境下,如何保证数据的线程安全?使用Java并发工具包中的哪些工具可以帮助解决并发问题?
Java面试题:Java内存优化、多线程安全与并发框架实战,如何在Java应用中实现内存优化?在多线程环境下,如何保证数据的线程安全?使用Java并发工具包中的哪些工具可以帮助解决并发问题?
18 0