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

GitHub announced that creating private repositories is free and unlimited

Microsoft acquired GitHub in June, and six months later, it’s bringing the first good news for developers: private repositories are free and unlimited. However, it is worth mentioning that private warehouses currently support a maximum of 3 collaborators, and if more than 3, you still need to purchase a paid service.

GitHub also updated this week a small feature called status management for personal pages. We can set our status on our home page, including an emoji and a description.

Recommended by: Tyrad

The History of Everything — Flutter Demo app now open source

At The Flutter Live event earlier this month, The Flutter team showed off their app called The History of Everything, which showcased The beautiful interface and performance of Flutter. The app’s source code is now open source on GitHub. This app not only highlights the power of Flutter, but also shows how to recreate the designer’s design in high fidelity and maintain the original app experience. It builds a nice timeline that you can slide up and down and scale at will, and historical events disappear or appear as you scale.

Their summary of 2018

Two weeks have passed since 2019, and I believe you have made your own summations about 2018. This issue also brings you a friend’s year-end summary, hoping to help you. The previous 2018 summary can be referred to issues 50 and 51.

  • 2018 Year-end Summary – Tinker (iOS Developer)

The article

🌟 🐒 It Looks Like You Are Trying to Use a Framework

Frameworks are a common way to package resources and split code. Breaking Frameworks is more than just a way to avoid re-compiling at build time. Using Frameworks properly can make the code base clear, improve debugging efficiency, and ensure that the code structure remains as reusable as possible.

The first article covers the basics of Frameworks:

  • Static library
  • The dynamic library
  • Frameworks and their internal structure
  • Link and embed Frameworks in Xcode
  • Factors to consider before using Frameworks
  • Some command-line tools for exploring Frameworks

The second article guides us through Frameworks as we work through build bugs, and shows how interfaces find each other when Swift and Objective-C are mixed.

🌟 πŸ• The Complete Guide to iOS and Swift Job Interviews

This post by Hacking with Swift, the founder of Hacking with Swift, shares some tips for iOS programmers looking for a job, and it’s worth noting that Swift knowledge is now a common requirement for iOS recruitment.

  1. Prepare for your job search on a daily basis, such as writing a podcast, attending external technical meetings, and participating in GitHub projects
  2. Write a good resume that shows your past work experience and values. Note that copy-pasting and bogus descriptions don’t help
  3. To prepare for an interview, it is generally best to brush some face experience and be prepared for handwriting algorithms
  4. Calm the nerves during the interview. The more nervous you are, the more you can’t answer the questions
  5. General company interview questions can be seen on the Internet similar, do not worry too much
  6. Interviewing for junior and senior engineers may focus somewhat differently, but it’s a good idea to showcase the depth of your knowledge as much as possible
  7. Coding skills are now being tested in interviews, so don’t take this lightly
  8. Do a good summary of each interview, let yourself grow in the interview

πŸ• How do developers break through that limited vision

Although some of the author’s views may be debatable, more can give us some guidance. At the end of the article, the author’s highly refined, “output forces input, only you really know what you want to do, your learning direction will become extremely clear”, is even more thought-provoking.

  1. Self-acceptance is the premise of precision learning
  2. Technology reserves, recognizing that technology is just a tool, and tools are replaceable
  3. Hands-on practice, change perspective, learn to apply

🐎 Why do I choose to learn Flutter when I don’t think Flutter will be popular anytime soon

Recently there are more and more articles about Flutter and more and more people try Flutter. More people getting involved in the Flutter ecosystem is a good thing for Both Google and the Flutter team.

Based on his own attempts at Flutter, the author of this article gives a detailed description of his own development experience and views on Flutter. For those of you who haven’t tried it yet, this article can provide a preliminary understanding.

🐎 Swift: memory leak gotcha with ‘weak self’

This is an interesting article about the problems that can arise when creating weak references in Swift’s closure hierarchy.

Believe this, many of you have encountered this before, or have thought about how to deal with such a situation. Those who are interested may wish to read.

Recommended by ApolloZhu

🐎 The iOS Menu & Detailing the iOS Menu

This two-part series follows the author of Codea (IPA Lua Editor) designing a MacOS-style drop-down menu for iOS. In the article, you can understand the author’s step by step thinking process, as well as the relevant technical details of the idea, such as: frosted glass effect, Bezier drawing rounded corners, choice of interaction effect and so on. At the same time, the code is open source.

Recommended by ApolloZhu

πŸ• State Restoration Tutorial: Getting Started

State Restoration is the Restoration of an application to the State it was last terminated when it is restarted. When an APP is cut to the background, it is difficult to ensure that the APP is not killed by the user or the system. In iOS 6.0, Apple provides UI Collaboration to maintain and restore application state.

Using the Pet Finder example, the author of this article shows how the application can achieve state recovery through the following steps:

  1. AppDelegateIn the implementationshouldSaveApplicationState ε’Œ shouldRestoreApplicationState.
  2. Set views or View Controllers to Restoration ID.
  3. Implemented in views or View Controllers that need to be restoredencodeRestorableStateWithCoder,decodeRestorableStateWithCoder,applicationFinishedRestoringStateAnd handle the related recovery business logic.

In addition, the author also gives a method to restore the view controllers based on code creation. State recovery is especially suitable for restoring the user’s draft state.

The Demo provided in this article is based on Xcode 7.3, iOS 9.3, and Swift 2.2. Error 99+ is compiled in Xcode 10. The editors have updated the Demo in practice to support Swift 4.2. It is worth noting that the applicationFinishedRestoringState is after viewWillAppear execution, a lot of information in this description is wrong.

πŸ• ARKit Podsβ€Šβ€”β€ŠSCNPath

SceneKit is the framework of choice for many ARKit developers, because SceneKit has access to native features of iOS. SceneKit provides a few default geometries, SCNBox, SCNSphere, SCNPyramid and SCNShape, but if you want to build something different, drill down and create your own. The author’s latest open source framework is used to create paths based on scNvEctor3-point groups. In this article, the author uses a practical example to show how to create paths using the open source SCNPath Pod.

πŸ• Swift Import Declarations

This article describes the use of import in Swift.

  • Can be used if there are duplicate characters in the import complex moduleModuleA.func ModuleB.funcTo distinguish between calls.
  • You can specify a single method, variable, etc. to introduce a Module, for example:import func Module.funcA(The second is funcA).
  • Swift namesake processing priority: local declaration > Import specified declaration > Import module.
  • This is best used when introducing constants and variables into a moduleimport type Module.varTo better understand the author’s intention.
  • Introducing submodulesimport Module.subModuleTo prevent the influence of other submodules, clear use scope. (But it won’t make your program compile faster).

πŸ• [NSMutableAttributedString initWithData: options: documentAttributes: error] collapse analysis

Located in this paper, from the Angle of the assembly, and gradually NSMutableAttributedString initWithData: options: documentAttributes: the error probability of collapse, the positioning problem of process, the thought and method is worth using for reference. Also recommended is the elegant solution to iOS 8 UIScrollView Delegate EXC_BAD_ACCESS.

πŸ• Why is there a “lag” in iOS gesture detection near the edges of the screen?

The author shared a process to check the screen edge gesture delay bug, xiaobi felt this bug is very interesting, it is worth everyone to spend some time to understand it, let everyone have a little more understanding of gestures.

🐎 App thinning checklist

The author of this article summarizes some of the ideas, methods, and tools he used to slim down the Microsoft Edge installation package for iOS. You can save them for when you need to slim down your app. The article mentioned that monitoring package size as part of the continuous integration process is a worthwhile practice.

πŸ• Ele. me logistics mobile terminal business availability monitoring system construction

This paper introduces some exploration and practice of ele. me logistics team in the construction of mobile terminal business availability monitoring system, which provides some good reference schemes and ideas for friends who are doing availability monitoring system. They roughly divided the monitoring system into four layers, from market trends to real-time alarms of anomalies and on-site recovery by using logs. At the same time, they can also analyze business health through big data. Later, I shared an actual combat experience of troubleshooting network layer problems to illustrate the value of this monitoring system. At the end of the article, they mentioned some current problems and the next direction of development.

πŸ• Implenting Promises in Swift

At present, there are few articles about Swift implementation Promises on the Internet, so the author wrote an article to share relevant content, and the author chose test driven development, constantly build tests, and then constantly adjust the code to meet the test, which is very worth reading.

πŸ• How to read Apple’s developer documentation

Reading technical documentation is an essential skill for engineers, but it’s interesting to note that reading technical documentation is not just a hurdle for beginners in programming. Many Native English speakers are just as bad at it. It’s the result of Hacking With Swift, the technology site that has received the most requests for articles over the past year to help readers read and understand Apple’s code documentation.

The author first help you sort out the content and structure of the technical documentation, then with specific examples of “document”, together with you to find the corresponding definitions, examples and code, the last also encourage everyone, in fact, apple’s document also has a lot of insufficient place, we can’t find what you need do not need to lose heart.

🐒 The Many Offline Options for iOS Apps

The author of this paper compares various schemes of storing data in iOS to achieve normal use of App without network. According to statistics, 40% of users will give up using the App if the loading speed exceeds 3 seconds. In the U.S., 15 percent of App use is offline. Therefore, a proper offline approach will lead to higher retention rates for your App.

  • Use databases: Realm, Core Data, Sqlite, etc
  • Store data in KV format: PList, NSUserDefaults, NSKeyedArchiver, LevelDB, etc
  • Use cloud database solutions: Realm Platform, Firebase, etc
  • Consider replaying the user’s actions offline
  • Use the React mode to listen for data changes

tool

IOS simulator recording tool

The Xcode emulator comes with screenshots, but it doesn’t record. Normally you’d need to use other recording tools (QuickTime, LICEcap, etc.), but this tool makes it easy to use Alfred Workflow or the CLI to trigger the emulator recording.

code

CoreML-in-ARKit

This project uses CoreML to run the machine learning model to identify the objects captured by the camera, and uses ARKit to add 3D labels to them to achieve simple AR effects. The project code is simple and creative, which is ideal for beginners to learn how to use machine learning model to process images and how to add 3D tags in AR scenes. Apple also released a similar official Demo: Using Vision in Real Time with ARKit for your reference.

IOS Hybrid Development Library (ICXMLLayout)

Many iOS students who have tried front-end development Vue development all feel that it is very convenient and powerful to develop front-end UI interface with Vue. Excellent layout skills/data binding MVVM/ template-based development. If you can in iOS can also be so convenient for UI development, I believe will also greatly provide page development efficiency, GICXMLLayout this library is such a library.

What does GICXMLLayout do? What are the characteristics?

  • Use XML to describe UI, animation, event binding, and data binding.
  • Data binding.
  • MVVM mode is supported.
  • Excellent layout system.
  • Template system.
  • Simple, excellent ability to customize extensions.
  • Support JavaScript.
  • HotRload & HotUpdate.

Related series of articles recommended to the author of the nuggets column, the author from the project introduction, to the source architecture, and then to the novice project, flexible expansion, and two actual combat projects, a total of eight or nine articles in-depth analysis of GICXMLLayout, worth in-depth study.

Audio and video

🌟 Let’s develop a docking App

If you are teaching yourself how to do iOS development with Swift and want to find a job, you don’t have a project to practice and get familiar with the entire App development process. Or maybe you really want to be an indie developer, but don’t know where to start. Or maybe you want to see how Swift performs as a server-side development language. It is highly recommended that you watch this series of videos, you will get much more than some training classes. Currently, the following 4 series have been launched, and the content is still being updated:

  • Design of iPhone App: Based on Apple’s official iOS Design Guideline, we designed our own iOS App with Sketch from scratch. Learn about the use of Sketch and common plugins in this real-life project.
  • Vapor Up and Running: If you already know the Swift programming language, learning server-side development with it becomes cost-effective. In this series, we will cover the technical scenarios commonly used in each of the server development areas in detail, starting from scratch and based on Vapor.
  • Vapor Fluent: In this series, we will implement a forum-like App. Through this process, we can understand the Fluent component in Vapor. It allows us to interact with databases in Swift mode without having to understand the details of SQL.
  • Building a Poisology App based on MVVM: In this series, we use the implementation of Boxue App as an example to achieve a satisfactory practice in code maintainability, testability, reusability, and collaboration from the perspective of an independent developer.

🌟 Teahour. FM | # 94 and Hawstein and left cloud about algorithms and data structures

This Teahour episode looks at algorithms and data structures that many programmers care about. Especially in the past year, domestic companies have become more and more algorithms and data structures in the interview investigation, the importance is becoming more and more high.

For iOS programmers, algorithms and data structures are more important. Algorithms and data structures that you don’t normally use can be a big problem during the interview. Interested students might as well listen to this program, can be done to understand.

Ggtalk | entrepreneurship that something: upstream mooring

Most Swift programmers are believed to have heard of Boxue, a website that teaches programming online by video. This issue of GGTalk invited the two founders of Boxue to talk about entrepreneurship, xiaobian I listened to half of the circle of fans, second filled members to see a wave of video. From the whole interview process, we can see that although the whole process is not easy for Boxue, it does not affect the two founders to create a unique experience of excellent video tutorial. This is a classic example of a startup that wants to do something meaningful, rather than just ride the wave. Wall crack is optimistic about the park, recommend everyone from listen to this program, understand the park.

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

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

The current editor

@Siniang, @Xiangerxiansen, @DamonWong, @Msg, @Zhang Jiafu, @Parsifal, @Aaaron7, @KYo, @TOM510230, @Anotheren, @Shuishui, @Looping, @lao Lao Lao Donkey, @Xiaofei 86, @Bonben, @red paper, @smiling drinking arsenic, @Jimq, @Xanderxu, @Lao Feng, @zvving

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)