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

iOSアプリエンジニアが2-3週間でそれなりのAndroidアプリを開発できるようになるまでの考え方

Ae276805027a01983503c3edafbdb6b2?s=47 Taiki Suzuki
December 21, 2021

 iOSアプリエンジニアが2-3週間でそれなりのAndroidアプリを開発できるようになるまでの考え方

Ae276805027a01983503c3edafbdb6b2?s=128

Taiki Suzuki

December 21, 2021
Tweet

More Decks by Taiki Suzuki

Other Decks in Programming

Transcript

  1. J04ΞϓϦΤϯδχΞ͕िؒͰ ͦΕͳΓͷ"OESPJEΞϓϦΛ ։ൃͰ͖ΔΑ͏ʹͳΔ·Ͱͷߟ͑ํ ू·Ε4XJGU޷͖ʂ4XJGUѪ޷ձWPM!ΦϯϥΠϯ NBSUZTV[VLJ

  2. ࣗݾ঺հ 🏢ɹגࣜձࣾαΠόʔΤʔδΣϯτ ɹɹmarty-suzuki 👨💻ɹϞόΠϧΞϓϦΤϯδχΞ ɹɹmarty_suzuki

  3. ࣗݾ঺հ IUUQTEFWFMPQFSBCFNBJPTFTTJPOTCWKQX+&P(1

  4. iOSΞϓϦΤϯδχΞ͕AndroidΞϓϦ։ൃΛ ֶΜͰ্͍͘Ͱͷ؍఺ͱߟ͑ํ ຊ೔ͷ಺༰ ˞ιʔείʔυ͸΄ͱΜͲग़͖ͯ·ͤΜ

  5. લఏ w ݄൒͹·Ͱ"OESPJEΞϓϦ։ൃͷۀ຿ܦݧͳ͠ w $PEFMBCTΛ೥લʹͪΐͬͱ΍ͬͨ͜ͱ͋ͬͨ w IUUQTEFWFMPQFSBOESPJEDPNDPVSTFTLPUMJOBOESPJEGVOEBNFOUBMTUPD IMKB w ,PUMJO.VMUJQMBUGPSN.PCJMFͰ,PUMJO΍ͬͨ͜ͱ͋ͬͨ

    w TVTQFOEGVODUJPOΛ4XJGU 0CKFDUJWF$ Ͱར༻͢ΔͨΊͷௐࠪͳͲ w "OESPJE4UVEJPͷ࢖͍ํͱ$PSPVUJOFTͷTVTQFOEGVODUJPOͱ͔ͪΐͬͱΘ͔Δ w ࡶஊͱ͔Ͱ"OESPJEΞϓϦ։ൃͷϫʔυΛࣖʹ͢Δ͜ͱ͸ͪΐͪ͜ΐ͋͜Δ w ΞϓϦ։ൃΛָ͠ΜͰ͍Δ
  6. ೔ ݄ Ր ਫ ໦ ۚ ౔   

                         ݄ ˞˙͸༗ٳ
  7. ೔ ݄ Ր ਫ ໦ ۚ ౔   

                         ݄ ˞˙͸༗ٳ  ຊ֨తʹ"OESPJEΞϓϦ։ൃͷษڧ։࢝
  8. ೔ ݄ Ր ਫ ໦ ۚ ౔   

                         ݄ ˞˙͸༗ٳ ͦΕͳΓͷ"OESPJEΞϓϦͷαϯϓϧެ։ 
  9. IUUQTHJUIVCDPNNBSUZTV[VLJ.Z'JSTU"OESPJE1SBDUJDF wϚϧνϞδϡʔϧ w.77. w"OESPJE"SDIJUFDUVSF$PNQPOFOUT w,PUMJO$PSPVUJOFT w%BHHFS)JMU w3FDZDMFS7JFXXJUI%J ff 6UJM wϢχοτςετ

  10. ೔ ݄ Ր ਫ ໦ ۚ ౔   

                         ݄ ˞˙͸༗ٳ "OESPJEΞϓϦ։ൃΛΩϟονΞοϓ͢ΔͨΊʹ ͜ͷिؒͲ͏͍͏ߟ͑ํͰษڧ͍͔ͯͬͨ͠ʁ
  11. iOSͷ͋Εͬͯ
 AndroidͩͱԿʹͳΔΜͩΖʁ େࣄͳߟ͑ํ

  12. 1. ·ͣ͸खΛಈ͔͢લʹ ܰ͘Πϯϓοτ

  13. 🔔🌲 લʹ$PEFMBCTΛ΍ͬͨ͜ͱ͚͋ͬͨͲ΄ͱΜͲ֮͑ͯ ͍ͳ͍͔Βɺݟฦͯ͠ΈΑ͏͔ͳ

  14. $PEFMBCTΛݟฦͯ͠ΈΔ IUUQTEFWFMPQFSBOESPJEDPNDPVSTFTLPUMJOBOESPJEGVOEBNFOUBMTUPD IMKB

  15. 🔔🌲 ͘͢͝༗༻͚ͩͲɺखॱ௨ΓʹͭͣͭਐΊ͍ͯ͘ܗͩͱ ͦͷॱ൪௨ΓʹਐΊͳ͍ͱΘ͔Βͳ͘ͳΔ͔ΒɺࣗલͰ өըͷݕࡧαϯϓϧΞϓϦ࡞ͬͯΈΑ͏

  16. IUUQTEFWFMPQFSTUIFNPWJFECPSHHFUUJOHTUBSUFEJOUSPEVDUJPO өըͷݕࡧΞϓϦʹ࢖͏"1*

  17. 🔔🌲 "OESPJEΞϓϦ͸ެࣜͷਪ঑ΞʔΩςΫνϟ͕͋Δͱ ฉ͍ͨ͜ͱ͕͋Δ͔ΒɺͦΕʹԊͬͯ࡞ͬͯΈΑ͏͔ͳ

  18. IUUQTEFWFMPQFSBOESPJEDPNKFUQBDLHVJEF IMKBSFDPNNFOEFEBQQBSDI "OESPJEΞϓϦͷਪ঑ΞʔΩςΫνϟ

  19. 🔔🌲 6*पΓ͸*%&΍04ͷಛੑ͕ڧͯ͘ύοͱ͸ཧղ͠ʹ͍͘ ͔Βɺ·ͣ͸3FNPUF%BUB4PVSDF͔Βͭͬͯ͘ΈΔ͔

  20. 2. RemoteDataSourceΛ ͭͬͯ͘ΈΔ

  21. 🔔🌲 ͱΓ͋͑ͣɺϚϧνϞδϡʔϧͰ࡞Γ࢝ΊΑ͏ͱࢥ͏͚Ͳ J04ͷ5BSHFUͬͯ"OESPJEͩͱԿʹͳΔΜͩΖʁ

  22. IUUQTEFWFMPQFSBOESPJEDPNTUVEJPQSPKFDUT IMKB J04ͷ5BSHFUͰ෼͚ΔΈ͍ͨͳͷͬͯԿʹͳΔΜͩΖ͏ʁ

  23. IUUQTEFWFMPQFSBOESPJEDPNTUVEJPQSPKFDUT IMKB J04ͷ5BSHFUͰ෼͚ΔΈ͍ͨͳͷͬͯԿʹͳΔΜͩΖ͏ʁ

  24. 🔔🌲 ·ͣ͸ɺ௨৴ॲཧΛॻ͍͍ͯ͜͏͔ͳ 63-4FTTJPOΈ͍ͨͳͷͬͯԿʹͳΔΜͩΖ͏ʁ ͦ͏͍͑͹ɺ"OESPJEͩͱඪ४ͷ௨৴Ϋϥε࢖͏͜ͱ͸ ͋Μ·Γͳ͍ͱ͍͏ͷ͸ࣖʹͨ͜͠ͱ͕͋Δ

  25. IUUQTEFWFMPQFSBOESPJEDPNUSBJOJOHCBTJDTOFUXPSLPQTDPOOFDUJOH IMKBDIPPTFIUUQDMJFOU 63-4FTTJPOͬͯԿʹͳΔΜͩΖ͏ʁ

  26. IUUQTHJUIVCDPNTRVBSFSFUSP fi U 63-4FTTJPOͬͯԿʹͳΔΜͩΖ͏ʁ

  27. 🔔🌲 σʔλͷσίʔυͲ͏͢ΔΜͩΖ͏ʁ %FDPEBCMFͱ+40/%FDPEFSΈ͍ͨͳ΋ͷ͕͋Δͷ͔ͳʁ

  28. IUUQTHJUIVCDPN,PUMJOLPUMJOYTFSJBMJ[BUJPO %FDPEBCMFͬͯԿʹͳΔΜͩΖ͏ʁ

  29. IUUQTTRVBSFHJUIVCJPSFUSP fi U 3FUSPGJUͰ࢖͍΍͍͢΋ͷ͸ʁ

  30. 3FUSPGJUEFDPEFͰΑ͘࢖ΘΕ͍ͯͦ͏ͳ΋ͷΛݟ͚ͭΔ

  31. 🔔🌲 3FUSP fi UEFDPEFͰݕࡧͯ͠ΈΔͱɺ.PTIJͷ࢖͍ํͷ هࣄ͕ଟ͍͔ΒɺͱΓ͋͑ͣ.PTIJΛ࢖ͬͯΈΔ

  32. 🔔🌲 3FUSP fi UͷެࣜυΩϡϝϯτͩͱɺฦΓ஋͕$BMM5ʹ ͳͬͯΔ͚ͲɺTVTQFOEGVODUJPO͸࢖͑ͳ͍ͷ͔ͳʁ

  33. 3FUSPGJUͷฦΓ஋ʹTVTQFOEGVODUJPO͸࢖͑ͳ͍ͷʁ

  34. 🔔🌲 3FNPUF%BUB4PVSDFͰ͖͔ͨΒɺҰ୴ద౰ʹܨ͗ࠐΜͰ 
 "1*ͷ௨৴͕ͪΌΜͱͰ͖ͯΔ͔֬ೝ͠Α͏ 
 ͦ͏͍͑͹ɺσόοάϩά͸Ͳ͏΍ͬͯΈΔΜͩΖ͏ʁ

  35. Ͳ͏΍ͬͯσόοάϩάΛݟΔʁ IUUQTEFWFMPQFSBOESPJEDPNTUVEJPEFCVH IMKBTZTUFN-PH

  36. 🔔🌲 ίϯιʔϧʹϩά͕ग़ͨ͠Α͏΍͘௨৴ͷσόοάͰ͖Δʂ Ͱ΋Τϥʔʹͳͬͯ͠·͏ ௨৴͢ΔͷʹԿ͔࡞๏తͳ΋ͷ͕͋ΔͷͩΖ͏͔ʁ

  37. ωοτϫʔΫʹ઀ଓ͢ΔͨΊͷݖݶ IUUQTEFWFMPQFSBOESPJEDPNUSBJOJOHCBTJDTOFUXPSLPQTDPOOFDUJOH IMKB

  38. 🔔🌲 ૄ௨֬ೝͰ͖ͨ͠ɺ࣍͸3FQPTJUPSZʹணख͠Α͏

  39. 3. RepositoryΛͭͬͯ͘ΈΔ

  40. 🔔🌲 4XJGUͰUISPX͞Εͯ4XJGU&SSPSʹͳͬͯ͠·͏ͷͱ ಉ͡Ͱɺ,PUMJO΋&YDFQUJPOʹͳͬͯΩϟετ͕ඞཁ ͦ͏ͳͷͰɺ3FTVMUͱ͔ͰΤϥʔΛ۩ମతʹΘ͔Δ ঢ়ଶʹ͓͖͍ͯͨ͠

  41. 3FTVMUΛ࢖ͬͯΈΔ IUUQTLPUMJOMBOHPSHBQJMBUFTUKWNTUEMJCLPUMJOSFTVMU

  42. 🔔🌲 4XJGUͩͱ3FTVMU5 &ͰΤϥʔܕ΋۩ମతʹͰ͖Δ ͚Ͳɺ,PUMJOͩͱ3FTVMU5͔ͩΒΤϥʔͷΩϟετ͕ ඞཁʹͳΓͦ͏ͩͳ FOVNͷ"TTPDJBUFE7BMVFΈ͍ͨͳ΋ͷͬͯͳ͍͔ͳʁ

  43. FOVNͷ"TTPDJBUFE7BMVFΈ͍ͨͳ΋ͷ͸ʁ IUUQTLPUMJOMBOHPSHEPDTTFBMFEDMBTTFTIUNM

  44. 🔔🌲 /VMMBCMFͳม਺ΛϦΫΤετʹ౉͢ͱ͖ʹɺ΋͠OVMMͩͬͨ ৔߹ʹ͸σϑΥϧτ஋Λࢦఆ͍ͨ͠ ,PUMJOͩͱJG IPHFOVMM ͱ͔ʹ͢Δͱ4NBSU$BTUT 
 Ͱɺ೚ҙͷείʔϓͰܕ͕֬ఆͨ͠ঢ়ଶͰ࢖͑Δͷ͸ ஌ͬͯΔ͚Ͳɺ4XJGUͷ/JM݁߹ԋࢉࢠ ͬͯԿʹͳΔʁ

  45. LPUMJOOVMMDPBMFTDJOHPQFSBUPSͰݕࡧͯ͠ΈΔ

  46. 4XJGUͷ ͸,PUMJOͰ͸ʁ IUUQTLPUMJOMBOHPSHEPDTOVMMTBGFUZIUNMFMWJTPQFSBUPS

  47. 🔔🌲 ഑ྻͷத਎ม׵͢Δͱ͖ʹɺMJTUNBQ\USBOTGPSN JU ^ Έ͍ͨͳॻ͖ํΛɺ4XJGUΈ͍ͨʹMJTUNBQ USBOTGPSN  Έ͍ͨʹͰ͖ͳ͍͔ͳʁ

  48. LPUMJONFUIPEDMPTVSFBSHVNFOUTͰݕࡧͯ͠ΈΔ

  49. ؔ਺ࣗମΛؔ਺ͷҾ਺ʹ౉͢ํ๏͸ IUUQTLPUMJOMBOHPSHEPDTMBNCEBTIUNMJOTUBOUJBUJOHBGVODUJPOUZQF

  50. 🔔🌲 "1*͔ΒϨεϙϯεΛड͚औͬͯྑ͠ͳʹม׵ͯ͠ 7JFX.PEFMͰ࢖͑Δܕͱͯ͠ฦͤΔΑ͏ʹͳͬͨ͠ 7JFX.PEFMΛͭͬͯ͘ΈΑ͏͔ͳ

  51. 4. ViewModelΛͭͬͯ͘ΈΔ

  52. 🔔🌲 "OESPJEͰ͸7JFX.PEFM͕༻ҙ͞Ε͍ͯΔͱ ฉ͍ͨ͜ͱ͕͋Δ

  53. "OESPJEͷ7JFX.PEFM IUUQTEFWFMPQFSBOESPJEDPNUPQJDMJCSBSJFTBSDIJUFDUVSFWJFXNPEFM IMKB

  54. 🔔🌲 αϯϓϧͩͱ-JWF%BUBͰॻ͔Ε͍ͯΔ͚Ͳɺ,PUMJO'MPX ΋ࣖʹ͢Δ͜ͱ͕͋Δ 3Y4XJGU΍$PNCJOFʹ͍ۙ*'ͩ͠ɺ'MPXΛ͔ͭͬͯΈΔ ؒҧͬͯͨΒޙͰ௚ͤ͹ྑ͍͠

  55. 🔔🌲 J04ͰҰൠతʹ࡞Δ7JFX.PEFMΈ͍ͨͳײ͡Ͱɺग़ྗͷ QSPQFSUZͱͯ͠0CTFSWBCMF 1VCMJTIFS ɺͦΕͱೖྗΛ ड͚෇͚ΔϝιουΈ͍ͨͳߏ੒ʹ͠Α͏ "OESPJEͷ৔߹ɺग़ྗ͸'MPXʹͳΕ͹ྑͦ͞͏

  56. 🔔🌲 3FNPUF%BUB4PVSDFͱ3FQPTJUPSZͰ,PUMJOͷߏจʹ׳Ε ͖ͯͨ͠ɺ'MPX͸3Y4XJGU $PNCJOF Ͱ7JFX.PEFMΛ࡞Δ ײ֮ʹ͍͔ۙΒҙ֎ͱॻ͚Δ

  57. 🔔🌲 7JFX.PEFM͕ग़དྷͨ͠ɺҰ୴ΞϓϦʹ૊ΈࠐΜͰΈΑ͏ ͦ͏͍͑͹࠷ۙͩͱ%*͢Δͱ͖ʹ)JMUΛ࢖͏ͱ͍͏ͷΛ ฉ͍ͨ͜ͱ͕͋Δ ͔ͤͬͩ͘͠ɺࢼͯ͠ΈΑ͏͔ͳ

  58. )JMUΛ࢖ͬͯ%* IUUQTEFWFMPQFSBOESPJEDPNUSBJOJOHEFQFOEFODZJOKFDUJPOIJMUBOESPJE IMKB

  59. 🔔🌲 J04ΞϓϦ։ൃͩͱɺखಈͰJOJUJBMJ[FS͔ΒΠϯελϯεΛ ͭͭ౉͍͚ͯͨ͠Ͳɺ)JMU͕ྑ͠ͳʹ΍ͬͯ͘ΕΔΒ͍͠ ͦͷลΓΛྑ͠ͳʹ΍ͬͯ͘ΕΔͳΜͯɺͳΜ͔ͩෆࢥٞ

  60. 🔔🌲 ͋Εʁ7JFX.PEFMΛ)JMUͰ%*͢Δͱ͖ʹ WBMWJFX.PEFM4FBSDI7JFX.PEFMCZWJFX.PEFMT  Έ͍ͨͳײ͡Ͱ۩ମܕΛࢦఆ͠ͳ͍ͱ͍͚ͳ͍Α͏ͩ ΋͔ͯ͠͠ந৅ԽͰ͖ͳ͍ʂʁ

  61. 7JFX.PEFMͬͯந৅Խͯ͠%*Ͱ͖ͳ͍ʂʁ IUUQTUXJUUFSDPNNBSUZ@TV[VLJTUBUVT

  62. 🔔🌲 7JFX.PEFM͔Β6J-PHJDΛ෼཭ͯ͠ɺந৅Խͨ͠6J-PHJDͷ 'BDUPSZΛ7JFX.PEFMͷҾ਺ͱ͢Δ͜ͱͰɺςετͷͱ͖ʹ .PDLΛੜ੒͢Δ'BDUPSZΛ%*͢ΔܗͰղܾͰ͖ͨ

  63. 🔔🌲 )JMUΛ࢖ͬͯ7JFX.PEFMͷૄ௨͕֬ೝͰ͖ͨͷͰ ը໘Λͭ͘Γ͸͡ΊΔ

  64. 5. ը໘Λͭͬͯ͘ΈΔ

  65. 🔔🌲 ݕࡧը໘࡞Γ͍͚ͨͲɺ6*$PMMFDUJPO7JFXΈ͍ͨͳ΋ͷ͸ "OESPJEͩͱԿʹͳΔΜͩΖ͏ʁ

  66. 6*$PMMFDUJPO7JFXΈ͍ͨͳ΋ͷͬͯԿʹͳΔΜͩΖ͏ IUUQTEFWFMPQFSBOESPJEDPNHVJEFUPQJDTVJMBZPVUSFDZDMFSWJFX IMKB

  67. 🔔🌲 w (SJE-BZPVU.BOBHFS6*$PMMFDUJPO7JFX'MPX-BZPVU w "EBQUFS6*$PMMFDUJPO7JFX%BUB4PVSDF w 7JFX)PMEFS6*$PMMFDUJPO7JFX$FMM Έ͍ͨͳײ͡ͷରԠ͔ͳʁ

  68. 🔔🌲 7JFX)PMEFSͷ7JFX͸YNMͰͭ͘ΔΈ͍ͨ (6*Ͱ΋૊ΊΔ͠ɺYNMࣗମ΋YJCҧͬͯಡΈ΍͍͔͢Βॻ͚Δʂ ݱঢ়͸্Լࠨӈʹ੍໿Λ͚ͭΔ$POTUSBJOU-BZPVU͚͔ͩͩΒ ͦΜͳʹ᪴͘ͱ͜Ζ͸ͳͦ͞͏

  69. 🔔🌲 σʔλͷ௥ՃಡΈࠐΈͨ͠ͱ͖ʹɺ%J ff BCMF%BUB4PVSDF ͱ4OBQTIPUΛ࢖͏Έ͍ͨͳܗͰࠩ෼ߋ৽͍ͨ͠

  70. 3FDZDMFS7JFXͰ%JGGBCMF%BUB4PVSDFΈ͍ͨʹࠩ෼ߋ৽ IUUQTEFWFMPQFSBOESPJEDPNSFGFSFODFBOESPJEYSFDZDMFSWJFXXJEHFU %J ff 6UJM

  71. 🔔🌲 ৄࡉը໘Λ3FDZDMFS7JFXͰͭ͘Ζ͏ͱࢥ͏ͷ͚ͩͲɺ$FMM Λ3PX͝ͱʹग़͠෼͚ΔΈ͍ͨͳ͜ͱ͸Ͳ͏΍ΔΜͩΖ͏ʁ

  72. 3FDZDMFS7JFXͰ7JFX)PMEFSΛग़͠෼͚Δ IUUQTUFDICMPH[P[PDPNFOUSZBOESPJE@HSJEMBZPVUNBOBHFS@QSPHSFTT

  73. 🔔🌲 6*$PMMFDUJPO7JFXͷEJE4FMFDU*UFN"UͷΑ͏ͳΞΠςϜ͕ બ୒͞Εͨͱ͖ͷϋϯυϦϯά͸Ͳ͏͢ΔΜͩΖ͏ʁ

  74. 🔔🌲 3FDZDMFS7JFX͕બ୒ͷEFMFHBUJPOΛ͢ΔܗͰ͸ͳ͘ 
 $FMMʹ6*5BQ(FTUVSF3FDPHOJ[FSΛ͚ͭΔΈ͍ͨʹ 7JFX)PMEFSͷJUFN7JFXʹରͯ͠0O$MJDL-JTUFOFSΛ ͚ͭͯϋϯυϦϯά͢ΔܗͬΆ͍

  75. 🔔🌲 λοϓ͕ϋϯυϦϯάͰ͖ΔΑ͏ʹͳͬͨͷͰɺը໘ભҠ ͍͖͍ͤͯͨ͞ QSFTFOU WD ͱ͔QVTI WD Έ͍ͨͳײ͡ͳͷ͔ͳʁ

  76. ը໘ભҠͲ͏΍ΔΜͩΖ͏ʁ IUUQTEFWFMPQFSBOESPJEDPNHVJEFOBWJHBUJPOOBWJHBUJPODSFBUF EFTUJOBUJPOT IMKBEZOBNJDBSHVNFOUT

  77. 🔔🌲 ͜ͷΑ͏ͳྲྀΕͰɺαϯϓϧΞϓϦΛ͍͖ͭͬͯ͘·ͨ͠

  78. w ۀ຿Ͱ࠷ॳʹ୲౰ͨ͠ͷ͸ɺϩδοΫपΓͷ࣮૷ w ϞόΠϧͱλϒϨοτͷ͜ͱΛߟྀͨ͠ϨΠΞ΢τΛ૊Ήඞཁ͕ ͋ͬͨͷͰɺϨΠΞ΢τ૊Ήͱ͖͸ಉ྅ʹ࣭໰͍ͯͨ͠ w ΞϓϦΛҰ௨Γ࡞ͬͯΈͨͱͯ͠΋αϯϓϧΞϓϦʹ͗͢ͳ͍ ͕ɺҰ௨Γ΍ͬͯΈͨ͜ͱʹΑͬͯۀ຿ͷίʔυΛ೺Ѳ͠΍͘͢ ͸ͳͬͨ ͦͷޙ

  79. w J04ΞϓϦ։ൃͷجૅྗ͕͋Ε͹ɺ"OESPJEΞϓϦ։ൃͰ΋స༻ Ͱ͖Δ෦෼͕ଟʑ͋Δ w ʮJ04ͷ͋Εͬͯ"OESPJEͩͱԿʹͳΔΜͩΖʁʯ͕େࣄ w ߹͍ͬͯΔͷ͔෼͔Βͳͯ͘΋ɺͱΓ͋͑ͣࢼͯ͠ΈΔ͜ͱ͕େ ࣄͰɺؒҧ͍ͬͯͨΒཧղ͕ਂ·͖ͬͯͨΒ௚ͤ͹ྑ͍ w ৽͍͜͠ͱ͕਎ʹͭ͘ײ͕֮͋ͬͯɺ࣌ؒΛ๨Εָͯ͠Έͳ͕Β

    ֶश͍ͯͨ͠ͷͰɺָ͠Ή͜ͱ͕Ұ൪ͷ׆ྗ ·ͱΊ
  80. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠