2. 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 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?
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...
8. 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
9. Android Native
• Install Android Studio (http://developer.android.com/sdk/installing/studio.html)
- based on IntelliJ
• Eclipse plugins are gone
13. 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
16. 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. 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. 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…
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 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. 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
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/
28. • Either complete application 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
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
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