Hi Mariusz, It depends how many sharp edges you're willing to live with. I've been working on a project to allow users to develop native mobile apps in Python:
http://pybee.org/toga/ It's *very* early stage though - nothing close to production ready. There isn't even really a tutorial for mobile development. I hesitate mentioning it at all, other than to point out that it is *possible*, and I'm looking into the space at the moment. Yours, Russ Magee %-) On Fri, Dec 5, 2014 at 10:03 PM, Mariusz Wilk <[email protected]> wrote: > Thanks for your advice! > PhoneGap uses JS, HTML and CSS. Is there any way I could do this in Python > or would it be unneccessarily complicated since maybe there's no > PhoneGap-type-of-framework for Python? > > > W dniu środa, 3 grudnia 2014 00:56:17 UTC użytkownik Cal Leeming napisał: >> >> Hi Mariusz, >> >> Short answer - Hack something together in the fastest way possible, don't >> worry about it being clean, tidy or even tested. Because if you do, you'll >> still be working on this project in 2 years time... Look at using something >> like PhoneGap [8], just enjoy the experience and ship it :) >> >> If you genuinely want to start learning this stuff, you need to ask >> yourself what it is you want to work on? Do you want to do backend (e.g. >> all the server stuff, nothing visual), or do you want to do frontend (all >> the visual/pretty stuff the user sees), or both? Are you doing this for >> immediate financial gain [7], or a spiritual journey of self discovery and >> learning [6]? The world of web dev is changing almost every couple of >> months, stay on top of your game by reading blog articles from other >> developers and keeping on top of tech new. Personally I use Feedly [9] to >> aggregate these feeds into one place. Consider getting an internship >> somewhere with other good programmers, learning from inspirational people >> will speed up your personal development massively (I wish someone had told >> me this 8 years ago). >> >> Long answer; >> >> Responsive/adaptive design does not necessarily make a good mobile >> experience, and rarely will you find a mobile app which has the same >> workflow as the website. Ideally you need to storyboard each experience and >> wireframe the UX accordingly. Likewise with the UI, colors and sizes which >> work well on desktop often won't work very well on mobile/tablet >> (especially if you are designing your desktop site mostly towards PC users, >> due to the variations in color display). >> >> There are tools out there now which allow you to package up your >> HTML/JS/CSS/images into a native application bundle, meaning you don't have >> to learn how to write native applications. There are a whole bunch of these >> products out there [1], but most of them suck, here's why. Building a >> client side JS application is *hard*, you have to understand the different >> JS design patterns in order to write clean and stable code, whilst >> understanding the importance of unit testing [3] and real browser testing >> [4]. You also have to understand the impact of latency, if you don't >> compile your assets into a local bundle (instead opting to just wrap a >> browser window in an IOS app), then your app experience will lag between >> clicks (because each click is a page load). To get around this you need to >> build your client side app to be completely independent of the server side, >> which includes maintaining a view state (e.g. changing/rendering the >> display upon changes being made). Other libraries exist for doing this such >> as Ember [5] and others, but they are still quite alpha and have >> performance concerns too. Also in regards to bundling, there are very few >> tools out there which will automate this entire process, for example >> creating a spritesheet of UI images so you don't have to make multiple HTTP >> asset requests, or embedding the images as base64 in your stylesheet >> (although that has render performance concerns). >> >> Then you also have the API, building a clean RESTful api is difficult and >> in actual fact may be the wrong approach for your mobile app.. why? Because >> each API call has a lot of overhead, and this usually results in UI latency >> if the user has poor signal. There is some work being done to use >> websockets instead of ajax calls, but this starts to get into quite deep >> territory. >> >> Gonna cut this short, as I try to limit myself to 30 minutes on any given >> reply. Again don't worry too much about what I've put in the long answer, >> that's just there to give you some insight into the things you'll start >> thinking about as you get deeper into your journey. >> >> Hope this helps dude >> >> Cal >> >> [1] Google search for "app maker iphone" >> [2] http://addyosmani.com/resources/essentialjsdesignpatterns/book/ >> [3] http://qunitjs.com/ >> [4] http://www.seleniumhq.org/ >> [5] http://emberjs.com/ >> [6] http://www.amazon.co.uk/The-Clean-Coder-Professional- >> Programmers/dp/0137081073 >> [7] http://techcrunch.com/2012/03/25/dont-just-ship-it/ >> [8] http://phonegap.com/ >> [9] http://feedly.com/ >> >> >> >> On Fri, Nov 21, 2014 at 2:56 PM, Mariusz Wilk <[email protected]> wrote: >> >>> I'm new to programming. Eventually, I'd like to make a website and an >>> android/ios app that would work together and display pretty much the same >>> content on a mobile as on the the web. Each client would log in (via mobile >>> or desktop) and continue solving some exercises from the place he >>> previously finished at. I have a potential client for this app, I don't >>> have any deadline and if it works fine I shouldn't have any problems >>> selling it to him and getting some commercial experience! So my question >>> is: *what should I be learning to eventually reach this goal?* I've >>> done a few Python tutorials/courses online, I played around with HTML, CSS >>> and JS, right now I'm learning Kivy. Django scared me a lot, but maybe I >>> should give it another try. >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "Django users" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To post to this group, send email to [email protected]. >>> Visit this group at http://groups.google.com/group/django-users. >>> To view this discussion on the web visit https://groups.google.com/d/ >>> msgid/django-users/18d268ec-e509-4d39-8d9d-ac74204123f4% >>> 40googlegroups.com >>> <https://groups.google.com/d/msgid/django-users/18d268ec-e509-4d39-8d9d-ac74204123f4%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- > You received this message because you are subscribed to the Google Groups > "Django users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/django-users. > To view this discussion on the web visit > https://groups.google.com/d/msgid/django-users/b97eb0d7-a2f9-4368-8126-fb606225bd8e%40googlegroups.com > <https://groups.google.com/d/msgid/django-users/b97eb0d7-a2f9-4368-8126-fb606225bd8e%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CAJxq84-r3K5H_wN%2BTs2OSxdmQwC%3DBhhY4Mg%3DsDGguNdd0EZYTw%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.

