this post was submitted on 08 May 2025
49 points (100.0% liked)

Android

30387 readers
55 users here now

DROID DOES

Welcome to the droidymcdroidface-iest, Lemmyest (Lemmiest), test, bestest, phoniest, pluckiest, snarkiest, and spiciest Android community on Lemmy (Do not respond)! Here you can participate in amazing discussions and events relating to all things Android.

The rules for posting and commenting, besides the rules defined here for lemmy.world, are as follows:

Rules


1. All posts must be relevant to Android devices/operating system.


2. Posts cannot be illegal or NSFW material.


3. No spam, self promotion, or upvote farming. Sources engaging in these behavior will be added to the Blacklist.


4. Non-whitelisted bots will be banned.


5. Engage respectfully: Harassment, flamebaiting, bad faith engagement, or agenda posting will result in your posts being removed. Excessive violations will result in temporary or permanent ban, depending on severity.


6. Memes are not allowed to be posts, but are allowed in the comments.


7. Posts from clickbait sources are heavily discouraged. Please de-clickbait titles if it needs to be submitted.


8. Submission statements of any length composed of your own thoughts inside the post text field are mandatory for any microblog posts, and are optional but recommended for article/image/video posts.


Community Resources:


We are Android girls*,

In our Lemmy.world.

The back is plastic,

It's fantastic.

*Well, not just girls: people of all gender identities are welcomed here.


Our Partner Communities:

[email protected]


founded 2 years ago
MODERATORS
 

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).

top 18 comments
sorted by: hot top controversial new old
[–] [email protected] 11 points 2 weeks ago
[–] [email protected] 11 points 2 weeks ago (1 children)

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.

[–] [email protected] 3 points 2 weeks ago (2 children)

If I were to use Tauri, I would also need to learn Rust...

[–] [email protected] 3 points 2 weeks ago

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!

[–] [email protected] 3 points 2 weeks ago (1 children)

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.

[–] [email protected] 2 points 2 weeks ago (1 children)

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

[–] [email protected] 2 points 1 week ago

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

[–] [email protected] 8 points 2 weeks ago (1 children)

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)

[–] [email protected] 2 points 2 weeks ago (1 children)

Why should I avoid React Native?

[–] [email protected] 3 points 2 weeks ago (1 children)

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

[–] [email protected] 1 points 2 weeks ago
[–] [email protected] 6 points 2 weeks ago

I use Flutter professionally and really like it

[–] [email protected] 5 points 2 weeks ago* (last edited 1 week ago) (1 children)

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
  • if some logic to share between other projects 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
[–] [email protected] 1 points 2 weeks ago
[–] [email protected] 2 points 2 weeks ago

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.

[–] [email protected] 2 points 2 weeks ago

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.

[–] [email protected] 1 points 1 week ago* (last edited 1 week ago)

Android dev of many many many years here.

Android Studio with Jetpack Compose.

I'd also suggest you try doing kotlin multiplatform. You can take your Android app and end up with a iOS app, and if you want, a desktop app. You would need a Mac for the ios app eventually, but not for the desktop apps.

There is minimal work to get it set up to start, they provide a wizard, and there are a lot of libraries available now that are multiplatform.

IOS and Desktop are both considered stable now, but the iOS beta was pretty solid.

All the apps it generates are native apps.

Even if you don't want to do multiplatform to start, if you use kotlkn only libraries that are capable of it, you could easily switch to it in the future if you wanted to as it'd be structured properly from the start.

E.g for libraries if you use Koin instead of Dagger2/hilt you could switch to multiplatform in the future without much effort. If you chose dagger instead, it'd be a big task to switch. And if you start it as multiplatform but Android only, you'll know which areas still need implementation work later to eventually work on iOS.

[–] [email protected] 1 points 2 weeks ago

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