Slide 1

Slide 1 text

͋Μ͍͟Ώ͖ !ZBO[N (PPHMF%FWFMPQFS&YQFSUTGPS"OESPJE גࣜձࣾ΢ϑΟΧ ΩϟονΞοϓ"OESPJE

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

"OESPJEͷػೳΛΞϓϦͰࢼ͢ IUUQTEFWFMPQFSBOESPJEDPNBCPVUWFSTJPOTTFUVQTEL android { compileSdkPreview "Tiramisu " defaultConfig { … targetSdkPreview "Tiramisu " … } … }

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

'PSFHSPVOE4FSWJDFT '(4 5BTL.BOBHFS IUUQTEFWFMPQFSBOESPJEDPNBCPVUWFSTJPOTDIBOHFTGHTNBOBHFS

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

/PUJGJDBUJPO༻ͷSVOUJNFQFSNJTTJPO w UBSHFU4EL7FSTJPO"OESPJE w ೚ҙͷλΠϛϯάͰSVOUJNFQFSNJTTJPOΛϦΫΤ ετͰ͖Δ requestPermissions(arrayOf(Manifest.permission.POST_NOTIFICATIONS),REQUEST_CODE )

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

৽͍͠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

Slide 20

Slide 20 text

… SFTYNMMPDBMT@DPO fi HYNM ΞϓϦ͝ͱͷݴޠઃఆ "OESPJE.BOJGFTUYNM

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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