# Old Driver iOS Weekly #207 | 2022-07-04

Original link: https://github.com/SwiftOldDriver/iOS-Weekly/releases/tag/%23207

ios-weekly

The old driver iOS weekly report, only presents valuable information for you.

You can also contribute to this project. If you find valuable information, articles, tools, etc., you can submit it to us in Issues , and we will deal with it as soon as possible. Remember to write the reason for your recommendation. Suggestions and comments are also welcome to Issues .

“WWDC22 Internal Reference”

A total of 19 articles were updated last week, and a total of 34 articles have been updated so far, each of which is of very high quality. Due to space problems, I recommend 5 articles at the beginning that may be more interesting to everyone, and the others are put at the end of the weekly report~

? 【WWDC22 10078】Reduce network latency: make your app faster

How to make apps faster is an eternal topic for developers. In 2021, Apple shared a lot of theoretical knowledge related to network latency optimization, and this year, on the basis of last year, Apple has brought us this very practical sharing, from the client side and the server side. Starting from the three aspects of the side and the network protocol side, a series of effective suggestions are provided to help developers better analyze and improve the network latency of applications, so as to make your app faster.

? 【WWDC22 110427】What’s new in Xcode

This article mainly starts with the functional update of Xcode 14 and the improvement of volume performance, and shares some exciting updates of Xcode through a simple Demo demonstration. This article will mainly focus on the performance optimization improvement of Xcode itself, the improvement of developer efficiency and other new functions. Through the understanding of these updates, I believe it will be of great help to everyone’s daily work development.

? 【WWDC22 110362】Quick link: Improve build and startup time

This session was shared by Nick Kledzik, lead engineer on Apple’s linker team, on how to implement quick links. It mainly introduces a series of recent optimizations made by Apple in static linking and dynamic linking, and helps you understand the underlying details of the linking process, so that you can improve the static and dynamic linking performance of your App.

? 【WWDC22 110355】Meet Swift Async Algorithms

This article understands the implementation logic of Apple’s official Async Algorithms by reading the source code. The full text can be divided into three parts:

  • The first part describes the logic for handling input/output results in the case of multiple inputs
  • The second part introduces the Clock protocol, as well as related usage and effects
  • The third part introduces the two algorithms implemented on the Clock protocol
  • The fourth part briefly compares Apple’s Async Algorithms and common process-oriented frameworks

? 【WWDC22 110351】Using Swift Concurrency to Eliminate Data Races

This article mainly reviews the Sendable protocol and usage introduced in Swift 5.5, and introduces the bounds checking implemented by the Swift 5.7 compiler based on the Sendable protocol to prevent data races during task switching or Actor switching. Discusses low-level data races, explores how to prevent high-level data races by implementing transaction atomicity in Swift concurrency, and describes how to maintain a safe concurrency environment The execution order of the code logic.

Recommended for beginners

? Memory Graph for iOS memory analysis

@Old Donkey : Memory Graph is a very useful tool that is often used in iOS development. For some memory leak type bugs that are more difficult to debug, it can achieve twice the result with half the effort. This article introduces how to use Memory Graph, and also includes basic analysis methods for memory leak analysis. If you are new to iOS development, you may wish to read it.

article

? What Apple might do with distributed computing

@Smalfly : This article proposes Apple’s development vision in the field of distributed computing for Swift’s iterative concurrency model. The author expects that the cross-process communication capability of the Apple system can be reused in cross-device communication to improve the collaboration of Apple devices. And exemplified two existing problems that distributed computing can solve, one is the problem of Siri evoking multiple devices, and the devices cannot make unified decisions; the other is the problem of HomeKit data sharing.

? Existential any in Swift explained with code examples

@xiangerxiansen : In Swift 5.6, SE-335 introduced existential any , and Swift 5.7 enhanced it. This article introduces the specific usage of the any keyword, the difference between it and some , and its impact on performance.

? How to continue to break through performance? Detailed explanation of DX performance optimization strategy

@Barney This article introduces DinamicX, a native dynamic solution widely used in Taobao and even the entire Ali Group, and takes us step by step to uncover its mystery. The articles are relatively dense and need to be read carefully.

  • DX Status
  • Pipeline optimization
  • Rendering optimization
  • Off-screen resource management and control framework

? Using LLVM

@anotheren : From Dai Ming’s LLVM series of articles, which has now been updated to the chapter on real code usage, introducing how to use LLVM to check code usage at low cost. If you also need to check the metabolism of the code to control the package size, you might as well take a look at this article.

? Some keyword in Swift: Opaque types explained with code examples

@Damien : The some keyword is a new feature in Swift 5.1, its role is to allow you to describe the expected return type without defining a concrete type, which in Swift can help simplify code and improve readability. At the same time, many improvements have been introduced in Swift 5.7 and the compiler can also optimize the code. The author of this article has carefully sorted out the examples and precautions for using some. After reading this article, I must be able to understand and use some to a higher level.

? Dutter | Lessons from the past: talk about the “pit” that Dingding Flutter stepped on on the desktop

@Laofeng : This article mainly introduces several FlutterEngine-level bugs encountered and handled on the desktop side in the process of Dingding Flutter business grayscale. Specifically include the following:

Mac side:

  • Memory leak problem after FlutterEngine exits;

  • Deadlock problem in FlutterEngine shutdown phase;

  • Crash problem in the destruction phase of OpenGL in lower versions of macOS;

Windows side:

  • Win7 device rendering module “Crash + afterimage” problem;

  • FlutterPlugin registration phase wild pointer Crash;

  • White screen after Flutter Window visibility change.

“Dutter Series Articles” shares DingTalk’s technical practice and experience of stepping on the four-terminal square frame. It is divided into two parts, the first and the next. For the content of the first article, click “DingTalk Flutter Cross-Four-Terminal Solution Design and Technical Practice” , and interested friends are recommended to read.

? Flutter rendering performance problem analysis

@EyreFree : Flutter has many advantages, although it has many shortcomings in rendering performance, but to some extent, some defects are also the result of having to suffer in order to achieve higher-level design goals. This article compares Web (Chromium) and Native (Android), and conducts an in-depth analysis of Flutter’s rendering performance issues, especially the reasons for poor inertial scrolling performance. It also provides some optimization ideas and analysis data of optimization results. Friends who are interested in Flutter performance optimization should not miss it.

?Information Security | How to build trust in the Internet age?

The article starts from what information security is, to why, to how to do it. The context is clear and progressive, and finally, some related applications are discussed to deepen understanding.

Through the article, readers can answer and understand the following questions:

  1. Information transmission generally uses symmetric encryption + asymmetric encryption. Why? Can’t just use one or the other?
  2. Why does information security need digital signatures?
  3. Why do hash operations need to be done before signing?
  4. Why do information security need digital certificates?

The ultimate goal of the article is: When we encounter cryptography-related problems, we will no longer be afraid and confused.

Recommended by: doubleLLL3 (public account Bo2SS)

tool

Git related

@Redpaper : lazygit is a GUI-based Git terminal interaction tool. Its interface is simple, and you can access various command functions through shortcut keys, which is really a blessing for keyboard control~

Conventional commit provides a standardization for submitting git commit messages, aiming to provide “a specification for adding human-readable meaning to commit messages”, for example, “feat(Person): Submit new parameters” to provide Human-machine readable interaction, feat represents new function (Person) and represents Person scope, followed by specific commit instructions. Using conventional submission, we can also use CI/CD to automatically generate CHANGELOG, including the Release Note of our SDK. git-cz is a very good guide-to-convention commit tool.

WWDC22 internal reference update

? 【WWDC22 10074】New features of AppKit framework

AppKit is one of the core frameworks for macOS applications. Updates to the AppKit framework at WWDC22 include refinements to the design language and evolutions related to platform conformance. This article will introduce the new features of AppKit at WWDC22 and the adaptation points for developers.

? 【WWDC22 110344/10109】 Developer Mode and Notarization

As a pioneer in privacy and security, Apple has always been committed to allowing users to download reliable and secure applications, and to ensure user and developer experience, trying to achieve a good balance between security and ease of use.

The developer mode in the iOS direction and the notarization in the macOS direction introduced in this article are Apple’s latest practices based on these principles.

? 【WWDC22 10041】New features of Wallet and Apple Pay

This article takes a look back at WWDC 2022 for general updates and additions to Wallet and Apple Pay . The regular updates include: contactless payment , Mac sync Apple Pay function , SwiftUI new API and other functions, new functions include: multi-merchant payment , automatic payment , order tracking , identity verification and other functions. Finally, the cities and regions that the transportation card supports Apple Pay and the currently supported devices are updated, and related demos are provided for everyone to test.

? 【WWDC22 10003】WeatherKit for the first time

This article will introduce Apple’s new WeatherKit weather service. The full text is divided into four parts: the first part is to introduce the weather app in Apple platform. The second part introduces the specific metrics of the weather datasets that support the query. The third part introduces how to use Swift and Python 3 for access and access precautions. The fourth part is the conclusion and outlook.

? 【WWDC22 10075】Combining SwiftUI and AppKit

This article takes the macOS version of Shortcuts as an example to introduce some methods and precautions for combining SwiftUI with AppKit.

? 【WWDC 110371】 Those things about multi-platform development with Xcode

This article will work with Xcode 14 to describe the process of multi-platform projects from development to launch from the following aspects.

? 【WWDC22 110345】 Securing your Mac with Endpoint Security

This article will primarily focus on the new features of the Mac’s EndPoint Security feature. The full text is divided into 3 parts: the first part is to introduce endpoint security will replace the previous API such as kAuth. The second part is an introduction to Muting technology, including how to use the official API. The last part is about the richer endpoint security events that eslogger can provide.

? 【WWDC22 10076】 Bring your iOS apps to Mac

SwiftUI can cross the entire Apple ecosystem, and Flutter can cross most mainstream platforms. Why should I choose Mac Catalyst? If you have a set of iPad code that has been implemented based on UIKit and want to migrate to Mac, Mac Catalyst will be your best choice. This article will introduce you to several ways to migrate iOS applications to the Mac, and show the new interface in the new system.

? 【WWDC22 10007】 IAP new features

Combined with the WWDC21 IAP-related capabilities, this paper reviews the new features related to WWDC22 IAP. Although Apple has no major demolition or construction at WWDC21 this year, it has made a lot of small repairs. Apple’s additions to the basic capabilities make StoreKit 2 useful to usable. Read this article and join us as we explore strategies for optimizing StoreKit 2, the App Store Server API, and App Store Noitfications V2!

? 【WWDC22 10155】ScreenCaptureKit: A high-performance screen recording framework on MacOS

Screen recording has always been a basic capability that a desktop system needs to provide, and can be applied to many scenarios, such as desktop sharing in video conferences, live streaming of computer games, and remote desktop control. At this year’s WWDC, Apple launched a new high-performance screen recording framework ScreenCaptureKit on MacOS. ScreenCaptureKit not only simplifies development costs by providing a more understandable API, but also greatly improves the performance of screen recording for a better experience for MacOS users.

? 【WWDC22 10089】 What’s new in PDFKit

Based on the content of the two sessions of WWDC17 Introducing PDFKit on iOS and WWDC22 What’s new in PDFKit, this article introduces the introduction of PDF, the development history of Apple in PDF processing, the basic content of PDFKit and the latest features of PDFKit.

? 【WWDC22 10120】Evolve your Core Data Schema

Data migration is a topic that cannot be avoided by the database. In Core Data, lightweight migration is a compulsory course for every user. This article will introduce the features, limitations and best practices of Core Data lightweight migration from shallow to deep, as well as the considerations for migration in CloudKit.

? 【WWDC22 10077】Replacement of CAPTCHA—Private Access Credentials

Captcha technology has always been used for real traffic identification. Although it is more effective, it also brings some inconvenience to users. Therefore, some platforms try to collect user privacy information to accurately identify users. Apple, which has always focused on protecting user privacy, believes that this approach is not desirable, so Apple brings a new authentication technology: Private Access Token.

? 【WWDC22 10061】Introduce multiple windows to SwiftUI apps

This article will focus on building a multi-window SwiftUI app. Divided into 4 parts:

  1. Introduce various scene types in the SwiftUI life cycle, including several newly introduced Window and MenuBarExtra;
  2. Group these scene types together by adding auxiliary scenes;
  3. Introduce some new APIs for opening windows for specific scenes;

    4. Introduce some ways to customize the scene in the app.

Moyu Weekly

@Moyu Weekly #58 : The 58th issue of Moyu Weekly is here, let’s take a look at the summary of this issue:

  • Topic in this installment: Providing Account Deletion Option in Your App
  • This Week in Learning: How to Configure the Right ATS
  • Recommended content: New technologies and new content launched at WWDC22 (Second round)
  • Touch the fish: turn on the real fish mode, raise goldfish online; geek-style listening site, text-only music player; web design museum; Stack Overflow annual survey.

push in

The Old Driver Weekly Team has combined with the Knowledge Collection and the SwiftGG Translation Team to include a reliable internal referral position.

If you want to find a job , click here: https://www.yuque.com/iosalliance/article/bhutav

If you want to recruit , click here: https://www.yuque.com/iosalliance/article/ycyhf3

Of course, you are also welcome to pay attention to each of our weekly reports, and we will update the editorial posts at the bottom of each weekly report in a timely manner.

Follow us

We are “Old Driver Technology Weekly”, a technical public account that continues to pursue high-quality iOS content. Welcome to pay attention.

Follow Youli, pay attention to [Old Driver Technology Weekly], reply to “2021”, and receive 2017/2018/2019/2020 internal reference

Also supports RSS feeds: https://github.com/SwiftOldDriver/iOS-Weekly/releases.atom .

illustrate

? means a tool is needed, ? means editor’s recommendation

Estimated reading time: ? Read quickly (1 – 10 mins); ? Moderate (10 – 20 mins); ? Slow (20+ mins)

This article is reprinted from: https://github.com/SwiftOldDriver/iOS-Weekly/releases/tag/%23207
This site is for inclusion only, and the copyright belongs to the original author.

Leave a Comment