Android vs IOS development

After programming on and off in both Swift and Java for Android I gathered some thoughts on how it is, in my opinion, to work over all in both technologies and I thought it would be worth talking a bit about what I like and dislike about each platform.

4 Replies to “Android vs IOS development”

  1. Midnight Mist

    I am an iOS developer and I enjoy it, but I do wish there were areas of improvement. Storyboards and XIBs, they are nice for beginners, but quickly fall apart when you work in teams with source control conflicts, it also makes writing testable code harder. Having said that, writing UI in code is also far from ideal, it is very verbose and the feedback loop is not as quick, although I have found working in Playgrounds helps with this, when Playgrounds are playing ball in Xcode. I would much prefer Apple just improves the XML behind the Storyboards and XIBs like Android. Also, when iOS development was first a thing then there was one screen size. Then you had bigger screen sizes, auto layout was hard, then finally they release StackViews, so it is much better now supporting multiple screen sizes, but it was painful for a long time, although I hate that Android rebuilds the whole view when going between portrait and landscape. Also, dealing with increasing text sizes was not great. It is getting easier now.

    Also, Android it is easy to define styles and colours and strings in a central place. iOS has Localizable strings, but in NSLocalizedString you have to call the String of the key with no auto completion. Same is true with images and colours (which you can now store in Asset catalog) you have to call them with strings and no autocomplete. And lastly, code signing is still bad in iOS. With Android, just make the APK, you are done and submitting to Google Play is fairly trivial. With Apple, you either have to Enterprise sign it, put it through test flight, go through the review process. Sometimes deal with issues of certificates. Also, Xcode. It has improved a lot, but stuff like refactoring, testing, sometimes slow auto complete with Swift. Not really an iOS problem, but I hate using CocoaPods. Where possible I use Carthage and hopefully Swift Package Manager improves and supports iOS soon.

    I would also like to see better native MVVM support, live reloading, and async/await support in Swift.

    With Android, I hate working with the Android Emulator. Gradle can sometimes be a bit problematic. Harder to support the latest API’s because of fragmentation in the market. Building tablet support is not as great with screen rotation issues. Kotlin is nice, but I don’t feel like Google push it as hard as Apple pushes Swift. Kotlin is made by JetBrains who obviously do not have the same clout and investment as Apple. Also, Kotlin still seems to very much rely on reference types rather than value types like Swift.

Leave a Reply

Your email address will not be published. Required fields are marked *