34
InterConnect 2017 BMO-3337: Creating Effective Mobile Applications with IBM Bluemix Andrew Ferrier, Bluemix Solution Architect, IBM Bluemix Garage [email protected] 1 3/23/17

Creating Effective Mobile Applications with IBM Bluemix

Embed Size (px)

Citation preview

InterConnect2017

BMO-3337: Creating Effective Mobile Applications with IBM Bluemix

Andrew Ferrier,Bluemix Solution Architect,IBM Bluemix Garage

[email protected]

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?

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...

• 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

Sidenote: What is Bluemix?

10 © Copyright IBM 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 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

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 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…

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

InterConnect2017

Thank You – Any Questions?

34 3/23/17