The “native” Android ecosystem has grown way too over-complicated for my liking. I do not want to dependency inject a Reactive ViewModel Room Repository DAO Purpose Factory (without blocking the main thread), I just want to make a god damn app.
My current wishlist is:
- Be reasonably efficient (we’re working with phones here)
- Be completely open source (i.e. I should be able to throw my app on F-Droid when it’s ready)
- Have a not terrible implementation of Material 3/You
- Don’t be too “janky” for the end user (sorry, PWAs)
- Be reasonably mature
What does this leave me with? Flutter? React Native?
You didn’t say which technologies/platforms you’re already comfortable with if any.
Qt QML works for me. It’s declarative, easy to learn, looks good, you can write logic in JavaScript, or have your code on the backend in C++, or Python with PySide. You can easily iterate on the desktop and run the exact same app on the phone, or TV. It’s fast too. And given you want to go open source, licensing is not a headache (unlike closed source on LGPL Qt).
Generally it’s been my UI of choice for years and I’m pretty happy with it, now with excellent Python support even more so (though I don’t know how, or even if, it’s possible on mobile).
Cool. Does Qt have Material You compatible components?
There’s this https://doc.qt.io/qt-6/qtquickcontrols-material.html available as stock style. I don’t know about “You” variant of material design, so I can’t really say if that’s it. There are a couple of style implementations on GitHub as well.
Thank you! It doesn’t quite look like the native android components but close enough.
Flutter will probably meet your needs.
If you’re writing code for yourself, you don’t need to follow the trendy stuff. Native Android can be pretty straightforward if you stick to XML and plain old MVC architecture.
If you want to build an open source app that you don’t want to have maintenance headaches it seems the best future-proof choice.
React Native has a dependency hell problem, and Flutter, well… might be a good choice but with companies cutting costs and the history of Google I don’t know if they will keep throwing money at it to make sure its development keeps on pace. Creating a framework such as Flutter requires a lot of constant effort to catch up with all the supported platforms, reason why there isn’t many similar alternatives.