Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

To explain further why I think iOS is harder

- Where will you learn it? Apple documentation is bad. remember this? "On Apple's Piss-Poor Documentation", 1180 points to date https://news.ycombinator.com/item?id=25046691 Android documentation is great. Yes there are at least 5 ways to do something e.g. schedule background work, load files, but its very clearly deprecated in their docs/ in the code. You can, read the code because it is open source. If you find a bug in Apple's library, what do you do?

- There are more developers, more stack overflow questions/ answers and more resources on the internet in general for Android. So even when Android has edge cases/ backwards compatibility issues, its more likely than iOS that someone has written about it.

- Apple tooling is bad: Xcode is not a good IDE to put it lightly. It gets 3 stars on the App Store. The actual code editing part is just a text editor, e.g. searching for function calls involves using the search function, as opposed to a keyboard shortcut that uses static code analysis. Most warnings for your code won't show up until you try to build it, therefore the feedback loop is extremely slow. Many iOS developers I've known admit they do not like Xcode. To upload your iOS app to the app store, you upload gigabytes of binaries. Code refactoring features do not exist on Xcode. Android Studio is one of the best IDE's I've used, and constantly adds support for more features: WorkManager inspector, deploy/debug multiple devices at once. Also, new features come out for Android Studio all the time, and Xcode seems to have not been updated with features that benefit me for a long time. Jetbrains IDEs generally work straight off the bat, and I'm very happy to see AppCode (Xcode competitor by Jetbrains) available, though it is thoroughly buggy at the moment, I still use it because writing code is nicer in AppCode.

- Basic things in the apple ecosystem are broken/ buggy: e.g. New developers in a team will have issues signing their application with the company team, the trick/ fix is to remove/ add a Xcode/ iOS capability to the project, and remove it immediately. Then signing will work. Signing the app is literally the first thing that needs to be done, why is this not fixed?

- Swift is much nicer than Objective-C to program in, but its not as nice as Kotlin. I don't want to get into programming language comparison (im sure there are connoisseurs here who can), but my opinion of reading Swift code is they are less readable and results in unusual architecture. Swift apps are also slower and bigger than Objective-C apps. Some Apple APIs are also designed in a painfully complicated way. It seems like they do not get much feedback from developers about their APIs, whereas Android is constantly getting feedback and improving. Some developers complain that Swift has changed, breaking older Swift code. I haven't heard this from Kotlin developers.

Sorry that felt like a rant. In the end you've can choose based on

- Comfort: Android is much more ergonomic for the reasons above

- Developer competition: You'll be competing with more Android developers worldwide: Android is more than 85% of the smartphone market

- Money: iOS costs $100 annually (not much but if you're starting out your first app, maybe it is). The upside is if you live in a rich country, many people use iPhones, and they also tend to spend more money on the app store.

- Market trends: iOS has added ATT/ privacy features. They've also got powerful chips but it seems like no one has learnt how to use them yet. They are ahead on hardware (M1, A14), they've got great market share in Western countries, and are poised to take even more with recent developments.



This is helpful overall but perhaps your Xcode experience is out of date, or at least several of your comments don’t match my experience of Xcode 12.5.

> The actual code editing part is just a text editor, e.g. searching for function calls involves using the search function, as opposed to a keyboard shortcut that uses static code analysis.

Xcode has indexed static analysis, symbol navigation, jump to definition, quick fixes, in-line quick help and a bunch of other features I use every day that lift it out of the ‘just a text editor’ class.

> Most warnings for your code won't show up until you try to build it, therefore the feedback loop is extremely slow.

This hasn’t been my experience - warnings that appear on build generally also appear when saving a file. There’s no need to trigger a build to get feeedback.

> Code refactoring features do not exist on Xcode.

Editor > Refactor reveals 13 refactoring options for me in Xcode 12.5.

I like Xcode, even as someone who switches between it and JetBrains editors (for frontend/backend work) every week. The only thing I really miss is stable vim emulation.


Good to know, thanks. Its been a few months since using Xcode, and recently have only done things in Xcode when it doesn't work in AppCode, preferring AppCode for actual coding.


I’m in the US. iOS is wayyyyy more important or else I’d have 50 users of my app instead of over 2000.

Android has a lot of documentation but there are so many more layers to Android development than iOS. On top of that, the best practices on iOS are very consistent while on android they change like twice a year, it’s exhausting. Finally, I personally dislike working in the Java ecosystem, so android is way less fun for me than web and iOS is


Oh yes, sorry, I think in the US, iPhone is dominant. Even more. I expect them to spend more money too. My perspective is the UK, where there is a 50:50 split of Android and iOS. A consumer app company I worked for previously made a lot more money from iOS users than Android.

In terms of market, do your research on jobs and skill demand in the area.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: