移动开发每周阅读清单: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
目录
相关文章
|
15天前
|
JSON Java API
探索安卓开发:打造你的首个天气应用
在这篇技术指南中,我们将一起潜入安卓开发的海洋,学习如何从零开始构建一个简单的天气应用。通过这个实践项目,你将掌握安卓开发的核心概念、界面设计、网络编程以及数据解析等技能。无论你是初学者还是有一定基础的开发者,这篇文章都将为你提供一个清晰的路线图和实用的代码示例,帮助你在安卓开发的道路上迈出坚实的一步。让我们一起开始这段旅程,打造属于你自己的第一个安卓应用吧!
41 14
|
18天前
|
Java Linux 数据库
探索安卓开发:打造你的第一款应用
在数字时代的浪潮中,每个人都有机会成为创意的实现者。本文将带你走进安卓开发的奇妙世界,通过浅显易懂的语言和实际代码示例,引导你从零开始构建自己的第一款安卓应用。无论你是编程新手还是希望拓展技术的开发者,这篇文章都将为你打开一扇门,让你的创意和技术一起飞扬。
|
16天前
|
搜索推荐 前端开发 测试技术
打造个性化安卓应用:从设计到开发的全面指南
在这个数字时代,拥有一个定制的移动应用不仅是一种趋势,更是个人或企业品牌的重要延伸。本文将引导你通过一系列简单易懂的步骤,从构思你的应用理念开始,直至实现一个功能齐全的安卓应用。无论你是编程新手还是希望拓展技能的开发者,这篇文章都将为你提供必要的工具和知识,帮助你将创意转化为现实。
|
16天前
|
Java Android开发 开发者
探索安卓开发:构建你的第一个“Hello World”应用
在安卓开发的浩瀚海洋中,每个新手都渴望扬帆起航。本文将作为你的指南针,引领你通过创建一个简单的“Hello World”应用,迈出安卓开发的第一步。我们将一起搭建开发环境、了解基本概念,并编写第一行代码。就像印度圣雄甘地所说:“你必须成为你希望在世界上看到的改变。”让我们一起开始这段旅程,成为我们想要见到的开发者吧!
24 0
|
安全 iOS开发
ios中的线程安全单例实现
我们这里重点讨论的是线程安全,而不是单例的严格实现(若需要严格实现还需要复写一些方法,更改一些实现代码): gcd实现:   static AccountManager *sharedAccountManagerInstance = nil;  + (A...
1012 0
|
28天前
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台策略
在移动应用开发的战场上,安卓和iOS两大阵营各据一方。随着技术的演进,跨平台开发框架成为开发者的新宠,旨在实现一次编码、多平台部署的梦想。本文将探讨跨平台开发的优势与挑战,并分享实用的开发技巧,帮助开发者在安卓和iOS的世界中游刃有余。
|
5天前
|
iOS开发 开发者 MacOS
深入探索iOS开发中的SwiftUI框架
【10月更文挑战第21天】 本文将带领读者深入了解Apple最新推出的SwiftUI框架,这一革命性的用户界面构建工具为iOS开发者提供了一种声明式、高效且直观的方式来创建复杂的用户界面。通过分析SwiftUI的核心概念、主要特性以及在实际项目中的应用示例,我们将展示如何利用SwiftUI简化UI代码,提高开发效率,并保持应用程序的高性能和响应性。无论你是iOS开发的新手还是有经验的开发者,本文都将为你提供宝贵的见解和实用的指导。
85 66
|
15天前
|
开发框架 Android开发 iOS开发
安卓与iOS开发中的跨平台策略:一次编码,多平台部署
在移动应用开发的广阔天地中,安卓和iOS两大阵营各占一方。随着技术的发展,跨平台开发框架应运而生,它们承诺着“一次编码,到处运行”的便捷。本文将深入探讨跨平台开发的现状、挑战以及未来趋势,同时通过代码示例揭示跨平台工具的实际运用。
|
19天前
|
Java 调度 Android开发
安卓与iOS开发中的线程管理差异解析
在移动应用开发的广阔天地中,安卓和iOS两大平台各自拥有独特的魅力。如同东西方文化的差异,它们在处理多线程任务时也展现出不同的哲学。本文将带你穿梭于这两个平台之间,比较它们在线程管理上的核心理念、实现方式及性能考量,助你成为跨平台的编程高手。
|
21天前
|
存储 前端开发 Swift
探索iOS开发:从新手到专家的旅程
本文将带您领略iOS开发的奇妙之旅,从基础概念的理解到高级技巧的掌握,逐步深入iOS的世界。文章不仅分享技术知识,还鼓励读者在编程之路上保持好奇心和创新精神,实现个人成长与技术突破。
下一篇
DataWorks