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.

The novice recommended

Flutter Douban client

@bangben: This open source library has a certain degree of restoration to douban client, but there are a lot of unimplemented parts. After all, it is just for learning purposes. There is no more complex Rx or Redux in it, so it is very suitable for beginners to start on the road first. Those of you studying Flutter can take a look.

PS: The project needs to restore the Podfile to its original state to run.

The article

🌟 🐕 The decade of mobile development

Lianshu: Ten years have passed since the birth of mobile development. InfoQ asked Zang Chengwei of Meituan to review the evolution of mobile development technology over the past decade. As a veteran of mobile development, I have been fortunate enough to experience most of these waves. Most of them are cross-platform and dynamic. In the final analysis, the upgrade of technology system is determined by business form. This paper gives a comprehensive analysis of cross-platform technologies in different stages, including H5 Hybrid, RN/Weex, and Flutter/ apap. The article itself does not have many technical points, but it is very suitable for thinking about how technology and business affect each other. When reading the article, ask Why more, I believe there will be a lot of harvest.

🌟 🐕 🚧 Reducing FOOMs in the Facebook iOS app

Zvving: A classic Facebook post from 2015, offering some ideas on how to optimize the OOM issue:

  • Distinguish between FOOM and BOOM by enumerating all known paths where the App was terminated
  • Analyze memory usage and migrate from UIWebView to WKWebView to reduce memory usage
  • Avoid repeat memory requisition and release and reduce up to 30% OOM Crashes
  • Perfect infrastructure: Track the instance count and memory footprint of each class in your App

Related reading: iOS wechat memory monitoring

🌟 🐕 Research on iOS App security hardening scheme

Red paper: iOS is known for its security, but when it comes to jailbreaking, our App is almost running naked. In this paper, the author sorted out the following contents:

  1. Existing reinforcement schemes on the market show the core function points of each company in the form of pictures.
  2. On the existing reinforcement scheme, a regular, overall scheme combing
    1. Data protection: Includes network data, IPA resource data, sandbox data, and Keychain data
    2. Confusion protection: symbol confusion, string confusion, instruction confusion in subdivision
    3. Anti-debug protection: The subdivision scheme has two protection policies, ptrace and SYsctl, (if you are interested, please refer to the anti-debug & anti-debug things)
    4. Anomaly detection: Dynamic monitoring of App anomaly information, such as injection, tampering code, re-signature and other attacks

There is no absolute security in the world. For more knowledge on security, recommend Teacher Sha’s book “iOS Application Reverse Engineering” and Nianxi’s security Attack and Defense series.

🌟 🐕 🚧 Why is Reactive Programming needed?

Jason: I believe that many students have more or less tried ReactiveCocoa or RxSwift and enjoyed the joy of chain call, but not everyone has thought deeply about the essence of Reactive. Despite the Rx library itself, this paper also does not have to repeat to introduce how to use the Rx, but from some daily problems in the development process, discusses the origin of the Reactive thoughts, it solved about data streams, event propagation of a series of problems, and the observer pattern and understanding by the author in a few years the use of some deeper thinking.

🐕 Architecturing an app with functional reactive programming

Anotheren: This article starts with the familiar callback hell and explains why you should use a reactive framework for programming. Taking ReactiveX framework as an example, the idea and application of this kind of framework in Swift/Kotlin are presented synchronically.

🚧 🐕 Optional, throws, Result, and async/await

@xiaofei86: Before Swift 5, we handled errors with optional and throws. In Swift 5, the Result type is added to the standard library, although it doesn’t have the async/await feature we were hoping for. This article compares these Swift error handling methods to give you a better understanding of the evolution of Swift error handling.

tool

Xcode10 New Build System And CocoaPods

@Herringson: After Xcode 10 is released, you may find that if you modify the source code of CocoaPods dependencies, you will have to clean the entire project and recompile it. This is because Xcode 10 uses the New Build System by default. This article describes two solutions.

Marzipanify

@ old peak: At WWDC 2018, Apple shared a tool called Sneak Peak for porting iOS apps to the Mac and announced that it would be open to third-party developers in 2019, Marzipanify is a gadget created by Steven Troughton-Smith to give developers an early taste of the iOS APP to the Mac APP.

code

Learn how to gracefully use the ORM database in the Flutter project

@ CrazyCoderShi: Perhaps the biggest problem with Flutter development is the use of databases. Flutter now only provides SQllite. This is the least efficient way to use a database because of the complexity of creating tables, indexes, transation, and db thread control. Going back to bare WRITING SQL was a significant cost to most teams.

This article will describe an elegant way to use the ORM database in a Flutter project. The ORM framework used in this article is one of the features contained in the Flutter_luakit_plugin for Flutter. This paper only introduces the use and implementation principle of this ORM framework in detail. And gives a detailed demo.

Open source library

NSFWDetector

CoreML NSFW (Pornographic) content detector. The NSFWDetector is a small (17 kB) CoreML model trained by CreateML to detect nudity in images.

InAppViewDebugger

@redpaper: UIView Debugger is similar to the integrated components in Reveal and Xcode. It is convenient to view the Debugger directly within the APP. However, it is only in version 1.0 and its function is limited to view level, so it is expected to have more perfect functions.

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)