Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Enjoy Breakpoint

Shingo Tamaki
February 11, 2017

Enjoy Breakpoint

Swiftのビルドが遅いのでBreakpointを活用して、
アプリを止めずにできるだけデバッグ作業しようという話です。

Shingo Tamaki

February 11, 2017
Tweet

More Decks by Shingo Tamaki

Other Decks in Technology

Transcript

  1. ENJOY
    BREAKPOINT

    View Slide

  2. ࣗݾ঺հ

    View Slide

  3. ࣗݾ঺հ
    ۄ৓৴ޛ
    iOS Engineer!
    झຯ"
    ిࢠ޻࡞⚡
    ےτϨ$
    ΨδΣοτ%

    View Slide

  4. ! SWIFTͷϏϧυ
    ஗͍Ͱ͢ΑͶ "

    View Slide

  5. Α͘( ฉ | ޮ )͘SWIFTͷϏϧυߴ଎ԽTIPS
    ࣄલ४උ
    > xcprofilerͳͲͰܭଌ
    https://github.com/giginet/xcprofiler

    View Slide

  6. Α͘( ฉ | ޮ )͘SWIFTͷϏϧυߴ଎ԽTIPS
    ઃఆϨϕϧ
    > Optimization Level
    > ϏϧυฒྻԽ
    > SWIFTWHOLEMODULE_OPTIMIZATION

    View Slide

  7. Α͘( ฉ | ޮ )͘SWIFTͷϏϧυߴ଎ԽTIPS
    ίʔυϨϕϧ
    > ܕਪ࿦ͤ͞ͳ͍!
    > +ΑΓappend
    > ??(nil݁߹ԋࢉࢠ)Λ࢖༻͠ͳ͍

    View Slide

  8. Α͘( ฉ | ޮ )͘SWIFTͷϏϧυߴ଎ԽTIPS
    http://qiita.com/you_matz/items/e95f30023eccc8d96357
    http://sssslide.com/speakerdeck.com/naoto0n2/
    buildshi-jian-gai-shan

    View Slide

  9. ରԠ͸͢Δͭ΋Γɺ
    Ͱ΋༏ઌλεΫ͕ɻ

    View Slide

  10. ͦΜͳ࣌ظͷ
    ։ൃʹ΋໾ཱͭ
    BREAKPOINTͷTIPS

    View Slide

  11. ௒جຊత
    ͳ࢖͍ํ

    View Slide

  12. ௒جຊతͳ࢖͍ํ
    > ࢭΊ͍ͨॲཧͷߦͷࠨଆΛΫϦοΫͯ͠ϒ
    ϨΠΫϙΠϯτΛ௥Ճ

    View Slide

  13. লུ

    View Slide

  14. EDIT BREAKPOINT

    View Slide

  15. EDIT BREAKPOINT
    Condition
    ࣮ߦ৚݅ ex) foo == bar
    Ignore
    ϒϨΠΫͷແࢹճ਺
    ex) ϧʔϓॲཧͰ5ճ໨ͷ͚࣌ͩࢭΊ͍ͨ
    Action
    ޙड़
    Options
    Action࣮ߦޙʹϒϨΠΫͤ͞ͳ͍
    ex) ActionͰϩάग़ྗͳͲΛͤ͞ଓ͚͍ͨ࣌ͳͲ

    View Slide

  16. ACTION
    Apple Script
    Apple Scriptͷ࣮ߦ͕Մೳ
    ex) ௨஌ηϯλʔʹNotificationΛඈ͹͢
    Capture GPU Frame
    OpenGL ESͷඳըঢ়گͷ֬ೝͳͲʹ࢖͏
    Debugger Command
    LLDBίϚϯυͷ࣮ߦ͕Մೳ
    Log Message
    γϯϓϧͳςΩετͷϩάग़ྗ͕Մೳ
    Shell Command
    γΣϧʹΑΔίϚϯυͷ࣮ߦ͕Մೳ
    Sound
    α΢ϯυͷ࠶ੜ͕ઃఆՄೳ

    View Slide

  17. ACTION
    ΞΫγϣϯ͸ෳ਺௥ՃՄೳ

    View Slide

  18. LOG MESSAGE
    ୯७ͳϩάग़ྗΛߦ͍͍ͨ࣌
    ͳͲʹศར
    ίϯιʔϧ΁ͷग़ྗ΍
    ಡΈ্͛Ի੠Ͱग़ྗͰ͖Δ
    ίʔυ্ͷม਺Λ@hoge@ͷΑ͏ͳ
    ܗͰࢦఆͰ͖ͨΓɺ%BͰϒϨΠΫϙΠϯτ໊ɺ
    %HͰϒϨΠΫϙΠϯτͷ࣮ߦճ਺͕දࣔ͞Ε·͢ɻ
    Title: "Books" viewDidLoad() 1

    View Slide

  19. DEBUG COMMAND
    po foo
    po bar = foo
    env DEBUG=1
    bt
    ..etc
    https://lldb.llvm.org/lldb-gdb.html

    View Slide

  20. DEBUG COMMAND
    CHISEL
    facebook੡ͷLLDBίϚϯυू
    https://github.com/facebook/chisel
    pvc : ViewController֊૚Λίϯιʔϧʹग़ྗ
    pviews : View֊૚Λίϯιʔϧʹग़ྗ
    border/unborder : ର৅ͷViewʹϘʔμʔΛඳը
    ...etc

    View Slide

  21. APPLE SCRIPT
    osascript -e 'display notification "Hello
    World"'

    View Slide

  22. APPLE SCRIPT
    MAC AUTOMATION SCRIPTING
    GUIDE
    https://developer.apple.com/library/
    content/documentation/
    LanguagesUtilities/Conceptual/
    MacAutomationScriptingGuide/
    index.html#//apple_ref/doc/uid/
    TP40016239-CH56-SW1

    View Slide

  23. BREAKPOINTͷڞ༗
    Share BreakpointͰνʔϜͰڞ༗
    Մೳ
    ׂͱαΫοͱফ͞ΕΔࣄ΋͋
    ΔͷͰॏ༻͢Δ͜ͱ͸গͳ͍
    ͔ͳͱࢥ͍·͢...

    View Slide

  24. BREAKPOINTͷڞ༗
    READINGMARKER.XCWORKSPACE/XCSHAREDDATA/XCDEBUGGER/
    BREAKPOINTS_V2.XCBKPTLIST

    type = "3"
    version = "2.0">

    BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
    shouldBeEnabled = "Yes"
    ignoreCount = "0"
    continueAfterRunningActions = "Yes"
    filePath = "ReadingMarker/ViewControllers/HomeViewController.swift"
    timestampString = "508462948.98439"
    startingColumnNumber = "9223372036854775807"
    endingColumnNumber = "9223372036854775807"
    startingLineNumber = "21"
    endingLineNumber = "21"
    landmarkName = "viewDidLoad()"
    landmarkType = "7">

    ActionExtensionID = "Xcode.BreakpointAction.Log">
    message = "Log Message"
    conveyanceType = "0">







    View Slide

  25. BREKPOINTΛ׆༻͢Δͱྑ͍఺
    ࠶Ϗϧυͷճ਺ΛݮΒͤΔ⤵
    ɾσόοάͷͨΊͷίʔυΛॻ͍ͯ࠶Ϗϧυ͠ͳͯ͘΋ྑ͍
    ɾ࣮ߦதͰ΋ϩάͷࠩ͠ࠐΈ΋Մೳ

    View Slide

  26. ΑΓָʹͳΔϓϥάΠϯ
    Tuna
    https://speakerdeck.com/dealforest/mada-nslog-
    dexiao-hao-siteirufalse

    View Slide

  27. ࢀߟจݙ
    ΄΅શ෦ࡌͬͯ·͢!

    View Slide

  28. એ఻

    View Slide

  29. 2/21 FASTLANEษڧձ
    https://fastlane.connpass.com/event/49623/

    View Slide

  30. 3/13 IOS TEST NIGHT
    https://testnight.connpass.com/event/49561/

    View Slide

  31. YAHOO HACK DAYग़৔͠·ͨ͠ɻ
    ʮͻ΋ͱ͖ʯ
    3:30:11~3:31:49
    https://www.youtube.com/watch?v=oJKTYEJkasU
    ※ ikesyo/Himotoki͸ಋೖ͍ͯ͠·ͤΜ!

    View Slide

  32. Ҏ্

    View Slide