Hacker News new | ask | show | jobs
Ask HN: Switch from Web-Dev Freelancer to Mobile Freelancer?
2 points by AlexAmee 2931 days ago
I do mostly Spring Boot and Angular stuff.

I love the backend and Spring in general but ... I hate frontend, seriously, there are no words to describe how much I hate this stuff.

It's really hard to find clients with 100% backend work and therefore I have to do quite a lot of frontend work.

So I figured, maybe I should switch to mobile development ?

The cons are obv. It would take some time to be productive and it's much harder to find clients without any app in the app store.

Any suggestions what I could do ? Do I need to know Android as well ?

I'm also a little bit worried about the latest trends in that sector where companies throw a bunch of frontend devs into a mobile project, think react native etc.. this might be an indicator for less projects ?

What do you guys think ?

2 comments

1. Mobile work involves a LOT of front-end work. Going from web to mobile is going from the frying pan to the fire (until you master the framework platform on which you work).

2. Which mobile framework do you plan on using? If you’re a Java dev then Java/Android Studio is a no brainer. Also look at Dart/Flutter both for Android and iOS (and Fuchsia...)

3. A free-lance’s greatest virtue is helping the client realize the greatest return on investment. As such mobile-specific web is all the majority of clients need. Use a stack like Ionic and you get styling, a large set of plugins, a good community to assist, and an Ionic app can output mobile web as PWA or hybrid app for those cases where you need more hardware access than PWA allows or the client insists on having an app in the App Store.

So basically the demand for native IOS devs is shrinking based on point 3?
Vendor Native — Xcode or Android Stidio — is still king but clients typically care more about what your app does for them than how you made it (unless the way you made it adds dozens of megabytes to the final app like Xamarin.Forms does). Learning the vendor-Native stack will give you a far greater understanding of the underlying OS which will set you apart from other Ionic devs who start panicking when an app returns a java exception of Android or similar on iOS.

Doing Xamarin development for a few years taught me that you really need to understand the underlying operating system and how it works. Most of the consulting gigs I got were what I called "bomb squad programming" where a C# web shop decided "How hard can it be?" and embarked on a Xamarin.Form project only to discover too late what they didn't know. When I started mobile work with Xamarin this bit me as well (but I Googled my way out of it quickly enough). These weren't dumb programmers but just because you can expertly apply C# in web development doesn't mean you can instantly apply that in another kind of programming (like multi-threading, desktop, server services... or mobile). The very best Xamarin devs I knew came over from doing ObjC in Xcode or Java in Android Studio. What made them so good is that they understood at a deep level how to write mobile apps. It's like if you do Java MVC web development and switch over to ASP.NET MVC. The concepts are pretty much identical so the only hurdle is adapting to the language/syntax differences.

Really long-winded way of saying: sticking with Ionic initially and making friends with someone who can bail you out and/or mentor you on deeper understanding of the mobile operating systems will pay off.

Based on your description on what you like/hate I think you should go for something slowly changing, like ObjC/Swift or Java/Kotlin. Something were mastership is rewarded as opposed to just copy/pasting sort of working code from some random example on the web that you barely have time to understand because of its inherent complexity.

Explicitly don't go for React (Native) or anything else that has come out of the crazy world of javascripters doing mobile.

Addendum:

Platforms are because of the market dynamics remarkably long-lived. In the case of iOS, the APIs date back to like 1985, with Next Inc. In the case of Android, back to 2003.

The platform-level APIs and frameworks tend to be grown organically, in a way that is quite far away from the yearly fads.

It's really hard to hire people who are actually good at the core aspects of these platforms - most new devs seem to get sidetracked by the latest shiny framework, that will then die 3-5 years later. Meanwhile the platform APIs live for multiple decades, and take a lot of effort to master.