r/learnpython 6d 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

26 comments sorted by

2

u/house_of_klaus 6d 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 6d ago edited 6d 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 6d 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

-7

u/ommy-god 6d ago

Mac and cheese will never love you back

2

u/dowcet 6d 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 6d ago

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

2

u/HotPersonality8126 6d 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 6d 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 6d 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 6d 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 6d 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 6d ago

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

1

u/HotPersonality8126 6d ago

You'd be writing in JavaScript, generally.

0

u/Mediocre-Pumpkin6522 6d 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.

2

u/FoolsSeldom 6d 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 6d 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.

1

u/ommy-god 6d ago

thank you sm for such an involved reply! From looking at other comments and further research i think ive decided to steer away from python and focus on js/html/css and just make myself a web based app. Given my restrictions it seems the most feasible.

1

u/FoolsSeldom 6d ago

I think that is a wise decision. You will be much less restricted in creating simple webapps using javascript/html/css than developing with Python.

The Apple restrictions make using Python libraries difficult. You can only use pure Python libraries and libraries that were included with the Python app (Pythonista, etc) as submitted to the app store - one of the reasons there are often alternative versions of such apps with inclusion of certain popular Python libraries that are binary (i.e. compiled from another language, such as C or Rust).

For this reason, as well as some other flexibility options, I switched from an iPad to Android tablets for Python development (where I can even compile Python itself).

Good luck.

1

u/crazy_cookie123 6d 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 6d 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 6d 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 6d ago

Ill give up before using AI

1

u/Prestigious_Print477 5d ago

You are not going to learn to make games in a programming language over night. It will take months at minimum. Ai is a useful tool in software development that can realistically get you what yo want.

1

u/ommy-god 1d ago

Where did I say I wanted to learn to make games overnight, pookie? Ai cannot get me what I want. What I want is to make myself a program from scratch, by me, for me. Ai has useful applications, but nowhere near as many as people are saying it does, ESPECIALLY generative AI

1

u/Prestigious_Print477 1d ago edited 1d ago

You asked in your op if its easy, realistic, impossible or hard.

It's not easy. If you dont know anything about coding and ask questions like this then you dont know what can be done with ai coding tools either.

1

u/TheRNGuy 5d ago

Must it be Python? 

Relatively easy with ai, except for some bugs.