Basic iOS Cheat Sheet for Android Developers
This is a short cheat sheet that I created to improve communication in mobile development. As Android reference I used Kotlin but it should be easy to understand for Java developers too.
Objective C is the Java of iOS whereas Swift is very similar to Kotlin. Like Kotlin in Android, Swift is a preferred language for new projects. Swift is a newer, modern language developed by Apple to make life easier for developers. Despite that Objective C is still popular and according to data from JetBrains in 2019, almost 50% of iOS developers still know Objective C.
Kotlin vs Swift
Here I covered Kotlin equivalents in Swift. Note that these equivalents are not identical, usually have small differences.
Note that both Garbage Collection and ARC manage memory but work in completely different ways.
|Pair, Triple, etc.
|Automatic Reference Counting
Both Android and iOS Frameworks have a lifecycle. But in iOS, there are 2 important functions that don’t exist.
onSaveInstanceState/onRestoreInstanceState -> doesn’t exist
onActivityResult -> doesn’t exist. You have to use Navigation Controller with delegates (listeners).
Also, note that it’s tough to compare lifecycles from Android and iOS. I think that more detailed comparison deserves a separate article.
|loadView (loading view manually)
|onStart and onResume
|onPause and onStop
iOS is nothing like Android when it comes to layouts. In iOS, most of the layout oriented work is done using a mouse (like in the ‘Design’ mode in Android Studio) and Swift. For layouts you can use:
1. XIB (XML Interface Builder) files. An older way to create layouts but it’s not outdated. This way every view layout has own XIB file.
2. Storyboards (one file with many views and navigation). Introduced in iOS 5. Manage many views and their navigation in one file.
Build tools and libraries
Gradle’s equivalent is Cocoapods. The former one is a build tool used (not only) for Android apps also used in IDEs other than Android Studio. The latter one is a tightly coupled to XCode IDE.
|XCode Tools + Cocoapods
Note that iOS doesn’t have ViewGroups because they are regular Views.
|multi-line scrollable EditText
|StackView or constraints
|ProgressView (also Spinner)
It’s good to know Android equivalents in iOS. Usually, it’s better to communicate using names well known in programming, not only in your framework. But it’s not always possible or just doesn’t happen.
Download this free cheat sheet in PDF HERE.
Update: Check out r/androiddev Reddit discussion about this article which supplements it and brings many good ideas.
If you want to be notified about more articles like this one, subscribe below.