SlideShare a Scribd company logo
1 of 88
Download to read offline
Hybrid Development with Ionic
Wan Muzaffar Wan Hashim
ENVIRONMENT
TO DEVELOP Mobile
App
MACHINE
MACBOOK
• You will be needing a
Macbook for iOS app
development.
• Using XCode and
Apple development
tool to submit the app
to Appstore.
DEVELOPER PROGRAM
iOS Developer Program
• To purchase developer account from $99
per year.
• App will be reviewed by Apple review
team to ensure that it follows Apple
Human Interface guideline.
• Refer to Apple HIG and Submission
checklist prior to submitting the app.
• App submission to be done with Apple
tool (Xcode, Application loader) = Need a
Mac.
DEVELOPER PROGRAM
Android Developer Program
• To purchase developer account of
$25 per year.
• Unlike Apple, app will be
published directly into Google
Play without review from Google
Play team.
DEVICEOPTIONAL
Device SimulatorOPTIONS
BrowserOptions
Simulator - Limitation
- Motion Support
Accelerometer
Gyroscope
- Audio and Video Input
Camera
Microphone
- Proximity Sensor
- No preinstalled application
- No support to receive phone call
Text Editor
THINGS TO PLAN OUT
BEFORE STARTING DEVELOPMENT
App
Development
Strategy
Monetization
• App can be sold for free OR
• Can distribute app in AppStore of Google Play.
•Sharing revenue model (70/30)
•Put price on application
•iOS: Price will be in USD ending with .99
•Android: Support MYR price.
•Put Ads on the application.
Lean Startup
Principle applied by startups
since 2011
Shorten product
development cycles by
adopting business-
hypothesis-driven
experimentation and iterative
releases.
Example case study:
Dropbox, imvu, Aardvark
(refer lean startup website)
Some principles..
Minimum Viable Product
Continuous Deployment
Split testing
Actionable Metrics
Build - Measure - Learn
19
Hybrid app
development
What is a hybrid app?
• Hybrid app is a mobile app written using web
technologies (HTML5, CSS and JavaScript)
• Hybrid app runs inside a native container
(Webview)
• Hybrid app can access to device native feature,
exposed by JavaScript.
What is a native app?
• Using specific SDK provided by platform provide,
(iOS, Android, Windows Phone.…)
• Advanced UI and Device feature Interaction with
the app.
• Necessity to learn platform specific development
language: Objective C, Swift or Java .
Why Hybrid
• Reuse existing web development skill (shorter
learning curve) : HTML, CSS3 & JS
• One language for different platform (iOS and
Android)
• Quick Development
• Direct access to certain native APIs with Cordova
Risk developing Hybrid
application
• Limited performance compared to Native
application.
• Not all device and operating system features
supported.
• Risk of being rejected by Apple if app does not feel
native enough
• Increased time and effort to mimic native user
experience.
How to mitigate the risk
• Crafting a UI that is similar to native user
experience.
• Avoid over complicated UI and UX. Refer to Apple
HIG or Android Design guide for reference.
• Ionic provide a library of CSS elements that mimic
native UI elements to be used inside the app.
Understand and try to use as much of the elements
as possible when designing your app.
App built using hybrid
development
App built using hybrid
development
App built using hybrid
development
Framework comparison
Ionic
Framework
What is Ionic?
• Powerful HTML5 SDK that will give
native-feeling mobile apps.
• This can be achieved simply using
web-technologies : HTML, CSS and
Javascript
• Focuses on :
• Look and feel
• UI Interaction of the app.
• Is not a replacement of
Phonegap.
Ionic stack
Apache Cordova
• A platform for building native mobile applications
using HTML, CSS and JavaScript.
• Provides a set of APIs in Javascript and HTML to
interact with native features of the device.
• 2009: Phonegap was created by Nitobi
• 2011: Acquired by Adobe
• 2012: Renaming by Adobe under the name
Cordova.
AngularJS
• AngularJS is a JavaScript
Framework maintained by Google
at the moment.
• It is based on Model-View-
Controller (MVC) and MVVM
architecture.
• Angular extends HTML
functionalities to facilitate us
creating a web-application.
Pre-requisite for learning
Ionic
• Basic Programming/Javascript
• HTML and CSS
• Angular JS (We will cover the most used Angular
concept)
• Web application concepts (REST/CRUD)
Ionic Supported devices
• iOS 7+
• Android 4.1 and up
• Windows Phone (Coming soon)
• FirefoxOS (Coming soon)
Ionic Components
Ionic Components (2)
Ionic color scheme
• Ionic comes with a set of
colors to start with.
• Naming convention for colors
are based on emotion and
generic terms.
• Color can be customised and
override from ionic.css.
Ionic Playground
Ionic Playground
• Ionic Playground is a tool allow
us to easily prototype our Ionic
code in a browser, without
installing anything.
• It has a simple HTML, CSS,
and Javascript editor with a
live app preview that updates
immediately with new changes.
• We can easily share our code
with anyone or fork other apps
to modify others’ code.
• You can check at: play.ionic.io
Ionic Lab
Ionic Lab via CLI
ionic serve —lab
Ionic View
Ionic View
• Download Ionic View app in
Appstore or Google Play.
• Use CLI command: ionic
upload, you can easily test
your app using ionic view.
• Share your app using ionic
share <email> command on
CLI.
Ionic Showcase
Ionicons
Ionic Market
Who is using Ionic?
Mallzee
Moodle Mobile
Just Watch
Mallzee
• Tinder style Personal shopper
based in UK.
• Replaced their hand built
PhoneGap app with Ionic
• Excellent UI
• Apps available in Android and
iOS
• Manage to secure recently
£2.5M funding, recently.
Songhop
• Music discovery application,
yet another Tinder style
application.
• Available on iPhone only.
• Rated 5 star in App Store.
• Founder is active with Ionic
Community.
Sworkit
• Techinsider describe it ass
“The best free fitness app in
the world” with simple and
clean interface.
• Featured in the Health and
Fitness section of the App
Store.
• Downloaded over 3 million
times.
Ionic platform
Ionic Push
Ionic Push
Ionic Analytics
Ionic Creator
Ionic Creator
https://ionic-worldwide.slack.com
http://forum.ionicframework.com
https://gitter.im/driftyco/ionic-io-testers
http://codepen.io
AngularJS Important
Features in Ionic
• Directives
• Model View Controller (MVC)
• Data Binding
• Dependency Injection
• Filter
Installing Ionic
• Ionic require Node.js. Download Node.js from the
website
• Once done, you may install ionic and cordova from
the command line:
npm install -g cordova ionic
Ionic CLI command
• Create new project:
• ionic start <your-app-name>
• Test on web browser:
• ionic serve
• Add mobile platform
• ionic platform add [android/ios]
• Build and application
• ionic build [android/ios]
• Run test on device/emulator
• ionic [run/emulate] [android/ios]
Starting an app with Ionic
template
$ ionic start myApp blank
$ ionic start myApp sidemenu$ ionic start myApp tabs
Ionic Live Reload
• Live reload is a cool feature
where browser will be updated
automatically every time we save
the change in our code.
• Live reload is available on device
and emulator, to add following
option on CLI command.
$ ionic [run|emulate] <platform> [options]
[--livereload|-l] .... Live Reload app dev files from the device
[--consolelogs|-c] ... Print app console logs to Ionic CLI
[--serverlogs|-s] .... Print dev server logs to Ionic CLI
Ionic List
• Widely used interface element
in almost any mobile app,
• Can include content ranging
from basic text all the way to
buttons, toggles, icons, and
thumbnails.
Simple List
<ion-content class="padding">
<div class="list">
<div class="item item-divider">
Melaka
</div>
<a class="item" href="#">
A Famosa
</a>
<a class="item" href="#">
Dataran Pahlawan
</a>
<div class="item item-divider">
Kuala Lumpur
</div>
<a class="item" href="#">
Muzium Negara
</a>
<a class="item" href="#">
KL Tower
</a>
<a class="item" href="#">
KLCC
</a>
</ion-content>
Complex List
<ion-list>
<ion-item ng-repeat="item in items" item="item">
List Item {{ item.id }}
</ion-item>
</ion-list>
• Using AngularJS Directive.
• Built in swipe to action function
• Delete
• Reorder
List with Ionicons
<div class="list">
<a class="item item-icon-left" href="#">
<i class="icon ion-email"></i>
Check mail
</a>
<a class="item item-icon-left item-icon-right" href="#">
<i class="icon ion-chatbubble-working"></i>
Call Ma
<i class="icon ion-ios-telephone-outline"></i>
</a>
<a class="item item-icon-left" href="#">
<i class="icon ion-mic-a"></i>
Record album
<span class="item-note">
Grammy
</span>
</a>
<a class="item item-icon-left" href="#">
<i class="icon ion-person-stalker"></i>
Friends
<span class="badge badge-assertive">0</span>
</a>
</div>
Cards
• Cards are UI Element that
have gained popularity in
recent years.
• Cards can be added in
Angular and customised
as per your need.
<div class="card">
<div class="item item-divider">
I'm a Header in a Card!
</div>
<div class="item item-text-wrap">
This is a basic Card with some text.
</div>
<div class="item item-divider">
I'm a Footer in a Card!
</div>
</div>
More complex Cards
Form and Inputs
• Preferably, a form is
grouped inside a list.
• We used both item and
item-input element to
designated each field.
<div class="list">
<label class="item item-input">
<input type="text" placeholder="First Name">
</label>
<label class="item item-input">
<input type="text" placeholder="Last Name">
</label>
<label class="item item-input">
<textarea placeholder="Comments"></textarea>
</label>
</div>
Ionic Navigation
• Using AngularUI Router Service.
• Manage navigation and show the back
button when possible.
• Works with Android’s physical back
button.
<ion-nav-bar>
<ion-nav-back-button>
Back
</ion-nav-back-button>
</ion-nav-bar>
<ion-nav-view></ion-nav-view>
Ionic Tab
<a class="tab-item">
<i class="icon ion-home"></i>
Home
</a>
<a class="tab-item">
<i class="icon ion-star"></i>
Favorites
</a>
<a class="tab-item">
<i class="icon ion-gear-a"></i>
Settings
</a>
• Using AngularUI Router Service.
• Manage navigation and show the back
button when possible.
• Works with Android’s physical back
button.
Ionic Slide
<ion-slide-box on-slide-
changed="change(index)">
<ion-slide>
Slide 1
</ion-slide>
<ion-slide>
Slide 2
</ion-slide>
<ion-slide>
Slide 3
</ion-slide>
</ion-slide-box>
• Using AngularUI Router Service.
• Manage navigation and show the back
button when possible.
• Works with Android’s physical back
button.
ngCordova
ngCordova
• ngCordova is a project done by Ionic team to
facilitate integration of Cordova plugin into
AngularJS.
• You may refer to ngCordova website showing all
the plugins that we can easily inject into our
Controller, just like how we inject any other service.
Using ngCordova
• Include ngCordova inside the project using Bower:
• bower install ngCordova
• ngCordova will be added into our project. Include
the script into our index.html
• Inject ngCordova into our application.
• Go to CLI: ionic plugin add <plugin name>

More Related Content

What's hot

Intro to Ionic for Building Hybrid Mobile Applications
Intro to Ionic for Building Hybrid Mobile ApplicationsIntro to Ionic for Building Hybrid Mobile Applications
Intro to Ionic for Building Hybrid Mobile ApplicationsSasha dos Santos
 
Creating mobile apps - an introduction to Ionic (Engage 2016)
Creating mobile apps - an introduction to Ionic (Engage 2016)Creating mobile apps - an introduction to Ionic (Engage 2016)
Creating mobile apps - an introduction to Ionic (Engage 2016)Mark Leusink
 
Developing Hybrid Applications with IONIC
Developing Hybrid Applications with IONICDeveloping Hybrid Applications with IONIC
Developing Hybrid Applications with IONICFuat Buğra AYDIN
 
Hybrid vs. Native app - Ionic Framework with AngularJS
Hybrid vs. Native app - Ionic Framework with AngularJSHybrid vs. Native app - Ionic Framework with AngularJS
Hybrid vs. Native app - Ionic Framework with AngularJSZvika Epstein
 
Cordova, Angularjs & Ionic @ Codeaholics
Cordova, Angularjs & Ionic @ CodeaholicsCordova, Angularjs & Ionic @ Codeaholics
Cordova, Angularjs & Ionic @ CodeaholicsEddie Lau
 
Building Mobile Apps with Cordova , AngularJS and Ionic
Building Mobile Apps with Cordova , AngularJS and IonicBuilding Mobile Apps with Cordova , AngularJS and Ionic
Building Mobile Apps with Cordova , AngularJS and IonicKadhem Soltani
 
Hybrid Apps with Angular & Ionic Framework
Hybrid Apps with Angular & Ionic FrameworkHybrid Apps with Angular & Ionic Framework
Hybrid Apps with Angular & Ionic FrameworkCihad Horuzoğlu
 
IONIC - Hybrid Mobile App Development
IONIC - Hybrid Mobile App DevelopmentIONIC - Hybrid Mobile App Development
IONIC - Hybrid Mobile App DevelopmentMalan Amarasinghe
 
Mobile Applications with Angular 4 and Ionic 3
Mobile Applications with Angular 4 and Ionic 3Mobile Applications with Angular 4 and Ionic 3
Mobile Applications with Angular 4 and Ionic 3Oleksandr Tryshchenko
 
Ionic - Revolutionizing Hybrid Mobile Application Development
Ionic - Revolutionizing Hybrid Mobile Application DevelopmentIonic - Revolutionizing Hybrid Mobile Application Development
Ionic - Revolutionizing Hybrid Mobile Application DevelopmentJustin James
 
Hybrid mobile and Ionic
Hybrid mobile and IonicHybrid mobile and Ionic
Hybrid mobile and IonicLiju Pillai
 
Hybrid Mobile Development with Apache Cordova,AngularJs and ionic
Hybrid Mobile Development with Apache Cordova,AngularJs and ionicHybrid Mobile Development with Apache Cordova,AngularJs and ionic
Hybrid Mobile Development with Apache Cordova,AngularJs and ionicErmias Bayu
 
Ionic Crash Course! Hack-a-ton SF
Ionic Crash Course! Hack-a-ton SFIonic Crash Course! Hack-a-ton SF
Ionic Crash Course! Hack-a-ton SFLukas Ruebbelke
 
Ionic Mobile Applications - Hybrid Mobile Applications Without Compromises
Ionic Mobile Applications - Hybrid Mobile Applications Without CompromisesIonic Mobile Applications - Hybrid Mobile Applications Without Compromises
Ionic Mobile Applications - Hybrid Mobile Applications Without CompromisesJacob Friesen
 
Introduction to Ionic framework
Introduction to Ionic frameworkIntroduction to Ionic framework
Introduction to Ionic frameworkShyjal Raazi
 
Hybrid app in ionic framework overview
Hybrid app in ionic framework overviewHybrid app in ionic framework overview
Hybrid app in ionic framework overviewSanket Devlekar
 
Use Ionic Framework to develop mobile application
Use Ionic Framework to develop mobile applicationUse Ionic Framework to develop mobile application
Use Ionic Framework to develop mobile applicationLucio Grenzi
 
Getting started with the Ionic Framework
Getting started with the Ionic FrameworkGetting started with the Ionic Framework
Getting started with the Ionic FrameworkAnuradha Weeraman
 

What's hot (20)

Intro to Ionic for Building Hybrid Mobile Applications
Intro to Ionic for Building Hybrid Mobile ApplicationsIntro to Ionic for Building Hybrid Mobile Applications
Intro to Ionic for Building Hybrid Mobile Applications
 
Creating mobile apps - an introduction to Ionic (Engage 2016)
Creating mobile apps - an introduction to Ionic (Engage 2016)Creating mobile apps - an introduction to Ionic (Engage 2016)
Creating mobile apps - an introduction to Ionic (Engage 2016)
 
Developing Hybrid Applications with IONIC
Developing Hybrid Applications with IONICDeveloping Hybrid Applications with IONIC
Developing Hybrid Applications with IONIC
 
Hybrid vs. Native app - Ionic Framework with AngularJS
Hybrid vs. Native app - Ionic Framework with AngularJSHybrid vs. Native app - Ionic Framework with AngularJS
Hybrid vs. Native app - Ionic Framework with AngularJS
 
Ionic Framework
Ionic FrameworkIonic Framework
Ionic Framework
 
Cordova, Angularjs & Ionic @ Codeaholics
Cordova, Angularjs & Ionic @ CodeaholicsCordova, Angularjs & Ionic @ Codeaholics
Cordova, Angularjs & Ionic @ Codeaholics
 
Building Mobile Apps with Cordova , AngularJS and Ionic
Building Mobile Apps with Cordova , AngularJS and IonicBuilding Mobile Apps with Cordova , AngularJS and Ionic
Building Mobile Apps with Cordova , AngularJS and Ionic
 
Ionic Framework
Ionic FrameworkIonic Framework
Ionic Framework
 
Hybrid Apps with Angular & Ionic Framework
Hybrid Apps with Angular & Ionic FrameworkHybrid Apps with Angular & Ionic Framework
Hybrid Apps with Angular & Ionic Framework
 
IONIC - Hybrid Mobile App Development
IONIC - Hybrid Mobile App DevelopmentIONIC - Hybrid Mobile App Development
IONIC - Hybrid Mobile App Development
 
Mobile Applications with Angular 4 and Ionic 3
Mobile Applications with Angular 4 and Ionic 3Mobile Applications with Angular 4 and Ionic 3
Mobile Applications with Angular 4 and Ionic 3
 
Ionic - Revolutionizing Hybrid Mobile Application Development
Ionic - Revolutionizing Hybrid Mobile Application DevelopmentIonic - Revolutionizing Hybrid Mobile Application Development
Ionic - Revolutionizing Hybrid Mobile Application Development
 
Hybrid mobile and Ionic
Hybrid mobile and IonicHybrid mobile and Ionic
Hybrid mobile and Ionic
 
Hybrid Mobile Development with Apache Cordova,AngularJs and ionic
Hybrid Mobile Development with Apache Cordova,AngularJs and ionicHybrid Mobile Development with Apache Cordova,AngularJs and ionic
Hybrid Mobile Development with Apache Cordova,AngularJs and ionic
 
Ionic Crash Course! Hack-a-ton SF
Ionic Crash Course! Hack-a-ton SFIonic Crash Course! Hack-a-ton SF
Ionic Crash Course! Hack-a-ton SF
 
Ionic Mobile Applications - Hybrid Mobile Applications Without Compromises
Ionic Mobile Applications - Hybrid Mobile Applications Without CompromisesIonic Mobile Applications - Hybrid Mobile Applications Without Compromises
Ionic Mobile Applications - Hybrid Mobile Applications Without Compromises
 
Introduction to Ionic framework
Introduction to Ionic frameworkIntroduction to Ionic framework
Introduction to Ionic framework
 
Hybrid app in ionic framework overview
Hybrid app in ionic framework overviewHybrid app in ionic framework overview
Hybrid app in ionic framework overview
 
Use Ionic Framework to develop mobile application
Use Ionic Framework to develop mobile applicationUse Ionic Framework to develop mobile application
Use Ionic Framework to develop mobile application
 
Getting started with the Ionic Framework
Getting started with the Ionic FrameworkGetting started with the Ionic Framework
Getting started with the Ionic Framework
 

Viewers also liked

Cordova + Ionic + MobileFirst
Cordova + Ionic + MobileFirstCordova + Ionic + MobileFirst
Cordova + Ionic + MobileFirstRaymond Camden
 
API First Mobile Strategy
API First Mobile StrategyAPI First Mobile Strategy
API First Mobile StrategyNitin Gaur
 
Building an Ionic hybrid mobile app with TypeScript
Building an Ionic hybrid mobile app with TypeScript Building an Ionic hybrid mobile app with TypeScript
Building an Ionic hybrid mobile app with TypeScript Serge van den Oever
 
API First: Going Beyond SOA, ESBs, and Integration
API First: Going Beyond SOA, ESBs, and Integration API First: Going Beyond SOA, ESBs, and Integration
API First: Going Beyond SOA, ESBs, and Integration Apigee | Google Cloud
 
Mobile-First Strategy
Mobile-First StrategyMobile-First Strategy
Mobile-First StrategySteve Buttry
 
Ionic CLI Adventures
Ionic CLI AdventuresIonic CLI Adventures
Ionic CLI AdventuresJuarez Filho
 
Mobile HTML5 websites and Hybrid Apps with AngularJS
Mobile HTML5 websites and Hybrid Apps with AngularJSMobile HTML5 websites and Hybrid Apps with AngularJS
Mobile HTML5 websites and Hybrid Apps with AngularJSCarlo Bonamico
 
Introduction to PhoneGap
Introduction to PhoneGapIntroduction to PhoneGap
Introduction to PhoneGapRamesh Nair
 
Cordova: APIs and instruments
Cordova: APIs and instrumentsCordova: APIs and instruments
Cordova: APIs and instrumentsIvano Malavolta
 
Step by step guide to build ionic hybrid app using cordova android
Step by step guide to build ionic hybrid app using cordova androidStep by step guide to build ionic hybrid app using cordova android
Step by step guide to build ionic hybrid app using cordova androidswagat parida
 
Cordova / PhoneGap, mobile apps development with HTML5/JS/CSS
Cordova / PhoneGap, mobile apps development with HTML5/JS/CSSCordova / PhoneGap, mobile apps development with HTML5/JS/CSS
Cordova / PhoneGap, mobile apps development with HTML5/JS/CSSGabriel Huecas
 
Effective Communication Of Data Inspired by Stephen Few
Effective Communication Of Data Inspired by Stephen FewEffective Communication Of Data Inspired by Stephen Few
Effective Communication Of Data Inspired by Stephen FewCory Grenier
 
Rethinking Mobile with Ionic
Rethinking Mobile with IonicRethinking Mobile with Ionic
Rethinking Mobile with IonicMike Hartington
 
Crash Course in AngularJS + Ionic (Deep dive)
Crash Course in AngularJS + Ionic (Deep dive)Crash Course in AngularJS + Ionic (Deep dive)
Crash Course in AngularJS + Ionic (Deep dive)ColdFusionConference
 
Ionic Framework - get up and running to build hybrid mobile apps
Ionic Framework - get up and running to build hybrid mobile appsIonic Framework - get up and running to build hybrid mobile apps
Ionic Framework - get up and running to build hybrid mobile appsAndreas Sahle
 
Ionic 2 - Hybridapps auf Steroiden
Ionic 2 - Hybridapps auf SteroidenIonic 2 - Hybridapps auf Steroiden
Ionic 2 - Hybridapps auf SteroidenHendrik Lösch
 
Art and Science of Dashboard Design
Art and Science of Dashboard DesignArt and Science of Dashboard Design
Art and Science of Dashboard DesignSavvyData
 

Viewers also liked (19)

Cordova + Ionic + MobileFirst
Cordova + Ionic + MobileFirstCordova + Ionic + MobileFirst
Cordova + Ionic + MobileFirst
 
API First Mobile Strategy
API First Mobile StrategyAPI First Mobile Strategy
API First Mobile Strategy
 
Building an Ionic hybrid mobile app with TypeScript
Building an Ionic hybrid mobile app with TypeScript Building an Ionic hybrid mobile app with TypeScript
Building an Ionic hybrid mobile app with TypeScript
 
Ionic by Example
Ionic by ExampleIonic by Example
Ionic by Example
 
API First: Going Beyond SOA, ESBs, and Integration
API First: Going Beyond SOA, ESBs, and Integration API First: Going Beyond SOA, ESBs, and Integration
API First: Going Beyond SOA, ESBs, and Integration
 
Mobile-First Strategy
Mobile-First StrategyMobile-First Strategy
Mobile-First Strategy
 
Ionic CLI Adventures
Ionic CLI AdventuresIonic CLI Adventures
Ionic CLI Adventures
 
Mobile HTML5 websites and Hybrid Apps with AngularJS
Mobile HTML5 websites and Hybrid Apps with AngularJSMobile HTML5 websites and Hybrid Apps with AngularJS
Mobile HTML5 websites and Hybrid Apps with AngularJS
 
Introduction to PhoneGap
Introduction to PhoneGapIntroduction to PhoneGap
Introduction to PhoneGap
 
Cordova: APIs and instruments
Cordova: APIs and instrumentsCordova: APIs and instruments
Cordova: APIs and instruments
 
Step by step guide to build ionic hybrid app using cordova android
Step by step guide to build ionic hybrid app using cordova androidStep by step guide to build ionic hybrid app using cordova android
Step by step guide to build ionic hybrid app using cordova android
 
Apache Cordova
Apache CordovaApache Cordova
Apache Cordova
 
Cordova / PhoneGap, mobile apps development with HTML5/JS/CSS
Cordova / PhoneGap, mobile apps development with HTML5/JS/CSSCordova / PhoneGap, mobile apps development with HTML5/JS/CSS
Cordova / PhoneGap, mobile apps development with HTML5/JS/CSS
 
Effective Communication Of Data Inspired by Stephen Few
Effective Communication Of Data Inspired by Stephen FewEffective Communication Of Data Inspired by Stephen Few
Effective Communication Of Data Inspired by Stephen Few
 
Rethinking Mobile with Ionic
Rethinking Mobile with IonicRethinking Mobile with Ionic
Rethinking Mobile with Ionic
 
Crash Course in AngularJS + Ionic (Deep dive)
Crash Course in AngularJS + Ionic (Deep dive)Crash Course in AngularJS + Ionic (Deep dive)
Crash Course in AngularJS + Ionic (Deep dive)
 
Ionic Framework - get up and running to build hybrid mobile apps
Ionic Framework - get up and running to build hybrid mobile appsIonic Framework - get up and running to build hybrid mobile apps
Ionic Framework - get up and running to build hybrid mobile apps
 
Ionic 2 - Hybridapps auf Steroiden
Ionic 2 - Hybridapps auf SteroidenIonic 2 - Hybridapps auf Steroiden
Ionic 2 - Hybridapps auf Steroiden
 
Art and Science of Dashboard Design
Art and Science of Dashboard DesignArt and Science of Dashboard Design
Art and Science of Dashboard Design
 

Similar to Hybrid app development with ionic

Developing a native mobile apps using Ionic&Cordova
Developing a native mobile apps using Ionic&CordovaDeveloping a native mobile apps using Ionic&Cordova
Developing a native mobile apps using Ionic&CordovaDamir Beylkhanov
 
Cross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual StudioCross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual StudioMizanur Sarker
 
Your choices for building a mobile app in 2016
Your choices for building a mobile app in 2016Your choices for building a mobile app in 2016
Your choices for building a mobile app in 2016Jad Salhani
 
Android Application Development Using Java
Android Application Development Using JavaAndroid Application Development Using Java
Android Application Development Using Javaamaankhan
 
Hybrid mobile application with Ionic
Hybrid mobile application with IonicHybrid mobile application with Ionic
Hybrid mobile application with IonicMaulik Bamania
 
The Great Mobile Debate: Native vs. Hybrid App Development
The Great Mobile Debate: Native vs. Hybrid App DevelopmentThe Great Mobile Debate: Native vs. Hybrid App Development
The Great Mobile Debate: Native vs. Hybrid App DevelopmentNick Landry
 
20220728-iOSAppDev-MobileAppDev.pptx
20220728-iOSAppDev-MobileAppDev.pptx20220728-iOSAppDev-MobileAppDev.pptx
20220728-iOSAppDev-MobileAppDev.pptxSuman Garai
 
Introduction to hybrid application development
Introduction to hybrid application developmentIntroduction to hybrid application development
Introduction to hybrid application developmentKunjan Thakkar
 
Cross Platform Mobile Development
Cross Platform Mobile DevelopmentCross Platform Mobile Development
Cross Platform Mobile DevelopmentManesh Lad
 
I knew there had to be a better way to build mobile apps
I knew there had to be a better way to build mobile appsI knew there had to be a better way to build mobile apps
I knew there had to be a better way to build mobile appsAlius Petraška
 
Introduction to Cross-Platform Hybrid Mobile App Development
Introduction to Cross-Platform Hybrid Mobile App DevelopmentIntroduction to Cross-Platform Hybrid Mobile App Development
Introduction to Cross-Platform Hybrid Mobile App DevelopmentÖzcan Zafer AYAN
 
«I knew there had to be a better way to build mobile app»​
«I knew there had to be a better way to build mobile app»​«I knew there had to be a better way to build mobile app»​
«I knew there had to be a better way to build mobile app»​FDConf
 
Common Ionic Development Mistakes Developers Tend To Make!
Common Ionic Development Mistakes Developers Tend To Make!Common Ionic Development Mistakes Developers Tend To Make!
Common Ionic Development Mistakes Developers Tend To Make!Techugo
 
IOSAPPDevelopment 2011CS010103.pptx
IOSAPPDevelopment 2011CS010103.pptxIOSAPPDevelopment 2011CS010103.pptx
IOSAPPDevelopment 2011CS010103.pptxJiminJimin16
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium IntroNicholas Jansma
 

Similar to Hybrid app development with ionic (20)

Building mobile apps using meteorJS
Building mobile apps using meteorJSBuilding mobile apps using meteorJS
Building mobile apps using meteorJS
 
Developing a native mobile apps using Ionic&Cordova
Developing a native mobile apps using Ionic&CordovaDeveloping a native mobile apps using Ionic&Cordova
Developing a native mobile apps using Ionic&Cordova
 
Cross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual StudioCross-Platform Development using Angulr JS in Visual Studio
Cross-Platform Development using Angulr JS in Visual Studio
 
Your choices for building a mobile app in 2016
Your choices for building a mobile app in 2016Your choices for building a mobile app in 2016
Your choices for building a mobile app in 2016
 
Building iOS app using meteor
Building iOS app using meteorBuilding iOS app using meteor
Building iOS app using meteor
 
Android Application Development Using Java
Android Application Development Using JavaAndroid Application Development Using Java
Android Application Development Using Java
 
Hybrid mobile application with Ionic
Hybrid mobile application with IonicHybrid mobile application with Ionic
Hybrid mobile application with Ionic
 
The Great Mobile Debate: Native vs. Hybrid App Development
The Great Mobile Debate: Native vs. Hybrid App DevelopmentThe Great Mobile Debate: Native vs. Hybrid App Development
The Great Mobile Debate: Native vs. Hybrid App Development
 
iOS App Development and Marketing
iOS App Development and MarketingiOS App Development and Marketing
iOS App Development and Marketing
 
20220728-iOSAppDev-MobileAppDev.pptx
20220728-iOSAppDev-MobileAppDev.pptx20220728-iOSAppDev-MobileAppDev.pptx
20220728-iOSAppDev-MobileAppDev.pptx
 
Introduction to hybrid application development
Introduction to hybrid application developmentIntroduction to hybrid application development
Introduction to hybrid application development
 
Cross Platform Mobile Development
Cross Platform Mobile DevelopmentCross Platform Mobile Development
Cross Platform Mobile Development
 
tittanium
tittaniumtittanium
tittanium
 
I knew there had to be a better way to build mobile apps
I knew there had to be a better way to build mobile appsI knew there had to be a better way to build mobile apps
I knew there had to be a better way to build mobile apps
 
Introduction to Cross-Platform Hybrid Mobile App Development
Introduction to Cross-Platform Hybrid Mobile App DevelopmentIntroduction to Cross-Platform Hybrid Mobile App Development
Introduction to Cross-Platform Hybrid Mobile App Development
 
«I knew there had to be a better way to build mobile app»​
«I knew there had to be a better way to build mobile app»​«I knew there had to be a better way to build mobile app»​
«I knew there had to be a better way to build mobile app»​
 
Common Ionic Development Mistakes Developers Tend To Make!
Common Ionic Development Mistakes Developers Tend To Make!Common Ionic Development Mistakes Developers Tend To Make!
Common Ionic Development Mistakes Developers Tend To Make!
 
IOSAPPDevelopment 2011CS010103.pptx
IOSAPPDevelopment 2011CS010103.pptxIOSAPPDevelopment 2011CS010103.pptx
IOSAPPDevelopment 2011CS010103.pptx
 
Xamarin v.Now
Xamarin v.NowXamarin v.Now
Xamarin v.Now
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium Intro
 

Recently uploaded

Leading Mobile App Development Companies in India (2).pdf
Leading Mobile App Development Companies in India (2).pdfLeading Mobile App Development Companies in India (2).pdf
Leading Mobile App Development Companies in India (2).pdfCWS Technology
 
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost LoverPowerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost LoverPsychicRuben LoveSpells
 
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort ServiceBDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort ServiceDelhi Call girls
 
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCRFULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCRnishacall1
 
9999266834 Call Girls In Noida Sector 52 (Delhi) Call Girl Service
9999266834 Call Girls In Noida Sector 52 (Delhi) Call Girl Service9999266834 Call Girls In Noida Sector 52 (Delhi) Call Girl Service
9999266834 Call Girls In Noida Sector 52 (Delhi) Call Girl Servicenishacall1
 

Recently uploaded (6)

Obat Penggugur Kandungan Di Apotik Kimia Farma (087776558899)
Obat Penggugur Kandungan Di Apotik Kimia Farma (087776558899)Obat Penggugur Kandungan Di Apotik Kimia Farma (087776558899)
Obat Penggugur Kandungan Di Apotik Kimia Farma (087776558899)
 
Leading Mobile App Development Companies in India (2).pdf
Leading Mobile App Development Companies in India (2).pdfLeading Mobile App Development Companies in India (2).pdf
Leading Mobile App Development Companies in India (2).pdf
 
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost LoverPowerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
 
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort ServiceBDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
 
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCRFULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
 
9999266834 Call Girls In Noida Sector 52 (Delhi) Call Girl Service
9999266834 Call Girls In Noida Sector 52 (Delhi) Call Girl Service9999266834 Call Girls In Noida Sector 52 (Delhi) Call Girl Service
9999266834 Call Girls In Noida Sector 52 (Delhi) Call Girl Service
 

Hybrid app development with ionic

  • 1. Hybrid Development with Ionic Wan Muzaffar Wan Hashim
  • 4. MACBOOK • You will be needing a Macbook for iOS app development. • Using XCode and Apple development tool to submit the app to Appstore.
  • 6. iOS Developer Program • To purchase developer account from $99 per year. • App will be reviewed by Apple review team to ensure that it follows Apple Human Interface guideline. • Refer to Apple HIG and Submission checklist prior to submitting the app. • App submission to be done with Apple tool (Xcode, Application loader) = Need a Mac.
  • 8. Android Developer Program • To purchase developer account of $25 per year. • Unlike Apple, app will be published directly into Google Play without review from Google Play team.
  • 12. Simulator - Limitation - Motion Support Accelerometer Gyroscope - Audio and Video Input Camera Microphone - Proximity Sensor - No preinstalled application - No support to receive phone call
  • 14. THINGS TO PLAN OUT BEFORE STARTING DEVELOPMENT
  • 16. Monetization • App can be sold for free OR • Can distribute app in AppStore of Google Play. •Sharing revenue model (70/30) •Put price on application •iOS: Price will be in USD ending with .99 •Android: Support MYR price. •Put Ads on the application.
  • 17. Lean Startup Principle applied by startups since 2011 Shorten product development cycles by adopting business- hypothesis-driven experimentation and iterative releases. Example case study: Dropbox, imvu, Aardvark (refer lean startup website)
  • 18. Some principles.. Minimum Viable Product Continuous Deployment Split testing Actionable Metrics Build - Measure - Learn
  • 19. 19
  • 21. What is a hybrid app? • Hybrid app is a mobile app written using web technologies (HTML5, CSS and JavaScript) • Hybrid app runs inside a native container (Webview) • Hybrid app can access to device native feature, exposed by JavaScript.
  • 22. What is a native app? • Using specific SDK provided by platform provide, (iOS, Android, Windows Phone.…) • Advanced UI and Device feature Interaction with the app. • Necessity to learn platform specific development language: Objective C, Swift or Java .
  • 23.
  • 24. Why Hybrid • Reuse existing web development skill (shorter learning curve) : HTML, CSS3 & JS • One language for different platform (iOS and Android) • Quick Development • Direct access to certain native APIs with Cordova
  • 25. Risk developing Hybrid application • Limited performance compared to Native application. • Not all device and operating system features supported. • Risk of being rejected by Apple if app does not feel native enough • Increased time and effort to mimic native user experience.
  • 26. How to mitigate the risk • Crafting a UI that is similar to native user experience. • Avoid over complicated UI and UX. Refer to Apple HIG or Android Design guide for reference. • Ionic provide a library of CSS elements that mimic native UI elements to be used inside the app. Understand and try to use as much of the elements as possible when designing your app.
  • 27. App built using hybrid development
  • 28. App built using hybrid development
  • 29. App built using hybrid development
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 37. What is Ionic? • Powerful HTML5 SDK that will give native-feeling mobile apps. • This can be achieved simply using web-technologies : HTML, CSS and Javascript • Focuses on : • Look and feel • UI Interaction of the app. • Is not a replacement of Phonegap.
  • 39. Apache Cordova • A platform for building native mobile applications using HTML, CSS and JavaScript. • Provides a set of APIs in Javascript and HTML to interact with native features of the device. • 2009: Phonegap was created by Nitobi • 2011: Acquired by Adobe • 2012: Renaming by Adobe under the name Cordova.
  • 40. AngularJS • AngularJS is a JavaScript Framework maintained by Google at the moment. • It is based on Model-View- Controller (MVC) and MVVM architecture. • Angular extends HTML functionalities to facilitate us creating a web-application.
  • 41. Pre-requisite for learning Ionic • Basic Programming/Javascript • HTML and CSS • Angular JS (We will cover the most used Angular concept) • Web application concepts (REST/CRUD)
  • 42. Ionic Supported devices • iOS 7+ • Android 4.1 and up • Windows Phone (Coming soon) • FirefoxOS (Coming soon)
  • 45. Ionic color scheme • Ionic comes with a set of colors to start with. • Naming convention for colors are based on emotion and generic terms. • Color can be customised and override from ionic.css.
  • 47. Ionic Playground • Ionic Playground is a tool allow us to easily prototype our Ionic code in a browser, without installing anything. • It has a simple HTML, CSS, and Javascript editor with a live app preview that updates immediately with new changes. • We can easily share our code with anyone or fork other apps to modify others’ code. • You can check at: play.ionic.io
  • 49. Ionic Lab via CLI ionic serve —lab
  • 51. Ionic View • Download Ionic View app in Appstore or Google Play. • Use CLI command: ionic upload, you can easily test your app using ionic view. • Share your app using ionic share <email> command on CLI.
  • 55. Who is using Ionic? Mallzee Moodle Mobile Just Watch
  • 56. Mallzee • Tinder style Personal shopper based in UK. • Replaced their hand built PhoneGap app with Ionic • Excellent UI • Apps available in Android and iOS • Manage to secure recently £2.5M funding, recently.
  • 57. Songhop • Music discovery application, yet another Tinder style application. • Available on iPhone only. • Rated 5 star in App Store. • Founder is active with Ionic Community.
  • 58. Sworkit • Techinsider describe it ass “The best free fitness app in the world” with simple and clean interface. • Featured in the Health and Fitness section of the App Store. • Downloaded over 3 million times.
  • 66.
  • 70. AngularJS Important Features in Ionic • Directives • Model View Controller (MVC) • Data Binding • Dependency Injection • Filter
  • 71. Installing Ionic • Ionic require Node.js. Download Node.js from the website • Once done, you may install ionic and cordova from the command line: npm install -g cordova ionic
  • 72. Ionic CLI command • Create new project: • ionic start <your-app-name> • Test on web browser: • ionic serve • Add mobile platform • ionic platform add [android/ios] • Build and application • ionic build [android/ios] • Run test on device/emulator • ionic [run/emulate] [android/ios]
  • 73. Starting an app with Ionic template $ ionic start myApp blank $ ionic start myApp sidemenu$ ionic start myApp tabs
  • 74. Ionic Live Reload • Live reload is a cool feature where browser will be updated automatically every time we save the change in our code. • Live reload is available on device and emulator, to add following option on CLI command. $ ionic [run|emulate] <platform> [options] [--livereload|-l] .... Live Reload app dev files from the device [--consolelogs|-c] ... Print app console logs to Ionic CLI [--serverlogs|-s] .... Print dev server logs to Ionic CLI
  • 75. Ionic List • Widely used interface element in almost any mobile app, • Can include content ranging from basic text all the way to buttons, toggles, icons, and thumbnails.
  • 76. Simple List <ion-content class="padding"> <div class="list"> <div class="item item-divider"> Melaka </div> <a class="item" href="#"> A Famosa </a> <a class="item" href="#"> Dataran Pahlawan </a> <div class="item item-divider"> Kuala Lumpur </div> <a class="item" href="#"> Muzium Negara </a> <a class="item" href="#"> KL Tower </a> <a class="item" href="#"> KLCC </a> </ion-content>
  • 77. Complex List <ion-list> <ion-item ng-repeat="item in items" item="item"> List Item {{ item.id }} </ion-item> </ion-list> • Using AngularJS Directive. • Built in swipe to action function • Delete • Reorder
  • 78. List with Ionicons <div class="list"> <a class="item item-icon-left" href="#"> <i class="icon ion-email"></i> Check mail </a> <a class="item item-icon-left item-icon-right" href="#"> <i class="icon ion-chatbubble-working"></i> Call Ma <i class="icon ion-ios-telephone-outline"></i> </a> <a class="item item-icon-left" href="#"> <i class="icon ion-mic-a"></i> Record album <span class="item-note"> Grammy </span> </a> <a class="item item-icon-left" href="#"> <i class="icon ion-person-stalker"></i> Friends <span class="badge badge-assertive">0</span> </a> </div>
  • 79. Cards • Cards are UI Element that have gained popularity in recent years. • Cards can be added in Angular and customised as per your need. <div class="card"> <div class="item item-divider"> I'm a Header in a Card! </div> <div class="item item-text-wrap"> This is a basic Card with some text. </div> <div class="item item-divider"> I'm a Footer in a Card! </div> </div>
  • 81. Form and Inputs • Preferably, a form is grouped inside a list. • We used both item and item-input element to designated each field. <div class="list"> <label class="item item-input"> <input type="text" placeholder="First Name"> </label> <label class="item item-input"> <input type="text" placeholder="Last Name"> </label> <label class="item item-input"> <textarea placeholder="Comments"></textarea> </label> </div>
  • 82. Ionic Navigation • Using AngularUI Router Service. • Manage navigation and show the back button when possible. • Works with Android’s physical back button. <ion-nav-bar> <ion-nav-back-button> Back </ion-nav-back-button> </ion-nav-bar> <ion-nav-view></ion-nav-view>
  • 83. Ionic Tab <a class="tab-item"> <i class="icon ion-home"></i> Home </a> <a class="tab-item"> <i class="icon ion-star"></i> Favorites </a> <a class="tab-item"> <i class="icon ion-gear-a"></i> Settings </a> • Using AngularUI Router Service. • Manage navigation and show the back button when possible. • Works with Android’s physical back button.
  • 84. Ionic Slide <ion-slide-box on-slide- changed="change(index)"> <ion-slide> Slide 1 </ion-slide> <ion-slide> Slide 2 </ion-slide> <ion-slide> Slide 3 </ion-slide> </ion-slide-box> • Using AngularUI Router Service. • Manage navigation and show the back button when possible. • Works with Android’s physical back button.
  • 86. ngCordova • ngCordova is a project done by Ionic team to facilitate integration of Cordova plugin into AngularJS. • You may refer to ngCordova website showing all the plugins that we can easily inject into our Controller, just like how we inject any other service.
  • 87.
  • 88. Using ngCordova • Include ngCordova inside the project using Bower: • bower install ngCordova • ngCordova will be added into our project. Include the script into our index.html • Inject ngCordova into our application. • Go to CLI: ionic plugin add <plugin name>