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.

news

🌟 WWDC20 will be held online

@Herringson: Due to the COVID-19 pandemic, Apple has announced that the annual WWDC will be held online. The exact date and format is yet to be determined, but it will be held in June.

The novice recommended

🌟 🐕 UIAlertController with Function Builders

AidenRao: Function Builder is a new feature in Swift 5.1 that builds its own DSL syntax on top of Swift. This article is based on Function Builder to create a simple and readable UIAlertController API, including basic Function Builder practices, conditional syntax, and by creating a helper Function, Implement the for loop in the Function Builder.

The article

🌟 Breaking barriers, How does Flutter and the Web ecosystem connect?

CrazyCoderShi: Flutter has become synonymous with cross-end development in 2019. The official Team’s announcement of Flutter Web in the second half of this year has taken the momentum even further, giving everyone a unified vision. This article is an in-depth analysis of Flutter docking to the Web by hand cleaning technology. The final conclusion is described from three aspects: What, why and how? Don’t dock! Don’t dock!

🌟 🐕 Fluttify

Series of articles:

  • The native SDK -> Dart interface generation engine is required for Flutter plugin developmentFluttifyintroduce
  • How to develop a new Flutter plugin using Fluttify
  • Fluttify exports the Flutter plugin
  • Introduction to the Fluttify compiler

Redpaper: Fluttify is a tool that generates the Dart interface for the native SDK. The tool solves some pain points such as type safety and tedious coding in the process of plug-in development. The main principle is that the syntax parsing generator ANTLR generates a tree parser to parse the JSON format intermediate file, and then generates the Dart interface and target project using the intermediate file and the project template.

Recommended if you want to learn more about ANTRL: JSPatch Convertor implementation principles and from ANTLR bullshit to a little compilation principles

Recommended by: @yohom

🐎 Testing Push Notification on iOS Simulator from Xcode 11.4 Beta

J_Knight_ : Support for push in iOS emulator since Xcode’s 11.4 beta. The author introduces two ways to implement push in the iOS emulator:

  1. Using the command line:xcrun simctl push booted test_push_notification.apns
  2. Push is implemented by dragging and dropping apNS files to the emulator.

Through the above two ways, developers do not need to use the real machine, nor do they need to push certificates, but do not need to use APNS service to achieve push, very convenient.

🐎 Flight rules for Git

JimQ: This is a Git first aid guide called “flight rules” for what to do if something goes wrong. Unlike the official guide, which mainly lists functions, this guide takes frequently asked questions as subheadings, and then gives specific steps to solve the problem. It is very suitable for treating and treating the disease, and has Chinese version.

🐕 Introducing Swift Crypto

EyreFree: Swift Crypto is a new Swift system library that encapsulates the API of Apple CryptoKit nicely. The new library provides a cross-platform solution that allows Swift developers to access these apis to implement a common set of encryption operations, regardless of platform they are deployed on. Simply import Crypto to get all the CryptoKit apis, which is useful when writing cross-platform encryption code. This article has carried on the brief introduction to the library, interested friends can understand.

🚧 🐎 The Nested Closure Trap

Satanwoo: Block/Closure loop reference is something you’ve already experienced in your daily development. The authors start with Swift nested closures and mention memory leak scenarios that can occur in multiple layers of nesting. Interested friends can be used as a supplement to knowledge loopholes in the article, always prompt yourself.

🐕 Design pattern (Swift 5.0 implementation)

The comprehensive Swift 5.0 sample implementation of design patterns combines conceptual theory with code examples to better understand the practical application of design patterns. The source project is in English.

🐕 Improve the Delegate with Protocol and callAsFunction

Old donkey: New book from Meow God. This post is also a follow-up to a previous little column by Meow God.

This article focuses on improving the previous Delegate Pattern scheme with the recent addition of features in Swift 5.2. If you are interested, please read the old and new articles together.

tool

CocoaHub

Xuyanlan: This is a great iOS Feed App, and you don’t have to go through the wall to see the Feed introduction.

code

🐕 SwiftCurrency: Type-safety and algorithms for working with money in Swift.

Swift Currency is a library of currencies that express ISO 4217 in Swift. This library is type-safe and supports literal expression, literal insertion and mathematical expression operations on currency.

🐕 Time: Building a better date/time library for Swift

Lianshu: Students who have done time management, calendar and other apps generally agree that the date-related apis provided by the system are not very friendly, especially when it comes to time zones, they are often very easy to cheat. Time is a pure Swift implementation date API set that provides SwiftPM access. Provides a “human” way to manipulate the date and time, for example, can simply generate clock objects for different time zones, and can easily get the year, month, day, hour, minute, second and other information from the clock object. You don’t have to write a lot of Boilerplate code. Students with relevant needs can have a try.

YMHTTP

YMHTTP is an IO multiplexing HTTP framework for iOS platform based on Libcurl. Its API design and behavior are highly consistent with NSURLSession. Because YMHTTP is packaged based on libcurl, it is highly customizable, and the current version of NSURLSession expands DNS capabilities (including SNI scenarios) while maintaining a high degree of API consistency.

Swift Argument Parser

Xiaofei86: Apple recently open-source ArgumentParser implemented by Swift. It is used to parse command line parameters, intuitive, easy to use, concise, safe characteristics, is a very good parser. ArgumentParser currently has 1K stars. Apple also recommends two examples of ArgumentParser used in the Swift project tool:

  1. Indexstore-db: A simple utility with two commands.
  2. Swift-format: Uses advanced features such as custom option values and hidden flags.

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 every issue will be released on the official account (OldDriverWeekly), welcome to follow.

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

instructions

🚧 indicates the need to climb the wall, and 🌟 indicates the editor’s recommendation

Estimated reading time: 🐎 in a short time (1-10 mins); 🐕 medium (10-20 mins); 🐢 slow (20+ mins)