Old driver iOS weekly, just for you to present valuable information.

You can also contribute to the project, if you find valuable information, articles, tools, etc., please send it to us in Issues, we will deal with it as soon as possible. Be sure to include a reason for your recommendation. Suggestions and comments are also welcome to Issues.

Pay attention to our

We have opened an official account, and when each issue is released, the official account (LSJCoding) will push a message, and you are welcome to search “Veteran driver Technology Weekly”.

Weekly public qr code touch me

RSS feeds are also supported: github.com/SwiftOldDri… .

WWDC20

This week we have five articles from WWDC20 on our official account, and they’re all great!

  • IOS performance optimization: Collect data using MetricKit 2.0
  • IOS Continuous Integration: Improved App Store Connect API
  • IOS performance optimization: Optimize App startup speed
  • New changes to Universal Links: Wider and faster access
  • New HealthKit features

The novice recommended

πŸ• Overriding UserDefaults for improved productivity

AidenRao: In-app UserDefaults is an easily accessible data store for holding status, statistics, and other application-specific data. We can override UserDefaults by configuring startup parameters without modifying the code and changing the UserDefaults defaults to improve development efficiency.

πŸ• 🚧 Setting default values for NSUserDefaults

@ red paper: Register (defaults:) is used to set the initial value of the relevant key. Register is set only when the corresponding value of the key is nil. It is important to note that register does not write to disk, but merely assigns initial values at run time.

🐎 New solution of UIButton state

As a common control in daily development, UIButton system provides us with quite rich functions and customizability. This paper introduces the application of UIButton state in daily development from single state, combined state and custom state layer by layer. It has always been a good idea for programmers to only use state to drive THE UI. This article provides a reference for implementation from a basic control.

🐎 Flutter component event data transmission and control | · DTalk developers said

State management has never been around Flutter development. This article explains how to properly transfer data and events using the most basic code. It’s great to look at when you start.

The article also summarized briefly:

  • Change your state’s data, setState passes new data to the child
  • Accept the event callback for Child
  • Update the target data to the child, who listens for changes to the data and changes its state in more detail
  • Pass the Controller to the child to fully control the state of the child

πŸ• Debugging on iOS 14 with Xcode 11

J_Knight_ : This article shares ways to get iOS 14 to run on older versions of Xcode and ways to attach a debugger to a running application. I also shared the method of viewing variables without adding a debugger with code and screenshots.

The article

🌟 πŸ• iOS main in Assembly

@Backgammon: First of all it’s a blog in English, that’s great. Secondly, the author analyzes the main function in iOS to gradually understand how to realize its essence. In the analysis process interspersed with some basic assembly knowledge, is a good entry practice article.

🌟 πŸ• Crash Reporting with MetricKit.Crash Reporting with MetricKit, Part 2.IOS performance optimization: Collect data using MetricKit 2.0

@Old Donkey: Three articles about MetricKit so you can read MetricKit in one go. At WWDC this year, Apple upgraded MetricKit, which was introduced last year, to 2.0 with three new metrics: CPU instructions, scroll stalling, and app exit. MetricKit, as an official Metrics tool chain supported by Apple, is also in the process of iterative improvement. I believe that in the future, MetricKit will play a more important role in iOS.

🌟 πŸ• Objective C/C++ exception handling implementation mechanism

Leo: Exception handling is an important feature of languages and Objective C and C++ are no exception. In daily development, we focus more on catching and handling exceptions and less on the underlying implementation of exceptions. This article starts from C++ exception, from the perspective of assembly and LLVM source code for exploration and thinking, introduces the Objective C and C++ exception implementation mechanism, in addition to the content of a lot of dry things, the analysis of the idea is also worth learning.

πŸ• Podspec file analysis

@jonyfang: In the previous Podfile parsing logic, the author introduced the corresponding data structure behind Podfile with Xcode engineering structure as the starting point, dissected how Podfile is parsed and loaded, and how to build the project finally. This article introduces Podspec, another important file in Cocoapods-Core.

Content structure:

  • PodSpec configuration and CoC rules
  • This section describes the SPEC core data structure
  • spec from json
  • spec from ruby
  • Practice creating a POD

🐎 Apple’s use of Swift and SwiftUI in iOS 14

@bangben: This article is about analyzing how many built-in apps in iOS 14.0 are using Swift (note: Swift will be counted for every line used).

IOS 13.1: 141 Swift devices and 5 SwiftUI devices. IOS 14.0: Swift 291, SwiftUI 43

It can be seen that Apple internally promotes Swift to increase year by year and expects Swift to develop further.

πŸ• Explore Flutter memory leaks from rendering principles

CrazyCoderShi: Memory level is one of the important indicators to judge the performance of an app. How to help developers analyze, expose and solve memory leak problems more easily is a “standard feature” that developers desperately need for almost every platform or framework. This article is shared by the Idle Fish team to explore the method of Flutter memory leakage from the perspective of the rendering tree.

🚧 πŸ• How iOS Apps Adapt to the various iPhone 12 Screen Sizes

@Shuishui: At its October 2020 event, Apple unveiled four iPhone 12 models: iPhone 12 Mini, iPhone 12, iPhone 12 Pro, and iPhone 12 Pro Max. The iPhone 12 and 12 Pro have exactly the same screen resolution and the same behavior. So there are only three screen resolutions to consider, and the authors have listed the standard zoom and display zoom for these models as well as some of the previous ones, hoping to help you adapt to your model.

πŸ• Swift deinit is (sometimes) not called for throwing or failable initializers

@ EyreFree: when the init? Deinit is not called on failure to return nil or when an exception is thrown. This article introduces the edge case of init and deinit in Swift, and discusses the historical reasons and original intention of this design.

Audio and video

πŸ• “A Huge Year for SwiftUI” A WWDC20 Special with Josh Shaffer and Eliza Block

@Lao Donkey: Apple has made a lot of efforts on SwiftUI this year. New features like widgets in iOS 14 can only be implemented with SwiftUI. Apple wants to promote SwiftUI in this way. In this issue, Josh Shaffer and Eliza Block from Apple discuss SwiftUI’s changes this year and its future.

@ alfredcc recommended

The sponsors

Woodpecker is an iOS development and debugging aid that provides online viewing and editing of sandbox files, UserDefaults, and view levels. It can greatly improve development efficiency and happiness in practical work.

Thank you very much for the support of the above sponsors. If you are also interested in sponsoring us, welcome to add wechat iTDriver

push

Alibaba Taojiduan intelligence team is recruiting staff, mainly responsible for MNN industry famous inference engine/AR beauty, rendering system and framework design/AI supporting software facilities/server recommendation system. Android/rendering/CV algorithm/server are all short. Coordinate hangzhou Beijing, not PUA, big chance, work more and get more, come to work together, interested parties plus V: Satanwoo.

Senior driver Weekly team combined knowledge collection and SwiftGG Translation group included a reliable internal promotion position.

If you want to looking for a job, click here: www.yuque.com/iosalliance…

If you want to recruit people, click here: www.yuque.com/iosalliance…

Of course, you are also welcome to pay attention to our weekly report, we will update the editorial post at the bottom of each weekly report.

instructions

🚧 indicates that a tool is required, and 🌟 indicates that editing is recommended

Estimated reading time: 🐎 in a short time (1-10 mins); πŸ• medium (10-20 mins); 🐒 slow (20+ mins)