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
My talk on i4cup meetup
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
vixentael
PRO
April 28, 2016
Programming
0
230
My talk on i4cup meetup
My talk on small local i4cup meetup. Telling about my Swift fuckup :)
vixentael
PRO
April 28, 2016
Tweet
Share
More Decks by vixentael
See All by vixentael
Building security into autonomous & robotic systems
vixentael
PRO
0
75
Using YubiKey and FIDO U2F for secure authentication
vixentael
PRO
0
2.7k
Data is a new security boundary
vixentael
PRO
0
7.8k
Cryptographic protection of ML models
vixentael
PRO
0
3.7k
e2ee != security != privacy
vixentael
PRO
0
2.8k
Maintaining cryptographic library for 12 languages
vixentael
PRO
1
4.6k
10 lines of encryption, 1500 lines of key management
vixentael
PRO
2
2.1k
Security, privacy and cryptography at WWDC19
vixentael
PRO
1
900
Data encryption: CyberKids edition
vixentael
PRO
0
770
Other Decks in Programming
See All in Programming
AI Assistants for YourAngular Solutions @Angular Graz, March 2026
manfredsteyer
PRO
0
120
メッセージングを利用して時間的結合を分離しよう #phperkaigi
kajitack
3
490
Tamach-sre-3_ANDPAD-shimaison93
mane12yurks38
0
160
Java 21/25 Virtual Threads 소개
debop
0
300
CSC307 Lecture 15
javiergs
PRO
0
270
2026-03-27 #terminalnight 変数展開とコマンド展開でターミナル作業をスマートにする方法
masasuzu
0
240
RailsのValidatesをSwift Macrosで再現してみた
hokuron
0
140
GC言語のWasm化とComponent Modelサポートの実践と課題 - Scalaの場合
tanishiking
0
130
どんと来い、データベース信頼性エンジニアリング / Introduction to DBRE
nnaka2992
1
340
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
1.1k
AI活用のコスパを最大化する方法
ochtum
0
340
Geminiをパートナーに神社DXシステムを個人開発した話(いなめぐDX 開発振り返り)
fujiba
0
120
Featured
See All Featured
Measuring & Analyzing Core Web Vitals
bluesmoon
9
800
For a Future-Friendly Web
brad_frost
183
10k
Scaling GitHub
holman
464
140k
4 Signs Your Business is Dying
shpigford
187
22k
Are puppies a ranking factor?
jonoalderson
1
3.2k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.4k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
460
Optimizing for Happiness
mojombo
378
71k
How STYLIGHT went responsive
nonsquared
100
6k
We Are The Robots
honzajavorek
0
200
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
240
Transcript
i4☕
Code that smells aka ‘bydlo-code’
kill me, please
don’t write code that smells
None
there was a dev team…
there was a dev team… …writing on ObjC
and they decided to switch to Swift!
and they decided to switch to Swift! in production!
None
it was nice morning and PM decided to install app
it was nice morning and PM decided to install app
on device!
None
it’s not us! it’s new 7.3 Xcode!
oh no, it’s us :(
"loadData has not been implemented" found in logs
None
– loadData(…) -> … – loadData(…) -> … ChildTableViewController <T>
BaseTableViewController <T>
BaseTableViewController <T> – loadData(…) -> … ChildTableViewController <T> – loadData(…)
-> … generics stub overriden
BaseTableViewController <T> – loadData(…) -> … ChildTableViewController <T> – loadData(…)
-> … generics stub overriden not called at all
A – architecture
Problem solving
What if we disable optimization?
let’s disable optimization..
too many optimizations! swift compiler optimization!
Why debug is ok?
…Testability
Debug Release Optimization Testability WMO yes WMO no
WMO https://developer.apple.com/swift/blog/?id=27 if method has no ‘internal’ access, compiler may
mark it as ‘final’
Testability allows you to use all ‘internal’ methods in tests
like ‘public’
everything is ok overriden methods may be lost Debug Release
Optimization Testability WMO yes WMO no
tweet all the things!
tweet all the things!
sudden help!
sudden help! swift contributor
https://gist.github.com/PaulTaykalo/5c97010874a93626ca3c Minimal crashable code
http://openradar.appspot.com/radar?id=4971716266688512 Filed Radar
SIL devirtualization: Conservatively avoid filtering devirt candidates on generic base
classes Fix by @jckarter https://github.com/apple/swift/pull/1954
SIL devirtualization: Conservatively avoid filtering devirt candidates on generic base
classes Fix by @jckarter https://github.com/apple/swift/pull/1954
Fix by @jckarter fix! https://github.com/apple/swift/pull/1954
Tests https://github.com/apple/swift/pull/1954
Swift 2.2 Patch https://github.com/apple/swift/pull/1954
Lessons learnt
Lesson #1 every decision has consequences
sooner or later they’ll appear Lesson #1 every decision has
consequences
Lesson #2 always try build in release on device
at least once a day Lesson #2 always try build
in release on device
and community Lesson #3 twitter rulez
Lesson #4 PMs are useful
sometimes Lesson #4 PMs are useful
team: Vitaliy, Igor, Paul Thanks community: @akosma, @jckarter PM: Anna
None