An entrepreneurial view on coding apps

The proper computer scientist will tell you an app should ONLY be made in Java for Android, Swift via XCode for iOS, both latching onto a server script (PHP? Python? Go?!?!?!) that feeds info from the two apps into, and back out of, the SQL database. Indeed, this is the fastest, most robust and secure way to build an app.
If you're on a team where each person has each specialty, yes. Absolutely.
But what about one guy? The hack who makes apps for everybody.
For her, him, me and us, this post could be subtitled:

Why React Native Is The Greatest Thing Since Sliced Bread.

I'll tell you why. And most of this won't have anything to do with the niceties of computer science, I admit. Because I can hear you already yelling at me about how much better Swift performs than Node.js and how much better Java is as a language than Javascript...and I am not arguing those points. At all.
But freelance clients don't care about any of that. They want app and they want now. They don't care that hard-coding for Android and iOS require different languages and different approaches and different technologies that experts specialize in (and charge more for). They don't want to hear that stuff. Their minds are on their bakery or detailing shop, and all they know is all their competitors have apps so they should have one, too.
I admit a lot of this has to do with the classic development triumvirate - laziness, impatience, and hubris - being a big part of my personality. Since the creation of the iPhone turned the world upside down, I have relegated myself to struggling with the monstrous software behemoth known as XCode, and it's dreaded rival, Android Studio. They're big - like 4 percent of my hard drive big - and bloated and hard to use. (It could be worse, I know - it could be Objective C I'm up against. Oy vey.)
I'm a bad programmer because I want the technical issues to go away and to just code, design and optimize - not really in that order. And now I can basically do that, without touching XCode (OK, I do have to use the Simulator since I do not own an iPhone and don't anticipate buying one). Check these command lines:
It begins with:

create-react-native-app sum-dum-app

And try it with:

yarn start

That's yarn start, not npm start. npm does not play well with High Sierra, yarn is much better at linking everything together and making it work...seriously, just use yarn start.

And ends with:

exp build:ios || android

Isn't that sweet? Short, too. And what a load off my old Macbook's CPU.

"Hey, you idiot, what about performance?! Everybody knows React Native sucks in that department!" First of all, every time I hear intense discussions about optimizing performance and load testing and benchmarking...I get that it's important, but I can't help but keep thinking of this:

Trigger Warning: Louis CK
Pretty much none of your freelance clients are going to be building stock market live data or theatrical presentation software. (They may want to, until you tell them how much it will cost.) In which case, absolutely, build the back end in C++ and hard-code the front in Java and Swift. But that's not who's hiring lone wolf coders. Those people are small businesses, and they want an app for their customers to book a table or repair job or similar stuff. You're pretty much not going to read hits on your server in thousands per second for that kind of service. You can add Google Analytics to impress them with all the people from all over the world who hit their app if you like. SEO is the proper array of keywords.
Not that small business clients aren't important. Every client is important, regardless of how much you love to bellyache about them at the bar or on Facebook. And you know it. It's all important.
But you're never going to get a job or a position at a high-profile consulting firm until you've
a) graduated with a 4 year Computer Science degree from a good school (good luck with that, fellow middle aged nerds) or
b) built a massive record of doing top-quality work for everybody.
To that end, you're going to need to know how to implement all the bells and whistles they want as close to the minute they ask for it as possible. So code!

Make practice projects with working templates ready to pillage for code to be repurposed. This is a use of Upwork, in that the job feed is full of prompts to motivate you to start projects and create a dynamite React Native portfolio. Which is in pretty high demand on that site at any given moment.
That and Wordpress. Do not get me started on Wordpress, please.

CORONAPANIC 2020 OBSERVATION: This all applies to Flutter+Dart as well. Or Rust+WASM (by Ashley Williams) or Rust+GTK, or that MyGoRe stuff I talked about in another post here.
The game changes fast. How long can you stay on the treadmill?

Shop Gaiam Yoga

Comments

  1. A friendly reminder that all comments are moderated. Don't be a jerk! Thanks.
    Best,
    Mario

    ReplyDelete

Post a Comment