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

Server-side Kotlin for Frontend

qsona
February 07, 2019

Server-side Kotlin for Frontend

DroidKaigi 2019 Day 1 #droidkaigi #room6
補足資料: https://note.mu/qsona/n/nf927588011b4
動画: https://www.youtube.com/watch?v=pI_8Rz4ykeA

qsona

February 07, 2019
Tweet

More Decks by qsona

Other Decks in Technology

Transcript

  1. #''Λஔ͘ͱԿ͕خ͍͠ͷ͔ 'SPOUFOEࢹ఺ !8 • ෳ਺ͷ#BDLFOEαʔϏε͕͋Δͱ͖ • ϚΠΫϩαʔϏε • ΫϥΠΞϯτ͸ɺෳ਺ͷαʔϏε͔ΒσʔλΛऔಘ͢Δඞཁ͕ੜ͡Δ •

    #''Λ഑ஔ͢Δͱ • #''͕ෳ਺ͷαʔϏεͷσʔλΛू໿
 ͠ɺ·ͱΊͯΫϥΠΞϯτʹฦ͢ • ϞόΠϧαʔόʔͷ ஗͍ 
 ϦΫΤετͷຊ਺ΛݮΒͤΔ
  2. #''Λஔ͘ͱԿ͕خ͍͠ͷ͔ #BDLFOEࢹ఺ !10 •  Կ΋͠ͳ͍ɻ6*ͷͨΊͷू໿͸ΫϥΠΞϯτͷ੹຿ʂʂ • ௨৴ճ਺͕ଟ͘ͳΓɺύϑΥʔϚϯε໰୊͕ى͖Δ • 

    ͭͰ͢΂ͯΛ࿫͏ɺਆ"1*Λ࡞Δ • ෆඞཁʹ஗͍"1*ʹͳΓ͕ͪ •  ΫϥΠΞϯτ͝ͱʹ"1*Λ࡞Δ • BOESPJEJPTXFCΈ͍ͨͳωʔϜεϖʔε • ࣅͨΑ͏ͳ"1*͕ཚཱͯ͠ɺϝϯςφϯε͕େม ෳ਺ͷΫϥΠΞϯτ͕ɺผʑͷ"1*Λཁٻͯ͘͠Δ৔߹ Ͳ͏͢Δ͔ʁ
  3. #''ύλʔϯͷಛ௃ɾϝϦοτ !12 • #BDLFOE"1*ͷू໿Λ#''ʹ೚ͤΔ͜ͱͰ • ੍໿ͷଟ͍ΫϥΠΞϯτͷίʔυΛɺγϯϓϧʹͰ͖Δ • ύϑΥʔϚϯε޲্ ௨৴࡟ݮ ͠ͳ͕Β


    ϑϩϯτΤϯυόοΫΤϯυΛૄ݁߹ԽͰ͖Δ • αʔόʔଆͰΞϓϦͷڍಈΛมߋ͢Δ༨஍Λ࢒͢ • จݴ΍ɺϦετͷॱংͳͲ • ؆୯ͳ"#ςετ΋Մೳ • ೝূ ΩϟογϡͳͲɺଞʹ΋Կ͔ͱศརʹ࢖͑Δ
  4. ҙ֎ͱෳࡶͳ'J/$ΞϓϦ  !19 • ϔϧεέΞσʔλͷه࿥ า਺ମॏਭ຾৯ࣄੜཧ  • ମ૊੒ܭͳͲɺσόΠεͱͷ࿈ܞ •

    ϑΟοτωε౳ͷಈըίϯςϯπ • ϢʔβʔίϛϡχςΟ • ϙΠϯτ 'J/$ϞʔϧͰར༻Ͱ͖Δ  • νϟοτϘοτɹɹʹΑΔɺίϯςϯπͷϦίϝϯυͳͲ • FUD ͱʹ͔͘ػೳ͕ଟ͍
  5. ҙ֎ͱෳࡶͳ'J/$ΞϓϦ  !21 • ༷ʑͳछྨͷϢʔβʔʹରͯ͠ΞϓϦΛ
 ఏڙ͍ͯ͠Δ • ෼ذ͕ଟ͍ • ݹΊͷػೳ΋ফ͠ʹ͔ͬͨ͘Γ͢Δ

    • ϓϥϯͱݺ͹ΕΔϢʔβʔछผ͕
 RTPOBೖࣾ࣌ʹ͢Ͱʹݸ΋ଘࡏͨ͠ • ϓϥϯ͕૊Έ߹Θͤతʹ૿͍͑ͯ͘໰୊͕͋Γɺ 5PP.BOZ1MBOTQSPCMFNͱݺ͹Ε͍ͯͨ • ͜ͷ໰୊ࣗମ͸೥ʹ׬શղܾͨ͠ • ͚ͲɺϢʔβʔछผ͕ଟ͍ͷ͸ґવมΘΒͣ
  6. ౰࣌ͷঢ়گ ΞʔΩςΫνϟ !23 • ਆαʔϏε͕"1*ू໿Λ݉ͶΔ • ͋·ΓΑ͘ఆٛ͞Ε͍ͯͳ͍"1*ͱ
 ͦΕΛؤுͬͯϚοϓ͢Δ
 ΫϥΠΞϯτ •

    ͦΕ΋"OESPJEͱJ04Ͱผʑͷܗʹ • ͨ·ʹ6*૚·Ͱɺͦͷ"1*ͷ
 σʔλܗࣜͷ··࿐ग़͍ͯ͠Δ • ΫϥΠΞϯτͷػೳ௥ՃʹԠͨ͡ɺ
 ίʔυͷංେԽ • طଘίʔυͷมߋͷίετ͕ߴ͗͢Δ
  7. ཧ૝ͷঢ়ଶ ΞʔΩςΫνϟ !24 • "1*ू໿ͷ੹຿͸#BDLFOE͔Β
 ͸͕͠ɺ#''ʹ೚͍ͤͨ • ຊདྷͷ#BDLFOE"1*Λ
 औΓ໭͍ͨ͠ •

    ΫϥΠΞϯτΛϞδϡʔϧԽ͠ɺ
 มߋͷӨڹΛہॴԽ͍ͨ͠ • Ͱ͖Ε͹#BDLFOEͷαʔϏεͱ
 ಉ͡୯ҐʹͰ͖Δͱخ͍͠
  8. ཧ૝ͷঢ়ଶ ૊৫ɾ։ൃମ੍ !26 • Ϗδωεతͳ,1*Λڞ༗͢Δ
 ৬ೳԣஅܕνʔϜʹ෼͔ΕΔ • ৬ೳΛӽ͑ͨڠྗؔ܎ɹ • ಛʹ"OESPJEΤϯδχΞͱ


    J04ΤϯδχΞ͸ີʹίϛϡχέʔ γϣϯΛͱΔ • Ͱ͖Ε͹ɺϚΠΫϩαʔϏεͷ
 ୯ҐͱҰக͍ͯ͠Δͱϕετ
  9. ਺ʑͷվળ  $MJFOU'VTJPO !28 • ౰࣌ͷঢ়گ • 'J/$ΞϓϦ͸ɺ"OESPJEͱJ04Ͱɺجຊతʹ͸ಉ͡ػೳΛ࡞͍ͬͯΔ • ͔͠͠ɺ"OESPJEͱJ04Ͱɺઃܭ΍࣮૷͸όϥόϥʹߦ͍ͬͯͨ

    • ى͖͍ͯͨ՝୊ • ػೳʹඍົʹҧ͍͕͋Δ • "1*ݺͼग़͠ͳͲͷ࣮૷ํ๏ͷҧ͍
 ͲͪΒ͔ͷ04Ͱ͚ͩো֐͕ى͜Δ͜ͱ͕ଟൃ $MJFOU'VTJPO
 ΫϥΠΞϯτ "OESPJEJ04 νʔϜͷ೥ͷඪޠ
  10. ਺ʑͷվળ  $MJFOU'VTJPO !29 • ྆04ؒͰίϛϡχέʔγϣϯΛີʹऔΓɺ
 υϝΠϯͷଊ͑ํ΍ઃܭɾ࣮૷Λἧ͑ΔऔΓ૊ΈΛ͖ͯͨ͠ • ೥൒͘Β͍ଓ͚͖ͯͯɺ׬શʹఆண •

    04ؒࠩ෼ͷ໰୊͸͔ͳΓݮͬͨ • ઃܭΛ͓ޓ͍ʹϨϏϡʔ͍ͯ͠Δঢ়ଶʹͳΔϝϦοτ΋ $MJFOU'VTJPO
 ΫϥΠΞϯτ "OESPJEJ04 νʔϜͷ೥ͷඪޠ
  11. ਺ʑͷվળ  ૊৫ߏ଄ͷมֵ !30 • 'J/$ΞϓϦνʔϜΛɺ৬ೳԣஅܕͷϏδωενʔϜʹ෼ׂ • ֤νʔϜʹ
 ϓϥϯφʔJ04"OESPJE4FSWFS෼ੳ2"
 ͕ೖΔ

    • νʔϜͱͯͦ͠ΕͧΕͷ,1*Λ௥͏ • ৬छ಺ͷͭͳ͕Γ΋ҡ࣋ • ίϛϡχέʔγϣϯͷϥΠϯ͕
 ੔͖ͬͯͨ
  12. 'J/$ΞϓϦ΁ͷ#''ಋೖ !32 • "OESPJEɾJ04޲͚ʹͭͷ#'' • جຊతʹ͸྆04ʹಉ͡ػೳΛఏڙ͍ͯ͠ΔͷͰɺ
 গͳ͘ͱ΋#''ͷϨΠϠʔ͸ͭͰྑ͍ͱ͍͏൑அ • ࣮૷Λڞ௨ԽͰ͖ΔϝϦοτ΋ •

    ྆04ͷ࣮૷Λἧ͑ΔͨΊɺίϛϡχέʔγϣϯΛଟ͘ͱͬͨΓ
 υΩϡϝϯςʔγϣϯΛॻ͍͍ͯͨ • #''Ͱ࣮૷͢Δ͜ͱͰɺͦΕΒͷίετͷ࡟ݮ͕ظ଴Ͱ͖ͨ
  13. ͍͖ͳΓ݁࿦͔Β !35 • ݴޠ,PUMJO PO+7.  • ϑϨʔϜϫʔΫ4QSJOH8FC'MVY • "1*)551

    1SPUPDPM#VGGFST 'J/$ΞϓϦʹ͓͚Δٕज़બఆ ॏࢹͨ͠ϙΠϯτ • ฒྻੑ /PO#MPDLJOH*0 • ΫϥΠΞϯτΤϯδχΞͷ ֶशίετ͕௿͍ • ੩తܕ෇͚
  14. ฒྻੑ /PO#MPDLJOH*0 !37 • ฒྻੑ͸#''ʹͱͬͯඞਢཁ݅ • ྫ"1*NT "1*NT "1*NTͷͱ͖ •

    ௚ྻ  NT • ฒྻNBY    NT • /PO#MPDLJOH*0΋Ͱ͖Ε͹औΓೖΕ͔ͨͬͨ • #''ͷཁ݅ͱඇৗʹ૬ੑ͕ྑ͍ͨΊ
  15. ࢀߟ/PO#MPDLJOH*0ͱ#'' !38 • #''Ͱ͍͏*0ͱ͸ओʹ#BDLFOE"1*ͷݺͼग़͠ • #MPDLJOH*0ͷ৔߹ • ϦΫΤετʹεϨουׂ͕Γ౰ͯΒΕΔ • "1*ݺͼग़͠Λ଴͍ͬͯΔؒɺεϨου͸ϒϩοΩϯά͢Δ

    • େྔͷεϨουΛফඅ͢Δ $,໰୊  • /PO#MPDLJOH*0ͷ৔߹ • "1*ݺͼग़͠଴ͪʹͳΔͱɺͦͷεϨου͸ଞͷϦΫΤετͷॲཧʹճΔ • গͳ͍εϨουΛޮ཰తʹ࢖͍ճͤΔ • #''ʹ͸/PO#MPDLJOH*0͕ඇৗʹద͍ͯ͠Δ • ड͚ΔϦΫΤετ਺͕ଟ͍ ॏ͍ॲཧ͕গͳ͍ *0଴͕ͪଟ͍
  16. ฒྻੑ /PO#MPDLJOH*0 !39 • ˕/PEFKT • /PO#MPDLJOH*0ͱ͍͑͹͜Ε • ࣾ಺ͷ࣮੷΋͋ΓɺRTPOB΋௕͘࢖͖ͬͯͨ •

    ˕(PMBOH • (PSPVUJOFͰόονϦ • ˓+7. • ,PUMJODPSPVUJOFͱͷ૬ੑ͕ྑͦ͞͏ͩͬͨ
  17. ΫϥΠΞϯτΤϯδχΞͷֶशίετ !40 • ʮΫϥΠΞϯτΤϯδχΞ͕ॻ͘ʯ͜ͱ͕ͱͯ΋ॏཁͳͷͰɺ
 ֶशίετ͸ઈରʹແࢹͰ͖ͳ͍ • ˕,PUMJO 4XJGU • ΫϥΠΞϯτ͕ར༻͍ͯ͠Δݴޠ

    • "OESPJE,PUMJO • J044XJGU • ͜ͷͭͷݴޠͷಛ௃͸ࣅ͍ͯΔ • ˓+BWB4DSJQU 5ZQF4DSJQU (PMBOH 1ZUIPO • ଞͷ༻్Ͱ΋࢖͏Մೳੑ͕ͦΕͳΓʹ͋Δ • शಘίετ͕௿Ί
  18. ੩తܕ෇͚ݴޠ !41 • ʮܕݕࠪ͸൪໨ͷςετʯ • ಛʹ#''Ͱ͸ɺܕݕ͕ࠪ͋ͬͨ΄͏͕ྑ͍ͱࢥ͏ • టष͍ม׵ॲཧ͕ଟ͍ • ܕݕ͕ࠪͳ͍ͱී௨ʹؒҧ͑΍͍͢

    • ϓϩάϥϛϯά͠ͳ͕ΒৗʹόοΫΤϯυͷσʔλܗࣜͱʹΒΊͬ͜͢Δײ͡ʹͳΓɺ
 ։ൃମݧ͕૬౰ѱ͍ • ಈతܕ෇͚ͷ৔߹͸ɺࣗಈςετ͕ඞਢ • όοΫΤϯυͷϨεϙϯεΛϞοΫ͢Δܗ͕ࣜத৺ • ݁ہܕΛॻ͍͍ͯΔͷʹ͍ۙ Ͱ͋Ε͹ܕΛॻ͍ͨํ͕
  19. ݴޠͷબఆ !43 • બఆީิ • 5ZQF4DSJQU /PEFKT • (PMBOH •

    ,PUMJO PO+7.  • ,PUMJOΛ࠾༻ͨ͠ • ܾ·Γख
 DPSPVUJOF͕FYQFSJNFOUBMͩͬͨͷͰ
 ࢖ͬͯΈ͔ͨͬͨ ٯுΓ
  20. ϑϨʔϜϫʔΫ !44 • 4QSJOH8FC'MVYΛ࠾༻ͨ͠ • /PO#MPDLJOH*0ʹରԠ͢Δ4QSJOHͷϑϨʔϜϫʔΫ • ,UPSͱ͍͏બ୒ࢶ΋͋ͬͨ • DPSPVUJOFϕʔεͷγϯϓϧͳ"1*

    • ೥લ͸υΩϡϝϯτ͕த్൒୺Ͱૉਓ͸खग़ͮ͠͠Β͔ͬͨ • ࠓ͸มΘͬͯΔ͔΋ʁ • ؂ࢹɾϩΪϯάͳͲɺӡ༻ͷ؍఺΋ؚΊͨબఆ͕ඞཁ • αʔόʔαΠυΠϯϑϥΤϯδχΞʹڠྗͯ͠΋Β͓͏
  21. "1*पลͷٕज़બఆ !45 • "1*ͷܕఆٛ͸ཉ͍͠͠ɺ࣮૷Ͱར༻͍ͨ͠ • ͕ɺͦ͜·Ͱίετ͸͔͚ͨ͘ͳ͍ • ෆಛఆଟ਺͕ར༻͢Δ"1*Ͱ͸ͳ͘ɺ
 ಛఆͷ૬ख "OESPJEɾJ04

    ͚ͩʹఏڙ͢Δ"1*ͳͷͰ • ϨεϙϯεϘσΟͷϑΥʔϚοτʹ1SPUPDPM#VGGFST 7 Λར༻ͨ͠ • ܕఆٛϑΝΠϧ QSPUP Λॻ͘ɻ͔ͦ͜Β֤ݴޠ޲͚ͷ࣮૷Λࣗಈੜ੒Ͱ͖Δ • όΠφϦܗࣜͳͷͰɺ+40/ͱൺ΂ͯαΠζ͕খ͘͞ɺ
 TFSJBMJ[FEFTFSJBMJ[F͢Δॲཧͷෛ୲΋গͳ͍
  22. ٕज़બఆΛৼΓฦͬͯ !46 • ຊ൪Ͱ҆ఆͯ͠ಈ͍͍ͯΔ఺͸0, • 4QSJOHͷֶशίετ͸ɺ
 Ұ౓੔උ͞Εͯ͠·͑͹ؾʹͳΒͳͦ͏ • $PSPVUJOF·ΘΓ͸ϥΠϒϥϦ౳ΈΔͱރΕͯͳ͍໘͸͋Δ •

    ྫTQSJOHXFCGMVYLPUMJODPSPVUJOFͱ͍͏ϥΠϒϥϦ͕
 DPSPVUJOFʹ·ͩରԠͯ͠ͳ͍ • ͦΕ͘Β͍ͳΒ௚ͤΔɺͱ͍͏ྗ͕͋Ε͹
 ͲΜͲΜߦͬͯ΄͍͠
  23. ؔ਺తͳΞϓϩʔν !51 • ؔ਺ͰϚοϐϯά͢ΔΠϝʔδʹͳΔ • #BDLFOE3FTPVSDF  #BDLFOE3FTPVSDF/ 'SPOUFOE%PNBJO.PEFM •

    ϑΝοτͳυϝΠϯϞσϧΛҭ͍ͯͯ͘Α͏ͳख๏͸
 #''ͷதͰ͸͏·͍͔͘ͳ͍ • #''ʹ͸ɺͦΕ୯ମͰͷυϝΠϯϞσϧ͸ͳ͍ɻ͋͘·Ͱม׵͢Δ͚ͩ • ͜ͷลͷߏ଄ΛཧղͤͣʹɺΦϒδΣΫτࢦ޲͕ͳͲͱ
 ཧ૝Λ୳͠ଓ͚Δͱɺࣦഊͦ͠͏
  24. ΫϥεͷछྨͱσΟϨΫτϦߏ੒ !52 • $POUSPMMFS IBOEMFSFRVFTUSFTQPOTF  • 'SPOUFOE%BUB 1SPUPCVGDMBTT BVUPHFOFSBUFE

     • 'SPOUFOE%BUB$SFBUPS ؔ਺  • #BDLFOE%BUBΛOݸड͚औΓ
 ͭͷ1SPUPΫϥεʹϚʔδͯ͠ฦ͢ • #BDLFOE%BUB • 3FUSPGJU4FSWJDF • #BDLFOE΁"1*ΞΫηε͠
 #BDLFOE%BUBΫϥεΛฦ͢
  25. ΫϥεͷछྨͱσΟϨΫτϦߏ੒ !54 • GSPOUFOE • XBMMFUϑϩϯτΤϯυʹ͔͠ଘࡏ͠ͳ͍
 ϏδωευϝΠϯ • XBMMFUϚΠΫϩαʔϏε͸ଘࡏ͠ͳ͍ •

    DPOUSPMMFS QSPUP QSPUPDSFBUPS • CBDLFOE • DPVQPO MJGFMPH NBMM QPJOU
 ͍͍ͩͨ ϚΠΫϩαʔϏεʹରԠ • 3FUSPGJUTFSWJDF #BDLFOEEBUB
  26. ඇಉظॲཧϑϩʔͷରॲ !55 • $PSPVUJOFΛར༻ͨ͠ • ·ͩ$PSPVUJOF׬શʹཧղͨ͠ঢ়ଶ • ΋͏গ͠ϓϩάϥϛϯάελΠϧͷݚڀ͕ඞཁ • 3YΛར༻͢Δ͔Ͳ͏͔ʁ

    • ΫϥΠΞϯτ։ൃͰ׳Ε͍ͯΔͳΒར༻ͯ͠΋Α͍ͱࢥ͏ • ͨͩ͠ɺΫϥΠΞϯτ΄Ͳʹ͸ඞཁͰ͸ͳ͍ • ෆఆظʹൃՐ͞ΕΔΠϕϯτ΍ɺॲཧͷதஅͳͲ͸ͳ͍ͨΊ
 ͦ͜·Ͱ੍ޚ͕೉͘͠ͳ͍͔Β
  27. 'BVMU5PMFSBOUͳ࣮૷ !56 • ෳ਺ͷ"1*Λ࢖͏࣌ʹɺยํͷ"1*͕ΤϥʔͷՄೳੑΛৗʹ૝ఆ͢Δ • ద੾ʹϋϯυϦϯά͢Δ • ϦτϥΠͰ͖ΔͳΒ͢Δ • ҆શͳػೳ௿Լ

    • શ͘දࣔ͞Εͳ͍ͷͰ͸ͳ͘ɺओཁͳ෦෼͸࢖͑ΔΑ͏ʹ͢Δ • ৔߹ʹΑͬͯ͸࢓༷ϨϕϧͰ٧ΊΔ • ଱ো֐ੑ͕ߴ͍ΞϓϦέʔγϣϯΛɺ
 $MJFOU4FSWFS*OGSBͰڠྗͯ͠࡞Γ্͍͛ͯΔঢ়ଶʹͳΔ
  28. 'J/$ΞϓϦʹ͓͚ΔΞʔΩςΫνϟ੔ཧ !61 • $MJFOU#''#BDLFOETͷ
 શମΛ੔ཧͨ͠ਤ • ແବͳϨΠϠʔΛݮΒ͠ɺೝࣝͷζ ϨΛͳ͘͢ • ྫ#''.PEFM͸࡞Βͳ͍

    • ྫ'SPOUFOE%BUBͱ$MJFOU%PNBJO 0CKFDU͸ผͷΫϥε͕ͩɺ΄΅ಉ͡σʔ λͷܗʹͳΔ • ͳͥͳΒ#''͸$MJFOUͷͨΊͷ΋ͷͳͷͰɺ ͦΕΛҙࣝͯ͠࡞Ε͹Α͍͔Β
  29. #''͕ఏڙ͢Δ"1*ͷཻ౓ !69 • ը໘ʹͭͷ"1*Ͱ͸ͳ͘ɺ
 ը໘தͷ6TF$BTFͷ୯Ґʹ߹Θͤͯ"1*Λ࡞͍ͬͯΔ • ࠨͷը໘ͷ੺ؙͷ୯Ґ • ཧ༝ •

    ஗͍"1*͕͋ͬͨͱ͖ʹɺશମ͕Ҿ͖ͣΒΕͳ͍Α͏ʹ͢Δ
 'BVMU*TPMBUJPOͷ؍఺  • Ͳ͏ͯ͠΋ϦΫΤετʹ·ͱΊ͍ͨ৔߹ɺ͜ͷ໰୊͸
 IUUQͷTFSWFSQVTIΛ্ख͘࢖͑Δͱղܾ͢Δ͔΋ • ΫϥΠΞϯτ͔Βɺ ϓϩάϥϛϯάతͳҙຯͰ ѻ͍΍͍͢
  30. ػೳ঺հ ͖Ζͯͨ͘͠ΊΔ !72 LifeLog Step API LifeLog Weight API LifeLog

    Sleep API LifeLog Meal API UserTag API (ϓϨϛΞϜձһ5pt, ҰൠϢʔβʔ1pt)
  31. #''"1*ͷϨεϙϯεߏ଄ Ұ෦লུ !75 • า਺ମॏ৯ࣄਭ຾ͱ͍͏
 ෳ਺ͷιʔεʹ༝དྷ͢ΔσʔλΛɺ
 BDUJPOͱͯ͠ந৅Խͯ͠ฒ΂͍ͯΔ • #BDLFOE"1*͸ݩʑ͢΂ͯશવҧ͏ܗࣜ •

    #''͕ͦΕΒΛந৅Խͨ͠'SPOUFOE%BUBʹ ͯ͠ฦ͍ͯ͠Δ • 1SPT࢓༷มߋ΍௥Ճʹɺ
 αʔόଆͰॊೈʹରԠͰ͖Δ • $POT
 $MJFOUଆͰͷ3FBDUJWFੑ͕ࣦΘΕΔ
  32. ରࡦ !81 • ରࡦ  ՝୊ղܾͷϩδοΫΛ٧ΊΔ • ྑ͍ΞʔΩςΫνϟ͸ɺ༷ʑͳ໰୊Λಉ࣌ʹղܾ͢Δ • #''ಋೖޙʹͲ͏ੈք͕มΘΔͷ͔ɺൃ৴͍ͯ͘͠ඞཁ͕͋Δ

    • ରࡦ  ఆྔԽɾܧଓతͳܭଌ • ޮՌΛਖ਼͘͠આ໌Ͱ͖Δ͜ͱ͸େࣄ • %BZOFPOBOLJUJͷηογϣϯ΋ͥͻ • ରࡦ  #''ʹڵຯ͕͋ΔΫϥΠΞϯτΤϯδχΞΛ࠾༻͢Δ