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.

WWDC20

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

  • Swift is insecure
  • Security management pointer in Swift
  • Explore the modern mobile web

news

App Review process updates

Anotheren: Apple has officially released the improvements to its app review process announced at WWDC20. For apps already published on the App Store, except for apps with legal issues, there will no longer be a delay in bug fixes due to violations of the guidelines. Now, in addition to appealing a decision on whether an application violates the guidelines, you can suggest changes to the guidelines. Apple encourages you to submit suggestions for the App Store and apple development platform.

The article

🌟 πŸ• Cloud Music React Native system construction and development

@Looping: This paper introduces that the netease Cloud Music team chose to rebuild the entire RN technical system as a long-term technical evolution scheme when optimizing the arrival rate of member cash registers. They refactored from automated deployment, offline preloading, and RN framework upgrades to achieve a major breakthrough, with an arrival rate of 99%. They’re going to build infrastructure around performance, efficiency, and monitoring. If you are interested in building a cross-end development system, or in maintaining infrastructure projects that have fallen into disrepair, you will find some ideas for reference after reading this article carefully.

🌟 πŸ• 3. CocoaPods parses the -claide command

@ JonyFang: This article introduces CocoaPods’ CLAide command line parser, which is responsible for parsing the Pods commands we use. For example, pod update Alamofire –no-repo-update — exclude-Pods =SwiftyJSON command execution parsing function of CLAide. The author mainly describes several points:

  • Introduce the Open Classes feature in Ruby. Note that Open Classes can be accessed across files and modules.
  • Overview of CLAide functionality and its directory structure
  • Describes the basic abstract class Command for building a Command line interface. The commands we add all need to inherit from Command, and the different configurations are obtainedabstract command ε’Œ normal command. There are multiple POD commandsPod::Command < CLAide::CommandSubclasses ofabstract commandIn this way, multi-level nested commands can be achieved.
  • And then topod update Alamofire --no-repo-update --exclude-pods=SwiftyJSONShows how ARGV in CLAide parses arguments passed in from the command line.
  • I then describe the execution flow of the PluginManager, Command’s management class. It will run the command the first timeself.runAnd only the commands in the files identified by the specified prefix in the command class are loaded.
  • Finally, implement an πŸ₯€ vending machine yourself by creating a CLAide command in conjunction with the class responsibilities and execution process described earlier. (Demo source provided by the author)

πŸ• Abusing iOS’ Screenshot Cropping Mechanism

Laolu: The screenshot tool of iOS 14 added a very useful little function: when the tool selects the capture range, it automatically absorbs the edge of the element on the screen, which is convenient to make more accurate capture. There was a lot of speculation on the Internet about how this function was implemented, and the author of this paper did an in-depth study and came to a conclusion. For those of you who are curious about how this works, take a look.

πŸ• Handling view controllers that have custom initializers

@Zhang Jiafu: If we use dependency Injection mode in development to provide external dependencies for object initialization, we usually want to replace the built-in initialization methods of UIKit classes such as UIViewController. This article shows you how to handle view Controllers that use custom initialization methods. Including how to realize the init (coder:) method, used in iOS 13 UIStoryboard instantiateViewController method, And using storyboard segues via @ibSegueAction method to avoid manually creating view Controllers and so on to be compatible with storyboards.

πŸ• What do you learn about AR? Reflection and prospect of my AR road

@Lianshu: It is not difficult to find from WWDC in recent years that AR and ML have always been the next generation of technology direction that Apple insists on. From the perspective of appearance, AR may be more scientific and technological. Behind the cool effects, AR technology includes a very wide technology stack. This article can be a good literacy, introduces the AR technology system of several major: SLAM, scene perception, 3 d rendering, collaboration, sharing, and recommends a series of learning materials, but the article content to stay in a more shallow level, suit to interested in AR don’t know where to start small white read, look for initial feeling.

🐎 Multilevel MVC and project best practices

@j_knight_ : To solve the problem of dependencies between UIViewControllers, the author introduces a new MVC scheme: a new set of MVC relationships are introduced on TOP of UIViewController: Integrate Controller, View with Presenter as a container; A View communicates with a Presenter through a Coordinator. A higher-level Presenter holds a lower-level Presenter, and a lower-level Presenter communicates with a higher-level Presenter through a Coordinator. The structure is as follows:

RootPresenter: UITabBarController β”œ ─ HomePresenter β”œ ─ MarketsPresenter β”œ ─ TradeNavigationPresenter: UINavigationController β”” ─ WalletsPresenterCopy the code

The advantage of using this scheme is the ability to constantly adjust with the growth of the business, interested readers can read the original link.

🐎 Turning the ChibiStudio canvas into an App Clip for iOS 14

Damien: Apple’s AppClips on WWDC20 has attracted the attention of many developers with its smaller size and the same user experience as the original. The author of this article also tried his App named ChibiStudio on AppClips. This article will introduce the steps and considerations of App migration to AppClips in depth. Read it for those of you who are adapting AppClips.

🐒 Have the Objective-C library support Swift Package Manager

Swift Package Manager has been released for four years, but its penetration rate is lower than CocoaPods, but this year WWDC has the most updated support for binary distribution and resource files. The author of this article, @Junappreciation, combined with his actual project experience, shares his experience of SwiftPM supported by objective-C source library and packaged binary closed source XCFramework. Readers who are interested in SwiftPM can read it.

🐒 SF Symbols Changes in iOS 14

SF Symbols is a set of vector graphics introduced by Apple at WWDC 2019. In iOS 14, Apple has updated SF Symbols extensively:

  • Nearly 900 new symbols have been added (some are restricted).
  • Sixty symbols in iOS 13 have been renamed.
  • 158 symbols have multicolor support.
  • Localization support: added many right – to – left symbols.
  • Bug fix: Fixed some images that did not match their names.

tool

YYDebugDatabase

YYDebugDatabase is a remote debugging database tool from Y500. It can debug the application database remotely through the viewer. It allows us to view and edit the database directly in the browser, including querying, updating, inserting and deleting data directly. We can also download the entire database and debug it on the Mac. Due to its development based on FMDB, it supports limited database formats, and can only debug databases in SQLite format.

Recommended by: Y500

code

FlutterUnit

FlutterUnit is an open source project for Flutter that integrates around 260 components of Flutter. It is suitable for beginners to learn about Flutter to become familiar with the various components of Flutter.

🐎 Pigeon

Zvving: Asynchronous loading of server data for SwiftUI, customizable cache, serialization, paging, etc.

React Query: Declarative syntax is used in the design of React Query.

🐎 Parma

EyreFree: a component that can be used to display Markdown in swiftui-built applications. It supports most of the commonly used Markdown styles and can be integrated with SPM. In continuous development, interested students can also try to contribute code.

push

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.

Pay attention to our

We have opened an official account, and the official account (LSJCoding) will push a message when each issue is released, welcome your attention.

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

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)