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
スクショから始まるデバッグについて
Search
Toshihiro Morimoto
September 27, 2014
Technology
2
3.7k
スクショから始まるデバッグについて
yidev#16 の発表です
Toshihiro Morimoto
September 27, 2014
Tweet
Share
More Decks by Toshihiro Morimoto
See All by Toshihiro Morimoto
Xcode8 で開発はどうかわったのか
dealforest
10
6.3k
魅せるデバッグ技術
dealforest
4
1.6k
LLDB の世界からみた Swift
dealforest
4
5.4k
Xcode で快適なデバッグライフを追い求める
dealforest
29
24k
Intrducing debug in WWDC2016
dealforest
3
790
swift build と Xcode での Build の違い
dealforest
3
2.1k
RIP Xcode Plugin 🙏
dealforest
0
4.8k
Introducing Xcode Editor Extension
dealforest
2
4.6k
Introducing Anglerfish
dealforest
2
3.5k
Other Decks in Technology
See All in Technology
AIエージェントに必要なのはデータではなく文脈だった/ai-agent-context-graph-mybest
jonnojun
1
220
usermode linux without MMU - fosdem2026 kernel devroom
thehajime
0
240
SREが向き合う大規模リアーキテクチャ 〜信頼性とアジリティの両立〜
zepprix
0
470
制約が導く迷わない設計 〜 信頼性と運用性を両立するマイナンバー管理システムの実践 〜
bwkw
3
1k
プロポーザルに込める段取り八分
shoheimitani
1
590
CDKで始めるTypeScript開発のススメ
tsukuboshi
1
510
仕様書駆動AI開発の実践: Issue→Skill→PRテンプレで 再現性を作る
knishioka
2
680
超初心者からでも大丈夫!オープンソース半導体の楽しみ方〜今こそ!オレオレチップをつくろう〜
keropiyo
0
120
ブロックテーマでサイトをリニューアルした話 / 2026-01-31 Kansai WordPress Meetup
torounit
0
480
Webhook best practices for rock solid and resilient deployments
glaforge
2
300
Greatest Disaster Hits in Web Performance
guaca
0
280
茨城の思い出を振り返る ~CDKのセキュリティを添えて~ / 20260201 Mitsutoshi Matsuo
shift_evolve
PRO
1
360
Featured
See All Featured
Google's AI Overviews - The New Search
badams
0
910
Joys of Absence: A Defence of Solitary Play
codingconduct
1
290
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
190
Bash Introduction
62gerente
615
210k
エンジニアに許された特別な時間の終わり
watany
106
230k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
63
How to Think Like a Performance Engineer
csswizardry
28
2.5k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
69
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
0
1.1k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
130
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
760
Transcript
εΫγϣ͔Β࢝·Δσόοάʹ͍ͭͯ 2014/09/27 yidev #16 @dealforest Toshihro Morimoto
ࣗݾհ http://about.me/dealforest ! ! iOS App / Web Application(perl, ruby)
@dealforest Toshihro Morimoto
ͦͦ σόοά͢Δ࣌ͲΜͳͱ͖ʁ
ҙਤͨ͠ڍಈͱҧ͏ͱ͖ʂʂ
։ൃͷαΠΫϧ 1. iPhone Simulator 2. ࣮ػ 3. CI 4. Adhock
Ͱ 5. TestFlight ͰϦϦʔεલʹΠϯετʔϧ 6. AppStore ͔ΒΠϯετʔϧ
։ൃͷαΠΫϧ 1. iPhone Simulator 2. ࣮ػ 3. CI 4. Adhock
Ͱ 5. TestFlight ͰϦϦʔεલʹΠϯετʔϧ 6. AppStore ͔ΒΠϯετʔϧ
։ൃͷαΠΫϧ 1. iPhone Simulator 2. ࣮ػ 3. CI 4. Adhock
Ͱ 5. TestFlight ͰϦϦʔεલʹΠϯετʔϧ 6. AppStore ͔ΒΠϯετʔϧ қ
σόοάͷαΠΫϧ
σόοάͷαΠΫϧ 1. σόοάͷͨΊͷใΛݩʹͯ͠ όάͷݪҼΛਪଌ͢Δ
σόοάͷαΠΫϧ 1. σόοάͷͨΊͷใΛݩʹͯ͠ όάͷݪҼΛਪଌ͢Δ 2. όάΛ࠶ݱͤ͞Δ
σόοάͷαΠΫϧ 1. σόοάͷͨΊͷใΛݩʹͯ͠ όάͷݪҼΛਪଌ͢Δ 2. όάΛ࠶ݱͤ͞Δ 3. Let’s debug…debug…debug!!!
όάͷݪҼΛਪଌ͠Α͏ʹ ใ͕Կͳ͍ͱצͰௐΔ͔͠ͳ͍
Δؾ͕͓͖ͳ͍…
ͨ࣌͠ σόοάͷͨΊͷใ͕ ͞Βʹগͳ͍ʂʂʂ
ͨ࣌͠ͷσόοάͷΈ
ͨ࣌͠ͷσόοάͷΈ • print debug break point ʹΑΔσόο ά͕΄΅ෆՄೳ
ͨ࣌͠ͷσόοάͷΈ • print debug break point ʹΑΔσόο ά͕΄΅ෆՄೳ •
ใʹґଘ͍ͯ͠Δ߹ɺঢ়گΛ ਪଌͯ͠σόοά͠ͳ͍ͱ͍͚ͳ͍
ͨ࣌͠ͷσόοάͷΈ • print debug break point ʹΑΔσόο ά͕΄΅ෆՄೳ •
ใʹґଘ͍ͯ͠Δ߹ɺঢ়گΛ ਪଌͯ͠σόοά͠ͳ͍ͱ͍͚ͳ͍ • όά͕࠶ݱՄೳͳͰσόοάͰ͖ ΔΘ͚Ͱͳ͍
ͭΒ͍…
ͱ͍͑ ใ͕গͳ͍͚Ͳόά͕ ࠶ݱͰ͖ΕͲ͏ʹ͔ͳΔʂ
ͨͩʹґଘͨ͠ΓͰ ࠶ݱ͠ͳ͔ͬͨΓ͢Δͷ͕ݱ࣮
ͨ͠ࡍʹͲ͏ͬͯ σόοάͷͨΊͷใΛऩू͢Δ͔
Crash Report ͷऩू
Crash Report ͷऩू • Crash Report ղੳαʔϏεΛָ͑ʹूΊΕΔ
Crash Report ͷऩू • Crash Report ղੳαʔϏεΛָ͑ʹूΊΕΔ • Clashlitics, Bugsnag
ͳͲ
Crash Report ͷऩू • Crash Report ղੳαʔϏεΛָ͑ʹूΊΕΔ • Clashlitics, Bugsnag
ͳͲ • ͱ͍͑ΞϓϦ͕ Crash ͠ͳ͍ͱू·Β͍ͷ͕ ։ൃऀͱͯ͠ Crash ͯ͠΄͘͠ͳ͍
iOS ͷ Framework Ͱൃੜͨ͠ NSError, NSException ͷऩू
iOS ͷ Framework Ͱൃੜͨ͠ NSError, NSException ͷऩू • Social.framework
IAP Λར༻͍ͯ͠Δ߹ɺ ଆʹ͔͠ใ͕ͳ͍ͷͰ͋Εͱͯॿ͔Δ
iOS ͷ Framework Ͱൃੜͨ͠ NSError, NSException ͷऩू • Social.framework
IAP Λར༻͍ͯ͠Δ߹ɺ ଆʹ͔͠ใ͕ͳ͍ͷͰ͋Εͱͯॿ͔Δ • Ͳͧ͜ͷ SDK ͕ Crash ͢ΔͷͰ Try-Catch ͯ͠ Crash ͠ͳ͍Α͏ʹͯ͠ใΛूΊΔ
iOS ͷ Framework Ͱൃੜͨ͠ NSError, NSException ͷऩू • Social.framework
IAP Λར༻͍ͯ͠Δ߹ɺ ଆʹ͔͠ใ͕ͳ͍ͷͰ͋Εͱͯॿ͔Δ • Ͳͧ͜ͷ SDK ͕ Crash ͢ΔͷͰ Try-Catch ͯ͠ Crash ͠ͳ͍Α͏ʹͯ͠ใΛूΊΔ • Crash Report ղੳαʔϏεͰҙͷλΠϛϯάͰϨ ϙʔτΛૹ৴Ͱ͖Δػೳ͕͋Ε؆୯ʹूΊΕΔ
iOS ͷ Framework Ͱൃੜͨ͠ NSError, NSException ͷऩू • Social.framework
IAP Λར༻͍ͯ͠Δ߹ɺ ଆʹ͔͠ใ͕ͳ͍ͷͰ͋Εͱͯॿ͔Δ • Ͳͧ͜ͷ SDK ͕ Crash ͢ΔͷͰ Try-Catch ͯ͠ Crash ͠ͳ͍Α͏ʹͯ͠ใΛूΊΔ • Crash Report ղੳαʔϏεͰҙͷλΠϛϯάͰϨ ϙʔτΛૹ৴Ͱ͖Δػೳ͕͋Ε؆୯ʹूΊΕΔ • ։ൃऀ͕໌ࣔతʹઃఆ͢ΔͷͰͲ͜ͰΤϥʔ͕ى͖ ͯΔ͔͕Ѳ͍͢͠
εΫγϣΛࡱͬͯڞ༗
εΫγϣΛࡱͬͯڞ༗ • σβΠφʔͷσβΠϯͱҧ͏
εΫγϣΛࡱͬͯڞ༗ • σβΠφʔͷσβΠϯͱҧ͏ • Ϣʔβʔ͕ҙਤͨ͠ڍಈͱζϨ͕ੜͯ͡Δ
εΫγϣΛࡱͬͯڞ༗ • σβΠφʔͷσβΠϯͱҧ͏ • Ϣʔβʔ͕ҙਤͨ͠ڍಈͱζϨ͕ੜͯ͡Δ • σʔλͷෆ߹͕ى͖ͯΔ
εΫγϣΛࡱͬͯڞ༗ • σβΠφʔͷσβΠϯͱҧ͏ • Ϣʔβʔ͕ҙਤͨ͠ڍಈͱζϨ͕ੜͯ͡Δ • σʔλͷෆ߹͕ى͖ͯΔ • Τϥʔϝοηʔδ(ίʔυ)ΛΈͤΔͨΊ
ͦͷଞ
ͦͷଞ • ࣾͰޱ಄νϟοτͰݴΘΕΔ
ͦͷଞ • ࣾͰޱ಄νϟοτͰݴΘΕΔ • Ϣʔβʔ͔Βͷ͍߹Θͤ(Helpshiftͱ͔)
ͦͷଞ • ࣾͰޱ಄νϟοτͰݴΘΕΔ • Ϣʔβʔ͔Βͷ͍߹Θͤ(Helpshiftͱ͔) • AppStore ͷϨϏϡʔ
ͦͷଞ • ࣾͰޱ಄νϟοτͰݴΘΕΔ • Ϣʔβʔ͔Βͷ͍߹Θͤ(Helpshiftͱ͔) • AppStore ͷϨϏϡʔ • SNS
ͰΤΰαʔν
ݱঢ়͜Μͳײ͔͡ͳͱ
ͯ͞ɺ͔͜͜Β͕ຊͰ͢
͋ͳͨ Twitter ࣾͰ ΞϓϦΛ࡞͍ͯ͠·͢
◦◦͕όάͬͯΜ͚ͩͲͬͯ ͜ΜͳεΫγϣΛૹΒΕ͖ͯ·ͨ͠
͜Ε͔Βਪଌ͠ͳ͍ͱ͍͚ͳ͍
͜Ε͔Βਪଌ͠ͳ͍ͱ͍͚ͳ͍ • ͓·͑ɺͩΕʁ (Identifier తͳҙຯͰ)
͜Ε͔Βਪଌ͠ͳ͍ͱ͍͚ͳ͍ • ͓·͑ɺͩΕʁ (Identifier తͳҙຯͰ) • API ଆ͕ݪҼʁ ͦΕͱΞϓϦଆʁ
͜Ε͔Βਪଌ͠ͳ͍ͱ͍͚ͳ͍ • ͓·͑ɺͩΕʁ (Identifier తͳҙຯͰ) • API ଆ͕ݪҼʁ ͦΕͱΞϓϦଆʁ •
͍·Έ͑ͯΔ Cell Λߏஙͯ͠ Δσʔλ͕Έ͍ͨ
͜Ε͔Βਪଌ͠ͳ͍ͱ͍͚ͳ͍ • ͓·͑ɺͩΕʁ (Identifier తͳҙຯͰ) • API ଆ͕ݪҼʁ ͦΕͱΞϓϦଆʁ •
͍·Έ͑ͯΔ Cell Λߏஙͯ͠ Δσʔλ͕Έ͍ͨ • ͜Ε࠶ݱͰ͖Δ͔ͳ…
ਪଌͯ͠ใΛूΊͳ͍ͱ͍͚ͳ͍
ͭΒ͍…
ͦͦϢʔβʔͷͨΊʹ ද͍ࣔͯ͠Δը໘ͳΜ͔ͩΒ σόοάʹඞཁͳใ΄΅ͳ͍
σόοάͷαΠΫϧ 1. όάͷݪҼਪଌ 2. όάͷ࠶ݱ 3. debug…debug…debug!!!
σόοάͷαΠΫϧ 1. όάͷݪҼਪଌ͢ΔͨΊͷใΛը૾ ͔ΒಡऔΔ 2. όάͷݪҼਪଌ 3. όάͷ࠶ݱ 4. debug…debug…debug!!!
εΫγϣ͔ΒۭؾΛಡΜͰ Կσόοά͢Δ͕ ຊʹΊΜͲ͏͍͘͞ʂʂʂʂ
print debug break point Λ ͑ΔͳΒ؆୯ʹ ใΛूΊΕΔͷʹ…
ʂʂʂʂʂʂʂʂʂʂʂʂʂʂʂ
ͦΕͳΒεΫγϣΛࡱͬͨ࣌ʹ σόοάʹඞཁͳใΛ Ұॹʹը૾ͱͯ͠ग़ྗ͢Ε͍͍ʂ
! DFTDebugScreenshot http://github.com/dealforest/DFTDebugScreenshot
Install pod ‘DFTDebugScreenshot’
Usage
DEMO
Ԡ༻
Ԡ༻ • AutoLayout Ͱ UIView ʹઃఆ͍ͯ͠Δ Constraints Λ ग़ྗ͢Δ͜ͱͰ͖Δ
Ԡ༻ • AutoLayout Ͱ UIView ʹઃఆ͍ͯ͠Δ Constraints Λ ग़ྗ͢Δ͜ͱͰ͖Δ •
UIWebView Ͱ࡞͍ͬͯΔΞϓϦͰɺjs ͷใ(ม , ϒϥβͷใ)Λग़ྗ͢Δ͜ͱͰ͖Δ
Ԡ༻ • AutoLayout Ͱ UIView ʹઃఆ͍ͯ͠Δ Constraints Λ ग़ྗ͢Δ͜ͱͰ͖Δ •
UIWebView Ͱ࡞͍ͬͯΔΞϓϦͰɺjs ͷใ(ม , ϒϥβͷใ)Λग़ྗ͢Δ͜ͱͰ͖Δ • completionBlock ΛࠐΜͰ͓͘ͱεΫγϣΛࡱΔͱ εΫγϣͱσόοΫใΛ Slack S3 ϝʔϧͰ ࣗಈతʹૹ৴͜ͱͰ͖Δ
Ԡ༻ • AutoLayout Ͱ UIView ʹઃఆ͍ͯ͠Δ Constraints Λ ग़ྗ͢Δ͜ͱͰ͖Δ •
UIWebView Ͱ࡞͍ͬͯΔΞϓϦͰɺjs ͷใ(ม , ϒϥβͷใ)Λग़ྗ͢Δ͜ͱͰ͖Δ • completionBlock ΛࠐΜͰ͓͘ͱεΫγϣΛࡱΔͱ εΫγϣͱσόοΫใΛ Slack S3 ϝʔϧͰ ࣗಈతʹૹ৴͜ͱͰ͖Δ • ಛఆͷϢʔβʔ͚ͩσόοάใΛग़ྗ͢Δ͜ͱ Մೳ
TODO
TODO • ݱࡏදࣔ͞Ε͍ͯΔ UIViewController ͷ debugObject Λ͍ͭͰऔಘͰ͖ΔΑ͏ͳ interface ΛՃ͢ΔͭΓ
TODO • ݱࡏදࣔ͞Ε͍ͯΔ UIViewController ͷ debugObject Λ͍ͭͰऔಘͰ͖ΔΑ͏ͳ interface ΛՃ͢ΔͭΓ •
dealforest/DFTAwesomePrint Λ࡞͍ͬͯͯ debugObject Λ colorize ͯ͠ը૾ʹ͢ΔͭΓ
TODO • ݱࡏදࣔ͞Ε͍ͯΔ UIViewController ͷ debugObject Λ͍ͭͰऔಘͰ͖ΔΑ͏ͳ interface ΛՃ͢ΔͭΓ •
dealforest/DFTAwesomePrint Λ࡞͍ͬͯͯ debugObject Λ colorize ͯ͠ը૾ʹ͢ΔͭΓ • AccessToken cookie Λग़ྗͨ࣌͠ͷͨΊʹ҉߸Խ ͍ͨ͠(QRίʔυͱ͔ʁ)
TODO • ݱࡏදࣔ͞Ε͍ͯΔ UIViewController ͷ debugObject Λ͍ͭͰऔಘͰ͖ΔΑ͏ͳ interface ΛՃ͢ΔͭΓ •
dealforest/DFTAwesomePrint Λ࡞͍ͬͯͯ debugObject Λ colorize ͯ͠ը૾ʹ͢ΔͭΓ • AccessToken cookie Λग़ྗͨ࣌͠ͷͨΊʹ҉߸Խ ͍ͨ͠(QRίʔυͱ͔ʁ) • σόοΫ༻ը૾ͷσβΠϯ୭͔͍͍ײ͡ʹͯ͠w
·ͱΊ εΫγϣ͔Βσόοάʹ ඞཁͳใΛਪଌͤͣʹ ͙͢ʹݪҼಛఆʹͱΓ͔͔ΕΔ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠