Bo2SS

Bo2SS

2 Application Development (Recommended Resources)

Hello everyone, this is Bo2SS. Last time I mentioned that there was still a bonus missing in the application development chapter, so here it is~

In the Internet age, there is basically an abundance of learning resources, but for learners, choosing high-quality learning materials that suit themselves has become a big problem.

If we can quickly find verified and suitable learning materials, it will not only improve our learning efficiency, but also help us quickly solve the problems we encounter at the current stage.

Therefore, this bonus mainly organizes some online resources and related books recommended by the author. Developers, be sure to bookmark them!


"Keywords": Open Source, Well-known Public Accounts, Apple Official Resources, Cultivating Skills


Online Resources#

System Learning#

Open-Source iOS Apps: It collects many excellent and complete open-source apps, with detailed classification, and specifically marks the apps that have been released on the App Store, suitable for learning app development through complete examples.

Awesome iOS:

  • It is well-known in the Awesome series. Any field with a certain reputation has its own Awesome xxx project.

  • Its biggest feature is its comprehensiveness, including various learning materials from development, debugging to release, as well as recommendations for blogs, books, tutorials, podcasts, and email subscriptions.

  • At the same time, there are also more specific recommendations in the Awesome sub-series, such as Awesome ARKit and Awesome iOS Interview (an app that collects common interview questions, released on the App Store, and requires a ladder to use 🪜).

  • Finally, the author suggests that whenever you encounter any iOS problems, you should check this website first.

Awesome iOS Interview

Filling the Gaps#

Interface Interaction:

  • Cocoa Controls and iOS Examples (Swift): They collect a large number of open-source libraries, with detailed classification, which are very suitable for finding "wheels" or learning implementation ideas.

Lesser-known Knowledge Points:

  • NSHipster: A website maintained by Mattt, the author of AFNetworking and Alamofire, which mainly focuses on some less commonly used iOS knowledge points.

Developers / Teams:

  • Swift Famous Developers: Understand the vision of developers at the forefront of the iOS field and the latest trends in iOS.

  • Swift Open Source Project Teams: If you are using their open-source projects, by following their updates, you can keep up with the latest progress of these open-source projects.

  • PS: Well-known iOS developers are mostly inclined towards Swift.

Public Accounts I Follow:

  • Tech Weekly for Veteran Drivers (regular weekly report), iOS Growth Road (regular weekly report), starming (author himself), SwiftGG Translation Team (focuses on the Apple ecosystem), Bo2SS (growing together with you👀).

  • "Links included in the public accounts"

Others:

Official Resources#

💡 Of course, we cannot ignore the attention to Apple's official resources:

WWDC22


If you want to thoroughly master the professional knowledge of a certain field, you still need to calm down and learn through reading related books.

Objective-C#

Objective-C Programming》, 《iOS Programming》:

  • Produced by The Big Nerd Ranch, they are both good introductory books.

  • I am currently going through them myself and will organize some notes when I have the chance.

Advanced Objective-C Programming》:

  • It revolves around three core knowledge points in Objective-C: memory management, blocks, and Grand Central Dispatch (GCD).

  • It explains in depth based on Apple's open source code.

Effective Objective-C 2.0》:

  • Well-known Effective series, every language with a certain reputation has it...

  • It summarizes and discusses 52 little-known and easily overlooked features and pitfalls in OC programming from 7 aspects: syntax, interface and API design, memory management, frameworks, etc. It is an advanced reading material.

Swift#

Raywenderlich > Books platform:

  • It teaches you step by step to master some development knowledge. The content is very practical and of high quality.

  • It covers a wide range of topics, such as ARKit, Swift versions of data structures and algorithms, design patterns, Core Data, iOS animations, Apple debugging and reverse engineering, RxSwift, Realm, and game development, etc.

  • In addition, the website also includes learning paths, videos, articles, and other high-quality content.

objc.io platform:

  • It explains knowledge points from the perspective of principles and source code implementation.

  • The content is more in-depth than the books published by Raywenderlich and is suitable for people with some iOS development experience.

Source: InfoQ

Immutable Universal Knowledge#

The Self-Taught Programmer: The Link, Load, and Library》:

  • It explains in detail and in depth the knowledge of hardware, operating systems, and threads, helping you understand all aspects of the underlying knowledge of a program from code compilation, linking to runtime memory virtual space and physical space mapping, and understand the working principles of a program from writing to runtime. Before reading this book, you need to have a basic understanding of computer disciplines such as CPU, computer principles, assembly, compilation principles, C language, C++ language, etc.

Clean Architecture》:

  • Bob Uncle, who created the "Clean Myth," has reached the peak of architecture in this field. The architectural design ideas in it will never be outdated and are applicable to all fields of knowledge.

  • It analyzes in detail the value goals, programming paradigms, architectural design principles, component decomposition, and boundary handling of architecture, and connects all the knowledge through practical cases for readers to understand.

  • When you have a lot of programming experience and need to consider the rationality of engineering architecture, it is recommended to read it.

💡: Many classics are worth reading repeatedly, and different stages of reading will have different experiences and gains.

Summary: Some knowledge will not change. As long as you grasp this knowledge, no matter how the upper layer changes, you can grasp the core and master the direction of technology, and you will not feel knowledge anxiety.


Other: Q&A on Hot Topics (Part 3)#

What is the WatchDog mechanism?

  • The WatchDog mechanism is a mechanism designed by Apple to forcefully kill the app process to avoid the situation where the app interface becomes unresponsive and users cannot operate.

  • There are too many reasons for the app interface to become unresponsive, so Apple adopted a one-size-fits-all approach: any main thread that is stuck for a certain period of time will be forcefully killed by the WatchDog mechanism (this stuck time is set by the WatchDog as 20 seconds at app startup, 10 seconds in the foreground, and 10 minutes in the background).

  • Since the WatchDog kill logs belong to system logs, after your app is online, you need to monitor the lag yourself so that you can capture the situation where the app becomes unresponsive before being killed by the WatchDog. You can refer to Apple's documentation on crash analysis: Diagnosing Issues Using Crash Reports and Device Logs.


Regarding the use of third-party libraries, the author suggests:

  • If it is strongly related to the business, such as tracking or A/B testing libraries, it is best to build them yourself and learn from the ideas of open-source libraries.

  • For some highly versatile basic libraries, such as network libraries and persistent storage libraries, you can directly use mature third-party libraries, which can save development and maintenance costs and improve product quality.

  • ➕There is also a situation where for smaller teams with only a few iOS developers, it is still recommended to use open-source projects as much as possible. You can first look for suitable projects for the team on Awesome iOS (mentioned earlier).

PS: A comment recommends Firebase's A/B Testing SDK, which integrates other Firebase features such as data reporting, data analysis, PUSH messages, and AI predictions. This greatly reduces the cost of data analysis.


Alright, the application development chapter ends here! Next time, we will truly start the content of the principle chapter.

If you have some excellent learning materials, feel free to leave a comment below to recommend them to Bo2SS, and feel free to share this article with friends who need it~

See you next time!

Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.