r/learnpython 16h ago

Is this realistic? Easy? Impossible? Cumbersome?

TLDR: how feasible is it to make an extremely rudimentary “app” solely for personal use using only an iPhone and iPad (with occasional access to a friend’s Macbook), that can be used and updated on (/across multiple) iOS devices?

~ ~ ~ ~

I have next to no knowledge of code but I’m a good learner and love a new project. I want to make myself a gamified productivity(etc.) “application” that only needs to be for personal use. Just me. And honestly it can start just as a rudimentary glorified to do list.

Ive been researching for a few days, and python seems to be the most approachable language for the job, but at this point my head is swimming a bit, and i just wanna make sure what i want is feasible before I sink any money and a lot more time lol. Id appreciate any advice!

My restrictions:
-must be easily used and updated from iOS devices. Preferably across multiple.
-I can only write/edit from iPhone and iPad, with limited access to a (family member’s) Macbook. Might be able to locate external keyboard.
-I got next to no budget lol (could possibly make small otp for something like Pythonista, MAYBE an inexpensive subscription for something).
-I want as little to do with AI as humanly possible.

How doable is what I’m imagining? The most recent possible roadblock Ive come to is that, from what ive researched, Pythonista seems like a good IDE for iOS, but I dont think id be able to use it as a reliable virtual environment(?).

Thanks in advance! ^^ <3

~ ~ ~ ~

EDIT: specified it doesnt need to be a full on app with bells and whistles. I just want to start with a glorified to do list essentially.

0 Upvotes

21 comments sorted by

2

u/house_of_klaus 16h ago

Writing an app is a huge undertaking for someone new to programming. Even for someone who has a few years of experience. Not realistic. Not saying you can't do it, but it would take a long time to get to that point.

1

u/ommy-god 16h ago edited 13h ago

I kept thinking app was maybe a strong word for what i had in mind. It really can be the most rudimentary thing to start out with. A glorified to do list. As the years go on I can build on what I have.
Edit: spelling

1

u/ilovemacandcheese 15h ago

What you don't seem to understand is that there's a lot of fundamental stuff to build what you think is a simple app. What you describe as a glorified to do list app is really not that simple at all. It can be a good project to learn from, but you're probably not going to build anything useful, even just for your own use, as a beginner

-5

u/ommy-god 15h ago

Mac and cheese will never love you back

2

u/dowcet 16h ago

can only write/edit from iPhone and iPad

This is a pretty big constraint but if your app will be a simple text based CLI, maybe you'll get through it. Check out browser-based environments like Replit.

1

u/ommy-god 15h ago

Im hoping an Ipad with external keyboard and sometimes a macbook would get me through heh

2

u/HotPersonality8126 16h ago

It’s not that it’s hard; it’s just that it costs $100 a year. You can’t provision an app on the platform without being a registered Apple developer and that’s what it costs.

When I want to deploy simple apps on phones - like my own - I build them as web apps and then just host the page at GitHub pages or something.

0

u/ommy-god 16h ago

Oof yeah I saw that “option” lol. Too rich for my blood.

If I go the web app route, would I be ditching python? Or would I have to learn an additional coding language to put what I make with python on the web?

2

u/crazy_cookie123 16h ago

Is there a specific reason you need Python at all? Given that you already have all these other restrictions with your low budget and you developing on a phone, I would suggest not being too picky when it comes to the choice of language.

0

u/ommy-god 15h ago

Nope i dont need python! And id be using an iPad (with an external keyboard i think), and i could occasionally use a macbook if itd help when i run into serious tricky bits.

2

u/crazy_cookie123 15h ago

I would suggest pivoting entirely to JavaScript and building a website. That's far easier to build and test than a proper mobile app especially on bad hardware. Depending on what your app needs to do you may have to pay for web hosting but it's otherwise free.

1

u/ommy-god 15h ago

Ah word, ok that sounds like solid advice, tysm! Informative. Relevant. Polite. 10/10 truly

1

u/HotPersonality8126 16h ago

You'd be writing in JavaScript, generally.

0

u/Mediocre-Pumpkin6522 15h ago

There are several Python backend frameworks but you'll need some familiarity with HTML and stylesheets.

https://www.geeksforgeeks.org/python/todo-list-app-using-flask-python/

Barebones but you can find many ToDo examples and flesh them out. The company I worked for tried to develop an iOS app parallel to an Android app but for an enterprise there are too many hoops to jump through. We went with a web app that could be used with anything with a browser.

1

u/crazy_cookie123 16h ago

How low is your budget? It costs $99/year to be able to publish your app to iOS devices so if you actually need it to be an iOS app you'll need to factor that in. If you're okay with it being a website instead it can be a lot cheaper, but you won't be able to use all the features of a native iOS app and you'll likely have to pay smaller annual hosting fees to keep it online.

Either way I would not say that Python is the right tool for the job - Swift, JS, or Dart would all be far better options. While technically you could use Python it wouldn't be pleasant and it could be pretty limiting depending on what you are trying to do, especially with the further limitations you've got of needing it to be for iOS and needing to code on your phone. No development is going to be pleasant on a smartphone, either. While you can technically write code on them you're going to struggle to properly build, test, or deploy anything significant. I would recommend either looking at existing solutions, or if you really want to build something yourself looking into purchasing a cheap, used laptop off of facebook marketplace or something similar, and putting a lightweight Linux distribution onto it so it's not too slow.

1

u/ommy-god 15h ago

I could absolutely go the web app route! And yeah right now I only have consistent access to an ipad+external key board, and i can sometimes use a family members macbook

1

u/cmh_ender 15h ago

can it be cloud based? if so, I wouldn't neccesarily use python and I'd break out the ole vibe coding.

look up free tier of supa base, that will handle your data base / storage etc.

and then the free hosting tier of vercel.

those two combined means you can make a quick web app that is usable across all devices and you dont need a pc... you can use some basic IDE on your ipad and bam, done.

1

u/ommy-god 15h ago

Ill give up before using AI

1

u/FoolsSeldom 1h ago

Yes. Very doable as long as you want some simple Python code to do speific tasks that anyone can run on their iphone/ipad if they are willing to install the same Python setup as you.

There are free alternatives to Pythonista. See below.

On other devices, code updates would need to be downloaded by the user. The "app" could advise them when an update is available.

Alternatively, you could develop a web application that can be accessed over the internet. For a modest app, this could be hosted for free.

Say more about what you want to achieve.


SEE MY COMMENT TO THIS COMMENT for more on learning on a mobile device.

1

u/FoolsSeldom 1h ago

Learning programming is not easy. It is to some extent an art form and a practical skill, not something that can just be learned from books. Practice! Practice! Practice!

To learn to programme is also about embracing failure. Constant failure. Trying things out and experimenting as much as possible. Experiment! Experiment! Experiment!

You have to research, read guides, watch videos, follow tutorials, ask dumb questions and be humiliated (because some people cannot help make themselves feel better by insulting others).

Python is one programming language. It is probably the easiest to learn. It makes learning to programme that little bit easier (but you will have a shock when you try to learn a lower level language like C).

If you have to learn on a mobile device, life gets a little more challenging. Aside from web based environments and apps like sololearn, you need a Python environment on your mobile device.

Android Apps

  • PyDroid 3, this is an excellent app with rich package support and built-in terminal
  • QPython play store, another excellent app but not so keen on this personally, worth a try though
  • Termux provides a Linux sandbox into which you can do a conventional installation of Python (including self-compiling if desired)
    • this is my preferred option
    • a standard Linux environment with a few minor folder location tweaks to accommodate Android security restrictions
    • you can't get this on Google Play, use F-Droid
    • I used to use it with the ACode editor but now use a tmux (multiplex terminal) setup with vim

IoS Apps

  • Pythonista is an excellent and well-polished bit of software with some popular libraries available (Apple restrictions prevent installation of any packages that aren't pure Python that aren't included with the submitted app)
  • Pyto is less polished and works pretty well
  • Carnets is an open source Jupyter clone that works locally and is excellent; there is more than one version, depending on how many libraries you need included (as on IoS you cannot install additional Python libraries that aren't pure Python)
  • a-shell is a sister product to the above and provides a command line Python environment, also open source and excellent
  • Juno Zero-setup Python and Jupyter environment, built natively for iPad and iPhone with many packages included.

Keyboard

I strongly recommend you use an external (likely bluetooth) keyboard with your phone/tablet and ideally an external monitor if your phone/tablet is able to connect/cast to a monitor.

Android native coding

Keep in mind that Android is a Linux-based system, so most things that are available for linux are also available for Android. Native applications for Android are usually written in Java or, more recently, Kotlin. It is possible to write in other languages, and C++ is widely used, but that is much more complex to do.

IoS native coding

For IOS devices, the native apps are usually written in Objective-C or Swift. Again, other languages are possible but it is not trivial.

GUI with Python

Python applications running on mobile devices within Python environments do not look like device native applications and have limited support for typical graphical user interface libraries common on desktops. However, there are a number of alternatives that allow you to write near-native applications in Python.

Flutter from Google

This is an increasingly popular framework for creating applications suitable for desktop, web and mobile. A popular Python "wrapper" is flet.

Kivy GUI for Python

The leading Python GUI for Android and IoS is kivy

You develop on a desktop/laptop computer and then transfer the code to the target mobile (so not much use if you only have access to a mobile device). PyDroid for Android also supports kivy.

There are Kivy-based applications released on both the Apple and Google App Stores.

BeeWare Write once. Deploy everywhere.

A native GUI for multiple platforms in theory. BeeWare

This offers the option to write your apps in Python and release them on iOS, Android, Windows, MacOS, Linux, Web, and tvOS using rich, native user interfaces. Multiple apps, one codebase, with a fully native user experience on every platform.

0

u/Celiux_ 16h ago

let's break this down! you want/have:

  • a personal application that can be used across multiple personal devices?
  • that data would need to be synchronized/updated?
  • you only have access to a mobile device to develop + test your application on

i'll put this nice in that this is a VERY ambitious task, given you've stated you have no knowledge of code. things like that can be done in elemantary ways, but what you're taking on is more than learning python. you would have to learn how to side-load (or whatever Apple calls it) this application, learn how to actually make and build an application, and learn tools to make a GUI for yourself to interact with.

far as I know, python does not have any sort of native support for that, nor have i (personally) heard of such a package. i am not saying this is impossible, but you are asking how to build a car without knowing things like physics; and i mean that as respectfully as i can put it. this is just my years of experience trying to let you know how big this could be, and taking on something big like this kills people trying to learn!

if you're looking to learn python in itself, there are LOTS of online playgrounds/IDE that you can get started with. follow a youtube series and try to come up with some small python projects, then when you've learnt the basics, see what you come up with then!

( please feel free to ask anything, i am glad to shed light where i can :D )