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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Marina Vatmakhter
February 24, 2016
Programming
0
180
SaaS- SDK as a service
Discussing the challenges of building an iOS SDK for a SaaS product.
Marina Vatmakhter
February 24, 2016
Tweet
Share
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
230
Detail-oriented UI with Layout Margins @NSSpain 2019
hybridcattt
2
600
Collection Views: Diffable Data Sources and Compositional Layout | Workshop @SwiftIsland 2019
hybridcattt
0
280
Detail-oriented UI with Layout Margins
hybridcattt
1
380
Flow Coordinators IRL
hybridcattt
0
200
Other Decks in Programming
See All in Programming
15年目のiOSアプリを1から作り直す技術
teakun
1
620
The Ralph Wiggum Loop: First Principles of Autonomous Development
sembayui
0
3.7k
Agent Skills Workshop - AIへの頼み方を仕組み化する
gotalab555
15
8.5k
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
510
社内規程RAGの精度を73.3% → 100%に改善した話
oharu121
13
7.9k
AI時代のシステム設計:ドメインモデルで変更しやすさを守る設計戦略
masuda220
PRO
5
890
20260228_JAWS_Beginner_Kansai
takuyay0ne
5
490
Vuetify 3 → 4 何が変わった?差分と移行ポイント10分まとめ
koukimiura
0
120
文字コードの話
qnighy
44
17k
Codexに役割を持たせる 他のAIエージェントと組み合わせる実務Tips
o8n
4
1.3k
エンジニアの「手元の自動化」を加速するn8n 2026.02.27
symy2co
0
140
DevinとClaude Code、SREの現場で使い倒してみた件
karia
1
1k
Featured
See All Featured
A Soul's Torment
seathinner
5
2.4k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
270
Being A Developer After 40
akosma
91
590k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
64
53k
sira's awesome portfolio website redesign presentation
elsirapls
0
190
Art, The Web, and Tiny UX
lynnandtonic
304
21k
Building an army of robots
kneath
306
46k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
860
What does AI have to do with Human Rights?
axbom
PRO
1
2k
WENDY [Excerpt]
tessaabrams
9
36k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
140
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