I have a couple of android app PoCs in mind but didn't want to go down the Android SDK way which IMO is becoming more and more complicated and verbose with every release.
Just tried Flutter and React-Native yesterday for the first time, and I'm sorry to say both were sorely disappointing.
Flutter was easier to install and get working, but Dart seems to be as verbose as Java with some JavaScript style syntax mixed in. The main dart file was as verbose as a boilerplate native SDK Activity.
RN was worse, though I expected it to be simpler. Something called metro server nearly froze the entire machine on every attempt. Had to power off and restart about 5 times. Then, based on GitHub discussions, built something else called watchman from sources. The official docs don't mention that watchman is critical. That improved it for a while but then the system wide near-freeze came back again. I wasn't even able to display a simple hello world app because of installation and deployment problems.
So far, Kivy seems to be the only alternative that is both simple to code and to deploy. Its file sizes are massive, but given that I already find Android SDK so frustrating to design and implement quickly, I don't want alternatives that are equally frustrating.
While it's good feedback to the respective project owners to make onboarding easier, it is a mistake to judge tools based on < 1 day of usage (which is almost entirely onboarding angst). You are only experiencing one, relatively infrequent transient story, not the steady-state one.
In the beginning of a devs experience framework code appears to eclipse app code in size and complexity, but over time the app will tend to grow to overwhelm the framework.
Yep, React Native has horrible dev experience... this is what drove me to Flutter. Dart may be ugly but after you get used to it it's mostly "Typescript done right" imo ;)
...ok, tbh TS has a much more powerful and expressive typesystem then Dart, otoh it also works with the constraint of being a superset of JS hence some things are forced to be the way they are since they sit on the foundation they sit.
I don't really like Javascript as a foundation so I'd almost be inclined to throw away a superior type system in order to have the bedrock be something else, opinions might vary though, I know.
And probably we'd all have loved to have Kotlin instead...
> And probably we'd all have loved to have Kotlin instead...
For what it is, I quite like Kotlin (particularly when placed against Java, of course), but I would not want to give up structural typing for much of anything in 2019. It makes writing obviously-correct code significantly easier.
Unfortunately the fact that TS is another layer on the top of JS makes the system more error-prone. This was one of the issues I encountered when fiddling with React Native. Too many moving elements in the stack would lead to frequent configuration problems, or the transpilation breaking debugging in weird ways, etc. And once things finally clicked in place, some component was updated, and the vicious circle would start again.
Just tried Flutter and React-Native yesterday for the first time, and I'm sorry to say both were sorely disappointing.
Flutter was easier to install and get working, but Dart seems to be as verbose as Java with some JavaScript style syntax mixed in. The main dart file was as verbose as a boilerplate native SDK Activity.
RN was worse, though I expected it to be simpler. Something called metro server nearly froze the entire machine on every attempt. Had to power off and restart about 5 times. Then, based on GitHub discussions, built something else called watchman from sources. The official docs don't mention that watchman is critical. That improved it for a while but then the system wide near-freeze came back again. I wasn't even able to display a simple hello world app because of installation and deployment problems.
So far, Kivy seems to be the only alternative that is both simple to code and to deploy. Its file sizes are massive, but given that I already find Android SDK so frustrating to design and implement quickly, I don't want alternatives that are equally frustrating.