DEV Community

Discussion on: I'm a Swift Native Speaker, Ask Me Anything!

Collapse
 
nunovieira profile image
Nuno Vieira

If you have the opportunity and time, try both and see what you prefer. I actually had to learn iOS in my job, I had that opportunity. Actually, the iOS Ecosystem was nothing that I thought I would ever be doing right now, it just happened really, but I'm glad it did! Swift is my favourite language right now, and doing front-end code in Native for me it is more challenging and interesting than on the Web. When I was doing front-end code on the Web, I always felt that I wasn't even programming, and wasn't challenging enough (although with SPA's right now it is way different of what I was doing back then). And that's why I always did backend on the Web, so I could feel the challenge of writing OOP and FP code. But, with Native Mobile Development, this is where I'm feeling I belong, I can build UI's and I'm writing code that for me is challenging :)

To answer your question, both platforms are great, they both have pros and cons, and it is a question of preference and what of the pros and cons you value the most. Android has a lot of Devices, you have to be careful and be prepared that your apps won't run the same in every device ( if you feel writing code to support different browsers is a pain, this is much worse! ). On the other hand, it is easier and faster to publish apps for android, you will target a much bigger audience, but probably not willing to pay much for your apps. If you want to go as a Freelance Mobile Developer, totally go for iOS, since people will actually pay for your apps. Also, if you want to work for a startup (and especially in the US) go for iOS, since startups will probably build their prototypes for iOS first, and then go to the Android market, because iOS will cover most of the US market, and also it is faster to build iOS apps, since there are fewer devices to test. Both have good languages right now which you can use (Kotlin & Swift). One of the pain points in iOS, especially in the junior iOS Days, is how you do your UI. There is a lot of ways to do UI in iOS, and in the beginning, you might feel lost, and researching about which is the best way to do UI, since there are so many, and it feels like there is no standard (Spoiler Alert: Storyboards when learning is fine, go for Xibs for small apps, for bigger apps with a lot of reusable components, do UI in code, but then again, in the code you also have multiple APIs to choose from -.-). Where for Android, although there are also multiple ways you can do UI, it feels it is more standardized (someone corrects me if I'm wrong).

Anyways, if I would learn Android, I would start with Kotlin, since it is now the Default language for Android and it is way much better than Java. And it looks very Swift-like, so if you learn Swift or Kotlin, you will easily learn the other one :) Hope I could help! I'm also learning Android in my free time, it is good to understand both platforms! And they have very similar concepts!

Collapse
 
alchermd profile image
John Alcher

Thank you for your insight!

Though not really materializing in the near future, I'm really interest to get into the mobile dev domain. iOS seems to be the more lucrative, but Apple products are marked at an insane premium in my country and I have to budget my resources carefully as I finish my bachelors. I guess I'll stick with Android for now since I'm sure that these skills are transferable anyway.

Kotlin as the language choice is interesting, though I'm familiar with Java by virtue that I know other C-style OOP languages. I'd look into that for sure.

Thread Thread
 
nunovieira profile image
Nuno Vieira

Also look for jobs in your country. See if there is more Android than in iOS if that's the case, then it makes sense to go for Android.

The good thing about Kotlin is that you would be learning 2 things instead of just one. Kotlin and Android. But with Java, if you are familiar with it already, you would probably learn Android Faster. And yes most of them are transferable :)

I also had experience with Java, mostly in the University. But if you learn Kotlin or Swift, you won't go back anymore to Java :P

Thread Thread
 
alchermd profile image
John Alcher

On average there's a lot more Android jobs (which is to be expected, isn't it?). Though I'm looking at it as a career option down the line since I'm pretty much set with webdev at the moment, and iOS seems to be the higher paying path.

I also have another question: is iOS development strongly tied to an IDE? For example, working with a non Java/C# web stack, I can probably function (with some loss in production) with just vim and a terminal, and a lot of people do this professionally. Unlike Java and C# where development is almost synonymous with an IDE. Can the same be said with iOS?

Thread Thread
 
nunovieira profile image
Nuno Vieira

Yes probably iOS is the higher paying path right now for some reasons. Because not only is for a premium market, but also there is less iOS Developers than Android ones, even though there is more Android jobs. The reason for this fewer iOS Developers, it is because a lot of people already had Androids back then, and were familiar with Java, and probably nobody wanted to touch Objective-c.

Yes, it is a bit tied to Xcode, you can use also AppCode from JetBrains, but if you want to use storyboards and xibs you need Xcode for that :/ You can use vscode and vim to edit fast stuff in swift, but nothing more than that !

Thread Thread
 
alchermd profile image
John Alcher

This has been a great exchange. Thanks a lot for your time!