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

初めてのKotlinコントリビュート

tommykw
February 17, 2018

 初めてのKotlinコントリビュート

tommykw

February 17, 2018
Tweet

More Decks by tommykw

Other Decks in Programming

Transcript

  1. $POOFIJUP*OD
    ϚϚͷҰาΛࢧ͑Δ
    ॳΊͯͷ,PUMJOίϯτϦϏϡʔτ

    View Slide

  2. ࣗݾ঺հ
    ෋ా݈ೋ
    !UPNNZLX
    !UPNNZLX
    ίωώτגࣜձࣾ"OESPJE&OHJOFFS

    View Slide

  3. ,POUSJCVUF͠·ͨ͠
    ࡢ೥݄ʹॳΊͯ,POUSJCVUF͠·ͨ͠ʂʂ

    View Slide

  4. ,POUSJCVUF͠·ͨ͠
    ॳ,POUSJCVUFͨ͠ࢫͷϒϩάॻ͖·ͨ͠ʂ
    IUUQUFDIDPOOFIJUPDPNFOUSZ

    View Slide

  5. ,POUSJCVUF͠·ͨ͠
    ͍͔ͭ͘,POUSJCVUF͍ͯ͠·͢ʂ

    View Slide

  6. ,POUSJCVUFखॱ

    ,POUSJCVUFखॱΛ͓࿩͍͚ͨ͠͠Ͳɺ΄΅
    TIJSBKJ͞Μͷʮ)PXUP,POUSJCVUFʯͱඃͬ
    ͍ͯΔʂʂ

    View Slide

  7. TIJSBKJ͞Μͷ,POUSJCVUFखॱ
    IUUQTQIPUPTHPPHMFDPNTIBSF
    "'2JQ.&J5[2CK'YG[RQ'O,0LX,6-YUU6Z,9S
    KR(QM:&)0$JDO3/3#VPYX/DX
    LFZ-8E;/'3IEY3K3+D8Q:CT[/6I7N6B637
    E'+O

    View Slide

  8. ͓࿩͍ͨ͜͠͠ͱ
    ๻͚ͩͷ৘ใΛఏڙͨ͠ํ͕Ձ஋͕͋Γͦ͏

    View Slide

  9. ͓࿩͍ͨ͜͠͠ͱ
    ͱ͍͏͜ͱͰࠓճͷ͓࿩͠ʂ

    View Slide

  10. w αϯϓϧίʔυͷ,POUSJCVUF
    w ,POUSJCVUF͢ΔͨΊͷܧଓతͳ؀ڥ࡞Γ
    ΞδΣϯμ
    w ,POUSJCVUFͰײͨ͡ϋʔυϧϋϚΔͱ͜Ζ

    View Slide

  11. ؀ڥߏங͸ׂѪ
    ؀ڥߏங͸ׂѪ͍͖ͤͯͨͩ͞·͢ʂ
    TIJSBKJ͞Μͷʮ)PXUP,POUSJCVUFʯΛ֬͝ೝԼ͍͞ʂ

    View Slide

  12. w αϯϓϧίʔυͷ,POUSJCVUF
    w ,POUSJCVUF͢ΔͨΊͷܧଓతͳ؀ڥ࡞Γ
    ΞδΣϯμ
    w ,POUSJCVUFͰײͨ͡ϋʔυϧϋϚΔͱ͜Ζ

    View Slide

  13. ,POUSJCVUFͰ͖ͳ͔ͬͨ
    ౰ॳ͸,POUSJCVUF͢Δͧʂͱ࢝Ί͍ͯͨͷͰ͕͢ɺ
    ͳ͔ͳ͔,POUJSVCVUFͰ͖ͳ͍ʜ

    View Slide

  14. w "OESPJE4UVEJPͰ͸ͳ͘ɺ*OUFMMJ+*%&"Λ࢖
    ͏ ͜Ε͸ϋʔυϧͱ͍͏ఔͰ΋ͳ͍͸ͣ

    w ͦ΋ͦ΋ݴޠʹίϯτϦϏϡʔτͰϏϏΔ
    w ,PUMJO*%&1MVHJO։ൃͩͱ"OESPJE։ൃͱͷ
    ؔ܎ੑ͕ബͪ͘ΐͬͱڵຯ͕ബΕΔ͔΋ʁ
    w ۀ຿ͱ௚઀ؔΘΓ͕͋Δ༁Ͱ͸ͳ͍ͷͰۀ຿࣌
    ؒʹ΍Δ͜ͱ͕Ͱ͖ͳ͍
    ϋʔυϧʁʁ
    ,POUSJCVUFͰײͨ͡ϋʔυϧʁʁ

    View Slide

  15. ϋϚΔͱ͜Ζ
    ͦΕʹՃ͑ͯϋϚͬͨͱ͜Ζ͕͋ͬͨ

    View Slide

  16. w ࣝऀͷํʑ͕*TTVFΛͲΜͲΜରԠ͍ͯ͘͠
    w ରԠͰ͖ͦ͏ͳ*TTVF͕ͳ͍
    ϋϚΔͱ͜Ζ
    ,POUSJCVUFͷϋϚΔͱ͜Ζ
    w *TTVFʹΑͬͯ͸ϨϏϡʔͯ͠΋Β͏·Ͱʹ࣌
    ֻ͕͔ؒΔ

    View Slide

  17. ϋϚΔͱ͜Ζ
    ൺֱతऔΓ૊Έ΍͍͢*TTVF͕ͳ͍͔ͳʜ

    View Slide

  18. αϯϓϧίʔυͷ,POUSJCVUF
    ඪ४ϥΠϒϥϦͷαϯϓϧίʔυఏڙʂ

    View Slide

  19. w αϯϓϧίʔυͷ,POUSJCVUF
    w ,POUSJCVUF͢ΔͨΊͷܧଓతͳ؀ڥ࡞Γ
    ΞδΣϯμ
    w ,POUSJCVUFͰײͨ͡ϋʔυϧϋϚΔͱ͜Ζ

    View Slide

  20. αϯϓϧίʔυͷ,POUSJCVUF
    αϯϓϧίʔυ
    w αϯϓϧίʔυ΋ཱ೿ͳ,POUSJCVUFʂ
    w 3FBE.F΋͋Δʂ

    w IUUQTHJUIVCDPN+FU#SBJOTLPUMJOCMPC
    NBTUFSMJCSBSJFTTUEMJCTBNQMFT3FBE.FNE
    w ඪ४ϥΠϒϥϦͷαϯϓϧίʔυఏڙ

    View Slide

  21. αϯϓϧίʔυͷ,POUSJCVUF
    αϯϓϧίʔυΛఏڙ͢Δࡍʹར
    ༻͢ΔΞαʔγϣϯ͕͋Δ

    View Slide

  22. αϯϓϧίʔυͷ,POUSJCVUF
    αϯϓϧίʔυͷΞαʔγϣϯ
    w BTTFSU1SJOUT
    w BTTFSU5SVFBTTFSU'BMTF
    w BTTFSU'BJMTBTTFSU'BJMT8JUI

    View Slide

  23. αϯϓϧίʔυͷ,POUSJCVUF
    αϯϓϧίʔυͷ13Λ͍͔ͭ͘౤͛ͯΈ·ͨ͠ʂ

    View Slide

  24. αϯϓϧίʔυͷ,POUSJCVUF
    MJCSBSJFTTUEMJCTBNQMFTUFTUTBNQMFTDPMMFDUJPOTJUFSBCMFTLU
    MJCSBSJFTTUEMJCTSDLPUMJODPMMFDUJPOT*UFSBCMFTLU

    View Slide

  25. αϯϓϧίʔυͷ,POUSJCVUF
    MJCSBSJFTTUEMJCTBNQMFTUFTUTBNQMFTDPMMFDUJPOTSFWFSTFE7JFXTLU
    MJCSBSJFTTUEMJCTSDLPUMJODPMMFDUJPOT3FWFSTFE7JFXTLU

    View Slide

  26. αϯϓϧίʔυͷ,POUSJCVUF
    MJCSBSJFTTUEMJCTBNQMFTUFTUTBNQMFTSBOHFTSBOHFTLU
    MJCSBSJFTTUEMJCTSDLPUMJOSBOHFT3BOHFTLU

    View Slide

  27. αϯϓϧίʔυͷ,POUSJCVUF
    MJCSBSJFTTUEMJCTBNQMFTUFTUTBNQMFTDPMMFDUJPOTJUFSBUPSTLU
    MJCSBSJFTTUEMJCTSDLPUMJODPMMFDUJPOT*UFSBUPSTLU

    View Slide

  28. αϯϓϧίʔυͷ,POUSJCVUF
    MJCSBSJFTTUEMJCTBNQMFTUFTUTBNQMFTDPMMFDUJPOTJUFSBUPSTLU
    MJCSBSJFTTUEMJCTSDLPUMJODPMMFDUJPOT*UFSBUPSTLU
    ඞͣ͠΋ΞαʔγϣϯΛ࢖Θͳ͘
    ͯ΋0,ʂ͜͜͸QSJOUMO

    View Slide

  29. αϯϓϧίʔυͷ,POUSJCVUF
    αϯϓϧίʔυ͸ެࣜαΠτͰ΋Ӿཡɺ࣮ߦͰ͖Δʂ

    View Slide

  30. αϯϓϧίʔυͷ,POUSJCVUF
    IUUQTLPUMJOMBOHPSHBQJMBUFTUKWNTUEMJC
    LPUMJODPMMFDUJPOTGMBUUFOIUNM

    View Slide

  31. αϯϓϧίʔυͷ,POUSJCVUF
    IUUQTLPUMJOMBOHPSHBQJMBUFTUKWNTUEMJC
    LPUMJODPMMFDUJPOTBTSFWFSTFEIUNM

    View Slide

  32. αϯϓϧίʔυͷ,POUSJCVUF
    IUUQTLPUMJOMBOHPSHBQJMBUFTUKWNTUEMJC
    LPUMJOSBOHFTSBOHFUPIUNM

    View Slide

  33. αϯϓϧίʔυͷ,POUSJCVUF
    IUUQTLPUMJOMBOHPSHBQJMBUFTUKWNTUEMJC
    LPUMJODPMMFDUJPOTXJUIJOEFYIUNM

    View Slide

  34. αϯϓϧίʔυͷ,POUSJCVUF
    ൺֱతૣ͘ϨϏϡʔͯ͠΋Β͑Δʂ͜ΕͰ͔͍ʂ

    View Slide

  35. αϯϓϧίʔυͷ,POUSJCVUF
    ,PUMJO*%&1MVHJOܥ*TTVFͩͱ͋·Γ׳Εͯ
    ͍ͳ͍͚ͲɺαϯϓϧίʔυͳΒ΍Γ΍͍͢ʂ

    View Slide

  36. αϯϓϧίʔυͷ,POUSJCVUF
    %SPJE,BJHJͷ݁ՌΛड͚ͯ:PV5SBDLͰૣ଎ʂʂʂ

    View Slide

  37. αϯϓϧίʔυͷ,POUSJCVUF
    αϯϓϧ͸೉͘͠ͳͦ͞͏ͩʂ͜ΕͳΒ
    Ͱ͖ͦ͏͚ͩͲʜͳ͔ͳ͔΍ΔλΠϛ
    ϯά͕ݟ͔ͭΒͳ͍

    View Slide

  38. w αϯϓϧίʔυͷ,POUSJCVUF
    w ,POUSJCVUF͢ΔͨΊͷܧଓతͳ؀ڥ࡞Γ
    ΞδΣϯμ
    w ,POUSJCVUFͰײͨ͡ϋʔυϧϋϚΔͱ͜Ζ

    View Slide

  39. ܧଓతͳ؀ڥ࡞Γ
    αϯϓϧίʔυ͸؆୯ͦ͏͚ͩͲɺͳ͔ͳ
    ͔Ұา౿Έग़ͤͳͯ͘ணखͰ͖ͳ͍ʂ

    View Slide

  40. w ձࣾͷݸਓ໨ඪʹ͋͛Δ
    w ձࣾͷϝϯόʔʹप஌͢Δ
    w ձࣾͰษڧ͢ΔͨΊͷ؀ڥΛ࡞Δ
    Ұา౿Έग़͢
    Ұา౿Έग़ͯ͠ΈΔ

    View Slide

  41. ձࣾͷݸਓ໨ඪʹ͋͛Δ
    ๻͸ʮࡢ೥݄·Ͱʹ13Ϛʔδ͞ΕΔʂʯ

    ͱ͍͏ͷΛձࣾͷݸਓ໨ඪʹܝ͍͛ͯͨʂ

    View Slide

  42. ձࣾͷݸਓ໨ඪʹ͋͛Δ
    ݁Ռ͸μϝ͚ͩͬͨͲɺ

    $50͕ϝϯλϦϯάͯ͘͠Εͨʂ

    View Slide

  43. ձࣾͷϝϯόʔʹप஌͢Δ
    ٕज़͕Θ͔Βͳͯ͘΋αϙʔτͰ͖Δʂ
    ͜Μͳͷ͋ΔΑʂͱڭ͑ͯ΋Βͬͨʂ

    View Slide

  44. ձࣾͰษڧ͢ΔͨΊͷ؀ڥΛ࡞Δ
    ࣾ಺΋͘΋͘ձΛिճ։࠵͍ͯ͠Δʂ

    View Slide

  45. w TIJSBKJ͞ΜͷϞνϕʔγϣϯ
    w ๻ͷϞνϕʔγϣϯ
    Ϟνϕʔγϣϯ
    ,POUSJCVUF΁ͷϞνϕʔγϣϯ

    View Slide

  46. w ,PUMJO͕େ޷͖ʂ
    w ࣗ෼ͷ࣮૷ͨ͠,PUMJO*%&1MVHJOػೳΛྡͰ୭
    ͔͕࢖ͬͯ͘Ε͍ͯΔͱΊͬͪΌخ͍͠ʂʂ
    Ϟνϕʔγϣϯ
    TIJSBKJ͞ΜͷϞνϕʔγϣϯ

    View Slide

  47. w ,PUMJO޷͖ʂ
    Ϟνϕʔγϣϯ
    ๻ͷϞνϕʔγϣϯ
    w (JU)VCͷ$POUSJCVUPSTʹ໊લ͕ࡌΔ
    w ,PUMJO#MPHʹ໊લ͕ࡌΔ

    View Slide

  48. Ϟνϕʔγϣϯ
    ,PUMJO#MPHʹ๻ͷ໊લ͕ʜʂʁ

    View Slide

  49. Ϟνϕʔγϣϯ
    ,PUMJO#MPHʹ๻ͷ໊લ͕ʜʂʁ
    ࣍ظόʔδϣϯͰ΋໊લ͕ࡌΓͦ͏ʜʂ

    View Slide

  50. Ϟνϕʔγϣϯ
    ,POUSJCVUPSTʹ๻͕ʜʂʁ

    View Slide

  51. Ϟνϕʔγϣϯ
    ,PUMJOͷϦϙδτϦʹ͸ػೳ͕͍ͬͺ͍٧·͍ͬͯΔʂ

    View Slide

  52. Ϟνϕʔγϣϯ
    خ͍͜͠ͱʹ
    TIJSBKJ͞Μ͔ΒKLɺLBQUʹ,POUSJCVUF
    ͯ͠ΈͯʔʂͱԹ͔͍͓ݴ༿Λ͍ͨͩ͘ʂ

    View Slide

  53. ·ͱΊ
    ·ͱΊ

    View Slide

  54. w KLɺLBQUͳͲ͞Βʹ΍ͬͯΈ͍ͨͱ͍͏෼໺
    ͕૿͑Δ͔΋ʂ
    w ͨͩܧଓతͳ,POUSJCVUFͷͨΊͷ࢓૊ΈԽ͕
    ͋ͬͨํ͕ྑ͍͔΋ʂ
    ·ͱΊ
    w ,PUMJO͕޷͖ɺߩݙ͍ͨ͠ͱ͍͏ؾ͕࣋ͪ͋Ε
    ͹τϥΠʂͯ͠ΈΔՁ஋͸͋Γ·͢ʂ

    View Slide

  55. ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ
    ͓͠·͍

    View Slide