• Better load speed and
• Native look&feel.
• Developer cost for each
• Maintaining is time-
• Approvement is required for
each App Store.
• Single code base for
• Web developers can easily
adapt to mobile
• Development costs lower
than Native development.
• Deployable to web server.
• Slower-ish performance
compared to Native apps.
• Animations cannot gain 60 FPS
Hybrid apps can be updated without
submission to app store.
Apple Allows Over The Air Updates
• A cloud service that pushes /www directory to users
• Supports Cordova and React Native projects.
• Tracks usage statistics for each platform.
• Manages alpha, beta and production deployments
• You can serve your own CodePush service on your
Hybrid App Frameworks
• Apache Cordova (is free)
• Adobe PhoneGap
• Intel XDK
• Telerik NativeScript
• IBM Worklight
• Monaca (tool for Onsen UI)
• And so on...
• Jelly Bean and lower versions (%8)
have outdated WebView that based
• If you want to support those
outdated platforms, you can use
CrossWalk project which is
Chromium based portable
• But it adds approx. 20MB to apk
Chart data source: https://fossbytes.com/most-popular-android-versions-always-updated/
Visual Studio Support
• You can create pretty
much things without
• Provides interfaces for
Grunt, Gulp and Bower
• Click to build&run
Always prepare your apps as
SPA (Single Page Application)
What is SPA
• Basically its just one html page contains all resources inside
• Server only serves JSON data, except initial HTML and
• All pages represented as <div>'s, and user navigates
• As all resources are loaded at application start phase, page
transitions happens smoothly.
Native Look&Feel UI frameworks
• Ionic 2
• JQuery Mobile
• And so on...
Start small and iterate
• Obtain the requirements
• Start at small.
• Implement the most
• Release usable app.
• Evaluate feedbacks from
Image by Henrik Kniberg
For User Interface
• Just use any SPA UI framework you familiar with.
• They are all well tested and documented.
• Have built-in features that protects you from common
issues such as detecting touch events and distinguish
between element clicking and scrolling.
• Automate your tasks with Grunt or Gulp or Webpack.
• Use as few as possible plugins on your projects.
• Obfuscate/uglify your businness logic.
• Enable over-the-air updates for your app.
• Log all operations and errors and to be informed from