Creating Effective Mobile Applications with IBM Bluemix
-
Upload
andrew-ferrier -
Category
Technology
-
view
55 -
download
2
Transcript of Creating Effective Mobile Applications with IBM Bluemix
InterConnect2017
BMO-3337: Creating Effective Mobile Applications with IBM Bluemix
Andrew Ferrier,Bluemix Solution Architect,IBM Bluemix Garage
1 3/23/17
2 3/23/17
Please noteIBM’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 inthe 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?
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...
• ApacheCordova-http://cordova.apache.org/
• PreviouslyknownasPhoneGap
• Providesawrapperaroundwebcontenttomakeitappearasanativeapp
• AlsoprovidesaccesstodeviceAPIs
• NeedtochooseaJStoolkit(popularchoicesareReactJS,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
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 OperatingSystem Control
Containers
Portable
Flexible
Light-weight
CF Apps
Speed
Manage code,not infrastructure
OpenWhiskStateless
Event-Driven
Short-lived
…m
eets
you
r dev
elop
er n
eeds
…
PaaSCaaSIaaS
Bluemix Compute Models
Where we are coming from… IBM MobileFirstPlatform 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…
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• 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/
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:
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 sessionsIBM Mobile Server Migration from On-Premise to IBM BluemixMonday, 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