Last week, with the support of Nuggets, we teamed up with Knowledge Cube and SwiftGG to produce a total of 28 technical articles for WWDC 18. Hope the majority of developers forward more, don’t miss: old driver X knowledge small set xSwiftGG WWDC 18 thematic directory.
news
π FB is working on a massive refactoring of React Native, due for release this year
This is definitely good news, as React Native code collaboration has always been a sore point, and Facebook’s willingness to personally address this issue is a huge plus for RN’s ecosystem. The reason why some companies choose Weex instead of RN is that the interaction between Weex and Native is more convenient, so that they can reuse their accumulated Native code base to the maximum extent (after all, there are few new projects in the iOS industry at present, and most of them have some historical burden). If RN solves this problem, it will surely put new pressure on Weex.
The article
π π Enumerating enum cases in Swift
Swift 4.2 introduces the CaseIterable protocol. Because Enum will automatically implement the CaseIterable method, the author first introduces several application scenarios of allCases method in Enum in CaseIterable protocol, including the use of allCases method in TableView. The author then goes into detail about how to make other types implement the CaseIterable protocol. This is a very important addition to Swift 4.2, worth paying attention to!
π IOS traffic monitoring analysis
Traffic monitoring has always been an important part of APM in the early days of mobile development. But as WiFi coverage increases and data rates drop, client traffic monitoring is becoming less important. Based on the needs of its own business scenarios, Ele. me analyzed and compared the advantages and disadvantages of the major known APM traffic monitoring schemes in the circle, and finally realized its own traffic monitoring module. This article will be helpful in understanding the HTTP request flow within iOS clients.
π’ SR-7380, Ambiguous KeyPath
The writer is a former GitHub and Apple employee.
The author found a bug in Swift KeyPath during the coding process, and the process of locating and fixing the problem is very clear and worth looking at.
The compiled front end of Swfit is SwifTC (why not Clang? Refer to www.youtube.com/watch?v=Ntj.) The article has written how to add parameters to the compiler to make it print more information, how to generate AST(abstract syntax tree), semantic analysis how to do type checking, etc.
For information about the Swift compilation process, see contributing code to open source Swift
π How scary is the Fingerprinting browser mentioned in WWDC?
Fingerprinting in Web browsers refers to printing a different fingerprint for each browser using multi-dimensional information such as IP addresses, JavaScript behavior, Flash and Java plug-ins, fonts, Canvas, WebGL, etc. You change the common configuration of the browser and fingerprint doesn’t change, but you change computers, you change browsers, you get different fingerprints. Fingerprinting is a technology that uniquely identifies a browser running on an OS platform to identify user masquerading as a result of Cookie leaks, but fingerprinting is widely used to identify users on different web pages to place appropriate ads.
π§ π iOS 12: Notable UIKit Additions
Every year after WWDC, author Jordan Morgan delves into new versions of iOS and brings you new APIS from UIKit, This time it includes UIText putTraits for prompting passwords, UIGraphicsImageRenderer for image rendering, autofill captcha, notification Settings, and more that are worth your time.
πTraining a Text Classifier with Create ML and the Natural Language Framework
CreateML is a new deep learning training tool released by Apple at WWDC this year that allows developers to train their Models without much knowledge of machine learning. Mattt, the author of this paper, trained a text classification Model through CreateML in a very short time and only wrote a little code, which shows that CreateML is simple and fast in use. I’ve always thought that machine learning is going to get easier over time with tools and frameworks that can be used by a wider audience of developers. While CreateML (currently in Beta) isn’t a complete replacement for frameworks like TensorFlow, I think it’s a good start.
πMessageThrottle Performance Benchmark and Optimization
MessageThrottle is a library of OC message throttling and anti-shaking. In other words, it controls the frequency of method calls, mainly using the OC Runtime mechanism. Hook message forwarding process brings certain performance loss. By improving the storage structure and cache strategy, the performance of the library is optimized, the time of message forwarding process is reduced by 50%, the CPU time is saved by 6%, and the thread safety is strengthened. Before reading this article, if you are not familiar with the library or runtime mechanism, you are advised to take a look at the implementation details of MessageThrottle.
π’ When your CA turns against you
At present, mainstream websites basically use HTTPS, and certificates are issued by CA. There are three main types of TSL certificates, namely DV, OV and EV. EV is the most expensive. We know that CA’s always trying to steer us towards more expensive certificates, but there’s really not much difference between the three in terms of security (of course, this article isn’t about EV, it’s about what happens after the certificate is released). A CA can not only issue certificates, but also revoke certificates. In this article, Ian Carroll registered a company called Stripe Inc. in the United States as a practical case. To discuss whether THE power of CA is too large and whether there is abuse of power.
π WWDC 2018 stories
Bang attended WWDC 2018, not only mentioned WWDC Session, which you have seen a lot of articles about in recent weeks, but also mentioned WWDC Lab, which is a live discussion Session with Apple developers and developers all over the world. Bang, the author of JSPatch, also asked Apple about its official stance on such tools, hot fixes, and hot updates, and apple’s response was also interesting.
π The root cause of modern JS frameworks
The author focuses on the pain points of traditional front-end development from the perspective of data state and UI response, hence the modern JS frameworks such as React, Angular or Vue. As mentioned in the article, the basic strategy of such frameworks is to operate rendering efficiently through the virtual DOM and to use observer listeners to respond instantly to state changes. The author uses native JS and virtual DOM to realize the basic flow of a responsive UI framework.
π Harnessing Code Generation to Increase Reliability & Productivity on iOS at Uber
The focus of this article is on improving reliability and productivity on Uber iOS by leveraging automatic code generation capabilities. This paper mainly introduces how to improve the reliability and productivity of code by using Resource Accessors and Mocks.
π’ Modular iOS
The following four articles are a series of articles describing how to modular unbundle our project
-
Modular iOS Part 1: Strangling the Monolith
The first part describes the benefits of project modularity and the ability to divide a large project into Main App, Feature, Shared, Common, etc.
-
Modular iOS Part 2: Splitting A Workspace into Modules
The second part mainly describes how to break a project into a module of the actual practice.
-
Modular iOS Part 3: Configuration & Testing of Modules
The third part is mainly about modular testing. CocoaPods is used to configure the dependency of different modules, and the test module is taken as a module of the main project, and multiple modules are supported to reuse a test logic.
-
Modular iOS Part 4: Sharing Configuration Between Modules
The last section describes how to solve the problem of passing configuration information between different modules. The author uses a protocol-oriented approach to solve the problem of passing the initial configuration information between different modules.
These four articles are small, but each provides a good idea of the problems that arise in modularity, and are worth reading for those of you who are writing modularity.
Swift 4.2 features Dynamic Member Lookup
Dynamic Member Lookup, newly added to Swift 4.2, has a great impact on the future dynamic features of Swift. It also enhances interaction with dynamic languages such as Python and JS. Is a new feature to watch.
design
Design+Code Great iOS Design and development tutorials for one year subscription
The Design+Code series will teach you how to Design and develop a complete iOS app from 0 to 1. Include Sketch, Swift 4, Xcode 9, CocoaPods, Core Data, Realm, Animations, SpriteKit, TestFlight, Publish your App to the App Store, and more. There are also more than 40 hours of video lessons and 10GB of downloadable resource files.
tool
Mac Bootstrap
This is a quick configuration development environment script for the new Mac, which integrates some common configurations. All configurations and functions are documented, which is both an instruction manual and an instructional guide.
Although environment configuration is a very subjective matter, and different people have different aesthetics and needs, it is also possible to read the documentation, learn some interesting uses, see how it is implemented, and then copy some of the functions and improve your own productivity.
Sonar
Facebook is an extensible mobile app debugging tool that supports both iOS and Android, allowing you to visually control your apps from the desktop. Sonar based on plug-in design, has built Logs, Layout Inspector, Network. Of course, you can also write plug-ins for it to meet your own business needs. However, Swift is not currently supported, so those of you who are Swift users in your project will have to wait.
Online AI generates a LOGO
I believe that every developer can make their own app but will not make their own Logo dilemma, also do not want to fight with unreliable paid designers, so quickly let this AI tool to help you. Type in the name, tagline, keyword and choose a color scheme, then wait a few seconds and you will get several designs based on your configuration, one of which will be right for you.
Audio and video
Swift Unwrapped #62: Interview with Ted Kremenek
This issue of Swift Unwrapped has an interview with Ted, head of Swift’s core team, about the Swift ABI. A large part of the interview is devoted to discussing the concept of ABI stability and its impact. For example, the concept and difference of ABI/API/Module Stability, the interaction between Swift Runtime and system, and the influence of Swift Stability on operating system SDK development.
push
Bytes to beatBeijing iOS team continues to recruit people
It’s a very young startup, full of energy and passion, and only hires good people to do challenging things together. You can send your resume and desired position to my email address [email protected], or add my wechat jingmu1994 to learn more information about the company. If necessary, I can directly help you communicate with the technical Leader.
Shenzhen Toutiao R & D center sincerely invites all iOS masters to work together to please their own projects
If you want to know more information about Shenzhen toutiao, you can add small T wechat: Tomtan, to discuss technology and feelings can oh ~~~~
Hangzhou/Guangzhou/Shenzhen Qizhi Technology recruitment iOS, front-end
Since 2016, Qizhi Technology has entered the field of Internet of Things and artificial intelligence through collaborative workflow Mesh of industrial UAV, and successfully provided UAV solutions for real estate, construction, surveying and mapping, power inspection and other industries. Mesh not only uses YARN, rollup, VUE and other technology stacks, but also uses Couchbase to design multi-terminal data synchronization schemes and conducts in-depth research on React Native. You can also get to know zhuo, who has no story, by private message on weibo.
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, @Kyo
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)