element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Members
    Members
    • Benefits of Membership
    • Achievement Levels
    • Members Area
    • Personal Blogs
    • Feedback and Support
    • What's New on element14
  • Learn
    Learn
    • Learning Center
    • eBooks
    • STEM Academy
    • Webinars, Training and Events
    • More
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • More
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • More
  • Products
    Products
    • Arduino
    • Dev Tools
    • Manufacturers
    • Raspberry Pi
    • RoadTests & Reviews
    • Avnet Boards Community
    • More
  • Store
    Store
    • Visit Your Store
    • Choose Another Store
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
Technologies
Technologies
Forum App making through python
  • Forum
  • Documents
  • Events
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Suggested Answer
  • Replies 7 replies
  • Answers 3 answers
  • Subscribers 4 subscribers
  • Views 210 views
  • Users 0 members are here
  • android
  • python
  • mobile app
  • windows
  • ios
Related

App making through python

srinivasdevara
srinivasdevara over 4 years ago

I need to build an app using python language but i have no knowledge about its platform. Can anyone advise me in this? Also tell me is it good to use python to build my app? Can my app developed using python be usable by android, Ios and windows users? What precautions i need to take to make it usable by all users?

  • Reply
  • Cancel
  • Cancel

Top Replies

  • gecoz
    gecoz over 4 years ago +2 suggested

    If I got your questions right, I take you are asking about developing native app for the Android, iOS and Windows devices using Python.

     

    Let me start by asking you a question: is the support for Windows…

  • balearicdynamics
    balearicdynamics over 4 years ago in reply to gecoz +2 suggested

    Hi Fabio,

    very helpful series of hints. IMHO when you write down this kind of useful answers it is better is you write down a short - but useful, yay - short post in the right section then place the reference…

  • gecoz
    gecoz over 4 years ago in reply to balearicdynamics +1 suggested

    Hi Enrico,

    Thanks for your comments and very useful suggestion: I should really start using the blog  .

    I agree with you, surely in case you need a more complex UI for a Python application, where Kivy might…

Parents
  • gecoz
    0 gecoz over 4 years ago

    If I got your questions right, I take you are asking about developing native app for the Android, iOS and Windows devices using Python.

     

    Let me start by asking you a question: is the support for Windows Mobile devices a mandatory requirement for your App?

    I ask because supporting Windows devices will make your development work a lot harder. I will split my answer to your questions, one for the case you can drop the Windows support, and one for the case you must include Windows devices.

     

    Developing App for Android and iOS devices:

    If you are going to support only Android and iOS devices, you can develop your App using the standard Python + the Kivy Python module, which will allow you to build and run the same App on Windows (but no Windows devices support), Linux, iOS and Android out of the box.

    As for the portability issue, it will mostly depend on the App you are going to write, and what are you going to use. Generally speaking, if you stick to the standard Kivy modules, you won't have problems. If you use modules external to Kivy, but part of the standard Python, usually you won't have compatibility issues. You could experience problems when you start using very specific modules, or 3rd-party developed ones: since many of those Python modules rely on C, you face the typical portability issues of a C program, and you need to check how the underlying code has been written (if it can be used safely with Kivy). In particular, troublesome areas to watch out for include inter-process communications,  GUI programming and threads.

     

    Developing App for Windows Devices:

    If you really need to add Windows mobile devices (or Windows IoT devices) support for your App, and you still want to code in Python, you will probably be better off using Visual Studio + Python Tools for Visual Studio + Python Universal Windows Platform SDK (here  you can find an example of "hello world" app for Windows IoT Devices, which shows how to set up the dev environment and can be easily adapted to any Windows Mobile device). I reiterate, this will be done ad-hoc for the Windows devices support only, which means you will end up having a separate branch for the Windows code. In this case, using UWP SDK will mean you won't have compatibility issues using your code across different Windows devices.

     

    As you can appreciate, adding the Windows support will likely end up in you having to work on 2 development branches for your App: one branch will have the code developed with Kivy for Android and iOS, and the other branch will have the code developed with Python for Visual Studio (for Windows Mobile devices). This is definitely not the ideal setting, but with careful design (your Windows app will need to look like the iOS and Android ones), attention to details and extensive testing, it can be done.

     

    I hope this helps.

    Fabio.

     

    P.S: To make your app usable, you need to use graphical widgets and functionalities that are available to all the supported platform, therefore careful design is required. I suggest you start designing your app thinking of the easiest possible interactions as your baseline, making sure the experience is the same on all the platforms, then add to that as and when required.

    • Cancel
    • Up +2 Down
    • Reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • balearicdynamics
    0 balearicdynamics over 4 years ago in reply to gecoz

    Hi Fabio,

    very helpful series of hints. IMHO when you write down this kind of useful answers it is better is you write down a short - but useful, yay - short post in the right section then place the reference link as comment in the post. Just because your effort is not lost in few time in the bends of comments but can be subject for a further discussion and remain a a good point for all the users.

     

    I see that you also mention Kivy. I have done testing with it in several environments and according with the results I got in past this is the best flexible interface available with full Python interface and very manageable for embedded platforms (I have used it on Raspberry Pi) without making heavier interfaces when it is not the case to manage more (maybe) valuable development environments but not so useful for small GUI applications. With the advantage of a lot of examples (not very good documentation I should admit) and something like strongly Python oriented.

     

    The alternative for a more complex interface environment well working but involving a lot of more complext software is Qt + Python. Recently there are good versions of Qt specific for the Raspberry Pi and embedded devices.

     

    Enrico

    • Cancel
    • Up +2 Down
    • Reply
    • Verify Answer
    • Reject Answer
    • Cancel
  • gecoz
    0 gecoz over 4 years ago in reply to balearicdynamics

    Hi Enrico,

    Thanks for your comments and very useful suggestion: I should really start using the blog .

    I agree with you, surely in case you need a more complex UI for a Python application, where Kivy might be too limited, Qt would be my choice too.

    But in case of mobile apps, IMHO using Qt with Python ends up being an overkill (with Python being actually the biggest problem for achieving cross-platform compatibility). Personally, if I had a complex cross-platform mobile app to develop, I would avoid Python altogether, and use Qt alone.

    Fabio.

    • Cancel
    • Up +1 Down
    • Reply
    • Verify Answer
    • Reject Answer
    • Cancel
Reply
  • gecoz
    0 gecoz over 4 years ago in reply to balearicdynamics

    Hi Enrico,

    Thanks for your comments and very useful suggestion: I should really start using the blog .

    I agree with you, surely in case you need a more complex UI for a Python application, where Kivy might be too limited, Qt would be my choice too.

    But in case of mobile apps, IMHO using Qt with Python ends up being an overkill (with Python being actually the biggest problem for achieving cross-platform compatibility). Personally, if I had a complex cross-platform mobile app to develop, I would avoid Python altogether, and use Qt alone.

    Fabio.

    • Cancel
    • Up +1 Down
    • Reply
    • Verify Answer
    • Reject Answer
    • Cancel
Children
  • balearicdynamics
    0 balearicdynamics over 4 years ago in reply to gecoz

    To be honest, I continue preferring native application for mobile environments, just for the better performances. The problem of Qt - as well as the tons of other frameworks from Unity to ... many many as a matter of fact they are not really native but internally web based. Qt remain my best choice but for embedded and desktop applications.

     

    And for Symbian 2 and 3 on mobile ... Ooops, Symbian is dead. Maemo too. R.I.P.

     

    Enrico

    • Cancel
    • Up +1 Down
    • Reply
    • Verify Answer
    • Cancel
  • gecoz
    0 gecoz over 4 years ago in reply to balearicdynamics

    I see where you are coming from, with using the native environments: I was used to develop software for handheld devices in the late '90s (I have used Symbian too, and Palm OS, to mention another dead one ), and with the limited processing power of the devices back then, using a native development environment was really the only way to "squeeze all the juice" out of them. Nowadays, with the amazing performances even of the smaller devices, unless I really need to develop a very hardware-specific app, I prefer to prioritise maintenance over performance, at the cost of loosing some of the native features.

    Fabio,

    • Cancel
    • Up +1 Down
    • Reply
    • Verify Answer
    • Cancel
  • balearicdynamics
    0 balearicdynamics over 4 years ago in reply to gecoz

    Hy fabio!

     

    You have pointed right. I am waiting to develop an app I can play and (hopefully) enjoy the advantages of the most advanced mobile frameworks. And I agree that "losing some of the native features" does no matter if you are good to create a well designed user experience.

     

    unless I really need to develop a very hardware-specific app

     

    This is the problems. Also now, I have on my table a couple of apps and all are always strictly related to dedicated hardware So I am obliged to move more in depth and use the low level resources of the mobile systems.

     

    Enrico

    • Cancel
    • Up +1 Down
    • Reply
    • Verify Answer
    • Cancel
Element14

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2022 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • Facebook
  • Twitter
  • linkedin
  • YouTube