Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

General Discussion

Saleh Almozaai
Saleh Almozaai
iOS Development Techdegree Student 1,343 Points

Android or iOS Which one learn and another use cross platform?


I need to build my idea soon, so I would like to focus on one platform and use cross platform on another.

please give me your advice, I need it.

Thanks, Saleh

2 Answers

Ari Misha
Ari Misha
19,323 Points

Hiya Saleh! Making a choice between iOS and Android development and Windows development is more like a personal choice. In order to learn Android , you're gonna have to learn Java first and a bit of JavaScript. And For iOS development, you can choose between objective-C and Swift. I'd highly recommend Swift , simply coz app Swift is easy and powerful than objective-C. If you own a Mac, i'd defo recommend iOS for so many reasons , coz i think in long term race , iOS might trumph over Android, but thats just my personal opinion. But there are so many android users already so yeah. Good luck! And Happy Coding! (:

Michael Hulet
Michael Hulet
47,912 Points

As Ari said, deciding on iOS or Android is a personal choice. I'm also biased towards iOS, but that's probably because I'm an iOS developer myself. I would definitely recommend learning Objective-C and then Swift, because that will give you a much better grasp of why things are the way they are, and you'll also have a far better understanding of what to do when something goes wrong or when you find code on the internet that you want to use. If you choose to learn Android, you'll definitely have to learn at least Java and/or Kotlin and some XML. Android development tends to be a bit more difficult and slow-going than on iOS, because you have more things to worry about, such as platform fragmentation (also, I have a lot of gripes with the JVM that you'll have to deal with). Treehouse has 2 tracks for iOS and 3 for Android. For iOS, there's Beginner iOS Development and Intermediate iOS Development. For Android, there's Beginner Android Development, Intermediate Android Development, and Advanced Android Development. Don't mistake the fact that there are more Android courses than iOS for an implication that the iOS courses are less well-rounded; you'll have a deep understanding of the platform of your choice after each series.

That all being said, if you plan on trying to make one of your platform's apps with a cross-platform framework from the beginning, I suggest you just go for that from the start. I'd suggest React Native, which is something Treehouse doesn't currently have a track for, though you can take the Learn React track to give you a solid basis. For that, you'll only have to learn JavaScript and JSX, which is similar to XML.

However, I strongly encourage you to learn and develop both apps in your platform's native language with their respective native frameworks. Your apps will feel snappier and more natural to your users, and your bottom line will thank you in the long run. If you go this route, you'll be in good company of other successful businesses. Did you know that Snapchat developed both their apps natively, and launched their Android app a year after their iOS version? This way, you'll have less code to focus on while you're iterating through your first stages and figuring out what works and what doesn't, you'll be able to support new features of your platforms as they're released instead of waiting for your cross-platform framework to be updated, and you won't have to deal with the general weirdness and bugs of using a cross-platform framework in a non-native language, anyway.

Whichever method you go for, I wish you the best of luck. Happy coding!