移动开发每周阅读清单: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
目录
相关文章
|
14天前
|
移动开发 Java Android开发
构建高效Android应用:探究Kotlin与Java的性能差异
【4月更文挑战第3天】在移动开发领域,性能优化一直是开发者关注的焦点。随着Kotlin的兴起,其在Android开发中的地位逐渐上升,但关于其与Java在性能方面的对比,尚无明确共识。本文通过深入分析并结合实际测试数据,探讨了Kotlin与Java在Android平台上的性能表现,揭示了在不同场景下两者的差异及其对应用性能的潜在影响,为开发者在选择编程语言时提供参考依据。
|
16天前
|
数据库 Android开发 开发者
构建高效Android应用:Kotlin协程的实践指南
【4月更文挑战第2天】随着移动应用开发的不断进步,开发者们寻求更流畅、高效的用户体验。在Android平台上,Kotlin语言凭借其简洁性和功能性赢得了开发社区的广泛支持。特别是Kotlin协程,作为一种轻量级的并发处理方案,使得异步编程变得更加简单和直观。本文将深入探讨Kotlin协程的核心概念、使用场景以及如何将其应用于Android开发中,以提高应用性能和响应能力。通过实际案例分析,我们将展示协程如何简化复杂任务,优化资源管理,并为最终用户提供更加流畅的体验。
|
19天前
|
缓存 监控 Java
构建高效Android应用:从优化用户体验到提升性能
在竞争激烈的移动应用市场中,为用户提供流畅和高效的体验是至关重要的。本文深入探讨了如何通过多种技术手段来优化Android应用的性能,包括UI响应性、内存管理和多线程处理。同时,我们还将讨论如何利用最新的Android框架和工具来诊断和解决性能瓶颈。通过实例分析和最佳实践,读者将能够理解并实施必要的优化策略,以确保他们的应用在保持响应迅速的同时,还能够有效地利用系统资源。
|
24天前
|
编解码 算法 Java
构建高效的Android应用:内存优化策略详解
随着智能手机在日常生活和工作中的普及,用户对移动应用的性能要求越来越高。特别是对于Android开发者来说,理解并实践内存优化是提升应用程序性能的关键步骤。本文将深入探讨针对Android平台的内存管理机制,并提供一系列实用的内存优化技巧,以帮助开发者减少内存消耗,避免常见的内存泄漏问题,并确保应用的流畅运行。
|
24天前
|
调度 数据库 Android开发
构建高效Android应用:Kotlin协程的实践与优化
在Android开发领域,Kotlin以其简洁的语法和平台友好性成为了开发的首选语言。其中,Kotlin协程作为处理异步任务的强大工具,它通过提供轻量级的线程管理机制,使得开发者能够在不阻塞主线程的情况下执行后台任务,从而提升应用性能和用户体验。本文将深入探讨Kotlin协程的核心概念,并通过实例演示如何在实际的Android应用中有效地使用协程进行网络请求、数据库操作以及UI的流畅更新。同时,我们还将讨论协程的调试技巧和常见问题的解决方法,以帮助开发者避免常见的陷阱,构建更加健壮和高效的Android应用。
32 4
|
25天前
|
存储 运维 安全
iOS加固原理与常见措施:保护移动应用程序安全的利器
iOS加固原理与常见措施:保护移动应用程序安全的利器
28 0
|
27天前
|
移动开发 Java Android开发
构建高效Android应用:Kotlin协程的实践之路
【2月更文挑战第31天】 在移动开发领域,性能优化和流畅的用户体验一直是开发者追求的目标。随着Kotlin语言的流行,其异步编程解决方案——协程(Coroutines),为Android应用带来了革命性的并发处理能力。本文将深入探讨Kotlin协程的核心概念、设计原理以及在Android应用中的实际应用案例,旨在帮助开发者掌握这一强大的工具,从而提升应用的性能和响应能力。
|
27天前
|
安全 Android开发 开发者
构建高效Android应用:Kotlin与协程的完美结合
【2月更文挑战第30天】在移动开发领域,性能优化和流畅的用户体验是关键。本文深入探讨了如何通过结合Kotlin语言和协程技术来提升Android应用的性能和响应能力。我们将分析Kotlin的优势,介绍协程的基本概念,并通过实际案例展示如何在应用中实现协程以简化异步编程,从而提供更加高效的解决方案。
|
16天前
|
Java Android开发 开发者
构建高效Android应用:Kotlin协程的实践与优化
在响应式编程范式日益盛行的今天,Kotlin协程作为一种轻量级的线程管理解决方案,为Android开发带来了性能和效率的双重提升。本文旨在探讨Kotlin协程的核心概念、实践方法及其在Android应用中的优化策略,帮助开发者构建更加流畅和高效的应用程序。通过深入分析协程的原理与应用场景,结合实际案例,本文将指导读者如何优雅地解决异步任务处理,避免阻塞UI线程,从而优化用户体验。
|
21天前
|
Java 编译器 Android开发
构建高效Android应用:探究Kotlin与Java的性能差异
在开发高性能的Android应用时,选择合适的编程语言至关重要。近年来,Kotlin因其简洁性和功能性受到开发者的青睐,但其性能是否与传统的Java相比有所不足?本文通过对比分析Kotlin与Java在Android平台上的运行效率,揭示二者在编译速度、运行时性能及资源消耗方面的具体差异,并探讨在实际项目中如何做出最佳选择。
17 4