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.1k
魅せるデバッグ技術
dealforest
4
1.5k
LLDB の世界からみた Swift
dealforest
4
5.1k
Xcode で快適なデバッグライフを追い求める
dealforest
29
23k
Intrducing debug in WWDC2016
dealforest
3
770
swift build と Xcode での Build の違い
dealforest
3
2k
RIP Xcode Plugin 🙏
dealforest
0
4.8k
Introducing Xcode Editor Extension
dealforest
2
4.6k
Introducing Anglerfish
dealforest
2
3.3k
Other Decks in Technology
See All in Technology
Javaアプリケーションの配布とパッケージング / Distribution and packaging of Java applications
hogelog
2
500
うちの会社の評判は?SNSの投稿分析にAIを使ってみた
doumae
0
600
ai bot got sick (abc 2025s version)
kojira
0
120
Amazon DevOps Guru のベースラインを整備して1ヶ月ほど運用してみた #jawsug_asa / Amazon DevOps Guru trial
masahirokawahara
3
200
Bill One 開発エンジニア 紹介資料
sansan33
PRO
4
12k
GitHub Copilot Use Cases at ZOZO
horie1024
1
330
從開發到架構設計的可觀測性實踐
philipz
0
190
医療業界に特化した音声認識モデル構築のためのアノテーションの実態
thickstem
0
400
MCPを利用して自然言語で3Dプリントしてみよう!
hamadakoji
0
260
Flutterアプリを⾃然⾔語で操作する
yukisakai1225
0
200
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間
oracle4engineer
PRO
48
32k
MCP Clientを活用するための設計と実装上の工夫
yudai00
1
900
Featured
See All Featured
Designing for Performance
lara
608
69k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Optimizing for Happiness
mojombo
378
70k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
VelocityConf: Rendering Performance Case Studies
addyosmani
329
24k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
52
2.8k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
It's Worth the Effort
3n
184
28k
Site-Speed That Sticks
csswizardry
9
610
Java REST API Framework Comparison - PWX 2021
mraible
31
8.6k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
6
640
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
228
22k
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
·ͱΊ εΫγϣ͔Βσόοάʹ ඞཁͳใΛਪଌͤͣʹ ͙͢ʹݪҼಛఆʹͱΓ͔͔ΕΔ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠