$30 off During Our Annual Pro Sale. View Details »
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.1k
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
1.9k
James Majors: What the Swiftly Func?
realm
1
4.3k
Simina Pasat: Continuous everything for iOS apps
realm
0
640
Other Decks in Technology
See All in Technology
AI活用によるPRレビュー改善の歩み ― 社内全体に広がる学びと実践
lycorptech_jp
PRO
1
200
Lessons from Migrating to OpenSearch: Shard Design, Log Ingestion, and UI Decisions
sansantech
PRO
1
110
打 造 A I 驅 動 的 G i t H u b ⾃ 動 化 ⼯ 作 流 程
appleboy
0
280
Microsoft Agent 365 を 30 分でなんとなく理解する
skmkzyk
1
1.1k
GitHub Copilotを使いこなす 実例に学ぶAIコーディング活用術
74th
3
2.5k
MLflowで始めるプロンプト管理、評価、最適化
databricksjapan
1
140
Overture Maps Foundationの3年を振り返る
moritoru
0
170
LT登壇を続けたらポッドキャストに呼ばれた話
yamatai1212
0
130
Snowflakeでデータ基盤を もう一度作り直すなら / rebuilding-data-platform-with-snowflake
pei0804
4
1.3k
会社紹介資料 / Sansan Company Profile
sansan33
PRO
11
390k
A Compass of Thought: Guiding the Future of Test Automation ( #jassttokai25 , #jassttokai )
teyamagu
PRO
1
250
年間40件以上の登壇を続けて見えた「本当の発信力」/ 20251213 Masaki Okuda
shift_evolve
PRO
1
100
Featured
See All Featured
The World Runs on Bad Software
bkeepers
PRO
72
12k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.1k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Building Adaptive Systems
keathley
44
2.9k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.7k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
720
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Navigating Team Friction
lara
191
16k
Designing for Performance
lara
610
69k
Typedesign – Prime Four
hannesfritz
42
2.9k
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 ೠ ߑߨ