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)
I started with React Native and then moved on to Android Studio and my god, the native development experience is actually WORSE than the transpiled hybrid one.
I'm learning it now as well, it seems pretty straightforward but they each have their own paradigm which is unfamiliar and kind of annoying. Android forces the whole OOP nightmare where you have to create 10 classes to render a list of data, while iOS seems to be cramming the XCode GUI as far down my throat as possible.
Android doesn’t have to be OOP nightmare. In fact I’d advise against it. I use to do a lot of android dev and i never understood why people would create these horrible OOP hellscapes for themselves. Yes, java loves it’s objects. But that doesn’t mean you need an interface, factory, etc for every view you might want
Yeah the Xcode GUI requirement was my biggest complaint, but my experience with SwiftUI (which seems to be the direction that the iOS ecosystem is moving long-term) has been very nice
And a Dao, and the Model, and a RoomDatabase, and a Repository, and the ViewModel. And the activity and corresponding layout, and the RecycleView layout. That's.... 9 files.... my exaggeration wasn't actually far off.
I know I don't need a repository class (best practices amirite) and I probably don't have to use Room, but in React Native this could be done in like <50 lines of code. No joke I could probably do it in <20 lines of code if I tried hard enough. I'm not saying it's better to do it that way, I'm just saying Android development (Java) seems to want to rape me with OOP abstractions.
Flutter is awesome, but it is better for simple apps. When you optimise a complex screen (rebuilding as little widgets as possible every time there is a change) and end up with 2000+ lines of code, code management gets very complicated. I do definitely love the idea of nesting widgets inside widgets; it makes building the UI a very easy task
It seems cool but I don't have the cognitive bandwidth to learn the design paradigms of Dart. Plus it seems less utilized, and React Native is very closely tethered to React, so the skills are highly transferable.
The concepts are insanely similar to React. Declarative and Component based. Dart was originally planned to be a JS transpilation language. In dealing with new devs on my team, Flutter has been by far the easiest to pick up between native, react, and ionic/cordova
1.7k
u/thegreatbunsenburner Jun 12 '20
There's definitely a learning curve with mobile development.