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
SaaS- SDK as a service
Search
Marina Vatmakhter
February 24, 2016
Programming
190
0
Share
SaaS- SDK as a service
Discussing the challenges of building an iOS SDK for a SaaS product.
Marina Vatmakhter
February 24, 2016
More Decks by Marina Vatmakhter
See All by Marina Vatmakhter
Bug-Free by Design: Crafting Swift Code That Doesn't Sting
hybridcattt
0
150
Demystifying SwiftUI Previews
hybridcattt
0
240
Detail-oriented UI with Layout Margins @NSSpain 2019
hybridcattt
2
610
Collection Views: Diffable Data Sources and Compositional Layout | Workshop @SwiftIsland 2019
hybridcattt
0
290
Detail-oriented UI with Layout Margins
hybridcattt
1
400
Flow Coordinators IRL
hybridcattt
0
210
Other Decks in Programming
See All in Programming
PHPer、Cloudflare に引っ越す
suguruooki
1
150
属人化しないコード品質の作り方_2026.04.07.pdf
muraaano
0
340
実用!Hono RPC2026
yodaka
2
310
When benchmarks go bad - what I learned from measuring performance wrong
hollycummins
0
380
UaaL×Androidアプリのメモリ計測 — Memory Profilerの先へ
rio432
0
150
GoogleCloudとterraform完全に理解した
terisuke
1
190
「OSSがあるなら自作するな」は AI時代も正しいか ── Build vs Adopt の新しい判断基準
kumorn5s
7
2.5k
Spec Driven Development | AI Summit Vilnius
danielsogl
PRO
1
150
アクセシビリティ試験の"その後"を仕組み化する
yuuumiravy
1
200
リセットCSSを1行消したらアクセシビリティが向上した話
pvcresin
4
500
AIを導入する前にやるべきこと
negima
2
350
How We Benchmarked Quarkus: Patterns and anti-patterns
hollycummins
1
190
Featured
See All Featured
Crafting Experiences
bethany
1
140
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
500
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
240
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.9k
Utilizing Notion as your number one productivity tool
mfonobong
4
300
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
10k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.4k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
170
Design in an AI World
tapps
1
210
How Software Deployment tools have changed in the past 20 years
geshan
0
33k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
1k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.2k
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