2 ms·
Ask HN: Learning Android development and I'd like some guideance
TL;DR
Recently learned React, a bit of Flutter, but instead of learning React Native, I'm learning directly native Android Development after finishing my first app on Flutter. Doing this because I'm developing some apps for myself and also publishing them for free (no ads or any crap) on android only. Should I consider React Native instead since I already know React?
Long version:
I'm a 43-year-old freelance designer art director who studied to be a sysadmin (this was before dinosaurs got extinct to be fair) but ended up working in advertising.
Past five years or so, my mother got sick (brain stroke) and I had a really hard time keeping up with my freelance business whilst I had to take care of the recovery, accompany to rehabilitation, doctors reviews, or help at home because I couldn't afford to hire a full-time nurse, so I've been mostly living from savings and a few sporadic jobs.
Nevertheless, the thing about this is that while I've been taking care of all this stuff, I've had some spare time, waiting in the hospital for hours or waiting between rehab sessions, you can have an idea. I took the opportunity to dedicate this time to re-ignite my nerd-self and started a web dev path with react and typescript. Also a few months ago published my first android app done in Flutter.
I have a friend with lots of experience who asked me Why I'm not learning React Native instead since I know already React and he pointed out like that would be the "correct" path.
So with all this, am I really making a bad call going with the android route or Should I consider React Native? Maybe because I don't have plenty of years of experience there is something I'm not foreseeing?
The intention of this is to gather some insights about the topic and sane debate, not start any holy war Native vs Not native. Many thanks!
- muzani 5y agoI'm a native Android developer. Native Android is a good choice if you're going deep. For example, our app does things like voice call interfaces, verifying that photos are legitimate, verifying that a selfie comes from an actual human and not a photo. These are use cases for native development. Most of the use cases here are Android-only or iOS-only and creating plugins for both are a nightmare. The downside is you have frameworks like Jetpack and MVVM+repository architectures which take years to pick up and plenty more time to maintain and update. You probably won't be able to compete with someone like me who's been in it for 9 years or so. If you're doing a CRUD-style app, Flutter is your best bet. It's fast, it's easy, and there's enough of a learning curve to be valuable. There's substantial demand for Flutter. It was developed purely for apps, unlike RN which seems to be somewhat hacked together for it. React Native does not seem to have much advantage over Flutter, but some companies do it because it's easy to hire when everyone uses React for everything. It's not a great career path, but if you know React, it's lower cost. Do not touch Cordova/Ionic. I did it for a year, and I'm strongly against it. Salary and work experience wise: Android pays the highest at the top 10% range, I'd say because certain companies need specialist things done, or optimizations for low budget/large markets like India and Indonesia. However, as a median, Android seems to pay lowest out of the three. Median-wise, React and React Native pay the highest, but Flutter is close. So if you're looking for a job soon, it's probably these two. React (Native) will probably unlock the most job opportunities, so it's great as a skill that pays the bills.
- flrnd 5y agoInteresting point about picking up with Jetpack and MVVM. I agree with Flutter, I developed an app in less than a month with only few hours a day with no prior experience. I added a comment later because I couldn't with the 2000 char limit, but I'll keep doing freelancing jobs and not sure if I'll use this with clients. For the moment I'm developing tools for myself both web and mobile apps whilst start freelancing full time again (with some hope, this september). So, while it's interesting doubt I will join the job market anytime soon. But thanks for that info because who knows?
- muzani 5y agoBy job market, I mean freelancing too. In some contracts you'll be building a Most Viable Product from scratch. Flutter is better at this, don't need to real with the mess that is adapters/recyclerview/viewholders. A lot of the projects at this stage don't have high budgets though, and often they want to hire one dev instead of two. In more senior contracts, you'll be rewriting an app from scratch or redoing the architecture. I did work with a freelancer for half a year, the Jetpack experience and ability to just jump into the code was essential.
- theflyinghorse 5y agoif Flutter production ready at this point?
- muzani 5y agoYes, it's been used for transferring money. I hear the test suites and architectures are just as solid as Android's but haven't gone that far myself.
- deleted 5y ago[deleted]