Mobile development weekly reading list: iOS multithreading safety, building Android MVVM application framework

Mobile development weekly reading list: iOS multithreading safety, building Android MVVM application framework

(I went in, took a look, and then exited.)

The 37th issue of "Mobile Development Weekly Reading List" is here. Last week, Alipay grabbed the headlines. I think it was not their intention for things to turn out this way. I can only say that product managers are still very important.

Tip: Click on the original text at the end of the article to open the linked version.

Tip 2: There is a small bonus at the end of the article~

news

Apple discontinues AirPort product line

According to Bloomberg, Apple has stopped developing wireless router products including AirPort Express and AirPort Extreme. Apple hopes to use its manpower to develop the next generation of Apple products that will bring higher profits. However, it is not clear when Apple will stop producing these products. These products are still available for purchase. If you want to buy one as a souvenir, you may have to hurry up.

Android 7.1 Developer Preview Beta 2 released: closer to the final version

On November 23, Google just released the second developer preview of Android 7.1, which will also be the last preview of Android 7.1. After that, Google will release the official version of Android 7.1.1. Android 7.1 developer preview supports Nexus 5X, Nexus 6P, Nexus 9 and Pixel C. According to Google, Android 7.1 developer preview 2 is close to "complete" in terms of system stability and UI.

Tutorial

iOS

Why is iOS multithreading unsafe?

The concept of iOS multithreaded safety is encountered in many places. Why is it unsafe and how to define unsafe is actually a topic worth exploring. Shared state and multithreaded access to the property of an object are very common usage scenarios in iOS programming. This article starts with the multithreaded safety of Property, shares the understanding of memory layout and atomicity, and explains the difference between atomic and nonatomic.

Swift: UserDefaults protocol

A sharing of a framework similar to SwiftyUserDefaults, which introduces how to use protocol scenarios properly in Swift.

Discussion on APP cache data thread security issues

This article discusses how to deal with cache issues in multi-threaded environments and shares three solutions: locking, thread-based cache, and data immutability.

Preloading and Smart Preloading

This article introduces several preloading solutions in iOS and how preloading is handled in ASDK.

Android

A preliminary study of Redex and Interdex: Android cold start optimization

As early as October last year, Facebook published an article introducing redex, which is said to be able to directly process apk, improving startup performance and reducing installation packages, which made Android developers very excited. Until April this year, redex was finally open sourced, and the author spent a lot of time to study redex. Although it was not finally integrated into the project construction due to many pitfalls, it was inspired by Interdex and made new gains in optimizing the cold start speed of applications.

Building Android projects with Buck

Buck is a powerful build tool developed, maintained and open-sourced by Facebook. It is widely used in all Facebook products and also in the WeChat team in China. The target code it builds is quite extensive and optimized for Android projects. The core idea is the multi-task concurrent build strategy, which gives full play to the advantages of multi-core. Buck can greatly speed up the full build of Android projects and is the only choice in the current Android full build strategy.

How to build an Android MVVM application framework

Speaking of Android MVVM, I believe everyone will think of the DataBinding framework launched by Google in 2015. However, the concepts of the two are different and cannot be confused. MVVM is an architectural pattern, while DataBinding is a framework for implementing data and UI binding, and is a tool for building the MVVM pattern. So how do you use DataBinding to build an MVVM application framework in Android? What are the responsibilities of each layer of View, ViewModel, and Model? How are they connected, how is the division of labor, and how should the code be designed? This article gives the answers.

Writing-Better-Adapters Translations and Examples

Implementing Adapter is one of the most frequent tasks for Android developers. Adapter is the basis of all lists, and lists are also the basic components of many apps. The way to write a list control is the same most of the time: use a View bound to an Adapter to display data. However, doing this all the time will make us blind to the code we write or we will keep re-creating low-level code. Read the article to see how the author improves the quality of Adapter code.

Open Source Projects

iOS

Apple Open Sources macOS 10.12 Sierra Darwin Code

Apple has released the open source Darwin code for macOS 10.12 Sierra, which contains a core set of Unix components that macOS, iOS, watchOS, and tvOS are based on, including drivers and an unencrypted kernel and its BSD portion.

RocketData

LinkedIn's data caching framework for immutable models.

Swimat

Xcode Extensions for quick code formatting.

StatefulViewController

With state ViewController, it is convenient to quickly add various state views.

Android

update

A clear, flexible and easy-to-use Android application update library.

blurkit-android

This is an easy-to-use fuzzing tool that can be configured via XML.

Work

If you need to recruit mobile development engineers, you can send me an email: [email protected], attach the company name, recruitment requirements, salary, contact information, etc. I will select some and put them here.

Android&iOS R&D Engineer by QQ

Located in Shenzhen. Responsible for the development of video live broadcast, short video sharing and QQ group on QQ. Welcome students who are passionate about new technologies and eager to learn. Send your resume to [email protected]

Enterprise Product iOS Development Engineer by QQ

Located in Shanghai. Responsible for the enterprise function development of Qidian, Enterprise QQ, and Mobile QQ iOS platforms. Requires more than 3 years of iOS platform software development experience. Send your resume to [email protected]

Activity

To promote some offline mobile-related activities organized by the community, if you want to put them here, please let me know and I will help promote them.

ArchSummit Global Architect Summit

Location: Beijing. ArchSummit adheres to the principle of "practice first, case-based", showing the best practices of new technologies in industry applications, the accelerating role of technology in enterprise transformation, helping enterprise technology managers, CTOs, and architects to make good technology selection, technical team formation and management, and establish the key role of technology in products and businesses.

China Technology Open Day Guangzhou

Held in Guangzhou on December 9. The theme is the forefront of mobile development. We invited technical experts from Tencent, Alibaba, Baidu, and Vipshop to share their front-line development practices.

<<:  The road to decoupling mobile Tmall

>>:  Understand the real 『REM』 mobile screen adaptation

Recommend

New US President's policy: Apple and Intel will have a hard time in China

According to CNNMoney, a financial website under ...

Congratulations to Chen Dong, Liu Yang, and Cai Xuzhe!

CPC Central Committee State Council Central Milit...

Science in the Week: Will Tying Your Hair Often Make Your Hairline Higher?

2022, Week 7, Issue 5, Total Issue 21 It’s almost...

Can the magical "retinal chip" help the blind regain their sight?

Vision is an important way for people to obtain i...

New media operation and promotion planning and writing skills!

How to write a promotion plan for new media opera...

It turns out you are such a "little axe"!

◎ Science and Technology Daily reporter Yang Xue ...

Apple’s new feature is gone in the iOS 17 beta version!

Recently, the topic of "Apple will prevent u...

Understanding Android security mechanisms

This article starts with the Android system archi...

Persuasive copywriting cannot be separated from these 8 steps

1. Attraction Without appeal, advertising copy is...