Connected & Disconnected Mobile Apps James Montemagno Principal PM – Mobile Dev Tools, Microsoft @JamesMontemagno

Weekly development podcast mergeconflict.fm

Weekly development show xamarinshow.com

James Montemagno Principal Program Manager – Mobile Developer Tools, Microsoft [email protected] motzcod.es @JamesMontemagno

Great App Experiences

› Rich Media Experiences › Deep Integration into OS › Lightning Fast User Interface › Security and Identity › Data available when you need it opensignal.com/coverage-maps

James in the air 2016

Bad offline experiences Good offline experiences

Infrastructure designed for Scale Azure Application Platform Azure solutions PREDICTIVE MAINTENANCE E-COMMERCE WITH IOT

BUSINESS INTELLIGENCE MOBILE MICROSERVICE APPLICATIONS

SAP ON REMOTE MONITORING DATA WAREHOUSE AZURE WITH IOT DIGITAL MARKETING DISASTER RECOVERY BACKUP AND ARCHIVE DEVELOPMENT SHAREPOINT AND TEST ON AZURE

BIG DATA AND ANALYTICS

Azure Mobile Apps sync Offline

REST API Offline Sync Facebook OSX iOS Android Chrome Twitter SQL Windows Microsoft Tables Mongo Google Kindle O365 Azure ActiveAzure Directory In - App API Apps Backend code Backend

4. Send to device

1. Get PNS handle

2. Store PNS handle 5. Manage device handles 3b. Request notification Use device handles

3a. Request notification

Use logical users/tags Notification Hub

• Maps between tags and handles

Shopping Demo App

Azure Services: • Cognitive Services (Emotion API) • Storage • On/offline sync • Push notifications • Authentication

What’s Available: • Complete sample app with documentation • Individual “quick starts”

github.com/Microsoft/XamarinAzure_ShoppingDemoApp

“Build Better Apps Faster”

[email protected] Realm Mobile

• On-device cross-platform • Launched July 2014 • Developed in the open • 16K GitHub stars, 100k+ active developers Realm Database Features Inserting Entry Retrieving Entries Easy Encryption Realm Mobile Platform

Realtime data sync

Realm Object Server Realm Mobile DB Realm approach vs. status quo

Not just your native objects for data-sync. ORM and JSON take time, add complexity and add opportunities Realm Object Server SQL for errors.

Realm uses objects in your native programming language. Automatic Backend object Backend object background synchronization and REST call JSON conflict resolution. No ORM, no JSON. JSON Push Notification Native Realm Object SQLite/CoreData SQLite/CoreData

Native object Native object

Only Realm e.g. REST, Parse, etc. Hard features made easy

Event Real-time Offline First Processing 2-Way Data Experiences Sync

API Messaging + Mobilizatio Presence / n Chat

Pub/Sub & Realtime In-App & Push Collaborati Cross-App Notification on Search s

IoT Sensor Endpoint Sync Computing

Linux Distros!

Free self-guided courses Weekly development podcast Thank you. mergeconflict.fm Weekly development show xamarinshow.com

James Montemagno Principal Program Manager – Mobile Developer Tools, Microsoft

[email protected] motzcod.es @JamesMontemagno