Welcome @Fang Qiulong to join the editorial team of the weekly newspaper.

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

Swift for TensorFlow is released

The TensorFlow community announced at the TensorFlow Dev Summit 2018 that it would open source the Swift for TensorFlow project, which has finally been officially released. Here is the source code and sample Models.

The article

🐢 🌟 Content page technology exploration of iOS news App

This paper explores and analyzes the technical implementation of content page of news App. And will result in three frameworks: HybridPageKit, ReusableNestingScrollview and WKWebViewExtension.

The article not only shows us how to construct the Hybrid technology of news in a strategic way from the aspects of technical scheme selection, componentized architecture and loading speed optimization, but also opens up our imagination: how to play Hybrid is interesting. Instead of simply embedding a WebView, using JSBridge is a Hybrid. Instead, we should learn from each other and make WebView and Native technology work together to construct a better application experience and create our own small program framework and capabilities.

🐢 🌟 🚧 Code Review Best Practices

The whole process of code review was introduced in detail.

  • Why is code review needed? What is it? When is code review needed
  • What preparations need to be made before code review
  • How to perform code Review
  • Some examples of code Review

🐕 Securing iOS Certificates using Modern Cryptography

The topic of this article is protecting iOS certificates using modern encryption techniques. In our usual tests, we need the development certificate provided by Apple to submit our application to AppStore. Read this article to learn how to encrypt iOS development certificates using openSSL.

🐕 Design Patterns by Tutorials: MVVM

As the most effective solution to MVC(Massive View Controller), MVVM has become one of the must-learn patterns for iOS programmers. Ray put aside the boring lecture of traditional design mode teaching in this article, but first use MVVM by hand to achieve a small Demo, easy to understand. It’s worth noting that this is a rare pure MVVM tutorial, unlike most MVVM tutorials, which tend to involve reactive and data binding things for new players.

🐕 Blurring the Lines Between MVVM and VIPER

VIPER is another popular design pattern in mobile development. At first glance, the division of labor of various modules in VIPER always feels somewhat similar to MVVM. By carefully analyzing the responsibility division of each component in MVVM and VIPER, this article believes that MVVM is essentially VIPER with only V, I and E. As the business gets more complex, VIPER can derive Presenter and Router to ensure responsibility division, so a dynamically tuned VIPER pattern should be a better practice than simple MVVM.

The content of this paper is interesting, but its ideas and argumentation methods are worth learning from.

🐎 Why you should not name your @IBActions didTapButton

We sometimes see @ibAction methods named in code as types like didTapCancelButton, didTapSaveButton, or didHitSend, cancelButtonTapped. But I think this is a mistake, first because target-action is command mode rather than delegate mode and should be named with a name like undo, deleteBackward, lowercaseWord, or scrollToEndOfDocument. Second, we don’t know who the sender is at compile time, so we shouldn’t specify the type of sender in the method name.

🐢 SceneKit and ARKit topics

SceneKit is a series of 26 articles that I did while studying Ray Wenderlich’s SceneKit tutorial 3D Apple Games by Tutorials. ARKit feature articles are in the works, including tutorials on how to make AR Stack-like games, an interpretation of the official AR Demo, and an introduction to ARKit 1.5’s new image recognition features.

🐎 Custom Keyboard Extensions: Getting Started

Custom keyboard extension tutorial, from 0 to 1 explains how to create a Morse code keyboard, including custom keyboard interface, adaptive keyboard color scheme, automatic correction and suggestions, request permissions and more.

🐢 A Better MVC

A lot of iOS developers don’t like MVC, because MVC in iOS tends to violate encapsulation principles and tend to form a bloated ViewController. The problem of encapsulation principle can be solved by introducing a Coordinator, where all child view controllers or views are only responsible for display, and how to display them is delegated to the Coordinator. 1 ViewController ≠ 1 screen of Content, a page can be divided into sub-viewControllers to be responsible for the display of page elements. The primary ViewController only exists as a coordinator.

The author of this article recently participated in App Builders 2018 and shared A video on this topic, which you can watch on YouTube: Dave DeLong – A Better MVC

🐕 Hardening and protection principles of iOS Apps

A good article from netease Hangyan in-depth analysis of iOS App reinforcement protection principle. Starting from how to crack App, the paper expounds the reinforcement principle of App from the following four major points:

  • String obfuscation
  • Class and method names are confused
  • Program structure confuses encryption
  • Anti-debugging, anti-injection and other active protection strategies

🐢 🌟 🚧 Playground driven development in Swift

This article describes in detail how to build an App development environment based on Playground. For developers who often develop UI interfaces, using this set of processes introduced by the author can greatly improve their development efficiency.

🐎 Codable vs. ObjectMapper

Codable is easier to use than ObjectMapper. ObjectMapper offers more advanced features in Codable, data conversion, validation, and more readable error messages. The author also expanded Codable, the major features that implement ObjectMapper, which reminded me of another project I saw earlier: AnyCodable. Consider one for those who want to expand Codable.

🐎 Inspect your app’s Documents directory in the Files.app

Little skill, if we are in the Info. Set up in the plist LSSupportsOpeningDocumentsInPlace = YES and UIFileSharingEnabled = YES, You can view the App’s Documents directory from Apple’s official file manager Files. See Apple’s official documentation for more information.

🐕 Design and implementation of netease HubbleData unburied SDK in iOS terminal

This is a well worth reading article, moving from code burial points to visual burial points to unburial points. What is more valuable is that it introduces in detail how to use AOP to realize the whole idea of no buried point, and a series of problems to solve. We have both ideas and methods.

🐢 Reimplementation of Implicitly Unwrapped Optionals

To enhance the consistency of type check, Swift, the next version of some operating plan for ImplicitlyUnwrappedOptional type related to implementation, in fact, in the end all the types of operations are to remove ImplicitlyUnwrappedOptional The Optional value type is Optional

! Is just a operator, does not contain ImplicitlyUnwrappedOptional this special type of meaning. However, after a look at all the changes, it should be possible to use the code migrator to fix them, so we don’t have to worry about the next version of the code needs to make big changes.

🐕 Swift, Plist and Two Smoking Scripts

Have you ever thought about developing the entire project with Swift from the front end to the back end? Even scripts? This article shows you how to use Swift to develop a Build Phase script in 15 minutes that helps you check your project setup. It’s worth a look.

tool

What’s New in Swift Ultimate edition

Someone created a website for Swift that details what’s new for each version, and you can select a specific version range and see what’s new in between.

Audio and video

🚧 App Builders 2018

The App Builders Conference is a sharing event for Android and iOS mobile developers from across Europe. The conference was held in Switzerland. Currently, there are 26 live videos of the conference on YouTube, with each video taking about 30 minutes on average. The content shared covers everything from Google AR to iOS CoreML, from Swift to App architecture.

The article “A Better MVC” included in this weekly was also shared at the meeting.

Pay attention to our

We have opened an official account, which will push messages when each issue is released. Welcome to follow it.

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

The current editor

@No story zhuo, @Siniang, @Mmoaay, @Xiangerxiansen, @Eyrefree, @DamonWong, @Msg, @Zhang Jiafu, @Aidenrao, @Parsifal, @Ye Gucheng, @Aaaron7, @Fang Qiulong

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)