React Native challenger, using Dart
There’s certainly complaints to have about Google, but to me, Dart just seems like one of the many perfectly likable technologies out there that hasn’t had the hockey-stick growth its creators might have hoped for (outside Google, so far). Could be sort of cool if it does.
Flutter / Dart’s hot reload functionality is kind of amazing.
Could you elaborate a bit on why (when compared to literally any other framework that supports it, such as Ember, React, Vue, or Mithril)? This is something I’ve honestly just come to expect at this point from a decent SPA framework.
I’m not aware of JS engines being able to hot-patch live objects with new versions of methods. With Dart’s hot reload as you modify and add methods the new code is deployed to object instances that keep their data. It makes for a pretty smooth iteration flow.
I think it’s that it provides it in a mobile context. React Native does too, if I’m reading right, but default iOS and Android toolchains don’t, so mobile devs are a lot less used to seeing their code live in seconds on-device than Web devs.
Android does support this since Android studio 2.3, it’s called instant run.
Here are some scattered thoughts from when I spent a Saturday a few months back just seeing how Dart worked and throwing a toy screenful of widgets together on my phone: https://news.ycombinator.com/item?id=14433308
Short version: I liked hot reload, and the IDE-ish luxuries were great, especially for learning it. It had some surprising odd bits and bumps setting it up, detailed in the link. I’m not a mobile dev, just playing around, so don’t give my reactions too much weight.
AFAIK it should be [native looking] not [native]. There are two meanings fit native. First is that code is compiled to binary native to the CPU - Dart is not compiled. Second is that it uses native controls for look and feel - Flutter draws everything itself. Second meaning in this context is more useful. It may look native, but every system update requires work to make it look native again. Not saying that it can always be slightly off, especially in feels department.
React Native uses native controls, so they have somewhat overlapping use cases, but one can do what other cannot.
Also what’s with the AI tag?
As far I understand it, Dart is indeed compiled — see here under “how does Flutter run my code on Android?” and the related iOS entry at https://flutter.io/faq/. I think it’s fair to label this “native”, even though it doesn’t use the OS’s native UI controls.
Thanks I stand corrected.
Interpreters are allowed on iOS, but only for code included with package or user created.
It’s more an obsession for AOTing everything, because most code bases are mostly homogenous. So for example the computation heavy code will be written in the same language as the UI glue code. For better or worse.
Also what’s with the AI tag?
Fat fingers at my end, looking for an android tag when posting from a mobile. Apols