SlideShare une entreprise Scribd logo
1  sur  41
Télécharger pour lire hors ligne
#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

Contenu connexe

Tendances

Tendances (20)

Hybrid app development with ionic
Hybrid app development with ionicHybrid app development with ionic
Hybrid app development with 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
 
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
 
Building mobile app with Ionic Framework
Building mobile app with Ionic FrameworkBuilding mobile app with Ionic Framework
Building mobile app with Ionic Framework
 
Introduction to Ionic framework
Introduction to Ionic frameworkIntroduction to Ionic framework
Introduction to Ionic framework
 
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 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
 
Workshop Ionic Framework - CC FE & UX
Workshop Ionic Framework - CC FE & UXWorkshop Ionic Framework - CC FE & UX
Workshop Ionic Framework - CC FE & UX
 
Workshop on Hybrid App Development with Ionic Framework
Workshop on Hybrid App Development with Ionic FrameworkWorkshop on Hybrid App Development with Ionic Framework
Workshop on Hybrid App Development with 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
 
Ionic Framework
Ionic FrameworkIonic Framework
Ionic Framework
 
Hybrid mobile and Ionic
Hybrid mobile and IonicHybrid mobile and Ionic
Hybrid mobile and Ionic
 
IONIC - Hybrid Mobile App Development
IONIC - Hybrid Mobile App DevelopmentIONIC - Hybrid Mobile App Development
IONIC - Hybrid Mobile App Development
 
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
 
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
 
Hybrid Apps with Ionic Framework
Hybrid Apps with Ionic FrameworkHybrid Apps with Ionic Framework
Hybrid Apps with Ionic Framework
 
Ionic - Revolutionizing Hybrid Mobile Application Development
Ionic - Revolutionizing Hybrid Mobile Application DevelopmentIonic - Revolutionizing Hybrid Mobile Application Development
Ionic - Revolutionizing Hybrid Mobile Application Development
 
Ionic Framework - Intro to Hybrid Mobile Application Development
Ionic Framework - Intro to Hybrid Mobile Application DevelopmentIonic Framework - Intro to Hybrid Mobile Application Development
Ionic Framework - Intro to Hybrid Mobile Application Development
 
Intro to mobile apps with the ionic framework & angular js
Intro to mobile apps with the ionic framework & angular jsIntro to mobile apps with the ionic framework & angular js
Intro to mobile apps with the ionic framework & angular js
 

En vedette

En vedette (14)

Introduction to mobile programming with Androids.
Introduction to mobile programming with Androids. Introduction to mobile programming with Androids.
Introduction to mobile programming with Androids.
 
Mobile Programming LLC sample Case Studies
Mobile Programming LLC sample Case StudiesMobile Programming LLC sample Case Studies
Mobile Programming LLC sample Case Studies
 
Mobile Programming Services
Mobile Programming ServicesMobile Programming Services
Mobile Programming Services
 
Oeb09 Session1 Basic To Mobile20
Oeb09 Session1 Basic To Mobile20Oeb09 Session1 Basic To Mobile20
Oeb09 Session1 Basic To Mobile20
 
Introduction to PhoneGap
Introduction to PhoneGapIntroduction to PhoneGap
Introduction to PhoneGap
 
Ionic2
Ionic2Ionic2
Ionic2
 
Data Management (Basis Data Berbasis Dokumen)
Data Management (Basis Data Berbasis Dokumen)Data Management (Basis Data Berbasis Dokumen)
Data Management (Basis Data Berbasis Dokumen)
 
Ionic 2 intro
Ionic 2   introIonic 2   intro
Ionic 2 intro
 
Building Mobile Applications with Ionic
Building Mobile Applications with IonicBuilding Mobile Applications with Ionic
Building Mobile Applications with Ionic
 
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
 
Introduction to the Ionic Framework
Introduction to the Ionic FrameworkIntroduction to the Ionic Framework
Introduction to the Ionic Framework
 
Ionic 2 - Introduction
Ionic 2 - IntroductionIonic 2 - Introduction
Ionic 2 - Introduction
 
Ionic2
Ionic2Ionic2
Ionic2
 
Build Features, Not Apps
Build Features, Not AppsBuild Features, Not Apps
Build Features, Not Apps
 

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

Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium Intro
Nicholas Jansma
 
Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011
Nuxeo
 
Test+video+upload
Test+video+uploadTest+video+upload
Test+video+upload
Tianwei_liu
 
Dayton webusers creatinghybridapps-webedition
Dayton webusers creatinghybridapps-webeditionDayton webusers creatinghybridapps-webedition
Dayton webusers creatinghybridapps-webedition
Martin Davis III
 

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

Building mobile apps using meteorJS
Building mobile apps using meteorJSBuilding mobile apps using meteorJS
Building mobile apps using meteorJS
 
«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»​
 
Cross-platform Mobile Development on Open Source
Cross-platform Mobile Development on Open SourceCross-platform Mobile Development on Open Source
Cross-platform Mobile Development on Open Source
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium Intro
 
Building iOS app using meteor
Building iOS app using meteorBuilding iOS app using meteor
Building iOS app using meteor
 
Cross-Platform Development
Cross-Platform DevelopmentCross-Platform Development
Cross-Platform Development
 
Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011
 
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 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
 
Test+video+upload
Test+video+uploadTest+video+upload
Test+video+upload
 
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!
 
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
 
Building iPhone/Andriod Apps with Titanium Appcelerator for a Rails Backend
Building iPhone/Andriod Apps with Titanium Appcelerator for a Rails BackendBuilding iPhone/Andriod Apps with Titanium Appcelerator for a Rails Backend
Building iPhone/Andriod Apps with Titanium Appcelerator for a Rails Backend
 
Ionic creator
Ionic creatorIonic creator
Ionic creator
 
Wikipedia Mobile App with PhoneGap
Wikipedia Mobile App with PhoneGapWikipedia Mobile App with PhoneGap
Wikipedia Mobile App with PhoneGap
 
NCDevCon 2017 - Cross Platform Mobile Apps
NCDevCon 2017 - Cross Platform Mobile AppsNCDevCon 2017 - Cross Platform Mobile Apps
NCDevCon 2017 - Cross Platform Mobile Apps
 
Decoupled Architecture and WordPress
Decoupled Architecture and WordPressDecoupled Architecture and WordPress
Decoupled Architecture and WordPress
 
Dayton webusers creatinghybridapps-webedition
Dayton webusers creatinghybridapps-webeditionDayton webusers creatinghybridapps-webedition
Dayton webusers creatinghybridapps-webedition
 
2013.02.26 Intel Overview
2013.02.26 Intel Overview2013.02.26 Intel Overview
2013.02.26 Intel Overview
 

Plus de Mark Leusink

Plus de Mark Leusink (12)

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

Dernier

Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi EscortsRussian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Monica Sydney
 
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
ydyuyu
 
75539-Cyber Security Challenges PPT.pptx
75539-Cyber Security Challenges PPT.pptx75539-Cyber Security Challenges PPT.pptx
75539-Cyber Security Challenges PPT.pptx
Asmae Rabhi
 
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi EscortsIndian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Monica Sydney
 
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
pxcywzqs
 
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girlsRussian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Monica Sydney
 
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
ayvbos
 
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
gajnagarg
 
PowerDirector Explination Process...pptx
PowerDirector Explination Process...pptxPowerDirector Explination Process...pptx
PowerDirector Explination Process...pptx
galaxypingy
 
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
ayvbos
 

Dernier (20)

Power point inglese - educazione civica di Nuria Iuzzolino
Power point inglese - educazione civica di Nuria IuzzolinoPower point inglese - educazione civica di Nuria Iuzzolino
Power point inglese - educazione civica di Nuria Iuzzolino
 
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi EscortsRussian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
Russian Escort Abu Dhabi 0503464457 Abu DHabi Escorts
 
Real Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtReal Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirt
 
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
原版制作美国爱荷华大学毕业证(iowa毕业证书)学位证网上存档可查
 
75539-Cyber Security Challenges PPT.pptx
75539-Cyber Security Challenges PPT.pptx75539-Cyber Security Challenges PPT.pptx
75539-Cyber Security Challenges PPT.pptx
 
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
2nd Solid Symposium: Solid Pods vs Personal Knowledge Graphs
 
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi EscortsIndian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
Indian Escort in Abu DHabi 0508644382 Abu Dhabi Escorts
 
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
一比一原版(Offer)康考迪亚大学毕业证学位证靠谱定制
 
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
20240510 QFM016 Irresponsible AI Reading List April 2024.pdf
 
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girlsRussian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
Russian Call girls in Abu Dhabi 0508644382 Abu Dhabi Call girls
 
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
一比一原版(Curtin毕业证书)科廷大学毕业证原件一模一样
 
"Boost Your Digital Presence: Partner with a Leading SEO Agency"
"Boost Your Digital Presence: Partner with a Leading SEO Agency""Boost Your Digital Presence: Partner with a Leading SEO Agency"
"Boost Your Digital Presence: Partner with a Leading SEO Agency"
 
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
Top profile Call Girls In Dindigul [ 7014168258 ] Call Me For Genuine Models ...
 
PowerDirector Explination Process...pptx
PowerDirector Explination Process...pptxPowerDirector Explination Process...pptx
PowerDirector Explination Process...pptx
 
APNIC Updates presented by Paul Wilson at ARIN 53
APNIC Updates presented by Paul Wilson at ARIN 53APNIC Updates presented by Paul Wilson at ARIN 53
APNIC Updates presented by Paul Wilson at ARIN 53
 
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
20240507 QFM013 Machine Intelligence Reading List April 2024.pdf
 
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac RoomVip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
Vip Firozabad Phone 8250092165 Escorts Service At 6k To 30k Along With Ac Room
 
Microsoft Azure Arc Customer Deck Microsoft
Microsoft Azure Arc Customer Deck MicrosoftMicrosoft Azure Arc Customer Deck Microsoft
Microsoft Azure Arc Customer Deck Microsoft
 
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
一比一原版(Flinders毕业证书)弗林德斯大学毕业证原件一模一样
 
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
20240509 QFM015 Engineering Leadership Reading List April 2024.pdf
 

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