Best Resources for Advanced iOS Developer (Swift)
Author: Pavlo Shadov
Like the comment and hope it gets better and better with your help
Author: @ios growth refers to north, this article was first published in the public number iOS growth refers to north, welcome to the correction
Please contact me if there is a need to reprint, remember to contact oh!!
Of course, in my humble opinion (Updated October 10, 2019)
For a long time now I’ve had a folder in my browser with articles and videos about iOS Development + Swift that have helped me a lot. I’m sure most developers have their own libraries with the best stuff in them.
So I decided to share my information
Update history
- 10 December 2017](Added debugging section
- 8 September 2019](Modularity, user experience, soft skills added
- 10 Oct 2019](SwiftUI, Combine, CI&CD, Machine learning added
Design patterns
-
Good iOS application architecture :MVVM vs. MVC vs. VIPER — academy.realm.io
MVVM, MVC, VIPER… With all these acronyms, which is the best structure? Let’s talk about the things that are critical to good iOS application architecture.
-
Taming great complexity :MVVM, coordinator and RxSwift — blog.uptech. Team
Last year, our team started using coordinator and MVVM in production applications. It seemed intimidating at first, but since then we have completed four applications built on these architectural patterns…
-
Khanlou’s coordinator Redux — khanlou.com
The application delegate is the entry point to any application. Its primary responsibility is to pass messages back and forth from the operating system to the subsystem of the application…
-
Khanlou’s 8 Modes for Handling Giant View Controllers — Khanlou.com
View controllers get big because they do so many things…
-
IOS Architecture patterns — Medium.com
Demystify MVC, MVP, MVVM and VIPER
-
Advanced iOS Tutorial MVVM — Medium.com
How can MVVM handle complex table views
-
Introduction to MVVM — objc.io
Objc.io publishes books, videos, and articles on advanced technologies for iOS and macOS development.
-
Build an iOS application — objc.io — with VIPER
Objc.io publishes books, videos, and articles on advanced technologies for iOS and macOS development.
-
Dependency injection — objc.io
Objc.io publishes books, videos, and articles on advanced technologies for iOS and macOS development.
-
Dependency Injection, iOS and you — bignerdranch.com
Object-oriented programming uses network objects and the messages they send to each other to describe software problems…
-
SOLID principles for Swift — Marcosantadev.com
Maintainable components. Reusable. Was it just a dream? Maybe not, the SOLID principle might be.
-
Better MVC — Davedelong.com
This is the guy, you know? (Like this Slogan)
-
Great iOS architecture — Github.com
A better way to build applications
modular
-
Modular iOS: Modular Wayfair App — tech.Wayfair.com
At Wayfair, we face challenges that the average iOS developer might never face. In the last 8 months, we’ve had 47 different developers submit over 2000 submissions to our code repository…
-
Modular architecture on iOS and how I can reduce build times by 50% — Medium.com
Recently, I was hired by Freelancer as an iOS engineer responsible for their core iOS app…
-
Modular architecture in iOS — Medium.com
The ability to create, run, and test individual parts is essential in large projects, or even in any project…
-
Optimize app startup time — developer.apple.com
Launching an application is a complex and subtle process, and the impact of different application design patterns on startup time is often not obvious…
Protocol programming
-
Protocols are not just syntax packages – oleb.net
Semantics are an important part of protocols, and you can’t write useful generic algorithms for them…
-
A generic protocol with associated types — blog.bobtheDeveloper.io
Know how to create generic protocols and override association types
-
Swift: What is an association-type protocol? – natashatherobot.com
I recently gave a talk on association Type Protocol (PAT) – I feared my audience knew everything there was to know about PAT, but the opposite was true…
-
Swift World: Type erasure — medium.com
This article begins with two quotation marks for protocol and generics. Both are core features of Swift. It is well known that generics have classes, structures, and enumerations. What about the agreement? .
-
Writing the Network Layer in Swift: a Protocol-oriented approach — Medium.com
In this tutorial, we will learn how to implement the network layer in pure Swift without any third-party libraries (see the source code for common network libraries for some thought)
-
Stay calm and type erasure — academy.realm.io
Just when you thought having explicit types was the right way to Swift, it turns out that sometimes type erasure is necessary…
-
Protocol oriented programming in Swift — developer.apple.com
At the heart of Swift’s design are two incredibly powerful ideas: protocol-oriented programming and first class value semantics…
-
Protocol composition in Swift and Objective-C — jessesquires.com
Protocols in Swift and Objective-C are powerful tools for decoupling code. They allow you to specify conventions between classes that use them…
-
A little respect for AnySequence — robnapier.net
Once upon a time, when Swift was young, called SequenceOf and GeneratorOf, respectively, they could do type erasure.
A collection of
-
Everything you need to know about Sequence and Collection – Academy.realm.io
My name is Soroush. I’m here to tell you all about the Sequence and Collection…
-
Swift 5.1 Collection Diffing —— fivestars.blog
In this article, I’ll do exactly that](on the basis of more than 5,000 words, combined with a lot of technology and code… (An exploration of the Collection Diffing implementation, different from the source code but worth a taste)
closure
-
How to use automatic closures and @autoClosure in Swift 3 — cocoacasts.com
Even though you may not know what an automatic closure is, I bet you’ve already used an automatic closure without knowing it…
-
What does @scaping and @noescape mean in Swift 3 — cocoacasts.com
Getting started with Swift may be easy, but as you use the language more and more often, you’re exposed to Swift’s more complex structure…
-
You don’t (always) need weak self — medium.com
As the title suggests…
concurrent
-
All about concurrency in Swift — Part 1: Now — uraimo.com
In this article you’ll cover everything from locks, threads, and timers in the Foundation framework to language guarantees and recent improvements to Grand Central Dispatch and Operation Queue…
-
Delve into Grand Central Dispatch in Swift — swiftbysundell.com
True to the title, in depth…
-
Parallel programming for Swift: Basics — medium.com
-
Swift parallel programming: Operations — medium.com
-
Parallel Programming for Swift: Promises — Medium.com
-
Swift parallel programming: What could possibly go wrong? – medium.com
As you can see, that’s all for a series of articles
Methods to distribute
-
Method distribution in Swift — rightpoint.com
Method dispatch refers to how a program selects instructions to execute when calling a method…
JSON parsing
-
The ultimate guide to JSON parsing using Swift — benscheirman.com
Prior to Swift 4, parsing JSON was a common (but cumbersome) process for dealing with untyped arrays and dictionaries. Now Swift ships with Codable, a powerful coding and decoding system…
Debugging
-
Dancing with the debugger – LLDB’s waltz – objc.io
Objc. IO articles can be found in Chinese because the main articles are classic…
-
Debug Swift code with LLDB — medium.com
As engineers, we spend nearly 70% of our time debugging. The remaining 20% continue to think about architectural methods and communication with teammates, while only 10% actually write code…
-
Prevent memory overuse with Xcode’s visual debugger and Instruments module — rderik.com
An important step before delivering an application to the user is to ensure that the application is not overusing the user’s resources…
-
Xcode Advanced Debugging — medium.com
Using debugging tools correctly can save developers a lot of time… (There’s a video.)
test
-
Unit testing, how to write testable code, and why it matters — Toptal.com
Can you really write unit tests? And how to write testable code…
-
Test the agent — Mokacoding.com — in Swift using XCTest
Be sure to read about it, it might be really important to you…
-
Better unit testing with Swift — masilotti.com
Over the past few months, I’ve been doing some “real” unit testing in Swift, and I’ve developed some concepts…
-
A common unit testing technique on iOS — Marisibrothers.com
Most, if not all, unit test cases on iOS can follow the same well-known pattern](Given a set of initial conditions, something can be expected when something happens…
-
Make Mock objects more useful — academy.realm.io
The design of Mock objects changes the way we write unit tests…
-
Swift Network Unit Testing Complete Guide — Medium.com
Let’s face it, writing tests isn’t that common in iOS development (at least compared to writing tests for the back end)… This is the real reality
CI & CD
- Build, test, deliver! The complete iOS Continuous Integration Guide using Fastlane and Jenkins — Medium.com
- How to make continuous integration for iOS project GitLab easy – Medium.com
FRP/RxSwift
-
Fantastic functional-responsive programming in Swift — Academy. Realm. IO
Functional or reactive, why not both? .
-
Learn and master the basics of RxSwift in 10 minutes – Medium.com
Hope it’s not clickbait…
-
RxSwift Example 1 — Basics — thedroidsonroids.com
The first example of starting your RxSwift journey
-
RxMarble: Interactive charts for Rx observers — rxmarbles.com
-
Illustration of Functor, Applicative, and Monads in Swift — mokacoding.com
Everyone loves diagrams because words are really hard to read
Combine
-
Solve problems by Combine Swift — Medium.com
-
Can Combine replace RxSwift? – medium.com
-
SwiftUI and Combine: The better – Medium.com
SwiftUI and Combine will help you build better apps…
SwiftUI
- SwiftUI – How to start a project – Medium.com
- SwiftUI — Medium.com
- SwiftUI – Understanding state — medium.com
- SwiftUI – Dynamic List and Identifiable — medium.com
- Quick app prototyping with SwiftUI — Medium.com
- Describe the life cycle of SwiftUI view — medium.com
Machine learning in iOS
-
Machine learning in iOS: Turi Create and CoreML — medium.com
-
Machine learning in iOS: Azure Custom Vision and CoreML — Medium.com
-
Machine learning in iOS: IBM Watson and CoreML — Medium.com
IOS machine learning trilogy…
UX
-
The Golden Rule of Bottom navigation design — Shrikar.com
Design is not just about looking good…
-
Why and how to avoid such Menus or Basements — lmjabreu.com
-
Push and Pull in web design — ui-patterns.com
-
The ultimate design guide for mobile developers – Medium.com
Soft Skills
- Speed up becoming an iOS developer — Youtu.be
- How do you stay focused as a software developer? – medium.com
Other
-
Friday Q&A – mikeash.com
Every q&A is an exploration of the bottom…
-
Output debugging information — ryanipete.com
Advanced Apple Debugging & Reverse Engineering by Raywenderlich
-
Improved optional — Russbishop.net
Optional no surprise, great improvement. But sometimes when you want to do something with optional objects, or optional objects are of a particular type, you need some tricks…
Maybe I’ll edit and add more cool resources to this note. If you have any other “must-haves” on your list, feel free to share them with me in the comments at 😉
If this article is useful to you, don’t be shy to like, comment, and share!
If you have any questions, please comment directly, and feel free to express anything wrong with the article. If you wish, you can spread the word by sharing this article.
Thank you for reading this! 🚀