Building Hybrid Mobile Apps – Part 1

Building Hybrid Mobile Apps


Chapter 1 – Intro

Everyday millions (billions?) of people use a multitude of apps on their phones to accomplish various business or personal tasks.  Without question, every mobile phone user eventually asks the question “Is there an app for that?”.  In many cases that answer is yes, but many users are disappointed in their app searches and end up saying “I wish there was an app for that”.  Sometimes however the most popular apps are the ones no one even knew they wanted.

Many users wonder what does it take to build an application.  Today there are many different tools, companies, and approaches to building mobile applications.  The good news is it is easier than ever to make fully functional and useful mobile applications.  The bad news is the sheer variety of options and opinions on the subject.  The great news is many of these options do not cost any upfront money as the tools are free to use.

One big decision is deciding between writing what is called a “native” application versus a “hybrid” or “web” application.  A native mobile application is an application that utilizes the primary development environment of the platform and is usually makes use of many platform specific features.  Native applications tend to have the fastest performance.  On iOS native applications are typically written in Objective-C or Swift.  On Android native applications are written in Java.  The downside of native apps is that they are not as easily ported to another mobile platform.

Web apps are traditional web applications designed to be very mobile friendly while using traditional technologies used in web development such as Javascript and HTML 5.  The big benefit of pure web applications is they can run on almost any modern phone, tablet, or desktop.  The downside of web applications is they are limited by standard Javascript and HTML 5 capabilities.  In general web apps cannot utilize all the features in current mobile devices.

Hybrid apps take an interesting approach by mixing web technologies with native libraries or plugins.  A popular platform to write hybrid apps is the Cordova platform by the Apache project.  Cordova apps are written in Javascript and HTML5 but can access native features through a large collection of plugins that are written in each platform’s native language and API.  This allows an application to quickly be prototyped using web technologies and deployed on all the major mobile platforms.  The downside is performance compared to a native application can suffer.  However, for many applications the difference will not be noticeable to the end user which is what matters the most.

You can build Cordova apps using a text editor and the command line tool however you will be much more productive using an Integrated Development Environment.  The environment I choose to use is the Microsoft Visual Studio environment.  This community version of Visual Studio is free and includes almost everything you need to develop Cordova apps.  The only thing you have to supply yourself is a Mac running OS X if you want to compile, debug, and deploy iOS applications.

Many applications require a backend service running on a server to be functional.  In this series we will cover building a backend service using node.js and the MySQL database.  Both of these options are completely free to use and are supported from within the Visual Studio platform.  The backend service we create can be deployed to any cloud service provider such as Amazon or Azure.  We will discuss the steps in building a simple RESTful API for your mobile application to utilize.

In the next chapter of this series we will go ahead and go through the steps to setup your environment to start building applications.  A new chapter will be released every few weeks.

 


Chapters

  1. Intro
  2. Preparing your environment
  3. Your first app
  4. Frameworks
  5. Backend and databases
  6. Debugging
  7. Push notifications
  8. Location services
  9. Deployment to app stores
  10. Managing updates
  11. Monetizing your app
  12. Writing your own plugin
  13. Conclusion

Leave a Reply