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
iOS TDD iOS Tech Talk
Search
Realm
February 20, 2017
Technology
0
5.2k
iOS TDD iOS Tech Talk
TDD (Test-driven Development) for iOS - iOS Tech Talk 2017
Won Cho
Realm
February 20, 2017
Tweet
Share
More Decks by Realm
See All by Realm
WWDC 2017 Review
realm
0
2.2k
Xcode shortcuts
realm
0
4.7k
Self Branding with GitHub
realm
0
4.3k
Realm Mobile Platform overview and demo
realm
0
2.1k
Realm advanced topics and demo
realm
0
2k
Realm introduction Seoul meetup 10
realm
0
2.2k
Stuart Hall: How I got 2.3 Million App Downloads
realm
0
2k
James Majors: What the Swiftly Func?
realm
1
4.3k
Simina Pasat: Continuous everything for iOS apps
realm
0
650
Other Decks in Technology
See All in Technology
非情報系研究者へ送る Transformer入門
rishiyama
11
7k
[JAWSDAYS2026][D8]その起票、愛が足りてますか?AWSサポートを味方につける、技術的「ラブレター」の書き方
hirosys_
3
120
ナレッジワーク IT情報系キャリア研究セッション資料(情報処理学会 第88回全国大会 )
kworkdev
PRO
0
160
EMからICへ、二周目人材としてAI全振りのプロダクト開発で見つけた武器
yug1224
5
520
Kubernetesにおける推論基盤
ry
1
290
ナレッジワークのご紹介(第88回情報処理学会 )
kworkdev
PRO
0
170
スクリプトの先へ!AIエージェントと組み合わせる モバイルE2Eテスト
error96num
0
150
聲の形にみるアクセシビリティ
tomokusaba
0
170
Google系サービスで文字起こしから勝手にカレンダーを埋めるエージェントを作った話
risatube
0
100
楽しく学ぼう!コミュニティ入門 AWSと人が つむいできたストーリー
hiroramos4
PRO
1
190
Abuse report だけじゃない。AWS から緊急連絡が来る状況とは?昨今の攻撃や被害の事例の紹介と備えておきたい考え方について
kazzpapa3
1
430
When an innocent-looking ListOffsets Call Took Down Our Kafka Cluster
lycorptech_jp
PRO
0
120
Featured
See All Featured
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
130
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
140
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.4k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
250
New Earth Scene 8
popppiees
1
1.7k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Statistics for Hackers
jakevdp
799
230k
How to Think Like a Performance Engineer
csswizardry
28
2.5k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
99
Leo the Paperboy
mayatellez
4
1.5k
Optimising Largest Contentful Paint
csswizardry
37
3.6k
Transcript
TEST DRIVEN DEVELOPMENT IOS
ABOUT ME ઑ ਗ ▸ 1992.08.19 ▸ CS ҕೞח ࢤ
▸ 2015.12 ~ present at I/O ▸ medium.com/@trilliwon
FROM ONE SAPIENS TO ANOTHER.
झਤ iOS application Frontend
۠ ࣽࢲ۽ ফӝ೧ ࠅө פ ▸ TDD о ޥী ೧
▸ TDD ৵ ೧ঠ ೞחী ೧ ▸ ա TDD ҃ী ೧ ▸ Xcodeীࢲ iOS TDD
WHAT IS TDD?
T D D
TEST DRIVEN DEVELOPMENT
పझ ب ѐߊ
TDD WORKFLOW
पಁೞח పझ ࢿ ࢿػ పझܳ ాҗೞח ٘ ࢿ ࢿೠ ٘
ܻಂష݂
THE THREE LAWS OF TDD
TEST DRIVEN DEVELOPMENT ON IOS पಁೞח పझ ࢿ ▸ Compiler
error = Failing test ▸ Red = Failing test RED
TEST DRIVEN DEVELOPMENT ON IOS ࢿػ పझܳ ాҗೞח ٘ ࢿ
▸ Green = Passing test GREEN
TEST DRIVEN DEVELOPMENT ON IOS ܻಂష݂ ▸ Refactor ▸ ֎߁
▸ ࠂઁѢ ▸ … REFACTOR
TEST DRIVEN DEVELOPMENT ON IOS पಁೞח పझ ࢿ ▸ Compiler
error = Failing test ▸ Red = Failing test RED
TEST DRIVEN DEVELOPMENT ON IOS पಁೞח పझ ࢿ ▸ Compiler
error = Failing test ▸ Red = Failing test RED GREEN
TEST DRIVEN DEVELOPMENT ON IOS ࢿػ పझܳ ాҗೞח ٘ ࢿ
▸ Green = Passing test GREEN GREEN
TEST DRIVEN DEVELOPMENT ON IOS TDD ٜ ▸ ࣗझ٘ ಿ
▸ ਃೠ ٘݅ ࢿೣ ▸ ٣ߡӦ दр ড ▸ ݽٕച ٣ੋ ▸ ਬࠁࣻ ਊࢿ ▸ ܻಂష݂ ਊࢿ ▸ పझ ٘ ޙࢲച
TEST DRIVEN DEVELOPMENT ON IOS TDD ٜ ▸ ࣗझ٘ ಿ
▸ ਃೠ ٘݅ ࢿೣ ▸ ٣ߡӦ दр ড ▸ ݽٕച ٣ੋ ▸ ਬࠁࣻ ਊࢿ ▸ ܻಂష݂ ਊࢿ ▸ పझ ٘ ޙࢲച नх
नх ਃפ.
TEST DRIVEN DEVELOPMENT ON IOS TDD ױ ▸ ۽షఋೝী ࠗ
▸ ࣼ೧חؘ दрѦܿ
TEST DRIVEN DEVELOPMENT ON IOS TDD RULE ▸ Fast ▸
Independent ▸ Repeatable ▸ Self-Validating ▸ Timely
TEST DRIVEN DEVELOPMENT ON IOS TDD RULE // GIVEN //
WHEN // THEN
ӝর೧ঠ ೡ Ѫ
THE THREE LAWS OF TDD
WHY TDD
ѐߊ
: SUPER CLASS ѐߊ : SUB CLASS
HAS A WISDOM
ѐߊ CAN USE WISDOM
ࣘۆ?
ഌٜ
ইח ӡب ޛযࠁҊ оۄ
جܻب ف٘۰ࠁҊ Ѥցۄ
TDDۄח ഌח ܻ ীࢲ ݆ ই ࠅ ࣻ যਃ
पࣻܳ ӝ ਤೠ ഌ
߈ૐоמࢿ ண ನಌ
ண ನಌ
ઃо ৻҅ੋ ҳܳ ஜҕೡѢঠ! ߈ૐ ࠛоמೣ
ޛ 100 بॿীࢲ Փח ߈ૐ оמೣ
ৈӝ ଵৈೞन ݽٚ ٜ࠙ ݓ࠘ਸ ࣗਬೞҊ ҅पѢঠ! ߈ૐ оמೣ
ޛ 100 بॿীࢲ Փח ߈ૐ оמೣ ݆ పझܳ Ѽ٣ݶ Ӓ݅ఀ
જ ۿ ػ
ઃо ৻҅ੋ ҳܳ ஜҕೡѢঠ! ߈ૐ ࠛоמೣ ղ ٘ח ੜ جইтѢঠ
ৈӝ ଵৈೞन ݽٚ ٜ࠙ ݓ࠘ਸ ࣗਬೞҊ ҅पѢঠ! ߈ૐ оמೣ જ
٘݅ ই పझܳ ాҗೞ ޅೣ
যڃоਃ?
যڃ ੋр غযঠ ೞա?
যڃ ਸ ইঠ ೞա?
যڃ ѐߊо غযঠ ೞա?
э ੌೞҊ र ѐߊ
ࡆח ࢚ടਸ ٜ݅ ঋח ѐߊ
যڃоਃ?
ղ ҃
߅ (ਸ)ܳ ҳ۽ ୶о ೞदѷणפө? ۽ જоਃ?
None
ٸ ࢎਊೡ ۄ࠳۞ܻ
https://github.com/trilliwon/JNaturalKorean NO TDD MORE TIME TO DEBUG MORE TIME TO
MAINTAIN NO CONFIDENCE
https://github.com/trilliwon/NaturalKorean TDD CLEAN CODE BEAUTIFUL CODE CONFIDENCE MUCH BETTER
LET'S DIVE IN CODE
None
None
COMMAND + U CONTROL + U
this is A test headline This Is A Test Headline
THE THREE LAWS OF TDD
WORKING CODE TEST CODE RED SYNTAX ERRORܳ ೖೞӝ ਤೠ ٘
पಁೞח పझ
WORKING CODE TEST CODE GREEN ࢿػ పझܳ ాҗೞب۾݅ ࢿػ ٘
ాҗೞח పझ
WORKING CODE TEST CODE REFACTOR ܻಂష݂ ೠ పझ ٘
WORKING CODE TEST CODE RED ࢜۽ పझ ٘ ࢿ ো
FAIL
WORKING CODE TEST CODE GREEN पಁೞח పझܳ ాҗೞח ٘ PASS
ೞח పझ٘
WORKING CODE REFACTOR झਤ झۣѱ ܻಂష݂ ೠ ٘
TEST CODE REFACTOR ֎߁ ܻಂష݂ೠ పझ ٘
None
None
NO Q & A MAY BE
хࢎפ
How to use if not null if true
IOSীࢲ যܳ LOCALIZATIONೞח GORGEOUS ೠ ߑߨ