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

AndroidStudioのテンプレートを覗いてみよう

 AndroidStudioのテンプレートを覗いてみよう

Keisuke kiuchi

April 13, 2018
Tweet

More Decks by Keisuke kiuchi

Other Decks in Programming

Transcript

  1. "OESPJE4UVEJPͷ

    ςϯϓϨʔτΛ೷͍ͯΈΑ͏
    LJVDIJLFJTVLF

    4IJCVZBBQL

    View Slide

  2. ໦಺ܒี
    w ৬ۀɿ"OESPJEΤϯδχΞ݉ҭࣇύύ
    w झຯͰ࡞ͬͨΞϓϦɿʮΒ͘ͰΜʯ
    w Ϟοτʔɿ໌೔ͷࣗ෼ʹ༏͍͠ίʔυΛॻ͘
    w 4/4

    [email protected]
    (JUIVC!LJVDIJLFJTVLF

    [email protected]

    View Slide

  3. ࠷ۙͷΞΫςΟϏςΟ
    IUUQTXXXZPVUVCFDPNXBUDI WU(#W:M2.+UT

    View Slide

  4. $MFBO"SDIJUFDUVSF

    5FNQMBUFGPS,PUMJO
    w %BHHFS
    w 3Y+BWB
    w 3FBMN
    w $POTUSBJOU-BZPVU
    w 3FUSPpU
    w 4XBHHFS
    w BOESPJELUY
    w %BUB#JOEJOH
    w 7JFX.PEFM
    IUUQTHJUIVCDPNLJVDIJLFJTVLF"OESPJE4UVEJP$MFBO"SDIJUFDUVSFUFNQMBUF
    GPS,PUMJO

    View Slide

  5. %SPJE,BJHJͰग़͖ͯͨ
    ΪϞϯ

    View Slide

  6. ςϯϓϨʔτͬͯ

    Ͳ͏΍ͬͯ࡞Δͷʁ

    View Slide

  7. ςϯϓϨʔτͷத਎Λ
    ೷͍ͯΈΑ͏

    View Slide

  8. ͷલʹɾɾɾ

    View Slide

  9. ςϯϓϨʔτ࡞ΕΔͱ
    Կ͕خ͍͠ͷʁ

    View Slide

  10. ςϯϓϨʔτ࡞ΕΔͱʜ
    w ৽͍͠ը໘Λ࡞Δࡍͷ਽ܗΛࣗ෼޷Έʹ࡞ΕΔ

    ˠඞཁे෼ͳ"DUJWJUZ΍MBZPVUϑΝΠϧ͕Ͱ͖Δ
    w ΞʔΩςΫνϟΛ࠾༻͢Δࡍͷ਽ܗΛ࡞ΕΔ

    ˠϓϩδΣΫτ಺Ͱ࣮૷ͷΏΒ͗Λ཈ࢭ͢Δ

    ˠఆܕจతʹ࣮૷͢ΔΫϥεΛࣗಈͰ࡞੒͢Δ

    %BHHFSͷ.PEVMF $PNQPOFOUΫϥεͳͲ

    w ৽نϓϩδΣΫτ࡞੒࣌ͷEFQFOEFODZͷॳظઃఆΛ

    ࣗ༝ʹઃఆͰ͖Δ

    ˠʮϥΠϒϥϦԿ͕͍ΔΜ͚ͩͬʜʯ͔Βղ์͞ΕΔ

    View Slide

  11. վΊͯɺςϯϓϨʔτͷ
    த਎Λ೷͍ͯΈΑ͏

    View Slide

  12. ͦ΋ͦ΋ςϯϓϨʔτͬͯʁ

    View Slide

  13. Ͳ͜ʹ͋Δͷʁ
    w .BD

    "QQMJDBUJPOT"OESPJE4UVEJPBQQ$POUFOUT
    QMVHJOTBOESPJEMJCUFNQMBUFTBDUJWJUJFT
    w 8JOEPXT

    "/%30*%@456%*[email protected]'0-%&3
    aQMVHJOTaBOESPJEaMJCaUFNQMBUFTaBDUJWJUJFTa

    View Slide

  14. ϑΝΠϧߏ੒ͲΜͳײ͡ʁ
    BaseActivity
    + globals.xml.ftl
    + recipe_fragmentxml.ftl
    + recipe.xml.ftl
    + template_basic_activity_fragment.png
    + template_basic_activity.png
    + template.xml
    + root
    + res
    | + layout
    | + activity_fragment_container.xml.ftl
    | + fragment_simple.xml.ftl
    + src
    + app_package
    + SimpleActivity.java.ftl
    + SimpleActivity.kt.ftl
    + SimpleActivityFragment.java.ftl
    + SimpleActivityFragment.kt.ftl

    View Slide

  15. UFNQMBUFYNM
    id="activityClass"
    name="Activity Name"
    type="string"
    constraints="class|unique|nonempty"
    suggest="${layoutToActivity(layoutName)}"
    default="MainActivity"
    help="The name of the activity class to create"/>

    View Slide

  16. UFNQMBUFYNM
    w ςϯϓϨʔτશମͰ࢖͑ΔύϥϝʔλΛઃఆͰ͖Δ
    w 4USJOH #PPMFBO &OVN
    w ςϯϓϨʔτͷΠϝʔδը૾ΛઃఆͰ͖Δ
    w ύϥϝʔλΛݩʹSFDJQFYNMGUMΛ࣮ߦ͢Δ

    View Slide

  17. SFDJQFYNMGUM

    <#if generateKotlin>
    from="root/src/app_package/SimpleActivity.kt.ftl"
    to="${escapeXmlAttribute(srcOut)}/${activityClass}.kt" 

    />

    <#else>
    from="root/src/app_package/SimpleActivity.java.ftl"
    to="${escapeXmlAttribute(srcOut)}/${activityClass}.java"

    />

    #if>






    to="${escapeXmlAttribute(projectOut)}/build.gradle" />

    View Slide

  18. SFDJQFYNMGUM
    w 'SFF.BLFSͰॻ͔Ε͍ͯΔ ֦ுࢠ͕GUMͷϑΝΠϧ

    IUUQTGSFFNBSLFSBQBDIFPSH
    w ϑΝΠϧͷੜ੒ Ϛʔδ 0QFOΛߦ͑Δ
    w ϑΥϧμͷੜ੒Λߦ͑Δ
    w EFQFOEFODZͷઃఆΛߦ͑Δ

    View Slide

  19. 4JNQMF"DUJWJUZLUGUM
    package ${escapeKotlinIdentifiers(packageName)}
    import android.os.Bundle
    <#if hasAppBar>
    import android.support.design.widget.Snackbar
    import android.support.v7.app.AppCompatActivity
    <#else>
    import ${superClassFqcn}
    #if>
    import kotlinx.android.synthetic.main.${layoutName}.*
    class ${activityClass} : ${superClass}() {
    override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.${layoutName})
    <#if hasAppBar>
    setSupportActionBar(toolbar)
    fab.setOnClickListener { view ->
    Snackbar.make(view, "Replace with your own action",
    Snackbar.LENGTH_LONG).setAction("Action", null).show()
    }
    #if>

    View Slide

  20. 4JNQMF"DUJWJUZLUGUM
    w SPPUҎԼʹ਽ܗͱͳΔϑΝΠϧ܈͕഑ஔ͞Ε͍ͯΔ
    w SPPUTSDdΫϥεܥͷϑΝΠϧɻ
    w SPPUSFTdϦιʔεܥͷϑΝΠϧ
    w SPPU্هҎ֎ͷϑΝΠϧ
    "OESPJE.BOJGFTU CVJMEHSBEMF

    View Slide

  21. ·ͱΊ
    w ςϯϓϨʔτΛࣗ࡞Ͱ͖Δͱෳ਺ͷΫϥεΛಉ࣌ʹ࡞੒ͱ͔ɺ
    ΞʔΩςΫνϟʹଇͬͨΫϥεઃܭΛ࡞ͬͨΓͱ͔Ͱ͖ΔΑʂ
    w UFNQMBUFYNMͰ͸ςϯϓϨʔτ࡞੒ʹඞཁͳύϥϝʔλΛ

    ઃఆͰ͖ΔΑʂ
    w SFDJQFYNMGUMͰ͸ϑΝΠϧ࡞੒ͷΞϨίϨΛઃఆͰ͖ΔΑʂ
    w SPPUҎԼʹੜ੒͢Δ਽ܗΛ഑ஔ͢ΔΑʂ

    View Slide

  22. ৄ͘͠͸8FCͰʂ

    IUUQTHPPHM#[R&3

    View Slide