
Ask HN: Switch from Web-Dev Freelancer to Mobile Freelancer? - AlexAmee
I do mostly Spring Boot and Angular stuff.<p>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.<p>It&#x27;s really hard to find clients with 100% backend work and therefore I have to do quite a lot of frontend work.<p>So I figured, maybe I should switch to mobile development ?<p>The cons are obv. It would take some time to be productive and it&#x27;s much harder to find clients without any app in the app store.<p>Any suggestions what I could do ? 
Do I need to know Android as well ?<p>I&#x27;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 ?<p>What do you guys think ?
======
mikece
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.

~~~
AlexAmee
So basically the demand for native IOS devs is shrinking based on point 3?

~~~
mikece
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.

------
hotdog97
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.

~~~
hotdog97
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.

