Many superfans of Python wonder whether Python is good for mobile app development or not, just like I did back in the day. Once we learn and become interested in one programming language, we need to do everything with that particular language. That’s the mindset of most programmers.
If you’re in a rush and don’t want to read the entire article to find out the answer, here is the harsh reality:
Python has some frameworks like Kivy and Beeware to do mobile application development. However, Python is not the best programming language for doing mobile app development. There are better choices available, like Java and Kotlin (for Android) and Swift (for iOS).
Let’s continue the discussion. Back in 2016, when I was learning Python, I wanted to do everything with it. I learned how to create desktop apps using Tkinter. I learned how to create web applications using Django. The next step was Android.
I did some research and found out that Java is the most used language for building Android apps. Kotlin wasn’t there in the limelight at that time. I had to do it with Java, and I didn’t like it due to the non-simplicity of the language. I did some searches online, hoping that there will be a Python alternative.
That’s when I heard about Kivy, and I thought I’ll create an app using it. But, gradually, I understood that I should not be religious about technology. I can’t do everything with Python. Every programming language has its pros and cons.
Android wasn’t the advantage of Python and looks like it won’t be. However, projects like Kivy and Beeware are promising. Maybe, someone will create a python framework to do android development. Who knows. Technology is changing very fast, and it’s almost impossible to predict what is going to happen in the future.
Don’t be Religious about Programming Languages
You might be wondering what did I do with my plan for building an android app. Guess what? I didn’t complete building an android application since I wasn’t comfortable with Java, which was the best choice available back in the day. I should have made it with Java. It was my mistake. I was religious about a programming language.
I suggest you not be religious about any programming languages or technology. That doesn’t mean you shouldn’t specialize. You should. Specialization is very important in your programming career. But, don’t be too attached to a language. That won’t do good for you every time.
I specialize in Python, and this website is completely dedicated to python programming. However, if Python fades away someday (which I don’t think would happen anytime soon), I’ll change my specialty as well.
If you’re looking for developing mobile applications, don’t go with Python. This is just my opinion. I didn’t have the experience of building mobile apps. But, I’ve heard several great software developers talking about this topic, and this is the opinion that I’ve finally reached. Your opinion might be different. If you’re not cool with mine, comment down your opinions below.
If Not Python, Then What?
Let’s have a look at the best programming languages and frameworks available for developing mobile applications.
1. Java
Java is historically the first choice available to create Android applications. Java is a class-based, object-oriented programming language, which is powerful and robust. It has been used by many software developers to build native android applications (A native application is a software program that is developed for use on a particular platform or device.).
Java processes code into Bytecode, and it is then interpreted by the Java Runtime Environment (JRE) software. It is a very well-established language that has several libraries, APIs, and features, that other programming languages lack.
It is platform-independent, secure, object-oriented, and has a lot of supporting tools available. These are some of the features that make Java still a good choice for developing native Android apps.
2. Kotlin
Kotlin is relatively a new player in the Android development area, and it has become a serious competitor to Java. Many people choose it over Java due to its capabilities and features. Kotlin is a mature language since it has gone through many stages before releasing its 1.0 version.
Kotlin is considered simpler than Java, and it already offers several features available in Java. It works pretty well with Android Studio. The code seems easier to understand, and many well-known companies already use Kotlin in production. We’re seeing more and more companies offering job opportunities for Kotlin developers.
Since it is new, there are not so many Kotlin specialists available in the market. Hence, it is a great opportunity to become a master in it since the demand is going to increase. It’s easy and fun, and hence it could be the best alternative to Java for building native Android apps.
3. Swift
Swift is the best choice when it comes to building native iOS applications. Objective-C is another option available for iOS developers, but most people prefer Swift due to its features.
Swift is a simple language, and yet it has great speed and performance. It has dynamic library support and a pretty good memory management scheme. Even though both Swift and Objective-C are getting good support from Apple, Swift seems to be growing pretty faster than Objective-C.
It has a feature called Playground, which helps programmers to test out a new algorithm without having to create an entire app. If you’re looking to build a native iOS application, then Swift would be the best choice.
4. React Native
React Native is a Javascript framework that was created by Facebook. It can be used to build applications for Android, iOS, and the web. It enables developers to use their existing web development skills (HTML, CSS, and JS) to build pure native Android and iOS apps.
Facebook, Instagram, Tesla, Airbnb, Skype, etc. use React Native for their mobile applications. Facebook got started first with React (which is a web framework) in their quest to control their data and traffic in a better way. Later, they’ve come up with React Native, which uses several features used in React.
React Native developers can use a single code base for both Android as well as iOS apps. React Native is getting a lot of attention these days. If you’re good with web development skills, you can directly jump into React Native, although having some experience in React would be handy.
5. Flutter
Flutter is an open-source user interface development kit created by Google. It can be used to build iOS and Android apps with a single code base. Google introduced a new programming language called Dart to use in Flutter.
After the release of the 1.2 version, Flutter has become a stable option. Many companies might be adopting Flutter in the future.
The advantage of the new players like Flutter and React Native is that companies need only a single team to manage their iOS and Android apps using a single code base. It reduces the cost and effort a lot.
Conclusion
Python is a pretty popular programming language at present. But, that does not mean that Python can be used for all purposes. When it comes to mobile app development, Python is not the best option available.
Yes, Python has some mobile application frameworks such as Kivy and Beeware. But, there are better options if you consider other languages. Java, Kotlin, Swift, React Native, and Flutter, are some of the top players in mobile app development. If you want to become a mobile app developer, it would be better to consider these languages.
Technology is evolving. We don’t know what the future of Python in mobile app development is. Hopefully, some new projects would come up soon.
What is your choice for creating a mobile application? Leave your thoughts in the comments section below. Feel free to ask if you have any doubts. I’ll be happy to help.
I would appreciate it if you would be willing to share this article. It will encourage me to create more useful tutorials like this.
Happy coding!
Thanks for the information. Since you are into python, which user GUI is best for graphics in python ?
I’ve only used Tkinter for GUI programming. It can be good for creating a decent app. But it doesn’t have all the graphics capabilities.
I don’t understand is python good for mobile app dev or not.
Python is not the best option for mobile application development.
Thanks for your article, as you know some famous apps like YouTube, Instagram and Pinterest are creates with python, so if we want to create a messenger app or apps like top;
Is it good to use python or it’s better to use kotlin.
And another question which you’re prefer between java and kotlin at all
Hi Farnam, I think platforms like YouTube, Instagram, etc., use Python for their web apps, not for their mobile apps.
For the second question, I personally haven’t worked a lot with Kotlin, so I’m not sure. But both are great and you can start with one. If required, you can learn the other language later. All the best!
no,it is not.
Can we not use react native with existing python skills to develop mobile apps
Yes, you can use Python for the backend with React Native. Check out this tutorial: https://www.youtube.com/watch?v=v9S0fW8cjrw
Python would be the best choice for programming mobile apps. As a language, Python is enough standardized, we can test critical parts of code using well known tools.
But there is one limitation: GUI libs. Kivy tries to fill this field but kivy is not good as developers expect.
Hello Ashwin,
First of all, great articles.
Would it make sense to do web development with python (front- and back-end) and make a mobile application through one of the suggested frameworks, and then use the python back-end for the mobile application?
Best regards
Steven
Thanks for sharing such amazing information and i hope you keep on share such kind of useful information daily
it’s really such a wonderful article, Thanks for posting such a wonderful content.