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 <szostakow...@wp.pl> 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 django-users+unsubscr...@googlegroups.com.
> To post to this group, send email to django-users@googlegroups.com.
> 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 django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
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/CAHKQagF%2B%3DRdeSco9fk3EjE%2B9%2B1z%2BDspaWoiweTpvWmVA6Qmu2A%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to