2017 best resources for advance iOS developers
Always stop and listen to others’ ideas
Here are resources I read and think its worth reading in 2017. There are a lot interesting tricks and ideas that I’ve never thought of. I think best developers can take the good part from the others and make it even better!
Topics covered: CI, CD, Fastlane, swift extensions, animations, tricks, other interesting topics, testing, GCD, concurrency, architecture, MVVM, VIPER, AI, ML, automation. Articles below had been simply organized, hope you can find the topic you want easier.
Architecture & Design Patterns
Uber 100 engineers rewrite Uber app in 1 year using Swift.
How Uber mobile team deal with problem when they encounter problems such as long build time, cross platform feature communication, architecture used on both platform, etc.
Tuomas Artman shares the good and the bad from Uber’s rewrite This is a talk by Tuomas Artman that was presented at…www.skilled.io
Here is uber’s special viper architecture called Riblets.
In November 2016 Uber unveiled a sleek new rider app. The app implements a new mobile architecture across both iOS and…eng.uber.com
If you’re interesting in learning new architecture like VIPER, here’s a great talk about how to implement VIPER architecture. Highly recommend it!
It’s becoming a trend that the lifespan of a mobile app be longer, and as such, good architecture is necessary because…news.realm.io
Uncle Bob’s clean architecture.
android * iOS * VIPER * tip * pattern * architecture * software development Permalink I guess every developer has at…luboganev.github.io
As always, we will have this plain old article when talking about iOS architectures.
Bring the core thoughts from Redux, here comes ELM
This blogpost is part of an upcoming project, more about that soon. Reducers are a way to deal with state changes, and…chris.eidhof.nl
We have Redux like thoughts, implementations, tools here.
There is more and more architecture showing up nowadays. However, have the ability to choose the right architecture at the right time and have the ability to handle it is very important.
This article is about a new software architecture which has more layers than VIPER and MVVM-C. It means that it may be…marcosantadev.com
A couple of years ago, all of the iOS apps were small containing less than 10 screens. The codebase was small…theappspace.com
Abstract factory is one of the creational design patterns. You probably encountered it in your development without…agostini.tech
Thoughts about iOS architecture.
I have an opinion. Yes, I know that joke. I started as indie developer in 2008, making fairly simple apps with just…aplus.rs
Reflection of MVVM
As Swift grew in popularity in recent years, so has MVVM - with many talks and tutorials singing its praises. As a…academy.realm.io
Essential concept and skill to understand Rx. (highly recommended)
RxSwift is a powerful library that brings reactive programming to Swift.academy.realm.io
MVVM is a popular option in iOS architecture. ViewModel can grow big if don’t treat it properly. Using RxSwift with MVVM can make your code even better :) (highly recommended)
MVVM is the critical design pattern for front-end engineers. There are so many ways that objects can talk to each other…academy.realm.io
About Swift 4
How do you constraint generic type in swift 4, and what’s improved.
Using generic type constraints, you are able to only add certain APIs and behaviors to implementors of a generic type…www.swiftbysundell.com
This guide is now permalinked at http://swiftjson.guide. Swift 4 and Foundation has finally answered the question of…benscheirman.com
JSON → Enum
In Bites #316 and #317, we began looking at Swift’s new Codable ( Encodable & Decodable) protocols. Today we’ll…littlebitesofcocoa.com
Just incase you missed it.
Apple announced Swift 4 as part of Xcode 9 at WWDC a few weeks ago. Although still in beta during the summer until its…www.appcoda.com
Codable are not just for codable json.
Swift 4 and iOS 11 brings us the Codable protocol as a way to convert a type to and from an external format. The most…useyourloaf.com
In this session, James takes a look at how to use Swift 4 existentials to create view controller interfaces that are…academy.realm.io
You may not have noticed but there was a small but important change to the private access level in Swift 4. After a…useyourloaf.com
Automation, configuration, CI, CD
Automating Your Daily iOS Developer Tasks
All iOS developers face similar workflows when uploading new builds to the App Store. Many of these processes are…realm.io
前兩天在 ITHome 上，讀到一篇〈2周快速發布新版App靠持續整合搞定，臺灣雅虎高速開發術大公開〉，大意是雅虎如何導入 CI/CD 系統提昇軟體品質。不過，裡頭有一段描述，跟我這幾年所知道的有一些差別：medium.com
How Coodpad (Japanese company) ship their app. (highly recommended)
Working with a large code base in a large distributed team involves a lot of challenges. You need to deal with complex…academy.realm.io
When you need to distribute different version to beta testers and production build, you need to configure you Xcode project. (in Chinese, there is also a english version.)
對初學者而言，或許會有疑惑為什麼要把 App 的數據庫和開發環境分開處理。原因很簡單，就是為了日後 App 建立新特性或延續開發時需要在開發版本和現存版本分別進行測試。一般軟件開發都需要在不同的環境進行不同版本的測試。而 App 的開發…www.appcoda.com.tw
One of the main appeals of iOS when compared to other mobile platforms such as Android is the richness of its visual…digitalleaves.com
The new iOS 11 has brought some nice additions and updates for animations in Swift 4. Let’s have a look at what’s new…digitalleaves.com
Update Note: This tutorial has been updated for iOS 11, Xcode 9, and Swift 4 by Nick Sakaimbo. The original tutorial…www.raywenderlich.com
Update note: This tutorial has been updated to Xcode 9/Swift 4 by Luke Parham. The original tutorial was written by…www.raywenderlich.com
Introduction to UIViewPropertyAnimator
Swift compile time
The Swift type-checker remains a performance bottleneck for compile times, though it has improved tremendously over the…www.jessesquires.com
Introduction to Instruments
Update note: This tutorial has been updated to iOS 11, Xcode 9, and Swift 4 by Nicholas Sakaimbo. The original tutorial…www.raywenderlich.com
How Facebook team improve UIView performace using AsyncDisplayKit
Have you ever noticed apps stuttering as you scroll and swipe around? Tapped a button and watched the entire interface…code.facebook.com
Facebook team deal with FOOMs in fb app. (interesting)
At Facebook we strive for our apps to be stable, fast, and reliable. We've worked hard to reduce the number of crashes…code.facebook.com
Using AsyncDisplayKit to improve UI performance.
Understand layout performance from AutoLayout.
Ways to test and mock your networking. (highly recommended)
Writing tests is important. XCTests that Apple gave us is good instead of great. Quick and Nimble can help you write readable and maintainable test codes.
Writing tests of any sort on a mobile application project has not been a very popular choice and in fact, most mobile…www.appcoda.com
All about tests (in Chinese, highly recommended)
這次的主題為在軟體開發流程中很常被忽視的測試（Unit test、UI Test）及替各位開發者節省更多時間的持續整合（Continuous-Integration），及在iOS的開發流程中如何實現。medium.com
iOS, Rails TDD.
While force unwrapping is an important Swift feature that would be hard to work without (especially when interacting…www.swiftbysundell.com
Tricks & Thoughts
All kinds of good swift extensions (in Japanese)
便利で汎用性高めのExtension集です。後半にライブラリもまとめました。 Swift3.0で動作確認をしています。 追記: Swift4版はこちらです。 以前投稿した使うと手放せなくなるSwift Extension集 (Swift2…qiita.com
When dealing with universal links (in Chinese)
Reflectable enums in Swift 3 using Mirror in swift. Interesting enum trick
Suppose you are working on a Swift program that needs a data model to represent a contact, such as a person from the…ijoshsmith.com
If you are finding a way to navigate from view to view in your app, why not try Coordinator? Coordinator and MVVM becomes great when they met!
Once all of your transitions have been moved over to coordinators, you can do further refactorings, like separating…khanlou.com
No More Typos: Foolproof Notifications in Swift by Michael Helmbrecht
One of the most common ways for parts of your app to talk to each other is a Notification (RIP “NSNotification”). But…academy.realm.io
Great thought on structuring Swift UI code.
This talk will explore how the structure and properties of the Swift Language make writing UI code simpler. We will…academy.realm.io
Writing better singletons in Swift by Jesse Squires. Share about thoughts on doing singletons, dos and don’ts, pros and cons.
In a previous post I discussed strategies for using singletons in a cleaner, more modular way. Singletons are a fact of…www.jessesquires.com
Need to know more about GCD and concurrency?
There are a few alternatives regarding how to handle concurrency from Swift, this article will discuss everything you…www.uraimo.com
When to improve code readability and avoid making code too complex when doing too much improvements.
Krzysztof Siejkowski dives into the readability of Swift code, treating it not as a well-defined goal to achieve, but…academy.realm.io
Method dispatch, performance of swift code.
Method Dispatch is how a program selects which instructions to execute when invoking a method. It’s something that…www.raizlabs.com
Understanding type erasure. (recommended)
Just when you thought having unambiguous types was the one true way of Swift, it turns out that sometimes it is…academy.realm.io
At the try! Swift Conference in Tokyo, @purpleyay gave a mind-blowing talk on Type Erasure (full video and slides here…www.natashatherobot.com
Using enum to define meaningful states. (highly recommended)
One of the hardest things when building apps and designing systems is deciding how to model and deal with state. Code…www.swiftbysundell.com
Zomble’s chinese version of refactoring your code using enum
Ways to reduce the size of your massive controller.
Watch Mohammed Azam simplify bloated Controllers using the “Lean Controller” methodology! My name is Mohammed Azam, and…academy.realm.io
My name is Yusuke Kita, and I work at a Japanese company based in San Francisco named Mercari. Our product is…academy.realm.io
Not about iOS, but I think its worth watching.
This talk is about clean architecture and our experiences with introducing it into our Android app at Buffer. My name…academy.realm.io
If you enjoy talks from 360 AnDev, please support the conference via Patreon! The one constant of working in mobile is…academy.realm.io
Ways that will help your tableview look better. (recommended)
Table views are one of the most important layout components in iOS development. Usually some of our most important…medium.cobeisfresh.com
How you can improve array. (highly recommended)
My name is Soroush. I am here to tell you everything you ever wanted to know about Sequence and Collection. When we’re…academy.realm.io
The one concept Nietzsche, Thoreau and Hesse most probably tried to elude through their lives: Dependency. Even if one…medium.com
Object detection is one of the classical problems in computer vision: Recognize what the objects are inside a given…machinethink.net
You only look once (YOLO) is a state-of-the-art, real-time object detection system.pjreddie.com
In a lot of ways, Swift is very flexible language and it is really easy to misuse it. Applying best practices becomes…medium.com
The Ten Commandments of Egoless Programming, as originally established in Jerry Weinberg's book The Psychology of…blog.codinghorror.com
A simple way to provide text formatting in your appmedium.com
The Swift Algorithm Club is an open source project on implementing data structures and algorithms in Swift. Every month…www.raywenderlich.com
AI in iOS
GitHub is where people build software. More than 27 million people use GitHub to discover, fork, and contribute to over…github.com
Today we're going to talk about bringing machine learning to your iOS apps. This is a topic that was really big in WWDC…academy.realm.io
React Native is a new native library that vastly changes the way in which you can create applications. The majority of…artsy.github.io
In this MapKit tutorial you'll learn how to create and use custom map tiles to make the maps in your app unique so that…www.raywenderlich.com
This is a code I used to write. [receiver doThis]; It’s a code a lot of us used to write. It’s the way we looked at the…academy.realm.io
最初是谷歌2010年以6820万美元收购Global IP Solutions(GIPS)公司而获得的一项技术，它使得Web中的实时通讯成为可能，是一项能够在浏览器内部进行实时音频和视频通信的技术zhuanlan.zhihu.com
Swift is flexible. You just won’t believe how vastly, hugely, mindbogglingly flexible it is. I mean, you might think it…academy.realm.io
objc.io publishes books on advanced techniques and practices for iOS and OS X developmentwww.objc.io
The Swift programming language has an abundance of features to help developers code efficiently. Souroush Khanlou live…academy.realm.io
In Swift's Codable system, only dictionaries with String or Int keys encode themselves as dictionaries/unkeyed…oleb.net
BuddyBuild! Ship your app like magic. (Now acquired by Apple)
How to read Swift standard library code (chinese)
作者：Ole Begemann， 原文链接，原文日期：2016-10-28译者： X140Yu；校对： walkingway；定稿： CMB 在进行完 GYP 预处理后，阅读 Swift 标准库源码的最简单的一种方式是执行一次完整…swift.gg
Let see what’s inside Codable protocol! (chinese)
WWDC 过去有一段时间了，最近终于有时间空闲，可以静下心来仔细研究一下相关内容。对于开发者来说，本届WWDC 最重要的消息还是得属 Swift 4 的推出。Swift 经过三年的发展，终于在 API 层面趋于稳定。从 Swift 3 …www.jianshu.com
Dig into Codable
Look into the basics of Codable, how to write a custom implementation, and see how the magic actually takes place…academy.realm.io
The @objc attribute controls visibility of Swift bits from Objective-C. It's back under the spotlight with Swift 4 and…swiftunboxed.com
Swift 4 String and Substring
Swift is a fun and fast changing language. Interesting ideas are showing up all the time. I feel great to have all swift developers from the world, dedicating to make swift a better language! If I got something wrong in the article, plz leave a comment. Or you got thing great to share, you’re welcome too :)
Hope there is much more interesting things coming in 2018, Happy new year :)