SlideShare a Scribd company logo
#engageug
Creating mobile apps
an introduction to
#engageug 2
• What are hybrid apps?
• What is Ionic?
• How can Ionic help to build a hybrid app?
• How do I make Ionic talk to Domino?
What you’ll learn
(a.k.a. “Agenda”)
#engageug 3
• You have some experience in using HTML, CSS
and JavaScript
• Maybe you know some AngularJS
• Your undivided attention :-)
What I expect from you
#engageug 4
• Long-time Domino/ XPages/ web developer
• Co-owner of Viaware
• Freelance web developer
• Fan of everything web dev (Angular, Bootstrap, MeteorJS)
• Open source dev, blogger, StackOverflow
• IBM Champion 2011-2015
/Me
#engageug 5
Source:times.com/ Joseph van Os / Getty Images
#engageug
6
Three types of apps
Mobile browser
<html>
function() {
foo = bar;
}
Native container
<html>
function() {
foo = bar;
}
Device API
Native app
10101011101
01011001010
11010101010
11010101010
10101101010
10101101010
Device API
Mobile web Hybrid app Native app
#engageug 7
• Build using HTML, CSS, JavaScript
• Responsive UI
• Quick (cheap) to develop
• Not installable from app stores
• “Add to homescreen”
• Can’t access all device capabilities
• camera, contacts, sharing options, …
Mobile web
#engageug 8
• Best in terms of performance, UI, look & feel
• Access all device capabilities
• Installable from app stores
• Expensive (time/ money) to build for multiple platforms
• Requires specific toolset for every supported platform
• Objective C, Swift, Java, C#
Native
#engageug 9
• Best of both worlds
• Native application that uses mobile platform’s WebView
• Think of a WebView as an embedded browser
• In general, takes less time to develop.
• Cross platform
• Installable from app stores
• Can use native components
Hybrid
#engageug 10
Hybrid
WebApp
(HTML, CSS, JS)
Native container
Webview
Native
components
Native container
Webview
Native
components
Native container
Webview
Native
components
#engageug
Hybrid apps suck
11
#engageug 12
• Better WebViews
• Performance and capabilities
• Apple allowing access to WKWebView
• http://developer.telerik.com/featured/why-ios-8s-
wkwebview-is-a-big-deal-for-hybrid-development/
• Better tooling (like Ionic…)
But that changed
#engageug
Say hello to
13
#engageug 14
• Platform to build hybrid apps
• Tries to overcome common problems
• Optimized UI components
• Publication/ updating apps
• Development workflow
• Push notifications
Ionic
#engageug 15
• Built on top of AngularJS
• Can be deployed to the app stores
• For iOS, Android, Windows Phone
• V2 in the making
Ionic
#engageug 16
• Based on Apache Cordova
• Open sourced PhoneGap version
• Managed by Apache Foundation
Ionic
#engageug 17
• Platform that provides a consistent set of JavaScript
APIs to access device capabilities through plug-ins
• Allows Ionic to build for multiple platforms
• Access to device functionality
• Plugin eco-system, can be added to Ionic
• https://cordova.apache.org/plugins/
Cordova
#engageug 18
Hybrid
WebApp
(HTML, CSS, JS)
Native container
Webview
Native
components
Native container
Webview
Native
components
Native container
Webview
Native
components
#engageug 19
• CSS components
• grid, headers, tabs
• JavaScript components
• popups, tabs, modals
• Icons
• ion icons
Ionic Framework
#engageug 20
• Action sheet
• Content pane
• Form inputs
• Gestures/ events
• Headers/ footers
• Keyboard
• Tabbar
• Lists
UI Controls
▸ Navigation
▸ Modal
▸ Popover
▸ Popup
▸ Scroll
▸ Side menu
▸ Spinner
▸ Tabs
http://ionicframework.com/docs/components
#engageug
Your first ionic
app
21
#engageug 22
• npm install -g cordova ionic
Installing Ionic
#engageug 23
• Ionic comes with a couple of boilerplate apps

(blank, sidemenu, tabs)
• Give you a basic app/ folder structure
• ionic start <yourApp> <template>
Getting started
#engageug 24
• ionic start engage sidemenu
Demo
#engageug 25
• ionic serve
• ionic run -l
• ionic run android -l
• ionic build
Testing and debugging
#engageug 26
• Ionic creator
• Ionic view
• Ionic lab
• Ionic deploy
• Ionic push
• Ionic auth
Ionic services
#engageug 27
• Mainly to create static pages
• Little application logic
Ionic Creator
#engageug 28
• Downloadable app to preview your work
• From the CLI: “ionic upload”
• Usable for testing
Ionic View
#engageug 29
• Desktop app that wraps commands for which you
would normally use the CLI.
• Comes with a built-in Chrome version
Ionic Lab
#engageug 30
• Deploying different code versions within the
existing app.
• Different “channels” for dev/ test/ prod
Ionic Deploy
#engageug 31
• Push notifications through Ionic
Ionic Push
#engageug 32
• Authentication through Ionic Services
Ionic Auth
#engageug 33
• Ionic framework is open source
• The services aren’t
• Free while in beta
• There is a free plan
Pricing
#engageug
Extending the demo
34
#engageug 35
• Get some real data using REST
• http://www.assono.de/blog/d6plinks/
ibmconnect2016-ad1238
• Authentication
• Make updates (save, delete)
• https://github.com/markleusink/ionic-demo
Extending the demo
#engageug 36
• When viewing an Ionic app in a browser you’ll run into
CORS issues
• Can be solved by using the built-in proxy function
• Means you need to update your API’s endpoint (when
developing)
• And change it back when deploying…
• Alternative is to add the headers to your Domino server
CORS
#engageug 37
• The ExtLib REST service provides pagination of
results out-of-the box.
• Use start and count parameters
• Response has a header called Content-Range
Infinite scroll
#engageug 38
• Basic- or session authentication
• For session: Domino returns login form when login
unsuccessful
• While you where expecting JSON
• But if you know that it should be JSON, you can
check for that.
• Create login form, post to “.nsf?login”, handle response
Authentication
#engageug 39
• Save
• HTTP PATCH to ExtLib REST Service
• /api.xsp/users/<unid>
• Can perform field validations
• Delete
• HTTP DELETE to ExtLib REST Service
Updates
#engageug 40
• Hybrid apps are a great way to get started building apps
• Ionic is stable, but still in beta
• Cross-platform
• Ionic gives your near-native look & feel and performance
• But if you want (need) more, go for native
• Keep an eye on the pricing model (when out of beta)
Wrap up
#engageug
Dank u!
41

More Related Content

PDF
Cordova, Angularjs & Ionic @ Codeaholics
PDF
Cross Platform Mobile Apps with the Ionic Framework
PPTX
Hybrid vs. Native app - Ionic Framework with AngularJS
PDF
Creating an hybrid app in minutes with Ionic Framework
PPTX
Developing Hybrid Applications with IONIC
PDF
Ionic framework one day training
PDF
Building Mobile Apps with Cordova , AngularJS and Ionic
PPT
Ionic Framework
Cordova, Angularjs & Ionic @ Codeaholics
Cross Platform Mobile Apps with the Ionic Framework
Hybrid vs. Native app - Ionic Framework with AngularJS
Creating an hybrid app in minutes with Ionic Framework
Developing Hybrid Applications with IONIC
Ionic framework one day training
Building Mobile Apps with Cordova , AngularJS and Ionic
Ionic Framework

What's hot (20)

PDF
Hybrid app development with ionic
PDF
Ionic Framework
PDF
Hybrid Apps with Angular & Ionic Framework
PPTX
Intro to Ionic for Building Hybrid Mobile Applications
PPTX
Building mobile app with Ionic Framework
PPTX
Introduction to Ionic framework
PPTX
Mobile Applications with Angular 4 and Ionic 3
PDF
Ionic Crash Course! Hack-a-ton SF
PDF
Workshop Ionic Framework - CC FE & UX
PPTX
Workshop on Hybrid App Development with Ionic Framework
PPTX
Hybrid app in ionic framework overview
PDF
Ionic Framework
PPTX
Hybrid mobile and Ionic
PPTX
IONIC - Hybrid Mobile App Development
PPTX
Hybrid Mobile Development with Apache Cordova,AngularJs and ionic
ODP
Use Ionic Framework to develop mobile application
PDF
Hybrid Apps with Ionic Framework
PDF
Ionic - Revolutionizing Hybrid Mobile Application Development
PPTX
Ionic Framework - Intro to Hybrid Mobile Application Development
PDF
Intro to mobile apps with the ionic framework & angular js
Hybrid app development with ionic
Ionic Framework
Hybrid Apps with Angular & Ionic Framework
Intro to Ionic for Building Hybrid Mobile Applications
Building mobile app with Ionic Framework
Introduction to Ionic framework
Mobile Applications with Angular 4 and Ionic 3
Ionic Crash Course! Hack-a-ton SF
Workshop Ionic Framework - CC FE & UX
Workshop on Hybrid App Development with Ionic Framework
Hybrid app in ionic framework overview
Ionic Framework
Hybrid mobile and Ionic
IONIC - Hybrid Mobile App Development
Hybrid Mobile Development with Apache Cordova,AngularJs and ionic
Use Ionic Framework to develop mobile application
Hybrid Apps with Ionic Framework
Ionic - Revolutionizing Hybrid Mobile Application Development
Ionic Framework - Intro to Hybrid Mobile Application Development
Intro to mobile apps with the ionic framework & angular js
Ad

Viewers also liked (14)

PDF
Introduction to mobile programming with Androids.
PPTX
Mobile Programming LLC sample Case Studies
PPT
Mobile Programming Services
PPT
Oeb09 Session1 Basic To Mobile20
PDF
Introduction to PhoneGap
PDF
Ionic2
PDF
Data Management (Basis Data Berbasis Dokumen)
PDF
Ionic 2 intro
PDF
Building Mobile Applications with Ionic
PPTX
Building an Ionic hybrid mobile app with TypeScript
PPTX
Introduction to the Ionic Framework
PPTX
Ionic 2 - Introduction
PDF
PDF
Build Features, Not Apps
Introduction to mobile programming with Androids.
Mobile Programming LLC sample Case Studies
Mobile Programming Services
Oeb09 Session1 Basic To Mobile20
Introduction to PhoneGap
Ionic2
Data Management (Basis Data Berbasis Dokumen)
Ionic 2 intro
Building Mobile Applications with Ionic
Building an Ionic hybrid mobile app with TypeScript
Introduction to the Ionic Framework
Ionic 2 - Introduction
Build Features, Not Apps
Ad

Similar to Creating mobile apps - an introduction to Ionic (Engage 2016) (20)

PPTX
Building mobile apps using meteorJS
PDF
«I knew there had to be a better way to build mobile app»​
PPTX
Cross-platform Mobile Development on Open Source
PPTX
Appcelerator Titanium Intro
PPTX
Building iOS app using meteor
PPTX
Cross-Platform Development
KEY
Mobile ECM with JavaScript - JSE 2011
PDF
I knew there had to be a better way to build mobile apps
PPTX
Introduction to hybrid application development
PDF
Cross Platform Mobile Development
KEY
Test+video+upload
PDF
Common Ionic Development Mistakes Developers Tend To Make!
PPTX
Developing a native mobile apps using Ionic&Cordova
ZIP
Building iPhone/Andriod Apps with Titanium Appcelerator for a Rails Backend
PDF
Ionic creator
PPTX
Wikipedia Mobile App with PhoneGap
PPTX
NCDevCon 2017 - Cross Platform Mobile Apps
PPTX
Decoupled Architecture and WordPress
PPT
Dayton webusers creatinghybridapps-webedition
PPTX
2013.02.26 Intel Overview
Building mobile apps using meteorJS
«I knew there had to be a better way to build mobile app»​
Cross-platform Mobile Development on Open Source
Appcelerator Titanium Intro
Building iOS app using meteor
Cross-Platform Development
Mobile ECM with JavaScript - JSE 2011
I knew there had to be a better way to build mobile apps
Introduction to hybrid application development
Cross Platform Mobile Development
Test+video+upload
Common Ionic Development Mistakes Developers Tend To Make!
Developing a native mobile apps using Ionic&Cordova
Building iPhone/Andriod Apps with Titanium Appcelerator for a Rails Backend
Ionic creator
Wikipedia Mobile App with PhoneGap
NCDevCon 2017 - Cross Platform Mobile Apps
Decoupled Architecture and WordPress
Dayton webusers creatinghybridapps-webedition
2013.02.26 Intel Overview

More from Mark Leusink (12)

PDF
Now what can you really build with DQL and web components?
PDF
ICON UK 2016: Modernizing an IBM Notes applicaton using with AngularJS
PDF
The future of web development write once, run everywhere with angular js an...
PDF
Escaping the yellow bubble - rewriting Domino using MongoDb and Angular
PDF
A 20 minute introduction to AngularJS for XPage developers
PPTX
Bootstrap4XPages webinar
PPTX
Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014
ODP
Get the best out of Bootstrap with Bootstrap4XPages (AD202)
PDF
Bootstrap and XPages (DanNotes 2013)
PPTX
Introduction to Bootstrap (with XPages)
PPTX
Stop (de)bugging me - ICON UK 2013
PDF
Stop (de)bugging me!
Now what can you really build with DQL and web components?
ICON UK 2016: Modernizing an IBM Notes applicaton using with AngularJS
The future of web development write once, run everywhere with angular js an...
Escaping the yellow bubble - rewriting Domino using MongoDb and Angular
A 20 minute introduction to AngularJS for XPage developers
Bootstrap4XPages webinar
Get the best out of Bootstrap with Bootstrap4XPages - Engage 2014
Get the best out of Bootstrap with Bootstrap4XPages (AD202)
Bootstrap and XPages (DanNotes 2013)
Introduction to Bootstrap (with XPages)
Stop (de)bugging me - ICON UK 2013
Stop (de)bugging me!

Recently uploaded (20)

PDF
Centralized Business Email Management_ How Admin Controls Boost Efficiency & ...
PDF
5g is Reshaping the Competitive Landscape
PPTX
durere- in cancer tu ttresjjnklj gfrrjnrs mhugyfrd
PPTX
nagasai stick diagrams in very large scale integratiom.pptx
PDF
www-codemechsolutions-com-whatwedo-cloud-application-migration-services.pdf
PDF
Decoding a Decade: 10 Years of Applied CTI Discipline
PDF
“Google Algorithm Updates in 2025 Guide”
PPTX
QR Codes Qr codecodecodecodecocodedecodecode
PPTX
EthicalHack{aksdladlsfsamnookfmnakoasjd}.pptx
PDF
LABUAN4D EXCLUSIVE SERVER STAR GAMING ASIA NO.1
PPTX
ENCOR_Chapter_11 - ‌BGP implementation.pptx
PPT
256065457-Anaesthesia-in-Liver-Disease-Patient.ppt
PPTX
CSharp_Syntax_Basics.pptxxxxxxxxxxxxxxxxxxxxxxxxxxxx
PDF
KIPER4D situs Exclusive Game dari server Star Gaming Asia
PPTX
Parallel & Concurrent ...
PDF
KIPER4D situs Exclusive Game dari server Star Gaming Asia
PDF
RPKI Status Update, presented by Makito Lay at IDNOG 10
PPTX
SEO Trends in 2025 | B3AITS - Bow & 3 Arrows IT Solutions
PDF
WebRTC in SignalWire - troubleshooting media negotiation
PPTX
PPT_M4.3_WORKING WITH SLIDES APPLIED.pptx
Centralized Business Email Management_ How Admin Controls Boost Efficiency & ...
5g is Reshaping the Competitive Landscape
durere- in cancer tu ttresjjnklj gfrrjnrs mhugyfrd
nagasai stick diagrams in very large scale integratiom.pptx
www-codemechsolutions-com-whatwedo-cloud-application-migration-services.pdf
Decoding a Decade: 10 Years of Applied CTI Discipline
“Google Algorithm Updates in 2025 Guide”
QR Codes Qr codecodecodecodecocodedecodecode
EthicalHack{aksdladlsfsamnookfmnakoasjd}.pptx
LABUAN4D EXCLUSIVE SERVER STAR GAMING ASIA NO.1
ENCOR_Chapter_11 - ‌BGP implementation.pptx
256065457-Anaesthesia-in-Liver-Disease-Patient.ppt
CSharp_Syntax_Basics.pptxxxxxxxxxxxxxxxxxxxxxxxxxxxx
KIPER4D situs Exclusive Game dari server Star Gaming Asia
Parallel & Concurrent ...
KIPER4D situs Exclusive Game dari server Star Gaming Asia
RPKI Status Update, presented by Makito Lay at IDNOG 10
SEO Trends in 2025 | B3AITS - Bow & 3 Arrows IT Solutions
WebRTC in SignalWire - troubleshooting media negotiation
PPT_M4.3_WORKING WITH SLIDES APPLIED.pptx

Creating mobile apps - an introduction to Ionic (Engage 2016)

  • 2. #engageug 2 • What are hybrid apps? • What is Ionic? • How can Ionic help to build a hybrid app? • How do I make Ionic talk to Domino? What you’ll learn (a.k.a. “Agenda”)
  • 3. #engageug 3 • You have some experience in using HTML, CSS and JavaScript • Maybe you know some AngularJS • Your undivided attention :-) What I expect from you
  • 4. #engageug 4 • Long-time Domino/ XPages/ web developer • Co-owner of Viaware • Freelance web developer • Fan of everything web dev (Angular, Bootstrap, MeteorJS) • Open source dev, blogger, StackOverflow • IBM Champion 2011-2015 /Me
  • 5. #engageug 5 Source:times.com/ Joseph van Os / Getty Images
  • 6. #engageug 6 Three types of apps Mobile browser <html> function() { foo = bar; } Native container <html> function() { foo = bar; } Device API Native app 10101011101 01011001010 11010101010 11010101010 10101101010 10101101010 Device API Mobile web Hybrid app Native app
  • 7. #engageug 7 • Build using HTML, CSS, JavaScript • Responsive UI • Quick (cheap) to develop • Not installable from app stores • “Add to homescreen” • Can’t access all device capabilities • camera, contacts, sharing options, … Mobile web
  • 8. #engageug 8 • Best in terms of performance, UI, look & feel • Access all device capabilities • Installable from app stores • Expensive (time/ money) to build for multiple platforms • Requires specific toolset for every supported platform • Objective C, Swift, Java, C# Native
  • 9. #engageug 9 • Best of both worlds • Native application that uses mobile platform’s WebView • Think of a WebView as an embedded browser • In general, takes less time to develop. • Cross platform • Installable from app stores • Can use native components Hybrid
  • 10. #engageug 10 Hybrid WebApp (HTML, CSS, JS) Native container Webview Native components Native container Webview Native components Native container Webview Native components
  • 12. #engageug 12 • Better WebViews • Performance and capabilities • Apple allowing access to WKWebView • http://developer.telerik.com/featured/why-ios-8s- wkwebview-is-a-big-deal-for-hybrid-development/ • Better tooling (like Ionic…) But that changed
  • 14. #engageug 14 • Platform to build hybrid apps • Tries to overcome common problems • Optimized UI components • Publication/ updating apps • Development workflow • Push notifications Ionic
  • 15. #engageug 15 • Built on top of AngularJS • Can be deployed to the app stores • For iOS, Android, Windows Phone • V2 in the making Ionic
  • 16. #engageug 16 • Based on Apache Cordova • Open sourced PhoneGap version • Managed by Apache Foundation Ionic
  • 17. #engageug 17 • Platform that provides a consistent set of JavaScript APIs to access device capabilities through plug-ins • Allows Ionic to build for multiple platforms • Access to device functionality • Plugin eco-system, can be added to Ionic • https://cordova.apache.org/plugins/ Cordova
  • 18. #engageug 18 Hybrid WebApp (HTML, CSS, JS) Native container Webview Native components Native container Webview Native components Native container Webview Native components
  • 19. #engageug 19 • CSS components • grid, headers, tabs • JavaScript components • popups, tabs, modals • Icons • ion icons Ionic Framework
  • 20. #engageug 20 • Action sheet • Content pane • Form inputs • Gestures/ events • Headers/ footers • Keyboard • Tabbar • Lists UI Controls ▸ Navigation ▸ Modal ▸ Popover ▸ Popup ▸ Scroll ▸ Side menu ▸ Spinner ▸ Tabs http://ionicframework.com/docs/components
  • 22. #engageug 22 • npm install -g cordova ionic Installing Ionic
  • 23. #engageug 23 • Ionic comes with a couple of boilerplate apps
 (blank, sidemenu, tabs) • Give you a basic app/ folder structure • ionic start <yourApp> <template> Getting started
  • 24. #engageug 24 • ionic start engage sidemenu Demo
  • 25. #engageug 25 • ionic serve • ionic run -l • ionic run android -l • ionic build Testing and debugging
  • 26. #engageug 26 • Ionic creator • Ionic view • Ionic lab • Ionic deploy • Ionic push • Ionic auth Ionic services
  • 27. #engageug 27 • Mainly to create static pages • Little application logic Ionic Creator
  • 28. #engageug 28 • Downloadable app to preview your work • From the CLI: “ionic upload” • Usable for testing Ionic View
  • 29. #engageug 29 • Desktop app that wraps commands for which you would normally use the CLI. • Comes with a built-in Chrome version Ionic Lab
  • 30. #engageug 30 • Deploying different code versions within the existing app. • Different “channels” for dev/ test/ prod Ionic Deploy
  • 31. #engageug 31 • Push notifications through Ionic Ionic Push
  • 32. #engageug 32 • Authentication through Ionic Services Ionic Auth
  • 33. #engageug 33 • Ionic framework is open source • The services aren’t • Free while in beta • There is a free plan Pricing
  • 35. #engageug 35 • Get some real data using REST • http://www.assono.de/blog/d6plinks/ ibmconnect2016-ad1238 • Authentication • Make updates (save, delete) • https://github.com/markleusink/ionic-demo Extending the demo
  • 36. #engageug 36 • When viewing an Ionic app in a browser you’ll run into CORS issues • Can be solved by using the built-in proxy function • Means you need to update your API’s endpoint (when developing) • And change it back when deploying… • Alternative is to add the headers to your Domino server CORS
  • 37. #engageug 37 • The ExtLib REST service provides pagination of results out-of-the box. • Use start and count parameters • Response has a header called Content-Range Infinite scroll
  • 38. #engageug 38 • Basic- or session authentication • For session: Domino returns login form when login unsuccessful • While you where expecting JSON • But if you know that it should be JSON, you can check for that. • Create login form, post to “.nsf?login”, handle response Authentication
  • 39. #engageug 39 • Save • HTTP PATCH to ExtLib REST Service • /api.xsp/users/<unid> • Can perform field validations • Delete • HTTP DELETE to ExtLib REST Service Updates
  • 40. #engageug 40 • Hybrid apps are a great way to get started building apps • Ionic is stable, but still in beta • Cross-platform • Ionic gives your near-native look & feel and performance • But if you want (need) more, go for native • Keep an eye on the pricing model (when out of beta) Wrap up