Building Xamarin mobile apps with IBM MobileFirst

Embed Size (px)

Text of Building Xamarin mobile apps with IBM MobileFirst

Impact Presentation Shell Instructions

Connecting Xamarin Apps with IBM MobileFirst Platform Foundation

+@ajaychebbi - Sr. Architect, product development IBM MobileFirst Platform

2015 IBM Corporation#1

The IBM MobileFirst SDK for Xamarin

Xamarin StudioIntegrated ServicesCreate rich native applications in C# in Xamarin Studio leveraging enterprise grade app services that speed development and enhance app capabilities and performance.

SecurityAuthenticationIntegrationNotificationsApp ManagementAnalyticsOffline StorageIBM MobileFirst

On-prem or on Bluemix Cloud

2015 IBM Corporation#2Marriage made in heaven for Xamarin customers wanting enterprise integration2

Adding the IBM MobileFirst SDK Component

2015 IBM Corporation#3

C# API documentation available in the Component

2015 IBM Corporation#4

Interact with IBM MobileFirst server via the Xamarin IDE

2015 IBM Corporation#5Talk about best practice project structure. Common directory, ioS and Android have 1 line of specific code, and all the code is under the interface implementation of MobileBanking.Worklight (to call into back end)

Talk about add-in component for invoking the Tools from the IDE. Most usable is the console (since the server typically is always running).5

Add-in CLI and JDK configuration

2015 IBM Corporation#6

2015 IBM Corporation#7Here is the reference to the Worklight project (generic)And the single reference to the platform-specific. Note the createInstance on the generic MobileBanking interface is creating the specific instance (iOS or Android)

2015 IBM Corporation#8Here is the reference to the Worklight project (generic)And the single reference to the platform-specific. Note the createInstance on the generic MobileBanking interface is creating the specific instance (iOS or Android)


What do Xamarin developers get?

2015 IBM Corporation#9

Simple, scalable and proven enterprise mobile middleware deployable on-premises and on CloudMobileFirst Foundation

to protect from mobile-specific threatsMobile Analytics

App Lifecycle ManagementBackend Logic EnginePush & Offline SyncComprehensive Securityto better understand your usersto reduce time and costs of operations and incremental updatesto add server-side logic to your appessential backend services that every app needs

2016 IBM Corporation#Foundation@ajaychebbi

2015 IBM Corporation#


Enterprise IntegrationWorklight server provides a single secure point of integration into the Enterprise that speedsintegration and enables management of mobile solutions11

APIM, Datapower, CastIronStrongLoopIntegration hub


Database, WebService, REST, JMSMQ, File,FTP,SAP,Siebel etc:



IBM MobileFirstSDK

Deployed on prem, or Bluemix

Push NotificationsAuthenticationBusiness LogicOffline SyncMobileFirst Platform Foundation




2015 IBM Corporation#11


Mobile FoundationSecure Gateway

Deployment pattern on Bluemix

Several services available on Bluemix to build your Backend logicOptionally connect to your On-prem datacentre

2016 IBM Corporation#Foundation@ajaychebbi

2015 IBM Corporation#IBM Bluemix

A rich set of mobile ready APIs that you can mix and match to power your App Run CodeThe developer can chose from multiple language runtimes or bring their own. Just upload your code and go. available.Store Data (SQL or NoSQL)The developer can store data in the cloud as a service easily without needing to administer the databases.Cloud IntegrationBuild hybrid environments. Connect to on-premises systems of record plus other public and private clouds. Expose your own APIs to your developers.CognitiveWide array of Watson services to build bots etc.

2015 IBM Corporation#13Talked about movement to cloud and developers can leverage Watson APIs, Cloudant, Twilio and other services (either through Adapters or Xamarin themselves).

Device Single Sign-On (SSO)Enables a mobile user to authenticate once and gain access to all apps from the same organization (technically, with the same developer certificate) without re-authenticating.Integration with DataPower, ISAM, and other gateways

App 1secure Mobile OS key storeIBM MFPServerApp 2IDSession xSession yDuplicate after receiving ID from App 2ImplementationImplemented using combination of server-side capabilities (realms) and unique device identification (device ID)On successful login the authentication state is saved in the database and used for validations in subsequent sessions from the same device.

2015 IBM Corporation#14

Protection of corporate APIs from hackers and vulnerabilitiesApp fingerprinting to prevent access to your APIs from malicious appsRemote app disable and version enforcement to protect users from security vulnerabilitiesUse device whitelisting and blacklisting to control the users and devices that access your app



2016 IBM Corporation#Foundation@ajaychebbi

2015 IBM Corporation#Disable or Notify the end user from admin console

2015 IBM Corporation#16

Device specific AuthenticationWatchPhonepublic class PinCodeAttempts extends CredentialsValidationSecurityCheck {....@Override protected boolean validateCredentials(Map credentials) { ...credentials.containsKey(PINCODE) || credentials.containsKey(PASSWORD))){ ... if(deviceType.equals(WATCH)){ if(pinCode.equals(getConfiguration().pinCode)){ errorMsg = null; return true; ...public class PinCodeChallengeHandler extends SecurityCheckChallengeHandler {....public PinCodeChallengeHandler(String securityCheck) { ... JSONObject ans = new JSONObject(); ans.put("pin", intent.getStringExtra("pinCodeTxt")); ans.put("deviceType", "WATCH"); submitChallengeAnswer(ans); ...Security AdapterWatch

2016 IBM Corporation#Foundation@ajaychebbi

2015 IBM Corporation#Application SecuritySecurity18Application SecurityProtecting data on the device Authentication integration frameworkData protection realmsUsing device id as 2nd factorSSL with server identity verificationProven platform securityApp authenticity testingCompatible with Jailbreak /malware detection Secure challenge-response on startupEncrypted offline cacheEnforcing Security UpdatesRemote disableSecurity for enterprise application is the biggest concern of CTOsRich Worklight security features can now be used

2015 IBM Corporation#18Note - parts greyed out are irrelevant (direct update/code obfuscation) or in the pipeline..18

Controlled backend integrationFrom multiple point-to-point integrationsMultiple sets of integrations to enterprise resources to build and maintainYOU manage caching, synchronization and end-to-end encryption To streamlined, transparent accessTransform enterprise data into mobile-friendly JSONMFP Server manages caching, data synchronization and end-to-end encryption









2016 IBM Corporation#Foundation@ajaychebbi

2015 IBM Corporation#

MobileFirst Unified Push NotificationsFrom the complexity of manyMultiple sets of push services to manage

To the simplicity of oneUnified push management









APNS: Apple Push Notification ServiceGCM: Google Cloud MessagingWNS: Windows Notification ServiceWindows



WNSMFP Unified Push Framework

2015 IBM Corporation#Unified Client and Server Analytics Out-of-the-box analytics address the following:User adoption, device and app propertiesUser actions and called adapter proceduresPerformance and data usage informationExceptions, crashes, logs, response timeAnalytics component provided in a WAR for simple install and administration

2015 IBM Corporation#21

Remote-controlled client-side log collectionIBM MFP provides Native and JavaScript API for client-side loggingAdministrator defines log collection profiles on the server which are automatically retrieved by the Worklight client-side runtimeBy default sent on init, resume, and 75% full can be customizedAdministrator can perform analysis and text search of client-side logs via server-side analytics console

2015 IBM Corporation#22

Ease collection of IBM's L2/L3 must-gather information


ResourcesMobileFirst Getting Started (documentation, CLI reference, sample adapters, etc)

Mobile First on Bluemix

MobileFirst Support

Meet us at

2015 IBM Corporation#23


Building a Xamarin Forms+MobileFirst app

Building Xamarin+MobileFirst app