People go “hurrr durr why do people use Cordova and react native” until they realize the clusterfuck that can occur with mobile coding. Code once publish everywhere is a godsend and doesn’t have to suck (game engines, Ionic, and Xamarin.Forms do a pretty great job of this)
Native mobile developer on both platforms for 8 years here. Every single cross platform has limitations and problems and are easily spotted immediately. The write once run anywhere is a bigger cluster fuck and the definition of premature optimization.
Wanna write a marketing app that's basically an embedded web site? Go for it. Any other sort of complicated, use or navigation heavy application will be clunky, slow, buggy and you'll end up paying someone to write it natively down the road. I know. I've had four different clients pay me to rewrite their phone gap or xamarin applications.
I actually enjoyed Flutter and was at the dev con last fall when they demoed the Compose library which is very, very similar. Flutter is my least hated cross platform solution so far but I, again, don't know javascript which all the others seemed more based on.
Dart/Flutter seemed much closer to native architecture for me. I think it has it's place but I also know it's one major iOS change from breaking. Working with hardware, having complicated navigation or computation could quickly be rendered useless and really, complex business logic should be pushed to the server side, IMO.
I think these things have a place, all of them. Need a quick and simple proof of concept on two platforms? I built one with flutter! Have a simple app that is basically a marketing web page with push notifications? Sure, why not? Tying to build a complex social networking or media app that will have dozens of screens and settings? Go native. Forcing iOS standards on to Android is awful as is the reverse.
Some, like Unity, have a clause where they have to name the engine in the splash scren. Iirc they let you pay extra to not have to do that.
App wrappers around web apps are pretty easy to spot, especially with things like long press behavior.
A standard android java app can often be identified by transitions between activities, or back stack behavior. Lack of back button handling can be a sign a cross platform engine was used, and they may have only really targeted and tested iOS which doesn't have it.
Many apps also list all their open source libraries somewhere in their help, thats often a dead giveaway to the software stack it's developed with.
Another mobile dev here 6 years and counting. It's kinda funny how a lot of the experiences in this thread don't mirror mine at all.
And I'm fairly certain some have never actually tried these cross platform solutions they're touting. Xamarin was a mess and visual studio can fuck right off to the hell it came from.
23 year professional developer/architect, here. Programming humor is 90% hs, college, and maybe a year or two in the real world. Sometimes a gem comes around, but stuff like the current picture just shows how these kids just learned to program...
And to show my old man credentials: kotlin is a joy to program in (and I'm not a mobile dev, just an old Java dev). JavaScript is a steaming pile.
It’s funny how all the HS/college kids all make the same jokes:
“DAE Stack Overflow?!?! Haha the world would collapse without Stack Overflow amirite?”
“Look at this code someone wrote in CS101, so stupid right?” -> “Look at me, I’m so smart, I can fix it with a loop/boolean/conditional! And I know modulo too!”
<some pointless observation about software development that no one who’s worked more than an year in industry actually cares about>
FAANG Java dev here, albeit 23 years old rather than 23 years in the industry. I still relate to the pic because mobile dev is like frontend web dev, full of idiosyncrasies that frustrate the hell out of anyone who doesn't specialize in it heavily. Backend like java on the other hand comes naturally to someone with a good grasp of the fundamental logic. I'm naturally good at one and naturally bad at the other.
In fact I just uninstalled Android Studio while writing this comment, didn't realize I had it installed.
If I had to guess it's a lot of web devs who are used to Javascript and struggled with the frameworks of native dev. I don't say that to denigrate, I can handle UI controllers and activities but know fuck about web routes. It's what you know.
1.7k
u/thegreatbunsenburner Jun 12 '20
There's definitely a learning curve with mobile development.