App (Android and IOS) development


#1

is it possible to develop an App like Uber using Javascript alone?
I am reading Javascript Absolute Beginners guide so i am a beginner in programming.
What do u require to make such an app?


#2

You totally can! The biggest part will be having a solid understanding of how JavaScript and the DOM work with each other. That is covered in later chapters in the book :slight_smile:


#3

Thanks for replying
I was surfing through the web about this. Apparently uber used node.js and python and etc do I have to learn all this to make an exact clone of uber. Also I sort of understand server side and client side. Isn’t javascript client side? How exactly will I do all this? And finally what tools would I require (android studio, brackets.io)?
Or is all this covered in the later chapters of your absolutely amazing book?


#4

I don’t focus at all on native development, for that is a whole another bag of topics :stuck_out_tongue:

What parts of the Uber app are you trying to replicate? There is a lot you can do on the client-side layer itself, but if you want to handle the real-time communication and sync’ing between driver position, your location, and the map data, there will be some server-side logic you need.

As for what tools to use, building natively for iOS and Android will require you to learn either Swift (or Objective C) for iOS and Java for Android. There are hybrid solutions you can employ that use a WebView, but you’ll run into some complications that may be hard to diagnose if this is your first time building a complex app like this. My preference would be for you to use React Native: https://facebook.github.io/react-native/

React Native is a good model where you get to use React and JavaScript to build your app, so you get to stay in more familiar territory. The performance on the UI layer is fairly decent as well.


#5

Thanks for replying,
What are the pros and cons of making a native app?
React seems pretty cool, is it a compiled language? and is it a server side language?
As you can see I’m not really familiar with what React is, but it seems like learning it will help me get my job done.
To be more familiar with React and app development should I read your book: ‘Learning React’?
Also, will your other books such as ‘Canvas from noob to ninja’ and ;Creating web animations’ be of a help to me at all in my project. If so, then what order should I read them in?
I know these are alot of questions but your website and this forum seemed perfect to ask them in.


#6

The pros and cons of building a native app vs. not would require a dedicated article of its own, but here are two of the big ones:

  • Pro : Native apps are faster. They don’t have any unnecessary layers of abstraction, so that speeds things up and takes less memory.

  • Con : Native apps take more effort to build. You have to learn about each native platform’s quirks.

  • Mixed : Native apps give you programmatic access to more of the hardware capabilities like sensors, storage, and so on. Common hardware capabilities like camera, gps, microphone, and others will work even in non-native environments like the browser/web layer.

Also, for reference, this response in Web apps vs. React Native may be helpful as well: What are Progressive Web Apps (PWA)?

Regarding how to learn all of this, while I would be grateful for you to buy my books, all of the content in my books is available for free on this site provided you are OK with reading them through the browser. Just browse through the tutorials here for them: https://www.kirupa.com/learn/index.htm

Hope this helps!

Cheers,
Kirupa


#7

Thanks for replying
What one of ur books will be helpful in my project?
What is JavaScript Objucation? is it necessary?
thanks


#8

None of my books touch upon native (or even hybrid) app development.

If you want to stay in the PWA/browser world that also will give you a mobile experience, then the JavaScript: Absolute Beginner’s Guide (which you are already reading) and the Learning React books can help.

JS obfuscation is where your code is made human un-readable to make it difficult for someone to steal its contents. It is not necessary. I would go one step further and say that it isn’t even effective. Anybody can View Source or use the Console in any of the Dev Tools to figure out what your code is doing. Obfuscation only makes your life more difficult.

:slight_smile:


#9

React is a front end thing isn’t it?
What should I use for backend?
Thanks again


#10

React is mostly a front-end framework. There are extensions to it that allow you to do more on the server, but those are the exceptions and not the norm.

For the back-end, you have a lot of flexibility. The first question is whether you need a complex backend system. Will a static web server be enough? Something like a static web server with Firebase (https://firebase.google.com/). If that won’t be enough, my recommendation is to use Express/Node and use JavaScript on the server itself.

Getting familiar and eventually mastery of all these topics will be quite a fun achievement, so you are looking at some exciting days and nights! :nerd_face:


#11

Thanks, that will be all for now.
I am looking at some exciting days and nights indeed.
I’ll ask for more help if I need some.
Thanks a lot!