Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
SaaS- SDK as a service
Marina
February 24, 2016
Programming
0
50
SaaS- SDK as a service
Discussing the challenges of building an iOS SDK for a SaaS product.
Marina
February 24, 2016
Tweet
Share
More Decks by Marina
See All by Marina
Demystifying SwiftUI Previews
hybridcattt
0
10
Detail-oriented UI with Layout Margins @NSSpain 2019
hybridcattt
2
300
Collection Views: Diffable Data Sources and Compositional Layout | Workshop @SwiftIsland 2019
hybridcattt
0
39
Detail-oriented UI with Layout Margins
hybridcattt
1
120
Flow Coordinators IRL
hybridcattt
0
66
Other Decks in Programming
See All in Programming
プログラミングを勉強したいと言われたら
yuba_4
0
340
Yumemi.apk #6 ~ゆめみのAndroidエンジニア 日頃の成果大発表会!~ Session 2
blendthink
1
200
Micro Frontend Routing – Solutions for mature applications - iJS 04/2022
michaelzikes
0
150
How useEvent would change our applications
koba04
1
1.3k
ebpfとWASMに思いを馳せる2022 / techfeed-conference-2022-ebpf-wasm-amsy810
masayaaoyama
0
390
Microsoft Teams の 会議アプリ開発のはじめかた / How to start Microsoft Teams app development
karamem0
0
1.4k
mrubyを1300円のボードで動かそう
yuuu
0
170
roadmap to rust 2024
matsu7874
1
520
Kotlin KSP - Intro
taehwandev
0
410
UI State Modeling 어떤게 좋을까?
laco2951
0
170
コードの解析と言語習得の心得
jinjin33333
0
120
You CANt teach an old dog new tricks
michaelbukachi
0
110
Featured
See All Featured
The Invisible Side of Design
smashingmag
289
48k
GitHub's CSS Performance
jonrohan
1020
410k
Stop Working from a Prison Cell
hatefulcrawdad
261
17k
How New CSS Is Changing Everything About Graphic Design on the Web
jensimmons
212
11k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
181
15k
Ruby is Unlike a Banana
tanoku
91
9.2k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
224
49k
Code Review Best Practice
trishagee
41
6.7k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
314
19k
Building Flexible Design Systems
yeseniaperezcruz
310
33k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
236
1M
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
100
5.9k
Transcript
SaaS SDK as a Service
vs
Things to share: • Who is the customer and how
that affected our choices • Compatibility • The environment
Are you my customer?
Are you my customer?
Which platforms and versions to support? Which technologies to use?
iOS Version Statistics …of user devices
iOS Version Statistics …of apps in App Store Min. iOS
9.0 Min. iOS 8.0 Min. iOS 7.0 Min. iOS 6.0
None
None
– Swift.org https://developer.apple.com/swift/blog/?id=2 “It would be dangerous to rely upon
binary frameworks that use Swift — especially from third parties.”
iOS 8.0 + iOS 7.0 + Objective-C Swift Open source
only Open source only, copy code
Compatibility
New Version of App User Updates the App New Version
of App User Updates the App New Version of SDK auto-updates auto-updates may never happen…
Forward Compatibility • v1.0 might be out there forever •
What would happen when it stops working? • There will be new features, or versions of features…
Backwards Compatibility • Can’t afford breaking changes on backend •
Public API - breaking changes only if needed
Mind your surroundings • Device • Arbitrary project and its
configuration • Arbitrary UI hierarchy
• No Swift - No Modules. Prefix classes, to avoid
duplicate symbols • -ObjC is evil (-force_load is good) • NSLog…
Windows • A window on top of everything • Window
level is important. UIWindowLevelNormal = 0; UIWindowLevelStatusBar = 1000.0; UIWindowLevelAlert = 2000.0; UIWindowLevel CSKConciergeWindowLevel = 500; UIWindowLevel CSKConciergeAnnotationsWindowLevel = 10000000;
Keyboard Web iOS 9 iOS 8
Status Bar • Separate window takes over status bar. •
UIViewControllerBasedStatusBarAppearance does not make it easier. + (void)setPreferredMainStatusBarStyle:(UIStatusBarStyle)statusBarStyle; + (void)setShouldPreferStatusBarHidden:(BOOL)hidden;
Rotation • No control over rotation • If an orientation
is not supported by the app, it will never go there. • Have to support all
None
Localization • What if app not localized? • Bundle language
Things we learned • Remember your customer • Look into
future, but remember the past • Always mind the surroundings
Thanks! https://live.gotoassist.com Marina Gornostaeva @hybridcattt