Can mobile apps be developed with Python?

The German Python forum

Post Sun Jul 05, 2015 01:28

I have an urgent need to make myself unpopular.

I am a so-called power user in a somewhat larger company and have no idea about programming or system administration.
For years I have been tormented with cumbersome JAVA based GUI applications.
For about 2 years now, we finally have usable graphical user interfaces, so-called apps, across all of them
Platforms and it's really fun to work with all of our applications.
The way here was more than rocky.

For this reason, I would like to point out the following:
If I look at the recommendations of the 4 largest software manufacturers in the world with billions of users,
so recommending this all exactly the same way to create the app as from BlackJack shown.

Either a native development, for each individual platform, based on HTML5, CSS and JavaScript or a hybrid (native + HTML5, CSS and JavaScript).
When JavaScript is mentioned here, I always assume ECMAScript 6.
The choice of the right technology depends very much on the requirements of the project and not least on the skills and inclinations of the developer,
which are not known here.

App performance and UI response times are the primary considerations when it comes to which approach is better.
It should be clear from the outset that a hybrid solution can never achieve the performance of a native development.
This is not always necessary, but a proof of concept should be started if HTML5, CSS and JavaScript supported technology is considered.

Native app development with a central C # code base for iOS, Android and Windows Phone is possible with Xamarin (http://xamarin.com), for example.
No, it's not free, but the Xamarin Starter Edition is and this is completely sufficient for smaller projects.
If you like this kind of software development with a central code base, you can still look for a free version from another source.
From the manufacturer's website: "Xamarin Starter Edition is our free tier, which allows anyone to get a taste of mobile development in C # by writing small apps that can be deployed to devices."

Please also see: UTType.PythonScript Property
http://developer.xamarin.com/api/proper ... thonScript
http://developer.xamarin.com/api/proper ... thonScript


The software packages proposed here, such as Kivy and QT, which certainly all have a right to exist, are not state of the art for app development.


Another important point. Due to the ongoing SmartPhone further development, the modern app development is subject to ever shorter lifecycles.
It is certainly not a mistake to stick as close as possible to the recommendations of the individual manufacturers.


The question was
Is there an easy way to create an app using Python?
That's in the eye of the beholder.

To start with a native development, also with a tool like Xamarin, for each individual platform is very ambitious and for this reason,
I recommend starting with HTML5, CSS and JavaScript.
If you have made friends with JavaScript over time, the features of an app can be expanded using the appropriate tools.
Personally, I only know jQuery and AngularJS2. But I am quite sure that there is a suitable framework for every requirement profile.

After I have expanded my knowledge step by step, it is possible to use native technologies via a JavaScript native bridge.
This is then done via the WebView component. This is shown in simplified form a frameless browser view without control elements,
which uses an HTML layout engine to present an HTML / CSS / JavaScript user interface.
Such a bridge can communicate between the WebView level and the native platform, so that appropriate APIs
the various device features, such as the camera, can be used by JavaScript.

If I were to start with an HTML5, CSS and JavaScript based solution, I always keep all doors open.

I know two frameworks that are worth taking a closer look at.
- PhoneGap http://phonegap.com/
- Cordova https://cordova.apache.org/

As I could see from the documentation, both frameworks are more or less the same.
Some conventions and CLI commands vary, so it is only a matter of taste which framework you prefer.
Since the frameworks are being further developed by different developers, Apache and Adobe, they are likely to continue to exist side by side in the future.

Now we come to Python. Python is not only used by Google but also, for example, by Facebook, Microsoft, Intel, SAP and many others.
After JavaScript and PHP, Python is the most widely used scripting language. http://redmonk.com/sogrady/2015/07/01/l ... kings-6-15

The question of whether Python is only suitable for prototyping is completely irrelevant at this point and will not be considered further.


To develop an app, I would consider the following route:

- RESTful web services could be implemented with Flask, for example.
. There is a very good introduction to this from Miguel Grinberg: Writing RESTful web services with Flask - PyCon 2014 https://www.youtube.com/watch?v=px_vg9Far1Y
- Bottle and Twisted would be a bit more demanding as web servers on PyPy. The performance is really awesome.
- Twisted was developed by Facebook and can do a lot more than just provide a web server.
. You could therefore do without a bottle. But that would really be something for developers who are very, very familiar with Python.

- and with HTML5, CSS and JavaScript as UI, I would orientate myself on the model, view and controller principle.

But as I said, I'm just a user and not a software developer.