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

Programming

17333 readers
301 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 1 year ago
MODERATORS
top 40 comments
sorted by: hot top controversial new old
[–] [email protected] 26 points 7 months ago
[–] [email protected] 19 points 7 months ago (1 children)

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] 4 points 7 months ago

And there's also KivyMD after you learn base Kivy, that adds more widgets with the intent of following Google's Material Design spec.

I'm not going to vouch for the project, or link, just mentioning it exists.

[–] [email protected] 10 points 7 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] 3 points 7 months ago

Interesting, thank you!

[–] [email protected] 9 points 7 months ago* (last edited 7 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] 6 points 7 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] 5 points 7 months ago* (last edited 7 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 7 months ago (1 children)

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

[–] [email protected] 4 points 7 months ago* (last edited 7 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] 3 points 7 months ago
[–] [email protected] 2 points 7 months ago

This is interesting, thank you!

[–] [email protected] 7 points 7 months ago* (last edited 7 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 7 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.

[–] [email protected] 4 points 7 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.

[–] [email protected] 1 points 7 months ago* (last edited 7 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

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

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

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

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

[–] [email protected] 1 points 7 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.

[–] [email protected] 1 points 7 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] 6 points 7 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 7 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 7 months ago (1 children)

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

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

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

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

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

[–] [email protected] 4 points 7 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.

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

I think xamarin has been replaced with MAUI.

[–] [email protected] 4 points 7 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 7 months ago

That makes sense, thanks

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

Hmm... A bit personal, but Python's old school at this point, and so Javascript might feel like the closest.

Modern-er languages for mobile devs have more language support for building apps in my personal opinion.

[–] [email protected] 11 points 7 months ago* (last edited 7 months ago) (3 children)

Python has never been a big language for app development… no idea why you would call it old school.

To answer op, Swift for iOS; Kotlin on Android.

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

Thanks. Yeah, I wasn't looking for python based frameworks, but rather other languages that are at least somewhat similar and easier to learn/transition to.

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

I didn't say it's an old-school app development language...

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

I know I should just look this up, but I'll ask anyway.

Back in 2013, in grad school, I remember we used Objective C for iOS and Java for Android. Can I still build compatible apk's and iOS packages using these older language choices respectively for modern mobile OS's or am I a dinosaur and need to get with the times (swift and kotlin)?

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

You can still use either.

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

For iOS you can still use Objective C, but there are additions to platform frameworks and whole new frameworks that are Swift first. I don’t really know how hard it would be to use those APIs from Objective C. Swift is certainly the default going forward.

I don’t work on Android but my understanding is that Java hasn’t and isn’t going anywhere on Android. Kotlin is supposed to be great but I haven’t heard mention of Java being dropped.

[–] [email protected] 3 points 7 months ago

Not dropped, but google has suggested all new android projects be done with Kotlin instead

[–] [email protected] 5 points 7 months ago* (last edited 7 months ago) (1 children)
[–] [email protected] 5 points 7 months ago

I didn't say it's not the no. 1 programming language.

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

Flutter with Dart