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

Androidオープンソースライブラリの作り方

takahirom
February 19, 2015

 Androidオープンソースライブラリの作り方

takahirom

February 19, 2015
Tweet

More Decks by takahirom

Other Decks in Programming

Transcript

  1. AndroidΦʔϓϯιʔε
    ϥΠϒϥϦͷ࡞Γํ

    View Slide

  2. ࣗ෼ʹ͍ͭͯ
    UBLBIJSPN
    [email protected]

    !
    ࢓ࣄ΋झຯ΋"OESPJE

    View Slide

  3. AndroidΞϓϦͷϥΠϒϥϦ
    ButterKnifeͱ͔
    Volleyͱ͔
    Daggerͱ͔
    RxAndroidͱ͔
    ͍Ζ͍Ζ͋Γ·͢ΑͶʁ

    View Slide

  4. ࣗ෼Ͱ࡞ΕͨΒخ͍͠͸ͣ

    View Slide

  5. ϥΠϒϥϦ
    ϓϩδΣΫτͷ࡞Γํ

    View Slide

  6. Android StudioͰ
    ී௨ʹΞϓϦͷϓϩδΣΫτΛ࡞Δ

    View Slide

  7. /FX.PEVMFͰ"OESPJE-JCSBSZΛࢦఆ

    View Slide

  8. ͜͜Ͱ໊લΛzMJCSBSZzΈ͍ͨͳ
    ҆қͳ໊લΛ͚ͭͯ͠·͍͕ͪͰ͕͢ɺɺ

    View Slide

  9. test-library-nameͱ͍͏Α͏ͳ
    ϋΠϑϯ۠੾Γͷܗʹ

    View Slide

  10. ΍ΓํʹΑΓ·͕͢
    ͜ͷ࣌ͷσΟϨΫτϦ໊Ͱ
    ϥΠϒϥϦͷ໊લ͕มΘΓ·͢
    !
    !
    (ϓϩδΣΫτ໊͕ϥΠϒϥϦ໊ʹͳΔͨΊ)
    MJCSBSZʹͳͬͯ͠·ͬͨCVJMEHSBEMF
    IUUQTHJUIVCDPNUBLBIJSPN8FBS-JTUFOFS4FSWJDF#SPBEDBTUFSCMPC
    CEBCEDBFBFCFEECEGMJCSBSZCVJMEHSBEMF

    View Slide

  11. ϞδϡʔϧΛࢀর

    View Slide

  12. MJCSBSZϓϩδΣΫτͷத͕
    BQQϓϩδΣΫτ͔Βී௨ʹࢀরͰ͖ΔͷͰ
    !
    BQQϓϩδΣΫτΛαϯϓϧͱͯ͠
    ։ൃ͠·͢
    ։ൃ

    View Slide

  13. Φʔϓϯιʔεʹ͢Δ
    "QBDIFͳͲͷϥΠηϯεදهΛͯ͠
    (JUIVCʹQVTI͠·͢

    View Slide

  14. ϥΠϒϥϦͷެ։
    • Github಺Ͱެ։͢Δํ๏
    • jCenterͰެ։͢Δํ๏(ΦεεϝͰ͢)
    • MavenCentralͰެ։͢Δํ๏(େมΒ͍͠)
    • jitpack.io(jCenterʹΞοϓ͞Ε͍ͯͳ͍ϥΠϒϥ
    ϦΛ࢖͑ΔΒ͍͠)

    View Slide

  15. Github಺Ͱެ։͢Δ(ެ։ଆ)
    EFGSFQPOFX'JMF SPPU%JS SFQPTJUPSZ


    BQQMZQMVHJONBWFO

    VQMPBE"SDIJWFT\
    SFQPTJUPSJFT\
    NBWFO%FQMPZFS\
    SFQPTJUPSZVSMpMF\SFQPBCTPMVUF1BUI^
    QPNWFSTJPO
    QPNHSPVQ*EBUXBEB
    QPNBSUJGBDU*EBOESPJEEJBMPHGSBHNFOUT
    ^
    ^
    ^
    IUUQXBEBCMPHTQPUDPNEJTUSJCVUFBOESPJEMJCSBSZBTNBWFOSFQPTJUPSZJOHJUIVCIUNMΑΓ

    View Slide

  16. Github಺Ͱެ։͢Δ
    (ར༻͢Δଆ)
    SFQPTJUPSJFT\
    NBWFO\VSMIUUQSBXHJUIVCDPNXBEB"OESPJE
    %JBMPH'SBHNFOUTNBTUFSSFQPTJUPSZ^
    ^

    EFQFOEFODJFT\
    DPNQJMFBUXBEBBOESPJEEJBMPHGSBHNFOUT
    ^

    View Slide

  17. Github಺Ͱެ։͢Δ
    ϝϦοτ
    खܰ
    σϝϦοτ
    ࢖͏ଆͰೋߦॻ͘ඞཁ͋Γ
    ࢖͏ଆͰϏϧυ͕஗͘ͳΔ(5ඵఔ౓஗͘ͳΔΑ͏Ͱ͢)

    View Slide

  18. jCenterʹొ࿥
    bintrayʹొ࿥
    https://bintray.com/bintray/jcenter
    ->sign up

    View Slide

  19. jCenterʹొ࿥
    w ϩάΠϯͯ͠ɺQSPpMFͷϖʔδʹߦ͘&EJU"1*,FZ
    ͰݟΒΕΔ
    w IUUQTHJUIVCDPNCJOUSBZCJOUSBZFYBNQMFT
    USFFNBTUFSHSBEMFBBSFYBNQMF
    w ΛࢀߟʹϥΠϒϥϦͷϞδϡʔϧ಺ʹCVJMEHSBEMFΛ࣮

    View Slide

  20. jCenterʹొ࿥
    (SBEMFεΫϦϓτͰ͸
    HSPVQDPNCJOUSBZFYBNQMF
    WFSTJPO
    ͳͲΛࢦఆ͠·͢

    View Slide

  21. jCenterʹొ࿥
    bintrayʹΞοϓϩʔυ
    ./gradlew bintrayUpload

    View Slide

  22. jCenterʹొ࿥
    Ξοϓϩʔυ͢ΔͱbintrayʹͦͷϥΠϒϥϦͷ
    ϖʔδ͕Ͱ͖·͢
    Link to jcenterͱ͍͏ϦϯΫ͕͋ΔͷͰΫϦοΫ
    ςΩετϘοΫε͕͋ΔͷͰ͕͢Կ΋ೖྗͤͣʹ
    ͦͷ··ਃ੥͢Ε͹OKʂ

    View Slide

  23. jCenterʹొ࿥(࢖͏ଆ)
    dependencies{
    compile ‘com.bintray.example:test-library-
    name:1.0.0’
    }
    Ͱࢦఆͯ͋͛͠Ε͹େৎ෉Ͱ͢

    View Slide

  24. jCenterʹΞοϓϩʔυ͢Δલʹ
    ϩʔΧϧʹpublishͯ֬͠ೝ
    (ϥΠϒϥϦଆ)
    apply plugin: 'maven-publish'
    android.libraryVariants
    publishing {
    publications {
    maven(MavenPublication) {
    artifact bundleRelease
    }
    }
    }
    ͜ΕΛϥΠϒϥϦϞδϡʔϧͷͷbuild.gradleʹ௥Ճͯ͠
    ./gradlew publishToMavenLocal
    ϩʔΧϧ্ʹ͋ΔϦϙδτϦʹpublish

    View Slide

  25. jCenterʹΞοϓϩʔυ͢Δલʹ
    ϩʔΧϧʹpublishͯ֬͠ೝ
    (࢖͏ଆ)
    repositories {
    mavenLocal()
    }
    dependencies {
    compile ‘com.bintray.example:test-library-name:1.0.0’
    }

    View Slide

  26. ࢖ΘΕͳ͍ͱ൵͍͠

    View Slide

  27. ࡞ͬͨΒڞ༗͢Δ
    Google+ͷAndroid projects on Githubʹ౤
    ߘ͢ΔͱAndroid Arsenalʹ΋௥Ճ͞ΕΔͷ
    Ͱ͍͍ײ͡
    IUUQTQMVTHPPHMFDPNVDPNNVOJUJFT

    View Slide

  28. ΦʔϓϯιʔεͰ
    ָ͘͠։ൃΛʂʂʂ

    View Slide

  29. ࡞͍ͬͯΔ΋ͷ
    ϚςϦΞϧσβΠϯΆ͍
    ΢ΥονϑΣΠεΞϓϦ(։ൃத)
    WearLocationWatchFace
    !
    Android Wear޲͚ͷϥΠϒϥϦ
    WearSharedPreferences
    WearHttp
    1೔1ίϛοτ

    View Slide