this post was submitted on 12 Mar 2024
37 points (100.0% liked)

Programming

17655 readers
209 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities [email protected]



founded 2 years ago
MODERATORS
top 29 comments
sorted by: hot top controversial new old
[–] [email protected] 25 points 9 months ago
[–] [email protected] 19 points 9 months ago

There's actually a Python-based framework that can make mobile apps called Kivy, but as you might expect it would not be terribly performant.

[–] [email protected] 8 points 9 months ago (1 children)

I am following BeeWare for some time now. From the website:

Write your apps in Python and release them on iOS, Android, Windows, MacOS, Linux, Web, and tvOS using rich, native user interfaces.

Never tried it, though.

[–] [email protected] 1 points 9 months ago

Interesting, thank you!

[–] Solemarc 7 points 9 months ago* (last edited 9 months ago) (1 children)

When it comes to mobile apps, I generally recommend native (swift/kotlin) or Flutter, they all have good tooling and have good performance

In this case though, they are all curly braces languages and don't have much in common with python.

If you don't want to learn at least 1 new language, there are some python libraries/frameworks which can be used for mobile dev. Like Kivy or Beeware. I've never used any of these though so I can't tell you how good/bad they are.

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

Just out of curiosity: which do you think is closer to Python? Kotlin or Swift?

Not knowing wither, my hunch would be to say Kotlin. But I am curious.

[–] ohlaph 4 points 9 months ago

Kotlin and Swift have similar syntax and neither are like Python to be honest. If I were to pick one, Kotlin all the way. You can do a fair amount of back-end work with itas well.

[–] Solemarc 1 points 9 months ago* (last edited 9 months ago) (1 children)

I've never used swift myself, but as far as I'm aware swift doesn't need to have a main function so I'd say it's closer

[–] themusicman 2 points 9 months ago (1 children)

That's a weird way to compare them...

[–] Solemarc 2 points 9 months ago (1 children)

Sure, but how else should I compare a language I've never used to python?

[–] themusicman 1 points 9 months ago (1 children)

Even in python, writing code at the top level is not recommended for any non-trivial project. I mean, you might as well say "kotlin is closer to python because they both end with N". Neither method of comparison offers any value to OP.

[–] Solemarc 1 points 9 months ago

And I said, if op doesn't want to learn a new language, here are some python mobile frameworks. And was explicitly asked which of kotlin/swift I would recommend for a python dev.

[–] [email protected] 7 points 9 months ago* (last edited 9 months ago) (2 children)

I know I won`t make friends with this but check out B4A.

Its a "BASIC like" syntax (no its not basic spaghetti code) in a RAD environment that outputs native java code apk.

Its free and a good support forum. You could even put your app on the store

Edit: you could also compile to java for pc and ios software

[–] [email protected] 4 points 9 months ago (1 children)

You had me at "BASIC"! I'm going to check it out.

I think that BASIC has historically been my most productive language. My favourite implementation was something called "Z-Basic", a compiled BASIC with device-independent graphics that could run on and target Apple//, Mac, and PC.

[–] [email protected] 4 points 9 months ago* (last edited 9 months ago) (1 children)

I made some apps for my own use.

One is a food score browser. It connects to an offline database supplied with the apk and shows search results in a scrollable list as well as details on select. You can search in english and german the same time.

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

It looks like I need a Windows machine (or VM or wine). Is that correct?

[–] [email protected] 2 points 9 months ago* (last edited 9 months ago) (1 children)

VM should work. For B4i (ios) you need also a mac for compile afaik.

The output runs on win, linux, server, mac, ios, android or arduino. Depending on what you used b4a, b4i, b4j or b4r. The syntax is the same eveywhere.

The crossplatform libary b4x pages makes sure that the same program look and feel can be compiled to various platforms without to much hassle.

[–] [email protected] 2 points 9 months ago
[–] [email protected] 2 points 9 months ago

This is interesting, thank you!

[–] ohlaph 6 points 9 months ago (1 children)

These days, you have several options. You could use JavaScript/Typescript via React Native which builds both iOS and Android.

You could use Kotlin Multi-Platform, builds both iOS and Android, vut I believe you will need to know some Kotlin for Android and Swift for iOS.

You could use Flutter, which uses the Dart programming language, also builds both iOS and Android.

Then there is MAUI using C#, builds both iOS and Android.

Finally, you could resort to native for each platform.

As you can see, there are plenty of options. Picking one comes down to what you need and which language works for you. Keep in mind, most of the languages aren't really close to Python.

Good luck.

[–] [email protected] 2 points 9 months ago

@ohlaph @nieceandtows yeah, we're really spoiled for choice nowadays in cross-platform mobile development. It's been a few years since I've shipped anything with Flutter, but I remember the developer experience being superb. And from what I hear, Expo has really made a big impact on React Native development the last few years.

[–] [email protected] 6 points 9 months ago (1 children)

You could use React Native, so the language would be Javascript / Typescript.

[–] [email protected] 1 points 9 months ago (1 children)

If the goal is cross platform mobile apps, this is the answer.

[–] [email protected] 1 points 9 months ago

You can write cross platform mobile (and desktop and even browser) apps with Kotlin.

[–] [email protected] 4 points 9 months ago (1 children)

I've never made a native mobile app. I've made a couple of web apps designed for mobile devices, and for those I used HTML+JS when it was really simple and React with Typescript for anything more complex. I choose those options mostly because they're what I'm already familiar with from work.

[–] [email protected] 2 points 9 months ago

That makes sense, thanks

[–] [email protected] 4 points 9 months ago (1 children)

I pretty much agree with everyone else said. I just want to say that I don't recommend xamarin. I had to work with it at a job and it's a massive headache imo.

[–] ohlaph 2 points 9 months ago

I think xamarin has been replaced with MAUI.

[–] disconnectikacio 1 points 9 months ago

Flutter with Dart