SlideShare a Scribd company logo
1 of 41
Download to read offline
#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

What's hot

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
 
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
 
Building mobile app with Ionic Framework
Building mobile app with Ionic FrameworkBuilding mobile app with Ionic Framework
Building mobile app with Ionic FrameworkHuy Trần
 
Introduction to Ionic framework
Introduction to Ionic frameworkIntroduction to Ionic framework
Introduction to Ionic frameworkShyjal Raazi
 
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 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
 
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 FrameworkAayush Shrestha
 
Hybrid app in ionic framework overview
Hybrid app in ionic framework overviewHybrid app in ionic framework overview
Hybrid app in ionic framework overviewSanket Devlekar
 
Hybrid mobile and Ionic
Hybrid mobile and IonicHybrid mobile and Ionic
Hybrid mobile and IonicLiju Pillai
 
IONIC - Hybrid Mobile App Development
IONIC - Hybrid Mobile App DevelopmentIONIC - Hybrid Mobile App Development
IONIC - Hybrid Mobile App DevelopmentMalan Amarasinghe
 
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
 
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
 
Hybrid Apps with Ionic Framework
Hybrid Apps with Ionic FrameworkHybrid Apps with Ionic Framework
Hybrid Apps with Ionic FrameworkBramus Van Damme
 
Ionic - Revolutionizing Hybrid Mobile Application Development
Ionic - Revolutionizing Hybrid Mobile Application DevelopmentIonic - Revolutionizing Hybrid Mobile Application Development
Ionic - Revolutionizing Hybrid Mobile Application DevelopmentJustin James
 
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 DevelopmentMax Kaplan
 
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 jsHector Iribarne
 

What's hot (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
 

Viewers also liked

Introduction to mobile programming with Androids.
Introduction to mobile programming with Androids. Introduction to mobile programming with Androids.
Introduction to mobile programming with Androids. Maksim Golivkin
 
Mobile Programming LLC sample Case Studies
Mobile Programming LLC sample Case StudiesMobile Programming LLC sample Case Studies
Mobile Programming LLC sample Case StudiesMobile Programming LLC
 
Oeb09 Session1 Basic To Mobile20
Oeb09 Session1 Basic To Mobile20Oeb09 Session1 Basic To Mobile20
Oeb09 Session1 Basic To Mobile20Inge de Waard
 
Introduction to PhoneGap
Introduction to PhoneGapIntroduction to PhoneGap
Introduction to PhoneGapYagiz Nizipli
 
Data Management (Basis Data Berbasis Dokumen)
Data Management (Basis Data Berbasis Dokumen)Data Management (Basis Data Berbasis Dokumen)
Data Management (Basis Data Berbasis Dokumen)Adam Mukharil Bachtiar
 
Building Mobile Applications with Ionic
Building Mobile Applications with IonicBuilding Mobile Applications with Ionic
Building Mobile Applications with IonicMorris Singer
 
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
 
Introduction to the Ionic Framework
Introduction to the Ionic FrameworkIntroduction to the Ionic Framework
Introduction to the Ionic Frameworkrrjohnson85
 

Viewers also liked (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
 

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

«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
 
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 SourceAll Things Open
 
Appcelerator Titanium Intro
Appcelerator Titanium IntroAppcelerator Titanium Intro
Appcelerator Titanium IntroNicholas Jansma
 
Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Nuxeo
 
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 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
 
Test+video+upload
Test+video+uploadTest+video+upload
Test+video+uploadTianwei_liu
 
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
 
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
 
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 BackendAndrew Chalkley
 
Wikipedia Mobile App with PhoneGap
Wikipedia Mobile App with PhoneGapWikipedia Mobile App with PhoneGap
Wikipedia Mobile App with PhoneGapTed Chien
 
NCDevCon 2017 - Cross Platform Mobile Apps
NCDevCon 2017 - Cross Platform Mobile AppsNCDevCon 2017 - Cross Platform Mobile Apps
NCDevCon 2017 - Cross Platform Mobile AppsJohn M. Wargo
 
Decoupled Architecture and WordPress
Decoupled Architecture and WordPressDecoupled Architecture and WordPress
Decoupled Architecture and WordPressPantheon
 
Dayton webusers creatinghybridapps-webedition
Dayton webusers creatinghybridapps-webeditionDayton webusers creatinghybridapps-webedition
Dayton webusers creatinghybridapps-webeditionMartin Davis III
 
2013.02.26 Intel Overview
2013.02.26 Intel Overview2013.02.26 Intel Overview
2013.02.26 Intel OverviewAndrew Smith
 

Similar to 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
 

More from Mark Leusink

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?Mark Leusink
 
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 AngularJSMark Leusink
 
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...Mark Leusink
 
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 AngularMark Leusink
 
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 developersMark Leusink
 
Bootstrap4XPages webinar
Bootstrap4XPages webinarBootstrap4XPages webinar
Bootstrap4XPages webinarMark Leusink
 
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 2014Mark Leusink
 
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)Mark Leusink
 
Bootstrap and XPages (DanNotes 2013)
Bootstrap and XPages (DanNotes 2013)Bootstrap and XPages (DanNotes 2013)
Bootstrap and XPages (DanNotes 2013)Mark Leusink
 
Introduction to Bootstrap (with XPages)
Introduction to Bootstrap (with XPages)Introduction to Bootstrap (with XPages)
Introduction to Bootstrap (with XPages)Mark Leusink
 
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 2013Mark Leusink
 
Stop (de)bugging me!
Stop (de)bugging me!Stop (de)bugging me!
Stop (de)bugging me!Mark Leusink
 

More from 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!
 

Recently uploaded

VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya Shirtrahman018755
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts servicevipmodelshub1
 
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts servicesonalikaur4
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...APNIC
 
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
Networking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGNetworking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGAPNIC
 
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebJames Anderson
 
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Callshivangimorya083
 
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...SofiyaSharma5
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)Damian Radcliffe
 
Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$
Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$
Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$kojalkojal131
 
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersDamian Radcliffe
 
Russian Call girls in Dubai +971563133746 Dubai Call girls
Russian  Call girls in Dubai +971563133746 Dubai  Call girlsRussian  Call girls in Dubai +971563133746 Dubai  Call girls
Russian Call girls in Dubai +971563133746 Dubai Call girlsstephieert
 
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls KolkataLow Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024APNIC
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024APNIC
 
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝soniya singh
 

Recently uploaded (20)

VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
 
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Model Towh Delhi 💯Call Us 🔝8264348440🔝
 
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
 
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
 
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls KolkataRussian Call Girls in Kolkata Ishita 🤌  8250192130 🚀 Vip Call Girls Kolkata
Russian Call Girls in Kolkata Ishita 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
Networking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGNetworking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOG
 
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
 
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
 
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)
 
Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$
Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$
Call Girls Dubai Prolapsed O525547819 Call Girls In Dubai Princes$
 
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
 
Russian Call girls in Dubai +971563133746 Dubai Call girls
Russian  Call girls in Dubai +971563133746 Dubai  Call girlsRussian  Call girls in Dubai +971563133746 Dubai  Call girls
Russian Call girls in Dubai +971563133746 Dubai Call girls
 
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls KolkataLow Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
DDoS In Oceania and the Pacific, presented by Dave Phelan at NZNOG 2024
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024
 
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
 
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 

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