I am fairly new to programming. So really need kind of an "explain like I am five" explanation. The logic building for an app can be done with python too right? Then why is java and Kotlin recommended to create android apps? Kivy with python should be able to do the job too right?
Or are there any issues when trying to do the latter? I am sure there are reasons given the former is the popular way. But I can't wrap my brain around why it is the way it is. Would really appreciate some explanations.
Also I am asking this because while brushing up my python skills I am wondering if I should learn kivy (or pygame maybe) or just move on to Java and kotlin after this, if my end goals are mainly building Android apps or games.
What is the best way to develop an android app in Python?
Just use the right language for the job. Youll thank yourself later down the line when you dont spend as much time on distribution problems as making your app/game... Speaking from hard-won experience.
More on reddit.comCan python build mobile apps?
Why is python generally not recommended for building Android apps?
Creating android app from Python Code
Videos
To answer your first question: yes it is feasible to develop an android application in pure python, in order to achieve this I suggest you use BeeWare, which is just a suite of python tools, that work together very well and they enable you to develop platform native applications in python.
checkout this video by the creator of BeeWare that perfectly explains and demonstrates it's application
How it works
Android's preferred language of implementation is Java - so if you want to write an Android application in Python, you need to have a way to run your Python code on a Java Virtual Machine. This is what VOC does. VOC is a transpiler - it takes Python source code, compiles it to CPython Bytecode, and then transpiles that bytecode into Java-compatible bytecode. The end result is that your Python source code files are compiled directly to a Java .class file, which can be packaged into an Android application.
VOC also allows you to access native Java objects as if they were Python objects, implement Java interfaces with Python classes, and subclass Java classes with Python classes. Using this, you can write an Android application directly against the native Android APIs.
Once you've written your native Android application, you can use Briefcase to package your Python code as an Android application.
Briefcase is a tool for converting a Python project into a standalone native application. You can package projects for:
- Mac
- Windows
- Linux
- iPhone/iPad
- Android
- AppleTV
- tvOS.
You can check This native Android Tic Tac Toe app written in Python, using the BeeWare suite. on GitHub
in addition to the BeeWare tools, you'll need to have a JDK and Android SDK installed to test run your application.
and to answer your second question: a good environment can be anything you are comfortable with be it a text editor and a command line, or an IDE, if you're looking for a good python IDE I would suggest you try Pycharm, it has a community edition which is free, and it has a similar environment as android studio, due to to the fact that were made by the same company.
I hope this has been helpful
You could try BeeWare - as described on their website:
Write your apps in Python and release them on iOS, Android, Windows, MacOS, Linux, Web, and tvOS using rich, native user interfaces. One codebase. Multiple apps.
Gives you want you want now to write Android Apps in Python, plus has the advantage that you won't need to learn yet another framework in future if you end up also wanting to do something on one of the other listed platforms.
Here's the Tutorial for Android Apps.