Date post: | 18-Jan-2016 |
Category: |
Documents |
Upload: | edward-walsh |
View: | 214 times |
Download: | 0 times |
Cloud Roadshow
Getting Started with mobile app development with the Office 365 APIs
• Intro• Native Development• Multi-Platforms Development
Agenda
Intro
Getting started with Mobile development with Office 365
Developer vision
DATAUSERS
HTML
Azure AD OAuth in Office 365Single authentication flowAcross all Office 365 services“Native” apps and web sitesAdmin and end-user consent
Secure protocolOAuth 2.0 (no capturing user credentials)Fine-grained access scopesSupports MFA and federated user sign-inLong-term access through refresh tokens
Unique Considerations of “Native” Azure AppsInherently multi-tenantNo client/app secret (think about distribution)Leverage a web authentication window/broker (via ADAL)No application-only permissions (can go through proxy service)
Native Mobile Apps
Universal Windows AppsAboutBuild application that runs across Windows Phones, tablets and PCsWindows 10 realizes the convergence of Phone and PC
DevelopmentIDE: Visual Studio 2015 w/ Windows SDK for Windows 10App Registration: Add Connected Service WizardSDK Integration: Add Connected Service Wizard
When to useTarget device footprint is exclusively WindowsApplication needs unique device-specific capabilities (ex: Cortana)Complex/Advanced user experience or visualizationsApplications with strict enterprise requirements
Universal Windows AppsSolution Structure and DebuggingWindows 10 solutions are truly universal with a single projectTemplate allow debugging against emulators or physical devices
Additional TipsMust make UI responsive (vs separate UIs in 8.1 Universal Apps)Take advantage of the best Windows 10 offersConsider ADAL vs the new Web Account Manager (next slide)
UNIVERSAL WINDOWS PLATFORM
demo
AndroidAboutOpen source Office 365 SDK for Android by MS Open Tech (3/2014)Available on GitHub (http://bit.ly/14JCgWZ)Also requires ADAL for Android (http://bit.ly/1E7IfSi)
DevelopmentIDE: Android Studio (or Eclipse)App Registration: Azure Management PortalSDK Integration: build.gradle (similar to NuGet for dependencies)
When to useTarget device footprint is exclusively AndroidApplication needs unique device-specific capabilitiesComplex/Advanced user experience or visualizations
And
roid
AndroidSolution StructureForm design (UI) is defined in .XML files (app\src\main\res\layout)Form logic is defined in .java files deriving from ActivityBuild.gradle references dependenciesAndroidManiest.xml is the app configuration file
DebuggingDebug apps with emulators (warning: SLOW) or Android deviceConsider Genymotion emulators that install separate from IDEVisual Studio 2015 Emulator
Additional TipsMake sure you give the app permission to use the internet (in AndroidManifest.xml)Controls aren’t automatically referenced in form logic (must use findViewById)
And
roid
ANDROID
demo
iOSAboutOpen source Office 365 SDK for iOS by MS Open Tech (10/2014)Available on GitHub (http://bit.ly/155NpCI)Also requires ADAL for iOS (http://bit.ly/1u9Mexa)Apple does not permit compilation of iOS apps without Mac
DevelopmentIDE: Mac and XCode (Objective C or Swift)App Registration: Azure Management PortalSDK Integration: Cocoapods or manual build/copy
When to useTarget device footprint is exclusively iOSApplication needs unique device-specific capabilitiesComplex/Advanced user experience or visualizations
iOS
/XC
od
e
iOSSolution StructureForm design (UI) is defined in .storyboard files and logic is defined in view controllersReferences can be in the form of static libraries (.a) or frameworks (.framework), which include header filesADAL for iOS is a static library and the Office 365 SDK for iOS is a framework
DebuggingXCode includes a really nice iOS emulator for debuggingRegistered Apple Developers ($99) can debug on physical iOS devices
Additional TipsCombine ADAL builds for emulator and physical deviceUse bridging header files for Objective-C references in Swift projectsPrintln and Watch Expressions are really helpful tools for noobs
iOS
/XC
od
e
Cross-Platform Mobile Apps
Apache CordovaAboutPlatform for developing mobile apps with HTML, CSS and JavaScriptOpen source collection of JavaScript that abstracts device-specific APIsAll web assets are copied local to the device and run “Chromeless”Foundation for PhoneGap, AppBuilder, Ionic, etc
DevelopmentIDE: >= Visual Studio 2013 w/ Update 4 and VS Tools for Cordova CTP3*App Registration: Add Connected Service WizardSDK Integration: Add Connected Service Wizard
When to useMulti-tenant apps or apps that target multiple mobile platformsDevelopers are skilled in web development (HTML, CSS, JavaScript)Licensing costs prohibit other cross-platform frameworks
CO
RD
OVA
Apache CordovaSolution StructureOffice 365 assets installed under /services/office365Settings.js defines app details (client id, app redirect, etc)o365Loader.js dynamically adds Office 365 SDK references to pages
DebuggingDebug in Ripple (in-browser emulator), emulators, or physical devicesDebug iOS w/ remote Mac (can use emulator or remote/local device)
Additional TipsNumerous Cordova plug-ins exist for rich device integration (Custom with Git)Use NuGet to reference additional packages (Bootstrap, Angular, etc)Cordova renders HTML…no native controls (w/o additional references)
CO
RD
OVA
CORDOVA
demo
XamarinAboutXamarin is a Company (ISV) and Development Platform (Licensed)Development based on .NET and complies to native platforms (Mono)Xamarin provides up-to-date versions of .NET for iOS and Android
DevelopmentIDE: Visual Studio 2013 with Xamarin Studio*App Registration: Add Connected Service WizardSDK Integration: Add Connected Service Wizard
When to useMulti-tenant apps or apps that target multiple mobile platformsDevelopment shop looking to leverage existing skills in C# and .NETWant cross-platform with a native UX feel (ie – native controls)Want cross-platform with full access to device capabilities
XA
MA
RIN
XamarinSolution StructureXamrin project templates for device-specific platforms or sharedShared projects use shared portable libraries and device-specific projects (similar to Universal Windows Apps)Xamarin.Forms allows UI layouts to be shared but render native controls across Android, iOS and Windows (can also use native layouts)
DebuggingDebug Android/Windows with emulators or physical devicesDebug iOS w/ remote Mac and Xamarin.iOS (can use emulator or remote/local device)
Additional TipsXamarin binding project allow ADAL/SDK referencesADAL v3 can help with binding challengesSee: http://www.cloudidentity.com/blog/2015/07/22/USING-ADAL-3-X-WITH-XAMARIN-FORMS/
XA
MA
RIN
Mobile Platform Decision Tree
Pic-a-Platform
Multi-Device Support?
YesUnique Device Capabilities?
NoBudget Constrained?
Yes
Use Xamarin
YesUse Apache Cordova
No
.Net or Web Developers?
Web .NET
No Windows? No .NET Shop? No Build Native
Yes
Build Universal Windows App
Yes
Use Xamarin
• Intro• Native Development• Multi-Platforms Development
Summary
Further reading…Getting Started with APIsMobile dev Code Samples Mobile dev Training videos & hands on labs Office 365 API documentation
Developer Program Launch
http://dev.office.com/devprogram
E-mail Newsletters
Free Developer Subscriptio
n
1 YEAR FREE
Free Training
Free Tools
Webinars
Office 365 Networkhttps://www.yammer.com/itpronetwork
@OfficeDev Twitter
StartStart
Podcastshttp://dev.office.com/podcasts
UserVoice
http://officespdev.uservoice.com/
Stack overflow
[ms-office]
Channel 9 Dev Showhttp://aka.ms/O365DevShow
Snack Demos
http://aka.ms/o365DevSnackDemos
Engage
©2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Office, Azure, System Center, Dynamics and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.