Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Overcoming the challenges of mobile development...
Search
Roy Cornelissen
December 08, 2016
Programming
5.7k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Overcoming the challenges of mobile development in the enterprise
Presentation delivered at AppDevTrends, part of Live360 2017 in Orlando, FL.
Roy Cornelissen
December 08, 2016
More Decks by Roy Cornelissen
See All by Roy Cornelissen
Running 30-year old software as a cloud native SaaS solution in Azure with Docker and Kubernetes
roycornelissen
0
41
Making your app see, hear and think with Cognitive Services
roycornelissen
0
200
There is no app!
roycornelissen
0
34
Conquer the Network - Techorama 2017
roycornelissen
0
320
Mobile DevOps demystified with Xamarin, VSTS and HockeyApp
roycornelissen
0
5.8k
TechDays App: Behind the Scenes
roycornelissen
0
6.2k
Conquer the Network!
roycornelissen
0
6.4k
Building Microservices in .NET with NServiceBus
roycornelissen
0
7.2k
There is no app - Blurring the lines between apps and mobile platform
roycornelissen
0
11k
Other Decks in Programming
See All in Programming
Go を使い始めて 2 ヶ月の学び / My first two months with Go
contour_gara
0
360
今さら聞けない .NET CLI
htkym
0
210
ドリフトを絶対に許さない(?)CDK運用 / CDK Ops with Zero Tolerance for Drifts (?)
akihisaikeda
1
220
AWS DevOps AgentのAzure接続機能を検証して見えた活用法/Use Cases Verified for the AWS DevOps Agent's Azure Connectivity Feature
masakiokuda
1
260
komatsuna「分散システムにおけるバグ分析手法」
komatsunaqa
0
270
Gmail/Google DriveをトリガーにAIエージェントを動かそう! / Run AI agents with Gmail/Google Drive as triggers!
har1101
2
390
「人を評価する AI」の設計と実装
ryoyanara
0
220
生成AIで帳票OCRが「簡単に」作れる時代になった?
kon_shou
0
1.1k
in-process GraphQL のすすめ #ginzajs
izumin5210
4
1.4k
Built Our Own Background Agent at LayerX
layerx
PRO
10
5.9k
Pythonの実行はどこまで賢くなったのか? CPythonとPyPyから見る最適化のしくみ
curekoshimizu
3
1.3k
Dockerfile CMD for Node.js
grazie1999
0
110
Featured
See All Featured
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
210
HDC tutorial
michielstock
2
810
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
3k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
210
Claude Code のすすめ
schroneko
67
230k
How to Ace a Technical Interview
jacobian
281
24k
Darren the Foodie - Storyboard
khoart
PRO
3
3.7k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
900
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
870
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Everyday Curiosity
cassininazir
0
290
Transcript
ADH10 Overcoming the Challenges of Mobile Development in the Enterprise
Roy Cornelissen Mobile Lead Consultant Xpirit Netherlands @roycornelissen
None
Pretty pictures are for consumers... We could get away with
applications that looked like this. @roycornelissen
• IT department dictates • “It’s ready when it’s ready”
• Siloed architectures • ”The ESB fixes everything” • No need for fancy UI’s @roycornelissen
@roycornelissen
§ Catching the Mobile Moment § Delivering software at a
different pace § Mobile isn’t neutral § Distribution § New types of architecture @roycornelissen
Catching the mobile moment Identify Design Engineer Analyze IDEA Cycle
Forrester Research @roycornelissen
Catching the mobile moment @roycornelissen Product vs Project
Mobile isn’t neutral On desktop, you designed for the web
On mobile, you design for the platform http://ben-evans.com/benedictevans/2015/9/26/mobile-is-not-a-neutral-platform @roycornelissen
BYOD @roycornelissen
Enterprise Management @roycornelissen
All devices by @roycornelissen
Corporate Data to @roycornelissen
Intune
@roycornelissen
What about Privacy?
What about Older devices?
What about Low end devices?
@roycornelissen
@roycornelissen
@roycornelissen
@roycornelissen
@roycornelissen
@roycornelissen
Vendor “Magic box” Xamarin App logic
@roycornelissen
@roycornelissen
Wrapper App EMM API @roycornelissen
Wrapper Core OS layer API layer Cross platform layer Application
layer @roycornelissen
Wrapper Core OS layer API layer Xamarin Application layer ModernHttpClient
@roycornelissen
APK File I/O SQLite IOCipher SQLCipher Java .dll @roycornelissen
iOS 6: DIY iOS 7+: requires PIN @roycornelissen
Wrapper App Requires an SDK @roycornelissen
right there m’kay? @roycornelissen
“We don’t see much demand” @roycornelissen
“The API’s are not ready yet” @roycornelissen
@roycornelissen
Let’s stick to standards Forget custom solutions @roycornelissen
appconfig.org @roycornelissen
@roycornelissen
Leverage OS features instead Wrapping is too cumbersome @roycornelissen
var keyValue = NSUserDefaults .StandardUserDefaults .DictionaryForKey ("com.apple.configuration.managed") ["name_of_setting"] .ToString ();
@roycornelissen
var keyValue = NSUserDefaults .StandardUserDefaults .DictionaryForKey ("com.apple.feedback.managed") ["name_of setting"] =
"value"; @roycornelissen
<?xml version="1.0" encoding="utf-8"?> <restrictions xmlns:android= "http://schemas.android.com/apk/res/android" > <restriction android:key="string" android:title="string
resource" android:restrictionType="bool" android:description="string resource" android:entries="string-array resource" android:entryValues="string-array resource" android:defaultValue="reference" /> <restriction ... /> ... </restrictions> @roycornelissen
<application ... > <meta-data android:name="android.content.APP_RESTRICTIONS" android:resource="@xml/app_restrictions" /> ... </application> @roycornelissen
android.intent.action .APPLICATION_RESTRICTIONS_CHANGED @roycornelissen
UserManager .getApplicationRestrictions() @roycornelissen
Core OS layer API layer Xamarin Application layer ModernHttpClient VPN
per App @roycornelissen
@roycornelissen
1 @roycornelissen
@roycornelissen
@roycornelissen
EMM platforms are immature @roycornelissen
EMM platforms are unaware of cross platform tools @roycornelissen
Assess every architectural decision or guideline @roycornelissen
Data protection and policies should be built into the app
@roycornelissen
Use mobile optimized middleware for integration @roycornelissen
AppConfig initiative looks promising but it’s just a start @roycornelissen
@roycornelissen roycornelissen.wordpress.com
[email protected]
@roycornelissen roycornelissen.wordpress.com
[email protected]
xpir.it/XpiritMagazine