delivering mobile apps faster with ibm bluemix
TRANSCRIPT
© 2015 IBM Corporation
Building Mobile Apps Faster and Easier with IBM BluemixSession 3526
Carlos Ferreira
Principal Product Manager Bluemix
Agenda
• What makes a great Mobile App?
• New Developer Experience improvements in Bluemix to make
great apps
• Understand how you can make an iOS Mobile App using
Bluemix via a demonstration
2
What makes a great mobile app?
Great Mobile Apps…
• Make something easier
• Are easy to use
• Provide valuable information
• Push information tailored to your interests
• Are fun and entertaining
• Save you money
• Can be hard to make..
4
Native
SMS, USSDand J2ME
HTML5 and hybrid
SMS
Great Enterprise Apps
• Building an enterprise app is much more challenging
• Stringent security and privacy requirements
• Data driven
• Design and brand requirements
• Connections to older systems can be difficult
• Many users - large, scalable, distributed systems.
• Complex deployment
5
Bad Apps are Bad for Business
6
Consumer experience
50percent
of consumers would uninstall
your app -immediately
57percent
of employees have to duplicate a given
action
65percent
of consumers would not purchase products
from your company
Work Experience
54percent
of those involved in developing apps say it
makes business processes more
difficult
Timing is critical…
7
Are your mobile development efforts focused on providing the business
value your clients expect?
~ Minutes
Platform
as a ServiceHigh Customer Impact
Low Customer Impact
IaaS
Benefits
Setup environments and
deploy apps very quickly.
Infrastructure and platform
managed by SP.
Time Commitment
Minutes to setup and
deploy.
Focus on your apps and
their data.
~ Weeks
IBM
Bluemix
~ Days
Time to initial deployment
Code
Data
Runtime
Middleware
OS
Virtualization
Servers
Storage
Networking
Core IT
The Right Services Can Help You Make a Great App
8
Data rich SecureAlways
improving Relevant
To your customers
For your enterprise
What that means…
I can do more on my device
I can trust that my data is safe
It’s better, fasteror more functional than it was yesterday
It knows me…where I am, what I’m doing andwhat I like
My customers (and other users) make better decisionsfaster
Risk and security are tailored to my enterprise needs
We easily manage new releases and assess and act on performance and usage issues
We have deep insightsin our users’ and their mobile experiences
What is Bluemix?
9
Bluemix is an open-standard, cloud-based platform for
building, managing, and running applications of all types
(web, mobile, big data, new smart devices, and so on).
Go Live in Seconds
The developer can choose
any language runtime or
bring their own. Zero to
production in one command.
DevOps
Development, monitoring,
deployment, and logging tools
allow the developer to run the
entire application.
APIs and Services
A catalog of IBM, third party,
and open source API services
allow the developer to stitch
an application together in
minutes.
On-Prem Integration
Build hybrid environments.
Connect to on-premises
assets plus other public and
private clouds.
Flexible Pricing
Try services for free and pay
only for what you use. Pay as
you go and subscription
models offer choice and
flexibility.
Layered Security
IBM secures the platform and
infrastructure and provides
you with the tools to secure
your apps.
Create apps quickly with prebuilt services
10
• Runtimes, services, and tooling up to
you
Choice
Industry Leading IBM Capabilities• Services leveraging the depth of
IBM software
• Full range of capabilities
Completeness• Open source platform and services
• Third party to enable key use cases
Security
Services
Web and
application
services
Cloud
Integration
Services
Mobile
Services
Database
services
Big Data
services
Internet of
Things
Services
Watson
Services
DevOps
Services
Bluemix provides capabilities to suit any great idea.
End-to-end Delivery Process for Web & Mobile Apps
11
Scan & Certifyto proactively mitigate risk
TestGet feedback on app quality
IntegrateWith back-end systems, data and cloud
services
Obtain Insightto better understand your
users and their mobile experiences
Manageauthentication, updates
and versions
Deployacross app stores
Plan, Design & DevelopUse your favorite tool or web IDE
Continuous DeliveryIBM Bluemix DevOp
Services
InstrumentApps for analytics, security and
management
Web IDE Sublime Eclipse
Hosted GIT Jazz SCMContinuous
IntegrationAppScan
Automated
Deployment
Monitoring
& Analytics
Auto-Scaling
Mobile Quality
Agile Planning
IBM Bluemix and MobileFirst Platform
New Leading Developer Experience improvements in Bluemix to make great apps
1. Getting Started
• Solution pages that inspire use Bluemix through use cases,
examples and samples
• Enabling Developers to get up and running quickly
• Entry Zones for Cognitive Apps ( Watson ), Mobile,
Internet of Things and Game Development
• Context Aware Documentation
• Guided Getting Started Experience
13
2. Tools and Languages - Develop The Way You Want
• New Languages: Ruby, Python, Go and PHP runtimes
• Remote Debugging for Liberty and Node
• Deploy to Bluemix from any Git repo
• Improved Mobile Experience built into platform
• Bluemix LiveSync Beta
• One click access control for apps in dev
14
3. Bluemix DevOps Services Improvements
• Seamless DevOps Services for Bluemix Local, Dedicated or
Public
• Seamless DevOps Experience Web IDE, Continuous
Delivery Pipeline, Versioning, Track and Planning
• Pipeline support for Docker
• Composable pipeline stages
15
IBM MobileFirst Platform for iOS on Bluemix
16
Runtim For Node.JS
IBM MobileFirst on Bluemix
• Provides you:
• Security - Ensure communications with your back-end
systems are secured. Your users can log in with industry
standard OAuth
• Data - Easy and securely use API calls for all create,
update and delete operations, while monitoring access
and usage.
• Push - Connect to APNS servers with minimal
configuration. Tag users and allow them to subscribe to
relevant content.
• Node.JS runtime for your business logic
• Monitoring - Operational Analytics and Application Logs
on all of the services
• IBM MobileFirst Platform is also available on premise17
IBM MobileFirst Advanced Mobile Access on Bluemix
• Operational Analytics
• Real time performance and data usage. Ensure
communications with your back end systems are secure.
• Extend base logging function specific to your app
• Security
• App users can log in with custom accounts or existing
social accounts:
• Default (‘anonymous') access
• Facebook and Google as identity providers
• Integrate your own custom authentication mechanism
with IBM MobileFirst server, see Using a custom
identity provider.
• Leverage security context when accessing custom
backends via NodeJS18
IBM MobileFirst Data on Bluemix
• Fully manage Cloudant NoSQL JSON Database where you can store,
delete, update, and query objects that are stored in the cloud
• Manage data anywhere, any time
• End users of your app store data directly on their devices for offline
use. When their device comes online, replication can synchronize
the database from the local copy to the remote copy, or from the
remote copy to the local copy.
• Dashboard to see what data is being securely stored and retrieved
• The data for your apps can have public and private databases with
varying access controls. You can restrict access to a single user or
you can provide shared access.
• Scale horizontally and geographically
• Cloudant NoSQL DB can scale and provide highly available data.
• Client API to rapidly develop apps with a simple programming model
• You can use native mobile APIs for offline synchronization, queries,
secure integration, and analytics.
19
MobileFirst Push on Bluemix
• Engage users with Push Notifications
• Straight forward setup of Push Notifications for iOS
• Fully support new interactive notifications in iOS8
• Use tagging and subscriptions to ensure that only relevant
content reaches users
• Dashboard enables you to easily select users, send
notifications and monitor performance of messages
• Leverages Advanced Mobile Access Security
20
Make an iOS Mobile App using Bluemix via a demonstration
Guided Experience for Getting Started
Start with options
A. Choose runtime / Buildpacks: Hello World
B. Sample Apps: IMF-Bluelist - Sample iOS App (Deploy To Bluemix
button)
C. Boilerplate: Runtimes / Buildpacks with a set of pre-bound services
development time and runtime services
22
Steps - B. HelloWorld
1. Ensure you have the pre-requisites for iOS Mobile Development
2. Create Bluemix Mobile App for data storage and business logic
3. Follow
https://www.ng.bluemix.net/docs/#starters/mobilefirst/gettingstart
ed/index.html#gettingstarted
4. For Swift follow these Getting Started Instructions:
https://www.ng.bluemix.net/docs/#starters/mobilefirst/gettingstart
ed/index.html#setup_sdk_cocoapods
5. Watch the youtube tutorial :
https://www.youtube.com/watch?v=IqB148R99L8&feature=youtu.
be
23
Steps - A. Start with a Sample App
1. Ensure you have the pre-requisites for iOS Mobile Development
2. Create Bluemix Mobile App for data storage and business logic
3. Download BlueList Sample iOS App
4. Configure Bluelist Sample iOS App to communicate with Bluelist
Mobile App
5. Configure Security - Authentication
6. Run the App
7. Make your own modifications and use CF Push to push them to
Bluemix
24
1. Pre-requisites
• Integrated Development Environment: Xcode v6.1.1
• Apple Mac App Store
• Managed library dependencies: Cocoa Pods v0.35
http://guides.cocoapods.org/using/getting-started.html $gem which cocoapods
$pod setup
• Sign up for a Bluemix Account: https://console.ng.bluemix.net/
• Sign up for a OAuth Security Account using Google or Facebook as an
identity provider: https://developers.facebook.com/apps/
• Download and Install CloudFoundry cf Commandline Interface
• http://docs.cloudfoundry.org/devguide/installcf/install-go-cli.html25
2. Create Bluemix Mobile App for Data Storage and Business Logic
• Sign up for a Bluemix Account and create a mobile app
• In Bluemis dashboard, click CREATE AN APP. Choose
MOBILE > iOS 8 BETA
• This creates a Advanced Mobile Backend
• Register Bluelist as a mobile client.
• Use your Bundle ID (for example: com.ibm.Bluelist) and
version (for example: 1.0.0) Use these values to set in
Xcode, under Supporting Files/Info.plist in downloaded
BlueSample
• Set up one Authentication method (Facebook, Google+, or
Custom)
• Configure Push
• Upload APNS certificate .p12 file that corresponds to your
Bundle ID26
3. Download BlueList Sample App
• Open Terminal window• $git clone https://hub.jazz.net/git/mobilecloud/imf-
bluelist
• $cd imf-bluelist/
• $cd bluelist-swift/
• $cat pod file
• $pod install
• Open the Xcode workspace: open BlueList.xcworkspace. From
now on, open the xcworkspace file.
27
4. Configure Bluelist Sample iOS Client App to communicate with Bluelist Mobile Backend App
• Update the file bluelist.plist file with your Backend Route and
App UID. These values can be found in Bluemix. First open your
application’s dashboard, then click the AMA Service, and
navigate to the Client Registration tab:
• applicationRoute: https://yourAppName.mybluemix.net
• applicationId: db33c037-cd0c-4985-affc-92b1cf8879b1
• Update the Info.plist file bundle identifier and bundle version
string match the values that you used when you registered the
mobile client. For example:
• Bundle Identifier: com.ibm.BlueList
• Bundle version string: 1.0.0
• This allows your iOS mobile client app to access your Bluemix
Mobile App for Data Storage and Business Logic
28
5. Configure Security - Authentication
• Facebook authentication
• Update the Info.plist file with your Facebook App information:
• FacebookAppID: 1581349575427190 (Client ID from Facebook
developer console)
• FacebookDisplayName: IMFSample (App name from Facebook
developer console)
• Update URL Types, Item 0, URL Schemes, update Item 0 as follows:
• URL Schemes: fb1581349575427190 (fb+Client ID from Facebook
developer console) Learn more about using Facebook as an identity
provider
• Google authentication
• Update the Info.plist file with your Google App information:
• Update URL Types (Item 1) URL Schemes like this:
• Identifier: com.ibm.BlueList (Bundle used in google developer console)
• Schemes: com.ibm.BlueList (Bundle used in google developer console)
Learn more about using Google as an identity provide
29
6. Run the App
• On your Mac Client Open workspace in Xcode
• Run your iOS Mobile client App in Xcode simulator
• From Bluemix Dashboard make sure your Bluemix Mobile
Backend (Advanced Mobile Access and NodeJS app for your
business logic) is running on Bluemix
30
7. Make your own modifications
• Learn and download the SDKs
• https://www.ng.bluemix.net/docs/#starters/mobile/index.ht
ml
• Use CF Push to push app modifications to Bluemix
31
HelloWorld
Demo
Notices and Disclaimers
Copyright © 2015 by International Business Machines Corporation (IBM). No part of this document may be reproduced or
transmitted in any form without written permission from IBM.
U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with
IBM.
Information in these presentations (including information relating to products that have not yet been announced by IBM) has been
reviewed for accuracy as of the date of initial publication and could include unintentional technical or typographical errors. IBM shall
have no responsibility to update this information. THIS DOCUMENT IS DISTRIBUTED "AS IS" WITHOUT ANY WARRANTY,
EITHER EXPRESS OR IMPLIED. IN NO EVENT SHALL IBM BE LIABLE FOR ANY DAMAGE ARISING FROM THE USE OF
THIS INFORMATION, INCLUDING BUT NOT LIMITED TO, LOSS OF DATA, BUSINESS INTERRUPTION, LOSS OF PROFIT OR
LOSS OF OPPORTUNITY. IBM products and services are warranted according to the terms and conditions of the agreements
under which they are provided.
Any statements regarding IBM's future direction, intent or product plans are subject to change or withdrawal without
notice.
Performance data contained herein was generally obtained in a controlled, isolated environments. Customer examples are
presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual
performance, cost, savings or other results in other operating environments may vary.
References in this document to IBM products, programs, or services does not imply that IBM intends to make such products,
programs or services available in all countries in which IBM operates or does business.
Workshops, sessions and associated materials may have been prepared by independent session speakers, and do not necessarily
reflect the views of IBM. All materials and discussions are provided for informational purposes only, and are neither intended to, nor
shall constitute legal or other guidance or advice to any individual participant or their specific situation.
It is the customer’s responsibility to insure its own compliance with legal requirements and to obtain advice of competent legal
counsel as to the identification and interpretation of any relevant laws and regulatory requirements that may affect the customer’s
business and any actions the customer may need to take to comply with such laws. IBM does not provide legal advice or represent
or warrant that its services or products will ensure that the customer is in compliance with any law.
Notices and Disclaimers (con’t)
Information concerning non-IBM products was obtained from the suppliers of those products, their published
announcements or other publicly available sources. IBM has not tested those products in connection with this
publication and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM
products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products.
IBM does not warrant the quality of any third-party products, or the ability of any such third-party products to interoperate
with IBM’s products. IBM EXPRESSLY DISCLAIMS ALL WARRANTIES, EXPRESSED OR IMPLIED, INCLUDING BUT
NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE.
The provision of the information contained herein is not intended to, and does not, grant any right or license under any
IBM patents, copyrights, trademarks or other intellectual property right.
• IBM, the IBM logo, ibm.com, Bluemix, Blueworks Live, CICS, Clearcase, DOORS®, Enterprise Document
Management System™, Global Business Services ®, Global Technology Services ®, Information on Demand, ILOG,
Maximo®, MQIntegrator®, MQSeries®, Netcool®, OMEGAMON, OpenPower, PureAnalytics™, PureApplication®,
pureCluster™, PureCoverage®, PureData®, PureExperience®, PureFlex®, pureQuery®, pureScale®,
PureSystems®, QRadar®, Rational®, Rhapsody®, SoDA, SPSS, StoredIQ, Tivoli®, Trusteer®, urban{code}®,
Watson, WebSphere®, Worklight®, X-Force® and System z® Z/OS, are trademarks of International Business
Machines Corporation, registered in many jurisdictions worldwide. Other product and service names might be
trademarks of IBM or other companies. A current list of IBM trademarks is available on the Web at "Copyright and
trademark information" at: www.ibm.com/legal/copytrade.shtml.
Thank YouYour Feedback is
Important!
Access the InterConnect 2015
Conference CONNECT Attendee Portal
to complete your session surveys from
your smartphone,
laptop or conference kiosk.
Getting Started - IMF-Bluelist
37 CPO Lunch and Learn - IBM Confidential 9
Developer
Bluemix
Deploy-CF Push
3
Client
myAppDeploy
IBM DevOps Services
myApp IMF-BluelistClone
1
myApp
2
Git Clone
myApp
38
39
40
41
42
43
44
45
46
47
48
49
50
Hello World - Create your backend
In the Bluemix dashboard, click Create an app > Mobile > iOS 8.
51
Further Assistance
Doc Getting started with IBM MobileFirst Platform for iOS:https://www.ng.bluemix.net/docs/#starters/mobilefirst/gettingstarted/index.html#gettingstarted
Doc NodeJS SDKhttps://www.ibm.com/developerworks/web/nodesdk/
52