SlideShare a Scribd company logo
The beautiful, open source framework for
developing hybrid mobile apps with HTML 5
ionicframework.com
Over 15 years of programming experience
Slides: http://slides.com/digitaldrummerj
Twitter: @digitaldrummerj
Email: digitaldrummerj @ gmail.com
GitHub:
Blog:
https://github.com/digitaldrummerj
digitaldrummerj.github.io
Justin James
Justin James
@digitaldrummerj
"So you want to build a native app?"
@digitaldrummerj
Why are we still coding for multiple platforms?
More Platforms. More Problems.
More Platforms. More Problems.
@digitaldrummerj
The Downsides of Native
The Downsides of Native
Proficiency in each platform required
Entirely separate code bases
Timely & expensive development
Diminishing returns
@digitaldrummerj
"Is there an alternative?"
@digitaldrummerj
Hybrid Apps!
Hybrid Apps!
HTML 5 that acts like native
Web wrapper in native layer
Direct access to native APIs
Cordova / Phonegap
Familiar web development environment
Focus on performance
@digitaldrummerj
Combines Apache Cordova
with AngularJS
along with lots of custom Javascript,
Html, and CSS3
to create mobile apps
that perform like native ones
and look beautiful
MIT Licensed (free even commercially)
Hello Ionic
Hello Ionic
@digitaldrummerj
AngularJS
AngularJS
Awesome MVC Framework
Developed by Google and the community
Features:
Live data binding
Two-way binding
Attaching code-behind to DOM element
Directives
Repeating DOM elements
Templates
Dependency Injection
@digitaldrummerj
CSS Generated by Sass
CSS Generated by Sass
Quickly give your app its own look and feel
CSS Designed to be easily overridden
Either override ionic.css or use Sass Preprocessor
Stand-alone CSS (independent of Ionic's Javascript)
@digitaldrummerj
Performance Obsessed
Performance Obsessed
Hardware accelerated animations
Minimal DOM Manipulation
Zero jQuery (you could still include it if you want)
@digitaldrummerj
Native Focused
Native Focused
Modeled off of native SDKs
Built to work with Cordova/Phonegap
@digitaldrummerj
Supported Devices
Supported Devices
@digitaldrummerj
iOS 6+ Android 4+ Windows
Phone
(planned)
FireFox OS
(planned)
Cordova
Cordova
Uses web technologies to build mobile apps
The apps have access to device hardware from Javascript
The web files are hosted in the app
Apps are portable to other systems with little to no changes
Apps are packaged using platform SDKs
Cordova does not include a UI framework
http://plugins.cordova.io/
@digitaldrummerj
ngCordova
ngCordova
collection of 63+ AngularJS extensions
built on top of the Cordova API
making it easy to build, test, and deploy
Cordova mobile apps with AngularJS.
http://ngcordova.com/
@digitaldrummerj
ngCordova Plugins
ngCordova Plugins
Battery Status
Bar Code Scanner
Calendar
Camera
Clipboard
Contacts
@digitaldrummerj
Device Motion
Flashlight
Geo Location
SMS
Social Sharing
TouchID
Plus more...ngcordova.com/docs/plugins/
Ionicons
Ionicons
Over 600 MIT licensed font-icons included
ionicons.com @digitaldrummerj
Are people using it?
Are people using it?
http://showcase.ionicframework.com/
2014 By the Numbers
2014 By the Numbers
Ionic started at the end of 2013
top 50 most popular open source projects
over 12, 000 stars on GitHub
over 320, 000 apps have been created
over half a million unique visits to Ionic website
over 45, 000 forum post
integrated into tools such as WebStorm, JBoss, Heroku
templates from Firebase
pluralsight course was created by Steve Michelotti
#ionic IRC room has ~100 users at any given time
several books being written such Ionic in Action from
Manning Publishing
@digitaldrummerj
The personal stylist in your pocket
Pulls in over 2 million products from
100 big name fashion brands
Next generation fashion mall for
whatever style you require.
http://mallzee.com/
Mallzee
Mallzee
@digitaldrummerj
The fastest way to find new music
5 star rated
iPhone Only
https://songhop.fm/
Songhop
Songhop
@digitaldrummerj
Like Uber for commercial trucking
Connect to thousands of freight
shippers and brokerages across the
country
https://www.keychainlogistics.com/
Keychain
Keychain
@digitaldrummerj
Offical app of the ng-europe
conference.
Used to get the schedule, speakers,
venue address, news, chat and more
http://ngeurope.org/
ngEurope
ngEurope
@digitaldrummerj
Fitness app that guides anyone thru
5-60 minute circuits
Downloaded over 3 million times
Been featured in multiple Health and
Fitness lists within both the App
Store and Google Play
http://sworkit.com/
Sworkit
Sworkit
@digitaldrummerj
What should I know?
What should I know?
Modern Web Skills
Modern Web Skills
HTML 5 / CSS 3 / Javascript
Comfortable with command line tools
AngularJS
Sass (optional)
@digitaldrummerj
Ionic Built-In UI Elements
Ionic Built-In UI Elements
List
List
<div class="list">
<div class="item item-divider">
Candy Bars
</div>
<a class="item" href="#">
Butterfinger
</a>
<a class="item" href="#">
Kit Kat
</a>
...
</div>
@digitaldrummerj
Complex List
Complex List
<ion-list>
<ion-item
ng-repeat="item in items"
class="item-thumbnail-left">
<img ng-src="{{ item.pic }}">
<h2>{{ item.name }}</h2>
<p>{{ item.quote }}</p>
</ion-item>
</ion-list>
AngularJS Directive
Buttons exposed by swiping
Reorder
Delete
@digitaldrummerj
Collection Repeat
Collection Repeat
<div class="list">
<div collection-repeat="c in contacts" class="item">
<h2>{{ c.name }}</h2>
<p>{{ c.email }}</p>
</div>
</div>
Similar to Angular's ng-repeat
Scroll through thousands of items
Only renders the viewable items
Smooth jank-free scrolling
Low memory footprint
@digitaldrummerj
Tabs
Tabs
<ion-tabs class="tabs-icon-only">
<ion-tab title="Home"
icon="ion-star">
<ion-nav-view></ion-nav-view>
</ion-tab>
<ion-tab title="Feedback"
icon="ion-thumbsdown">
<ion-nav-view></ion-nav-view>
</ion-tab>
<ion-tab title="Messages"
icon="ion-chatbubble-working">
<ion-nav-view></ion-nav-view>
</ion-tab>
</ion-tabs>
Nested views
Each tab has its own nav history
@digitaldrummerj
Side Menu
Side Menu
<ion-side-menus>
<ion-side-menu-content>
<ion-nav-bar></ion-nav-bar>
<ion-nav-view></ion-nav-view>
</ion-side-menu-content>
<ion-side-menu side="left">
<header class="bar
bar-header bar-positive">
<div class="title">Projects</div>
</header>
<ion-content has-header="true">
<div class="list">
<a href="#/work" class="item">Work</a>
<a href="#/home" class="item">Home</a>
</div>
</ion-content>
</ion-side-menu>
</ion-side-menus>
@digitaldrummerj
Slide Box
Slide Box
<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>
@digitaldrummerj
Action Sheet
Action Sheet
$ionicActionSheet.show({
titleText: 'Modify your album',
buttons: [
{ text: 'Share' },
{ text: 'Move' },
],
destructiveText: 'Delete',
cancelText: 'Cancel',
buttonClicked: function(index) {
console.log('BUTTON CLICKED', index);
return true;
}
});
@digitaldrummerj
Pull to Refresh
Pull to Refresh
<ion-content on-refresh="refreshData()">
<ion-refresher></ion-refresher>
<!-- content -->
</ion-content>
@digitaldrummerj
Navigation
Navigation
<ion-nav-bar>
<ion-nav-back-button>
Back
</ion-nav-back-button>
</ion-nav-bar>
<ion-nav-view animation="slide-left-right">
<!-- content -->
</ion-nav-view>
Shows back button when possible
Each tab has its own history stack
Works with Android's back button
@digitaldrummerj
How to get started?
How to get started?
Most demos show this command and move on.
However, this assumes that you have lots of other software
already installed and configured correctly.
For a newbie, that has not used Node.js or done
Android/iOS development, the setup can be daunting.
Next couple of slides give you links to blog post I wrote with
all of the steps need to get started on both Windows and
Mac.
$ npm install -g cordova ionic
Installing Ionic
Installing Ionic
@digitaldrummerj
Prerequisites
Prerequisites
git
ant
Java SDK 7
Android Studio
Android SDK (API 19)
Node / NPM
Cordova
Gulp
Google Chrome (for debugging)
Genymotion (optional)
Ruby (if using sass)
Sass Ruby Gem
@digitaldrummerj
Ionic on Windows Setup
Ionic on Windows Setup
Manual:
Automated using Chocolatey and BoxStarter:
Read the "How To Use this Gist File Section" for instructions
http://therockncoder.blogspot.com/2014/12/installing-ionic-
framework-from-scratch.html
digitaldrummerj.github.io/Ionic-Setup-Windows/
@digitaldrummerj
Ionic on a Mac Setup
Ionic on a Mac Setup
Instruction available at
digitaldrummerj.github.io/ionic-setup-osx/
@digitaldrummerj
Is there an easier way?
Is there an easier way?
The Ionic Box
The Ionic Box
Install VirtualBox, its free and available for most
platforms
Install Vagrant, its free too
Install the Ionic Box (Ubuntu Linux and PreReq's)
Configuration Steps
https://www.virtualbox.org/
https://www.vagrantup.com/
https://github.com/driftyco/ionic-box
digitaldrummerj.github.io/ionicbox-notes/
@digitaldrummerj
What's building an app like?
Create ionic app
Create ionic app
Create new project
Test on web browser
Add mobile platform (Android or iOS)
Run test on device/emulator
ionic start myApp [blank/tabs/sideMenu]
ionic serve
ionic platform add [android/ios]
ionic [run/emulate] [ android/ios]
@digitaldrummerj
Coding Time
Coding Time
Additional Tooling
Additional Tooling
from Ionic
from Ionic
Ionic View Application
Ionic View Application
View/Share/Test Ionic apps developing across devices
even test against OS without a Mac
Uses Cordova inAppBrowser plugin to launch your apps in their
own separate WebView
At the moment, plugin access is restricted to a specific
subset of plugins
Currently, iOS only but Android version on its way
Download from Apple Store:
https://itunes.apple.com/us/app/ionic-view/id849930087?mt=8
$ ionic start myApp
$ cd myApp
$ ionic upload
@digitaldrummerj
Ionic Creator
Ionic Creator
Creator makes it easy to rapidly build Ionic mobile
apps. With a drag-and-drop interface and real code
exporting.
And it's totally free to use.
https://creator.ionic.io/
@digitaldrummerj
Ionic and Crosswalk
Ionic and Crosswalk
Android < 4.4 use Android's no named default browser
which is slower and less compliant than Chrome.
Specify version of Chrome to run your Android Cordova App.
Up to 10x performance increase
App will grow ~10-15 mb in size.
More Crosswalk Info:
Ionic Specifics:
crosswalk-project.org/
ionicframework.com/blog/crosswalk-comes-to-
ionic/
$ionic start my_app
$cd my_app
$ionic browser add crosswalk
$ionic run android
@digitaldrummerj
Simplify testing
against multiple
platforms
Side by Side view of
Android and iOS Phone
Supports Live Reload
Ionic Lab
Ionic Lab
$ ionic start my_app
$ cd my_app
$ ionic serve --lab
@digitaldrummerj
Summary
Summary
Makes mobile developer way easier but not easy
Build and run native apps by using existing web skills
Quickly start a project with starter templates
Start a local dev server with LiveReload
Lots of good tooling, features, and documentation
Not yet 1.0 release, but very close
Active and growing developer community
@digitaldrummerj
Resources
Resources
Videos, tutorials, and formulas:
Community Forum:
Ionic Creator:
Blog:
GitHub:
Twitter:
Ionic Framework Examples:
Nic Raboy's Blog:
Andrew McGivery -
My blog -
learn.ionicframework.com
forum.ionicframework.com
creator.ionic.io
ionicframework.com/blog/
github.com/driftyco/ionic
@ionicframework
codepen.io/ionic
https://blog.nraboy.com/
http://mcgivery.com/
http://digitaldrummerj.github.io/
@digitaldrummerj
Please rate this talk!
http:/
/spkr8.com/t/42121
http:/
/spkr8.com/t/42121
@digitaldrummerj

More Related Content

What's hot (20)

PDF
Hybrid Apps with Ionic Framework
Bramus Van Damme
 
PDF
Cordova, Angularjs & Ionic @ Codeaholics
Eddie Lau
 
PDF
Ionic Framework
Cristián Cortéz
 
PDF
Cross Platform Mobile Apps with the Ionic Framework
Troy Miles
 
PDF
Workshop Ionic Framework - CC FE & UX
JWORKS powered by Ordina
 
PDF
Creating an hybrid app in minutes with Ionic Framework
Julien Renaux
 
PDF
Building Mobile Applications with Ionic
Morris Singer
 
PDF
Ionic framework one day training
Troy Miles
 
PPTX
Developing Hybrid Applications with IONIC
Fuat Buğra AYDIN
 
PPTX
Workshop on Hybrid App Development with Ionic Framework
Aayush Shrestha
 
PPTX
App forum2015 London - Building RhoMobile Applications with Ionic
robgalvinjr
 
PDF
Ionic 2: Mobile apps with the Web
Mike Hartington
 
PDF
Intro to mobile apps with the ionic framework & angular js
Hector Iribarne
 
PPTX
Ionic Framework - get up and running to build hybrid mobile apps
Andreas Sahle
 
PPTX
Hybrid mobile and Ionic
Liju Pillai
 
PDF
Hybrid Apps with Angular & Ionic Framework
Cihad Horuzoğlu
 
PPTX
Building mobile app with Ionic Framework
Huy Trần
 
PPT
Ionic Framework
Thinh VoXuan
 
PPTX
Hybrid app in ionic framework overview
Sanket Devlekar
 
PDF
Build Consumer Apps Using Mobile SDK and Ionic Framework
Salesforce Developers
 
Hybrid Apps with Ionic Framework
Bramus Van Damme
 
Cordova, Angularjs & Ionic @ Codeaholics
Eddie Lau
 
Ionic Framework
Cristián Cortéz
 
Cross Platform Mobile Apps with the Ionic Framework
Troy Miles
 
Workshop Ionic Framework - CC FE & UX
JWORKS powered by Ordina
 
Creating an hybrid app in minutes with Ionic Framework
Julien Renaux
 
Building Mobile Applications with Ionic
Morris Singer
 
Ionic framework one day training
Troy Miles
 
Developing Hybrid Applications with IONIC
Fuat Buğra AYDIN
 
Workshop on Hybrid App Development with Ionic Framework
Aayush Shrestha
 
App forum2015 London - Building RhoMobile Applications with Ionic
robgalvinjr
 
Ionic 2: Mobile apps with the Web
Mike Hartington
 
Intro to mobile apps with the ionic framework & angular js
Hector Iribarne
 
Ionic Framework - get up and running to build hybrid mobile apps
Andreas Sahle
 
Hybrid mobile and Ionic
Liju Pillai
 
Hybrid Apps with Angular & Ionic Framework
Cihad Horuzoğlu
 
Building mobile app with Ionic Framework
Huy Trần
 
Ionic Framework
Thinh VoXuan
 
Hybrid app in ionic framework overview
Sanket Devlekar
 
Build Consumer Apps Using Mobile SDK and Ionic Framework
Salesforce Developers
 

Viewers also liked (14)

PDF
Mobile App Development
Chris Morrell
 
PPT
Mobile Application Development
jini james
 
PPTX
Introduction to Ionic framework
Shyjal Raazi
 
PDF
Rethinking Mobile with Ionic
Mike Hartington
 
PDF
Crash Course in AngularJS + Ionic (Deep dive)
ColdFusionConference
 
PPT
Effective Communication Of Data Inspired by Stephen Few
Cory Grenier
 
PPTX
Ionic 2 - Hybridapps auf Steroiden
Hendrik Lösch
 
PDF
Art and Science of Dashboard Design
SavvyData
 
ODP
Desenvolvendo uma aplicação híbrida para Android e IOs utilizando Ionic, aces...
Juliano Martins
 
PDF
Cordova + Ionic + MobileFirst
Raymond Camden
 
PDF
Cross platform mobile development
Peter Friese
 
PPTX
Introduction to Mobile Development
Pragnesh Vaghela
 
PDF
Ionic Crash Course! Hack-a-ton SF
Lukas Ruebbelke
 
KEY
Scaling Teams, Processes and Architectures
Lorenzo Alberton
 
Mobile App Development
Chris Morrell
 
Mobile Application Development
jini james
 
Introduction to Ionic framework
Shyjal Raazi
 
Rethinking Mobile with Ionic
Mike Hartington
 
Crash Course in AngularJS + Ionic (Deep dive)
ColdFusionConference
 
Effective Communication Of Data Inspired by Stephen Few
Cory Grenier
 
Ionic 2 - Hybridapps auf Steroiden
Hendrik Lösch
 
Art and Science of Dashboard Design
SavvyData
 
Desenvolvendo uma aplicação híbrida para Android e IOs utilizando Ionic, aces...
Juliano Martins
 
Cordova + Ionic + MobileFirst
Raymond Camden
 
Cross platform mobile development
Peter Friese
 
Introduction to Mobile Development
Pragnesh Vaghela
 
Ionic Crash Course! Hack-a-ton SF
Lukas Ruebbelke
 
Scaling Teams, Processes and Architectures
Lorenzo Alberton
 
Ad

Similar to Ionic - Revolutionizing Hybrid Mobile Application Development (20)

KEY
OpenMIC March-2012.phonegap
Kieran Gutteridge
 
PDF
Building Cross-Platform Mobile Apps
Troy Miles
 
PPTX
Mobile Dev For Web Devs
Justin James
 
PDF
Hybrid HTML5 Apps
Hugo Rodrigues
 
PPTX
[Devoxx Morocco 2015] Apache Cordova In Action
Hazem Saleh
 
PDF
Cross Platform Mobile Apps with the Ionic Framework
Troy Miles
 
PPTX
Angularjs Tutorial for Beginners
rajkamaltibacademy
 
PDF
Tutorial: Develop Mobile Applications with AngularJS
Philipp Burgmer
 
PDF
Ionic2 First Lesson of Four
Ahmed Mahmoud Kesha
 
KEY
Intro to PhoneGap
Ryan Stewart
 
KEY
Android a brief intro
Kieran Gutteridge
 
PDF
Hybrid mobile apps
Abraham Barrera
 
PPTX
Google Developer Group(GDG) DevFest Event 2012 Android talk
Imam Raza
 
PDF
HTML5 Can't Do That
Nathan Smith
 
PDF
Ionic adventures - Hybrid Mobile App Development rocks
Juarez Filho
 
PPTX
Appcelerator Titanium Intro
Nicholas Jansma
 
PPTX
Visual Studio Tools for Apache Cordova (TACO) and Ionic
Justin James
 
PDF
How to bake an app in Dart and Polymer
Jana Moudrá
 
PDF
Mobile Vue.js – From PWA to Native
MartinSotirov
 
PPT
State ofappdevelopment
gillygize
 
OpenMIC March-2012.phonegap
Kieran Gutteridge
 
Building Cross-Platform Mobile Apps
Troy Miles
 
Mobile Dev For Web Devs
Justin James
 
Hybrid HTML5 Apps
Hugo Rodrigues
 
[Devoxx Morocco 2015] Apache Cordova In Action
Hazem Saleh
 
Cross Platform Mobile Apps with the Ionic Framework
Troy Miles
 
Angularjs Tutorial for Beginners
rajkamaltibacademy
 
Tutorial: Develop Mobile Applications with AngularJS
Philipp Burgmer
 
Ionic2 First Lesson of Four
Ahmed Mahmoud Kesha
 
Intro to PhoneGap
Ryan Stewart
 
Android a brief intro
Kieran Gutteridge
 
Hybrid mobile apps
Abraham Barrera
 
Google Developer Group(GDG) DevFest Event 2012 Android talk
Imam Raza
 
HTML5 Can't Do That
Nathan Smith
 
Ionic adventures - Hybrid Mobile App Development rocks
Juarez Filho
 
Appcelerator Titanium Intro
Nicholas Jansma
 
Visual Studio Tools for Apache Cordova (TACO) and Ionic
Justin James
 
How to bake an app in Dart and Polymer
Jana Moudrá
 
Mobile Vue.js – From PWA to Native
MartinSotirov
 
State ofappdevelopment
gillygize
 
Ad

More from Justin James (8)

PDF
KCDC 2018 - Rapid API Development with Sails
Justin James
 
PDF
Angular Unit Testing NDC Minn 2018
Justin James
 
PDF
StirTrek 2018 - Rapid API Development with Sails
Justin James
 
PDF
Angular Unit Testing from the Trenches
Justin James
 
PPTX
Up and Running with Angular
Justin James
 
PDF
Everyone is a Public Speaker
Justin James
 
PDF
Chocolatey - making the process of installing software on windows easy as pie
Justin James
 
PDF
Nuget is easier than you think and you should be using it as both a consumer ...
Justin James
 
KCDC 2018 - Rapid API Development with Sails
Justin James
 
Angular Unit Testing NDC Minn 2018
Justin James
 
StirTrek 2018 - Rapid API Development with Sails
Justin James
 
Angular Unit Testing from the Trenches
Justin James
 
Up and Running with Angular
Justin James
 
Everyone is a Public Speaker
Justin James
 
Chocolatey - making the process of installing software on windows easy as pie
Justin James
 
Nuget is easier than you think and you should be using it as both a consumer ...
Justin James
 

Recently uploaded (20)

PDF
Open Chain Q2 Steering Committee Meeting - 2025-06-25
Shane Coughlan
 
PPTX
Human Resources Information System (HRIS)
Amity University, Patna
 
PDF
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
PPTX
In From the Cold: Open Source as Part of Mainstream Software Asset Management
Shane Coughlan
 
PDF
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
PPTX
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 
PDF
IDM Crack with Internet Download Manager 6.42 Build 43 with Patch Latest 2025
bashirkhan333g
 
PDF
SciPy 2025 - Packaging a Scientific Python Project
Henry Schreiner
 
PDF
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
PDF
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
PDF
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
PDF
Download Canva Pro 2025 PC Crack Full Latest Version
bashirkhan333g
 
PDF
Online Queue Management System for Public Service Offices in Nepal [Focused i...
Rishab Acharya
 
PDF
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
 
PDF
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
PDF
Top Agile Project Management Tools for Teams in 2025
Orangescrum
 
PDF
Unlock Efficiency with Insurance Policy Administration Systems
Insurance Tech Services
 
PPTX
Change Common Properties in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
AI + DevOps = Smart Automation with devseccops.ai.pdf
Devseccops.ai
 
PPTX
Transforming Mining & Engineering Operations with Odoo ERP | Streamline Proje...
SatishKumar2651
 
Open Chain Q2 Steering Committee Meeting - 2025-06-25
Shane Coughlan
 
Human Resources Information System (HRIS)
Amity University, Patna
 
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
In From the Cold: Open Source as Part of Mainstream Software Asset Management
Shane Coughlan
 
The 5 Reasons for IT Maintenance - Arna Softech
Arna Softech
 
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 
IDM Crack with Internet Download Manager 6.42 Build 43 with Patch Latest 2025
bashirkhan333g
 
SciPy 2025 - Packaging a Scientific Python Project
Henry Schreiner
 
MiniTool Partition Wizard 12.8 Crack License Key LATEST
hashhshs786
 
MiniTool Partition Wizard Free Crack + Full Free Download 2025
bashirkhan333g
 
iTop VPN With Crack Lifetime Activation Key-CODE
utfefguu
 
Download Canva Pro 2025 PC Crack Full Latest Version
bashirkhan333g
 
Online Queue Management System for Public Service Offices in Nepal [Focused i...
Rishab Acharya
 
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
 
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
Top Agile Project Management Tools for Teams in 2025
Orangescrum
 
Unlock Efficiency with Insurance Policy Administration Systems
Insurance Tech Services
 
Change Common Properties in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
AI + DevOps = Smart Automation with devseccops.ai.pdf
Devseccops.ai
 
Transforming Mining & Engineering Operations with Odoo ERP | Streamline Proje...
SatishKumar2651
 

Ionic - Revolutionizing Hybrid Mobile Application Development

  • 1. The beautiful, open source framework for developing hybrid mobile apps with HTML 5 ionicframework.com
  • 2. Over 15 years of programming experience Slides: http://slides.com/digitaldrummerj Twitter: @digitaldrummerj Email: digitaldrummerj @ gmail.com GitHub: Blog: https://github.com/digitaldrummerj digitaldrummerj.github.io Justin James Justin James @digitaldrummerj
  • 3. "So you want to build a native app?" @digitaldrummerj
  • 4. Why are we still coding for multiple platforms? More Platforms. More Problems. More Platforms. More Problems.
  • 5. @digitaldrummerj The Downsides of Native The Downsides of Native Proficiency in each platform required Entirely separate code bases Timely & expensive development Diminishing returns @digitaldrummerj
  • 6. "Is there an alternative?" @digitaldrummerj
  • 7. Hybrid Apps! Hybrid Apps! HTML 5 that acts like native Web wrapper in native layer Direct access to native APIs Cordova / Phonegap Familiar web development environment Focus on performance @digitaldrummerj
  • 8. Combines Apache Cordova with AngularJS along with lots of custom Javascript, Html, and CSS3 to create mobile apps that perform like native ones and look beautiful MIT Licensed (free even commercially) Hello Ionic Hello Ionic @digitaldrummerj
  • 9. AngularJS AngularJS Awesome MVC Framework Developed by Google and the community Features: Live data binding Two-way binding Attaching code-behind to DOM element Directives Repeating DOM elements Templates Dependency Injection @digitaldrummerj
  • 10. CSS Generated by Sass CSS Generated by Sass Quickly give your app its own look and feel CSS Designed to be easily overridden Either override ionic.css or use Sass Preprocessor Stand-alone CSS (independent of Ionic's Javascript) @digitaldrummerj
  • 11. Performance Obsessed Performance Obsessed Hardware accelerated animations Minimal DOM Manipulation Zero jQuery (you could still include it if you want) @digitaldrummerj
  • 12. Native Focused Native Focused Modeled off of native SDKs Built to work with Cordova/Phonegap @digitaldrummerj
  • 13. Supported Devices Supported Devices @digitaldrummerj iOS 6+ Android 4+ Windows Phone (planned) FireFox OS (planned)
  • 14. Cordova Cordova Uses web technologies to build mobile apps The apps have access to device hardware from Javascript The web files are hosted in the app Apps are portable to other systems with little to no changes Apps are packaged using platform SDKs Cordova does not include a UI framework http://plugins.cordova.io/ @digitaldrummerj
  • 15. ngCordova ngCordova collection of 63+ AngularJS extensions built on top of the Cordova API making it easy to build, test, and deploy Cordova mobile apps with AngularJS. http://ngcordova.com/ @digitaldrummerj
  • 16. ngCordova Plugins ngCordova Plugins Battery Status Bar Code Scanner Calendar Camera Clipboard Contacts @digitaldrummerj Device Motion Flashlight Geo Location SMS Social Sharing TouchID Plus more...ngcordova.com/docs/plugins/
  • 17. Ionicons Ionicons Over 600 MIT licensed font-icons included ionicons.com @digitaldrummerj
  • 18. Are people using it? Are people using it? http://showcase.ionicframework.com/
  • 19. 2014 By the Numbers 2014 By the Numbers Ionic started at the end of 2013 top 50 most popular open source projects over 12, 000 stars on GitHub over 320, 000 apps have been created over half a million unique visits to Ionic website over 45, 000 forum post integrated into tools such as WebStorm, JBoss, Heroku templates from Firebase pluralsight course was created by Steve Michelotti #ionic IRC room has ~100 users at any given time several books being written such Ionic in Action from Manning Publishing @digitaldrummerj
  • 20. The personal stylist in your pocket Pulls in over 2 million products from 100 big name fashion brands Next generation fashion mall for whatever style you require. http://mallzee.com/ Mallzee Mallzee @digitaldrummerj
  • 21. The fastest way to find new music 5 star rated iPhone Only https://songhop.fm/ Songhop Songhop @digitaldrummerj
  • 22. Like Uber for commercial trucking Connect to thousands of freight shippers and brokerages across the country https://www.keychainlogistics.com/ Keychain Keychain @digitaldrummerj
  • 23. Offical app of the ng-europe conference. Used to get the schedule, speakers, venue address, news, chat and more http://ngeurope.org/ ngEurope ngEurope @digitaldrummerj
  • 24. Fitness app that guides anyone thru 5-60 minute circuits Downloaded over 3 million times Been featured in multiple Health and Fitness lists within both the App Store and Google Play http://sworkit.com/ Sworkit Sworkit @digitaldrummerj
  • 25. What should I know? What should I know?
  • 26. Modern Web Skills Modern Web Skills HTML 5 / CSS 3 / Javascript Comfortable with command line tools AngularJS Sass (optional) @digitaldrummerj
  • 27. Ionic Built-In UI Elements Ionic Built-In UI Elements
  • 28. List List <div class="list"> <div class="item item-divider"> Candy Bars </div> <a class="item" href="#"> Butterfinger </a> <a class="item" href="#"> Kit Kat </a> ... </div> @digitaldrummerj
  • 29. Complex List Complex List <ion-list> <ion-item ng-repeat="item in items" class="item-thumbnail-left"> <img ng-src="{{ item.pic }}"> <h2>{{ item.name }}</h2> <p>{{ item.quote }}</p> </ion-item> </ion-list> AngularJS Directive Buttons exposed by swiping Reorder Delete @digitaldrummerj
  • 30. Collection Repeat Collection Repeat <div class="list"> <div collection-repeat="c in contacts" class="item"> <h2>{{ c.name }}</h2> <p>{{ c.email }}</p> </div> </div> Similar to Angular's ng-repeat Scroll through thousands of items Only renders the viewable items Smooth jank-free scrolling Low memory footprint @digitaldrummerj
  • 31. Tabs Tabs <ion-tabs class="tabs-icon-only"> <ion-tab title="Home" icon="ion-star"> <ion-nav-view></ion-nav-view> </ion-tab> <ion-tab title="Feedback" icon="ion-thumbsdown"> <ion-nav-view></ion-nav-view> </ion-tab> <ion-tab title="Messages" icon="ion-chatbubble-working"> <ion-nav-view></ion-nav-view> </ion-tab> </ion-tabs> Nested views Each tab has its own nav history @digitaldrummerj
  • 32. Side Menu Side Menu <ion-side-menus> <ion-side-menu-content> <ion-nav-bar></ion-nav-bar> <ion-nav-view></ion-nav-view> </ion-side-menu-content> <ion-side-menu side="left"> <header class="bar bar-header bar-positive"> <div class="title">Projects</div> </header> <ion-content has-header="true"> <div class="list"> <a href="#/work" class="item">Work</a> <a href="#/home" class="item">Home</a> </div> </ion-content> </ion-side-menu> </ion-side-menus> @digitaldrummerj
  • 33. Slide Box Slide Box <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> @digitaldrummerj
  • 34. Action Sheet Action Sheet $ionicActionSheet.show({ titleText: 'Modify your album', buttons: [ { text: 'Share' }, { text: 'Move' }, ], destructiveText: 'Delete', cancelText: 'Cancel', buttonClicked: function(index) { console.log('BUTTON CLICKED', index); return true; } }); @digitaldrummerj
  • 35. Pull to Refresh Pull to Refresh <ion-content on-refresh="refreshData()"> <ion-refresher></ion-refresher> <!-- content --> </ion-content> @digitaldrummerj
  • 36. Navigation Navigation <ion-nav-bar> <ion-nav-back-button> Back </ion-nav-back-button> </ion-nav-bar> <ion-nav-view animation="slide-left-right"> <!-- content --> </ion-nav-view> Shows back button when possible Each tab has its own history stack Works with Android's back button @digitaldrummerj
  • 37. How to get started? How to get started?
  • 38. Most demos show this command and move on. However, this assumes that you have lots of other software already installed and configured correctly. For a newbie, that has not used Node.js or done Android/iOS development, the setup can be daunting. Next couple of slides give you links to blog post I wrote with all of the steps need to get started on both Windows and Mac. $ npm install -g cordova ionic Installing Ionic Installing Ionic @digitaldrummerj
  • 39. Prerequisites Prerequisites git ant Java SDK 7 Android Studio Android SDK (API 19) Node / NPM Cordova Gulp Google Chrome (for debugging) Genymotion (optional) Ruby (if using sass) Sass Ruby Gem @digitaldrummerj
  • 40. Ionic on Windows Setup Ionic on Windows Setup Manual: Automated using Chocolatey and BoxStarter: Read the "How To Use this Gist File Section" for instructions http://therockncoder.blogspot.com/2014/12/installing-ionic- framework-from-scratch.html digitaldrummerj.github.io/Ionic-Setup-Windows/ @digitaldrummerj
  • 41. Ionic on a Mac Setup Ionic on a Mac Setup Instruction available at digitaldrummerj.github.io/ionic-setup-osx/ @digitaldrummerj
  • 42. Is there an easier way? Is there an easier way?
  • 43. The Ionic Box The Ionic Box Install VirtualBox, its free and available for most platforms Install Vagrant, its free too Install the Ionic Box (Ubuntu Linux and PreReq's) Configuration Steps https://www.virtualbox.org/ https://www.vagrantup.com/ https://github.com/driftyco/ionic-box digitaldrummerj.github.io/ionicbox-notes/ @digitaldrummerj
  • 44. What's building an app like?
  • 45. Create ionic app Create ionic app Create new project Test on web browser Add mobile platform (Android or iOS) Run test on device/emulator ionic start myApp [blank/tabs/sideMenu] ionic serve ionic platform add [android/ios] ionic [run/emulate] [ android/ios] @digitaldrummerj
  • 48. Ionic View Application Ionic View Application View/Share/Test Ionic apps developing across devices even test against OS without a Mac Uses Cordova inAppBrowser plugin to launch your apps in their own separate WebView At the moment, plugin access is restricted to a specific subset of plugins Currently, iOS only but Android version on its way Download from Apple Store: https://itunes.apple.com/us/app/ionic-view/id849930087?mt=8 $ ionic start myApp $ cd myApp $ ionic upload @digitaldrummerj
  • 49. Ionic Creator Ionic Creator Creator makes it easy to rapidly build Ionic mobile apps. With a drag-and-drop interface and real code exporting. And it's totally free to use. https://creator.ionic.io/ @digitaldrummerj
  • 50. Ionic and Crosswalk Ionic and Crosswalk Android < 4.4 use Android's no named default browser which is slower and less compliant than Chrome. Specify version of Chrome to run your Android Cordova App. Up to 10x performance increase App will grow ~10-15 mb in size. More Crosswalk Info: Ionic Specifics: crosswalk-project.org/ ionicframework.com/blog/crosswalk-comes-to- ionic/ $ionic start my_app $cd my_app $ionic browser add crosswalk $ionic run android @digitaldrummerj
  • 51. Simplify testing against multiple platforms Side by Side view of Android and iOS Phone Supports Live Reload Ionic Lab Ionic Lab $ ionic start my_app $ cd my_app $ ionic serve --lab @digitaldrummerj
  • 52. Summary Summary Makes mobile developer way easier but not easy Build and run native apps by using existing web skills Quickly start a project with starter templates Start a local dev server with LiveReload Lots of good tooling, features, and documentation Not yet 1.0 release, but very close Active and growing developer community @digitaldrummerj
  • 53. Resources Resources Videos, tutorials, and formulas: Community Forum: Ionic Creator: Blog: GitHub: Twitter: Ionic Framework Examples: Nic Raboy's Blog: Andrew McGivery - My blog - learn.ionicframework.com forum.ionicframework.com creator.ionic.io ionicframework.com/blog/ github.com/driftyco/ionic @ionicframework codepen.io/ionic https://blog.nraboy.com/ http://mcgivery.com/ http://digitaldrummerj.github.io/ @digitaldrummerj
  • 54. Please rate this talk! http:/ /spkr8.com/t/42121 http:/ /spkr8.com/t/42121 @digitaldrummerj