I have no idea if there is something like that, but I know there are a lot of different tools to create an android app (Android studio with Jetpack compose, React Native or Flutter).
Anticipate technical debt and follow what Google recommends. In few words, use Kotlin and Compose.
However you should really have a look on Google guidelines. In more worlds:
- by default Kotlin and Compose
- in some logic to share between other proxies in other environments: Kotlin Multi Platform (KMP)
- if shared UI: Flutter (but Google reduced Flutter teams and KMP is being better and better, so we can suppose Flutter will join the Google Graveyard
Thanks!
Depends. I made one in tauri and it was a good fit because I already had a web frontend and rust backend. I was able to reuse both of those with minor changes, now the same code builds the app and the web server/frontend.
I’d probably go native if:
- you’re only developing for android and don’t care about desktop/ios/etc…
- UI performance is really important, like for a game
- You want to minimize app size
- You aren’t skilled at web front end development
With tauri, if you need phone apis that aren’t in the toolkit already you’re going to jump through some hoops going from javascript to rust to kotlin and back again. Its a significant barrier, you’re handling serialization/deserialization of function arguments/results in 3 different languages.
If I were to use Tauri, I would also need to learn Rust…
Not necessarily. Most plugins for Tauri support being configured on the JS side of things quite well. You can achieve a total HTML/CSS/JS or using a JS framewframework with very very minimal Rust code modifications.
I dabbled in creating a GUI for password-store with Tauri and SvelteKit and managed to create everything without barely having to touch the Rust code. Of course, if you want to optimize and make it more efficient you’d probably want to port the code over to Rust as it’d most likely be a bit speedier for some tasks but in general you can go all the way in skipping the Rust partion of things!
If you only will use what’s in the standard tauri js api, or in the standard plugins, then technically you don’t need rust. But yeah I think if you wrote a bunch of apps in it you’d inevitably want to make your own plugins or backend code, and then you’d need rust.
I’ve tried Tauri, and I’ve successfully built a desktop app and run a web app, however I couldn’t successfully built an android app because I need to create key.properties (I’ve no idea why it isn’t on the website) I’ll probably try something with it tomorrow
yeah I’ve gotten android to work but its been a journey. still feels a little underdocumented and bleeding edge, but then again got it working finally. look to the examples and not the docs IMO
Android Studio and Jetpack Compose is going to be the path of least resistance, but i’d need to hear more requirements to make a real recommendation (besides try to avoid React Native unless you have a really good reason)
Why should I avoid React Native?
it’s just a lot of complexity, especially if you’re targeting only Android. it’s single threaded and not native to the platform. you’ll be behind on platform versions and have to find shims for everything. you’ll run into weird issues for which the fixes are not supported by the native platform. the more layers you put in between you and the native runtime, the more things can go wrong
Thanks!
I use Flutter professionally and really like it
Depends if you want the things you learn to help you in future career paths, I chose to learn flutter because I wanted an app cross platform on all devices and not just ios, android and web which is what react native offered (plus no good full storage access of device, cuz damit I had visions), but it’s difficult to find a position as Flutter Dev without at least 5 years of experience.
Depends on what you want to do, what you know, and how much effort you want to put in. For other ways, outside the usual Android tools, there are a couple options. With python, there’s a project called BeeWare that makes a lot of things easier to deal with.
Personally, though, I’ve been game deving in Godot, and have even made a few dumb little personal apps with it. There’s coding involved, but there’s also a lot you can do in the interface to design the app visually, and exporting to any platform is pretty straightforward. Even the Godot editor itself is made with the Godot editor, so it can do a lot of things outside games.
I’ve made apps in tons of different ways, kotlin with jetpack compose, react native, cordova, old school java activities.
Imo cross platform is the way to go, react native has been the easiest to maintain for me, I have 4 production react native apps that have been fairly successful and easy to maintain. My two biggest complaints are the difficulty of running on desktop, and the pain of upgrading react native versions. Expo sucks but it’s the best we have and does help with upgrading.
Flutter is fine, dart is not my favorite but it’s definitely worth looking into.
I looked into the tiktok platform, didn’t really speak to me tbh