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

Apple hosts an hour of programming

From December 1 to 14, Apple will host an hour of Code at its Apple Stores across the country, and registration is now open. You’ll have the opportunity to start with programming basics, write code in Swift, and program robots. Maybe this one-hour lesson will kick off your lifelong love of programming.

App Store Connect Holiday Schedule

App Store reviews will be closed from December 23 to 27 due to the Christmas holiday.

The article

🐕 Animations are assets: using Core Animation archives on iOS

In the process of working backwards, the authors discovered that Animations can also be archived as a resource, and an APP that uses this technology was launched in 2016. Is, in short, the Core Animation to add the Animation layer using NSKeyedArchiver/NSKeyedUnarchiver archive, then the APP need Animation to load, this paper with the Demo.

  • useKite softwareFor convenient animation production, and exportCAARFile (can also code their ownarchiverExport).
  • Because the exported file is oneCoreAnimation layer tree, you can achieve color change, deformation and so onCoreAnimation layerThe animation effect.
  • CAARFiles stand alone, which means you can put themAsset Catalog.BundleOr even server delivery.
  • No need to rely on another third party animation framework.

Extended reading:

  • Kite Compositor: Prototype new toys

🐢 iOS 12 Password Tools: Improving User Security and Experience

In this tutorial, you will use these iOS 12 security tools to enable your users to:

  • Share and synchronize passwords between your website and your application.
  • Save and update the iOS password.
  • Automatically generate secure passwords.
  • Access authenticated security codes sent via SMS without leaving the application.

🐕 Extending optionals in Swift

The Optional values in Swift actually define an Optional

enumeration, so we can extend the enumeration to allow us to handle the Optional values in a better way.

We can easily convert the missing value into an error by adding an extension method to the enumeration that throws an error when the value is nil, plugging the method directly to the end of the call.

Of course, you can be more imaginative and add extensions that encapsulate the logic of value determination code, type matching code, and so on, resulting in a better, easier to read call chain.

🐎 When to use UserDefaults, Keychain, or Core Data

This paper summarizes the usage scenarios of several data storage methods commonly used in our development process, as well as their usage methods and attention points. Are relatively elementary knowledge, but the author wrote very detailed, summary is also very in place.

  • UserDefaults

    Used to store small amounts of insensitive data, such as user Settings that need to be persisted, game scores, song names played, and so on.

  • Keychain

    Used to store relatively sensitive small amounts of data, such as user passwords, in-app purchase status, token keys, etc.

  • Core Data

    Used to store high-volume lists, relational data, and data that needs to be queried and filtered, such as Todo lists, article comments, and so on.

🐢 A Comparison of Swift and Kotlin Languages

Although Swift and Kotlin share a lot of similarities in syntax, there are still many core feature differences. This article focuses on the similarities and differences between Swift and Kotlin.

The similarities and differences of attributes, data structures, methods, closures, optional types, flow control, classes, extensions, protocols, functional syntax and other important language features are compared in detail from the code style and syntax level. Many other articles comparing Swift and Kotlin are also recommended.

🐢 Teach you to remove watermarks for the enterprise wechat Mac client

At present, many companies use the enterprise wechat as an internal chat tool, since it is enterprise level, it is inevitable that the interface will have a watermark, which can make the company’s internal information is spread out by the staff screenshots can be effective traceability and so on.

There are two kinds of watermarking, one is synthesized in the client, the other is the picture sent by the server with watermarking. The former is removed by decompilating the client, while the latter is more difficult and can only be done with graphics technology. Enterprise wechat Mac client watermarking belongs to the former.

Therefore, the author of this paper attempts to decompilate the means to successfully remove the watermark. However, this article is more suitable as a decompression of actual combat teaching article to watch, on the one hand, the screenshot company’s information dissemination ability is not good, on the other hand, can not ensure that the wechat enterprise client no dark watermark.

🐕 Evaluating SwiftSyntax for use in SwiftLint

Previously SwiftLint packaged an API based on SourceKit to handle syntax rules. Now when SwiftSyntax came out, it was intended to simplify the previous syntax rules, but it turned out to be less efficient. SwiftSyntax opens a new instance of the Swift compiler for every file parse, which slows down the overall speed.

🐕 The App Store review black box — It’s not nearly as evil as you think

The author has 15 apps on the App Store and hundreds of reviews. In this article, the author shares his understanding of the App Store. This includes the reasons why the App Store uses black box reviews, why it is difficult to get clear answers, the situation of double standards, and some suggestions for App Store reviews.

tool

ReadyForBAT – iOS Mind Map for interview Preparation

The author made a summary by using mind map after learning the MOOC iOS interview practice project. This map covers a wide range, you can give job-hopping or job-hopping preparation for the New Year colleagues as a reference, a good comb through their knowledge system.

Komondor – Git Hooks for Swift projects

Komondor is a tool that helps simplify Git Hook setup. It relies on Swift Package Manager to run, just add the dependency to package. Swift and specify the Hook like this:

import PackageConfig

let config = PackageConfig([
    "komondor": [
        "pre-push": "swift test"."pre-commit": [
            "swift test"."swift run swiftFormat ."."swift run swiftlint autocorrect --path Sources/"."git add .",]]])Copy the code

code

appstoreconnect-swift-sdk

Last month, Apple finally opened up the App Store Connect API mentioned in WWDC 2018 to developers. This is an SDK written on Swift that makes it easy for developers to use these interfaces that Apple has opened up.

Audio and video

Chat ggtalk | Swift these four years (in)

Swift has been around for four years since it was first launched. In the past four years, the language itself has undergone a lot of development and changes, while the domestic iOS development industry and the life and work of Swift developers have also undergone a lot of changes. From the golden age of 14,15, to the ‘iOS no one wants it’ of 16, to the ‘iOS no one wants it again’ of 18, Swift 5.0 finally put ABI stability first this year, which should be a significant milestone for Swift. At this point, GGTalk invited a few Swift programmers to chat about the four years of Swift. You can listen to it when you are free. I believe you, who also write Swift, will resonate.

push

  • Beijing – Baidu web disk continues to recruit iOS development: social recruitment, fresh year, internship can be. The project was technically challenging and the team’s technical atmosphere was excellent. Sincerely hope that all the gods come to learn, but also welcome a good computer foundation to learn together. Resume email [email protected], temporarily also welcome micro blog private message @xiaofei 86 chat ~

  • Beijing – Ant Financial wants iOS/ Android/front-end development: responsible for alipay membership and account business line, located in Beijing International Trade, 100 meters from the exit of Jintai Xizhao subway station. Interested students welcome to send your resume to: [email protected]/[email protected] (the same mailbox) or micro blog private message @ Tu Fan er _ MSG to understand the situation.

  • Shanghai Jike: if you know a smart, hardworking, ambitious and ambitious engineer, come and join us! Any references or resumes can be sent directly to Jason (Immediate iOS Leader) at [email protected] or @jasonyuh on Twitter.

  • 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. If you are interested, you can find out about it via private message @Zhuo, who has no story.

  • Shenzhen Toutiao R & D center sincerely invites all iOS masters to do pleasing projects together: If you want to know more information about Shenzhen Toutiao, you can add small T wechat: Tomtan, to discuss technology and feelings can oh ~~~~

  • Beijing Bytedance iOS team continues to recruit: you can send your resume to [email protected], or add me (@aidenrao) on wechat Jingmu1994 to learn more information about the company and the position.

  • Beijing Baidu Education Business Division recruiting iOS development: Baidu Education Business Division, location: Beijing West Erqi. There are baidu Reading, Baidu Library, Baidu Listening and other App products under the department. The team has a strong technical atmosphere. If you are interested, please send your resume to my email: [email protected].

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

@Siniang, @Xiangerxiansen, @DamonWong, @Msg, @Zhang Jiafu, @Aidenrao, @Parsifal, @Aaaron7, @Fang Qiulong, @Kyo, @TOM510230, @Anotheren, @Shuishui, @Looping, @lao Lao Lao Lao Donkey, @Xiaofei 86, @Bangben, @red paper, @smiling and drinking arsenic, @Jimq

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)