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

キャッチアップ Android 13 / Catch up Android 13

キャッチアップ Android 13 / Catch up Android 13

Yuki Anzai

May 14, 2022
Tweet

More Decks by Yuki Anzai

Other Decks in Technology

Transcript

  1. ͋Μ͍͟Ώ͖ !ZBO[N

    (PPHMF%FWFMPQFS&YQFSUTGPS"OESPJE גࣜձࣾ΢ϑΟΧ

    ΩϟονΞοϓ"OESPJE

    View Slide


  2. ϦϦʔεεέʔδϡʔϧ
    /PX#FUB
    IUUQTEFWFMPQFSBOESPJEDPNBCPVUWFSTJPOTPWFSWJFX

    View Slide

  3. "OESPJEΛࢼ͢
    w ΤϛϡϨʔλͰࢼ͢
    w 5JSBNJTV
    w ࣮ػͰࢼ͢
    w ରԠσόΠεIUUQTEFWFMPQFSBOESPJEDPNBCPVUWFSTJPOT
    EFWJDFT

    View Slide

  4. "OESPJEͷػೳΛΞϓϦͰࢼ͢

    IUUQTEFWFMPQFSBOESPJEDPNBCPVUWFSTJPOTTFUVQTEL
    android
    {

    compileSdkPreview "Tiramisu
    "

    defaultConfig
    {


    targetSdkPreview "Tiramisu
    "


    }



    }

    View Slide

  5. ͢΂ͯͷΞϓϦʹӨڹ͢Δมߋ
    w 'PSFHSPVOE4FSWJDFT '(4
    5BTL.BOBHFS
    w +PC4DIFEVMFSͷQSFGFUDIࢦఆ
    w #BUUFSZ3FTPVSDF6UJMJ[BUJPO
    w /PUJ
    fi
    DBUJPO༻ͷSVOUJNFQFSNJTTJPO
    w ʜ

    View Slide

  6. 'PSFHSPVOE4FSWJDFT '(4
    5BTL.BOBHFS

    IUUQTEFWFMPQFSBOESPJEDPNBCPVUWFSTJPOTDIBOHFTGHTNBOBHFS

    View Slide

  7. /PUJGJDBUJPO༻ͷSVOUJNFQFSNJTTJPO
    w /PUJ
    fi
    DBUJPOΛૹΔͷʹQFSNJTTJPO͕ඞཁʹ
    w ΞϓϦΛΠϯετʔϧ͢Δͱ
    w "OESPJE·ͰσϑΥϧτͰ/PUJ
    fi
    DBUJPOΛૹΕΔ
    w "OESPJE͔ΒσϑΥϧτͰ͸/PUJ
    fi
    DBUJPOΛૹΕͳ͍ʢ1FSNJTTJPO
    ͕ڐՄ͞Ε͍ͯͳ͍ʣ

    View Slide

  8. /PUJGJDBUJPO༻ͷSVOUJNFQFSNJTTJPO
    w UBSHFU4EL7FSTJPO"OESPJE
    w "OESPJE.BOJGFTUʹ
    [email protected]/05*'*$"5*0/4Λએ
    ݴ͠ͳ͍ͱɺઃఆΞϓϦ͔Β௨஌Λ༗ޮʹ͢Δ͜ͱ
    ͕Ͱ͖ͳ͍

    EJTBCMFE
    >

    View Slide

  9. /PUJGJDBUJPO༻ͷSVOUJNFQFSNJTTJPO
    w UBSHFU4EL7FSTJPO"OESPJE
    w ೚ҙͷλΠϛϯάͰSVOUJNFQFSNJTTJPOΛϦΫΤ
    ετͰ͖Δ

    requestPermissions(arrayOf(Manifest.permission.POST_NOTIFICATIONS),REQUEST_CODE
    )

    View Slide

  10. /PUJGJDBUJPO༻ͷSVOUJNFQFSNJTTJPO
    w UBSHFU4EL7FSTJPO"OESPJE
    w ৽͘͠ΠϯετʔϧɺΠϯετʔϧ͞Εͨঢ়ଶͰ
    ʹ04Ξοϓσʔτ
    w /PUJ
    fi
    DBUJPODIBOOFM͕࡞ΒΕͨ͋ͱͰ࠷ॳͷ
    "DUJWJUZ͕։࢝͞ΕΔͱ͖PS"DUJWJUZΛ։࢝͠
    ͯ࠷ॳͷ/PUJ
    fi
    DBUJPODIBOOFMΛ࡞ͬͨͱ͖ʹ
    1FSNJTTJPOμΠΞϩά͕දࣔ͞ΕΔ

    View Slide

  11. /PUJGJDBUJPO༻ͷSVOUJNFQFSNJTTJPO
    w UBSHFU4EL7FSTJPO"OESPJE
    w Πϯετʔϧ͞Εͨঢ়ଶͰʹ04Ξοϓσʔτ
    w Ξοϓσʔτલʹ௨஌͕ڐՄ͞Ε͍ͯΔ৔߹
    w 1FSNJTTJPOμΠΞϩά͕දࣔ͞ΕΔ·ͰҰ࣌తڐՄঢ়ଶʹͳΔ
    w 1FSNJTTJPOμΠΞϩάͰϢʔβʔ͕ڐՄɾڋ൱Λબ୒͠ͳ͍ͰμΠΞ
    ϩάΛดͨ͡৔߹Ұ࣌తڐՄঢ়ଶ͕ଓ͘

    View Slide

  12. "OESPJEҎ߱ΛUBSHFUͱ͢ΔΞϓϦʹӨڹ͢Δมߋ
    w GPSFHSPVOETFSWJDFͷOPUJ
    fi
    DBUJPOʹର͢Δ/PUJ
    fi
    DBUJPOQFSNJTTJPOͷӨڹ
    w OFBSCZ8J'JEFWJDFT༻ͷ৽͍͠SVOUJNFQFSNJTTJPO
    w 3&"%@&95&3/"[email protected]"(& 83*5&@&95&3/"[email protected]"(&QFSNJTTJPOͷഇࢭ
    w όοΫάϥ΢ϯυͰCPEZTFOTPSTΛ࢖͏৔߹৽͍͠QFSNJTTJPO͕ඞཁʹ
    w *OUFOU
    fi
    MUFSTCMPDLOPONBUDIJOHJOUFOUT
    w #BUUFSZ3FTPVSDF6UJMJ[BUJPO
    w .FEJBDPOUSPMTEFSJWFEGSPN1MBZCBDL4UBUF

    IUUQTEFWFMPQFSBOESPJEDPNBCPVUWFSTJPOTCFIBWJPSDIBOHFT

    View Slide

  13. "OESPJEҎ߱ΛUBSHFUͱ͢ΔΞϓϦʹӨڹ͢Δมߋ
    w GPSFHSPVOETFSWJDFͷOPUJ
    fi
    DBUJPOʹର͢Δ/PUJ
    fi
    DBUJPOQFSNJTTJPOͷӨڹ
    w OFBSCZ8J'JEFWJDFT༻ͷ৽͍͠SVOUJNFQFSNJTTJPO
    w 3&"%@&95&3/"[email protected]"(& 83*5&@&95&3/"[email protected]"(&QFSNJTTJPOͷഇࢭ
    w όοΫάϥ΢ϯυͰCPEZTFOTPSTΛ࢖͏৔߹৽͍͠QFSNJTTJPO͕ඞཁʹ
    w *OUFOU
    fi
    MUFSTCMPDLOPONBUDIJOHJOUFOUT
    w #BUUFSZ3FTPVSDF6UJMJ[BUJPO
    w .FEJBDPOUSPMTEFSJWFEGSPN1MBZCBDL4UBUF

    IUUQTEFWFMPQFSBOESPJEDPNBCPVUWFSTJPOTCFIBWJPSDIBOHFT

    View Slide

  14. "OESPJEҎ߱ΛUBSHFUͱ͢ΔΞϓϦʹӨڹ͢Δมߋ
    w GPSFHSPVOETFSWJDFͷOPUJ
    fi
    DBUJPOʹର͢Δ/PUJ
    fi
    DBUJPOQFSNJTTJPOͷӨڹ
    w OFBSCZ8J'JEFWJDFT༻ͷ৽͍͠SVOUJNFQFSNJTTJPO
    w 3&"%@&95&3/"[email protected]"(& 83*5&@&95&3/"[email protected]"(&QFSNJTTJPOͷഇࢭ
    w όοΫάϥ΢ϯυͰCPEZTFOTPSTΛ࢖͏৔߹৽͍͠QFSNJTTJPO͕ඞཁʹ
    w *OUFOU
    fi
    MUFSTCMPDLOPONBUDIJOHJOUFOUT
    w #BUUFSZ3FTPVSDF6UJMJ[BUJPO
    w .FEJBDPOUSPMTEFSJWFEGSPN1MBZCBDL4UBUF

    IUUQTEFWFMPQFSBOESPJEDPNBCPVUWFSTJPOTCFIBWJPSDIBOHFT

    View Slide

  15. "OESPJEҎ߱ΛUBSHFUͱ͢ΔΞϓϦʹӨڹ͢Δมߋ
    w GPSFHSPVOETFSWJDFͷOPUJ
    fi
    DBUJPOʹର͢Δ/PUJ
    fi
    DBUJPOQFSNJTTJPOͷӨڹ
    w OFBSCZ8J'JEFWJDFT༻ͷ৽͍͠SVOUJNFQFSNJTTJPO
    w 3&"%@&95&3/"[email protected]"(& 83*5&@&95&3/"[email protected]"(&QFSNJTTJPOͷഇࢭ
    w όοΫάϥ΢ϯυͰCPEZTFOTPSTΛ࢖͏৔߹৽͍͠QFSNJTTJPO͕ඞཁʹ
    w *OUFOU
    fi
    MUFSTCMPDLOPONBUDIJOHJOUFOUT
    w #BUUFSZ3FTPVSDF6UJMJ[BUJPO
    w .FEJBDPOUSPMTEFSJWFEGSPN1MBZCBDL4UBUF

    IUUQTEFWFMPQFSBOESPJEDPNBCPVUWFSTJPOTCFIBWJPSDIBOHFT

    View Slide

  16. ৽͍͠ػೳ
    w 1SFEJDUJWFCBDLHFTUVSF
    w 5IFNFEBQQJDPOT
    w ৽͍͠1IPUP1JDLFS
    w ΞϓϦ͝ͱͷݴޠઃఆ
    w ೔ຊޠͷંΓฦ͠Ґஔͷվળ
    w ʜ

    IUUQTEFWFMPQFSBOESPJEDPNBCPVUWFSTJPOTGFBUVSFT

    View Slide

  17. 1SFEJDUJWFCBDLHFTUVSF
    w "OESPJE
    fi
    OBMSFMFBTF͔ΒEFWFMPQFSPQUJPOΛ༗
    ޮʹ͢Δͱ࢖͑Δ
    w "OESPJEҎ߱ͷ࣍ͷNBKPSWFSTJPO·ͰʹରԠ͕ඞ


    IUUQTEFWFMPQFSBOESPJEDPNBCPVUWFSTJPOTGFBUVSFTQSFEJDUJWFCBDLHFTUVSF

    View Slide

  18. 5IFNFEBQQJDPOT
    w ୯৭༻ͷΞϓϦΞΠίϯ

    IUUQTEFWFMPQFSBOESPJEDPNBCPVUWFSTJPOTGFBUVSFTUIFNFEBQQJDPOT
    >

    >

    >

    >


    View Slide

  19. ৽͍͠1IPUP1JDLFS

    private val photoPickerLauncher = registerForActivityResult
    (

    object : ActivityResultContract()
    {

    @CallSupe
    r

    override fun createIntent(context: Context, input: String): Intent
    {

    return Intent(MediaStore.ACTION_PICK_IMAGES
    )

    .setType(input
    )

    }

    override fun parseResult(resultCode: Int, intent: Intent?): Uri?
    {

    return intent.takeIf { resultCode == Activity.RESULT_OK }?.dat
    a

    }

    }

    )
    {

    // ..
    .

    }

    IUUQTEFWFMPQFSBOESPJEDPNBCPVUWFSTJPOTGFBUVSFTQIPUPQJDLFS

    View Slide


  20. n


    android:localeConfig="@xml/locales_config"
    >





    >

    >

    >

    >

    >


    [email protected]
    fi
    HYNM
    ΞϓϦ͝ͱͷݴޠઃఆ

    "OESPJE.BOJGFTUYNM

    View Slide

  21. ೔ຊޠͷંΓฦ͠Ґஔͷվળ
    w ೔ຊޠͷվߦҐஔΛจઅʹ߹ΘͤΔઃఆ

    IUUQTEFWFMPQFSBOESPJEDPNBCPVUWFSTJPOTGFBUVSFTKBQBOFTFXSBQQJOH
    w


    android:lineBreakWordStyle="phrase" /
    >

    View Slide

  22. ·ͱΊ
    w "OESPJEͰࣗ෼ͷΞϓϦΛ࣮ߦͯ͠໰୊͕ͳ͍͔֬ೝ͠Α͏
    w όάΛݟ͚ͭͨΒIUUQTJTTVFUSBDLFSHPPHMFDPN΁
    w "OESPJEͷ৽͍͠ػೳΛࢼͯ͠ΈΑ͏

    View Slide