InterConnect
2017
BMO-3337: Creating
Effective Mobile Applications
with IBM Bluemix
Andrew Ferrier,
Bluemix Solution Architect,
IBM Bluemix Garage
andrew.ferrier@uk.ibm.com
1 3/23/17
2 3/23/17
Please note
IBM’s statements regarding its plans, directions, and intent
are subject to change or withdrawal without notice at IBM’s
sole discretion.
Information regarding potential future products is intended to
outline our general product direction and it should not be relied
on in making a purchasing decision.
The information mentioned regarding potential future products
is not a commitment, promise, or legal obligation to deliver
any material, code or functionality. Information about potential
future products may not be incorporated into any contract.
The development, release, and timing of any future features
or functionality described for our products remains at our sole
discretion.
Performance is based on measurements and projections
using standard IBM benchmarks in a controlled environment.
The actual throughput or performance that any user will
experience will vary depending upon many factors, including
considerations such as the amount of multiprogramming in
the user’s job stream, the I/O configuration, the storage
configuration, and the workload processed. Therefore, no
assurance can be given that an individual user will achieve
results similar to those stated here.
3 3/23/17
Agenda
• Some History & Context
• Sidenote: What’s IBM Bluemix?
• Mobile Foundation
• Mobile Services (Push Notification, Analytics, App ID)
• Bluemix Developer Console
• So what should I do today?
Some History & Context
4
Mobile Middleware /
MEAP / BFF
Apple Push
Notification Service /
Google Cloud
Messaging / etc.
System of Record
2
System of Record
3
System of Record
1
Auth Dir
What is a mobile
application, really?
Analytics
Web-native continuum
• HTML5, JS,
and CSS3 (full
site or m.site)
• Quicker and
cheaper way to
mobile
• Sub-optimal
experience
• HTML5, JS,
and CSS
• Usually
leverages
Cordova
• Downloadable,
app store
presence, push
capabilities
• Can use native
APIs
• As previous
• + more
responsive,
available offline
• Web + native
code
• Optimized user
experience
with native
screens in
startup and
during runtime,
controls, and
navigation
• App fully
adjusted to OS
• Some screens
are multi-
platform (web)
when makes
sense
• App fully
adjusted to OS
• Best attainable
user
experience
• Unique
development
effort per OS,
costly to
maintain
HybridPure web Pure native
Mobile
web site
(browser
access)
Native
shell
enclosing
external
m.site
Pre-
packaged
HTML5
resources
HTML5 +
native UI
Mostly
native,
some
HTML5
screens
Pure
native
Different ways to write an app...
• Apache	Cordova	-
http://cordova.apache.org/
• Previously	known	as	
PhoneGap
• Provides	a	wrapper	around	
web	content	to	make	it	appear	
as	a	native	app
• Also	provides	access	to	device	
APIs
• Need	to	choose	a	JS	toolkit	
(popular	choices	are	ReactJS,	
Angular+Ionic)
Hybrid
iOS Native
• For all apps (not just native), you
need to register to deploy to “real”
devices
• Also need Xcode development
environment (only supported on
Mac)
• Prefer Swift to Objective-C
Android Native
• Install Android Studio (http://developer.android.com/sdk/installing/studio.html)
- based on IntelliJ
• Eclipse plugins are gone
Sidenote: What is Bluemix?
10 © CopyrightIBM Corporation 2016
Third Party
IBM
Your Own
Open Source
What is Bluemix?
A managed platform to design, deploy and run enterprise applications
?
Virtual Servers
“Abstraction”
“Control”
Bare Metal
Dedicated Compute
High Memory
Intensive Disk I/O
Isolation
Familiar
Full Operating
System Control
Containers
Portable
Flexible
Light-weight
CF Apps
Speed
Manage code,
not infrastructure
OpenWhisk
Stateless
Event-Driven
Short-lived
…meetsyourdeveloperneeds…
PaaSCaaSIaaS
Bluemix Compute Models
So what’s available?
14
15 3/23/17
Bluemix Services… Being replaced with:
IBM Watson Content Hub
(also on-prem)
Where we are coming from… IBM MobileFirst
Platform Foundation
• Pre-6.3, was known as Worklight or Worklight Foundation.
• On-premise Mobile Enterprise Application Platform
• Been through 5.0.5, 5.0.6, 6.0, 6.1, 6.2, 6.3, 7.0, 7.1
• Now at 8.0
17
Mobile Foundation: What does it do?
Provides client-side APIs for hybrid and
native code for:
• Encrypted local store
• Adapter invocation
• Device management
• Authentication
• Etc…
Provides server-side facilities for:
• Adapter development (connect to
HTTP/REST/SOAP/JMS/Cast
Iron/etc.)
• Operational Analytics, including
security
• Unified push notification
management
• Unified authentication (with OAuth
from 7.0+)
• Cloudant Local
• Application Authenticity
• … and so on...
18
But there are some trends
affecting all of this…
• Focus on cloud as a development platform
• Esp. for mobile and multichannel
• Decreased focus on client-side innovation – smartphones are mostly a
“solved problem”
• So folks want to migrate to a lighterweight approach…
Mobile Services on Bluemix
19
Mobile Analytics
203/23/17
21
Why Push Notifications?
• Complex Infrastructure
• Multiple interfaces must be coded in the back-
end.
• Routing: to route the notifications to the
correct devices, the app back-end must
maintain a registry that associates interest
groups with device tokens.
22
Mobile Push Notifications Service
• Unified API for sending push notifications on
Android and iOS
• Provides a single server-side API for
notification sending, an a single client-side
one for managing subscriptions
• Also supports Firefox / Chrome / Safari web
push
• Tagging of notifications (for grouping)
• Monitoring / analytics of notifications
23 3/23/17
App ID
• Unifying way to support authentication for
apps
• Supports iOS, Android, and NodeJS (server-
side)
• Provides activity log
• Provides authentication via Facebook and
Google login
• Sign-in widget for Facebook / Google
experience – can be tailored
• Can be used to protect backend endpoints
Bluemix Developer Console
24
Bluemix Developer Console
• Was known as “Mobile App Builder”, then
“Bluemix Mobile Dashboard”.
• As of 16th March: now supports
• Concept of “Projects” which tie together UI,
Data, and Services
• Next-gen of Bluemix-based App Construction
• Build app from scratch or use template
• Useful to “get started” following best practices
https://console.ng.bluemix.net/developer/getting-started/
Mobile Code Starters
27 3/23/17
• Either complete application or SDK artifacts
(SDK+config)
Can download code…
Backends for Frontends (Compute)
• Modern approach to building mobile
applications
• Think of building them in NodeJS, Swift, or
Java using Cloud Foundry, Containers, or
OpenWhisk
• If built in CF, a specially configured CF app
that exposes an Open API (Swagger) spec for
a RESTful interface can be auto-added
through compute panel
https://www.ibm.com/devops/method/content/architecture/
mobileArchitecture
Cloudant Integration (Data)
• Auto-integrates and configures integration
with Cloudant using CouchDB API:
So what should I do today?
Creating Effective Applications – What to think about
• Overall: Keep it simple – think client / server
• Client: How do I implement? (Native vs. Hybrid)? – skills and tools
• Client: Consider if the Developer Console can help you get started – use the patterns provided for
BFFs and microservices
• Server: Focus only on using microservices that support your app
• Server: Use additional supporting services e.g. Push Notifications, Analytics
• Server: Think multichannel, build only a thin BFF layer
Some other things we haven’t spoken about, but you need to think about
• Server: Think about authentication – App ID (or SSO/APIC)
• Server: Think about hybrid (how to connect to existing on-premise data)
33 3/23/17
Related sessions
IBM Mobile Server Migration from On-
Premise to IBM Bluemix
Monday, 4:15 PM - 5:00 PM | Islander H
| Session ID: 5361A
Zero Downtime is Possible with IBM Mobile
Foundation on Bluemix
Tuesday, 4:45 PM - 5:30 PM | South Pacific D
| Session ID: 4818A
Social and Cognitive User Engagement with
Push Notification Service on IBM Bluemix
Wednesday, 3:15 PM - 4:00 PM | South Pacific
D | Session ID: 3050A
From Mobile First to Offline First
Thursday, 9:30 AM - 10:15 AM | Islander H
| Session ID: 5658A
InterConnect
2017
Thank You – Any Questions?
34 3/23/17

Creating Effective Mobile Applications with IBM Bluemix

  • 1.
    InterConnect 2017 BMO-3337: Creating Effective MobileApplications with IBM Bluemix Andrew Ferrier, Bluemix Solution Architect, IBM Bluemix Garage andrew.ferrier@uk.ibm.com 1 3/23/17
  • 2.
    2 3/23/17 Please note IBM’sstatements regarding its plans, directions, and intent are subject to change or withdrawal without notice at IBM’s sole discretion. Information regarding potential future products is intended to outline our general product direction and it should not be relied on in making a purchasing decision. The information mentioned regarding potential future products is not a commitment, promise, or legal obligation to deliver any material, code or functionality. Information about potential future products may not be incorporated into any contract. The development, release, and timing of any future features or functionality described for our products remains at our sole discretion. Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will experience will vary depending upon many factors, including considerations such as the amount of multiprogramming in the user’s job stream, the I/O configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve results similar to those stated here.
  • 3.
    3 3/23/17 Agenda • SomeHistory & Context • Sidenote: What’s IBM Bluemix? • Mobile Foundation • Mobile Services (Push Notification, Analytics, App ID) • Bluemix Developer Console • So what should I do today?
  • 4.
    Some History &Context 4
  • 5.
    Mobile Middleware / MEAP/ BFF Apple Push Notification Service / Google Cloud Messaging / etc. System of Record 2 System of Record 3 System of Record 1 Auth Dir What is a mobile application, really? Analytics
  • 6.
    Web-native continuum • HTML5,JS, and CSS3 (full site or m.site) • Quicker and cheaper way to mobile • Sub-optimal experience • HTML5, JS, and CSS • Usually leverages Cordova • Downloadable, app store presence, push capabilities • Can use native APIs • As previous • + more responsive, available offline • Web + native code • Optimized user experience with native screens in startup and during runtime, controls, and navigation • App fully adjusted to OS • Some screens are multi- platform (web) when makes sense • App fully adjusted to OS • Best attainable user experience • Unique development effort per OS, costly to maintain HybridPure web Pure native Mobile web site (browser access) Native shell enclosing external m.site Pre- packaged HTML5 resources HTML5 + native UI Mostly native, some HTML5 screens Pure native Different ways to write an app...
  • 7.
    • Apache Cordova - http://cordova.apache.org/ • Previously known as PhoneGap •Provides a wrapper around web content to make it appear as a native app • Also provides access to device APIs • Need to choose a JS toolkit (popular choices are ReactJS, Angular+Ionic) Hybrid
  • 8.
    iOS Native • Forall apps (not just native), you need to register to deploy to “real” devices • Also need Xcode development environment (only supported on Mac) • Prefer Swift to Objective-C
  • 9.
    Android Native • InstallAndroid Studio (http://developer.android.com/sdk/installing/studio.html) - based on IntelliJ • Eclipse plugins are gone
  • 10.
    Sidenote: What isBluemix? 10 © CopyrightIBM Corporation 2016
  • 11.
    Third Party IBM Your Own OpenSource What is Bluemix? A managed platform to design, deploy and run enterprise applications
  • 12.
  • 13.
    Virtual Servers “Abstraction” “Control” Bare Metal DedicatedCompute High Memory Intensive Disk I/O Isolation Familiar Full Operating System Control Containers Portable Flexible Light-weight CF Apps Speed Manage code, not infrastructure OpenWhisk Stateless Event-Driven Short-lived …meetsyourdeveloperneeds… PaaSCaaSIaaS Bluemix Compute Models
  • 14.
  • 15.
    15 3/23/17 Bluemix Services…Being replaced with: IBM Watson Content Hub (also on-prem)
  • 16.
    Where we arecoming from… IBM MobileFirst Platform Foundation • Pre-6.3, was known as Worklight or Worklight Foundation. • On-premise Mobile Enterprise Application Platform • Been through 5.0.5, 5.0.6, 6.0, 6.1, 6.2, 6.3, 7.0, 7.1 • Now at 8.0
  • 17.
    17 Mobile Foundation: Whatdoes it do? Provides client-side APIs for hybrid and native code for: • Encrypted local store • Adapter invocation • Device management • Authentication • Etc… Provides server-side facilities for: • Adapter development (connect to HTTP/REST/SOAP/JMS/Cast Iron/etc.) • Operational Analytics, including security • Unified push notification management • Unified authentication (with OAuth from 7.0+) • Cloudant Local • Application Authenticity • … and so on...
  • 18.
    18 But there aresome trends affecting all of this… • Focus on cloud as a development platform • Esp. for mobile and multichannel • Decreased focus on client-side innovation – smartphones are mostly a “solved problem” • So folks want to migrate to a lighterweight approach…
  • 19.
  • 20.
  • 21.
    21 Why Push Notifications? •Complex Infrastructure • Multiple interfaces must be coded in the back- end. • Routing: to route the notifications to the correct devices, the app back-end must maintain a registry that associates interest groups with device tokens.
  • 22.
    22 Mobile Push NotificationsService • Unified API for sending push notifications on Android and iOS • Provides a single server-side API for notification sending, an a single client-side one for managing subscriptions • Also supports Firefox / Chrome / Safari web push • Tagging of notifications (for grouping) • Monitoring / analytics of notifications
  • 23.
    23 3/23/17 App ID •Unifying way to support authentication for apps • Supports iOS, Android, and NodeJS (server- side) • Provides activity log • Provides authentication via Facebook and Google login • Sign-in widget for Facebook / Google experience – can be tailored • Can be used to protect backend endpoints
  • 24.
  • 25.
    Bluemix Developer Console •Was known as “Mobile App Builder”, then “Bluemix Mobile Dashboard”. • As of 16th March: now supports • Concept of “Projects” which tie together UI, Data, and Services • Next-gen of Bluemix-based App Construction • Build app from scratch or use template • Useful to “get started” following best practices https://console.ng.bluemix.net/developer/getting-started/
  • 26.
  • 27.
  • 28.
    • Either completeapplication or SDK artifacts (SDK+config) Can download code…
  • 29.
    Backends for Frontends(Compute) • Modern approach to building mobile applications • Think of building them in NodeJS, Swift, or Java using Cloud Foundry, Containers, or OpenWhisk • If built in CF, a specially configured CF app that exposes an Open API (Swagger) spec for a RESTful interface can be auto-added through compute panel https://www.ibm.com/devops/method/content/architecture/ mobileArchitecture
  • 30.
    Cloudant Integration (Data) •Auto-integrates and configures integration with Cloudant using CouchDB API:
  • 31.
    So what shouldI do today?
  • 32.
    Creating Effective Applications– What to think about • Overall: Keep it simple – think client / server • Client: How do I implement? (Native vs. Hybrid)? – skills and tools • Client: Consider if the Developer Console can help you get started – use the patterns provided for BFFs and microservices • Server: Focus only on using microservices that support your app • Server: Use additional supporting services e.g. Push Notifications, Analytics • Server: Think multichannel, build only a thin BFF layer Some other things we haven’t spoken about, but you need to think about • Server: Think about authentication – App ID (or SSO/APIC) • Server: Think about hybrid (how to connect to existing on-premise data)
  • 33.
    33 3/23/17 Related sessions IBMMobile Server Migration from On- Premise to IBM Bluemix Monday, 4:15 PM - 5:00 PM | Islander H | Session ID: 5361A Zero Downtime is Possible with IBM Mobile Foundation on Bluemix Tuesday, 4:45 PM - 5:30 PM | South Pacific D | Session ID: 4818A Social and Cognitive User Engagement with Push Notification Service on IBM Bluemix Wednesday, 3:15 PM - 4:00 PM | South Pacific D | Session ID: 3050A From Mobile First to Offline First Thursday, 9:30 AM - 10:15 AM | Islander H | Session ID: 5658A
  • 34.
    InterConnect 2017 Thank You –Any Questions? 34 3/23/17