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

ノーコードのiOS開発を運用しやすくするための開発フローとバージョン管理の工夫

kamimi
October 05, 2022
550

 ノーコードのiOS開発を運用しやすくするための開発フローとバージョン管理の工夫

Yappli Tech Conference 2022 における発表内容です。
https://yappli.connpass.com/event/259001/

kamimi

October 05, 2022
Tweet

Transcript

  1. ʮෆ۩߹ௐࠪͷݪҼ੾Γ෼͚͕೉͍͠ʯ΁ͷΞϓϩʔν w όʔδϣϯͰݟ෼͚Δ w W99::ʢFHWʣͰػೳͷΞοϓσʔτΛ؅ཧͰ͖ΔΑ͏ʹ w HJU fl PXʹΑΔϒϥϯν؅ཧ w

    ։ൃ༻ͱϦϦʔε༻ͰϒϥϯνΛ෼͚Δ w ϏϧυࣗಈԽ w Ϗϧυ͕ࣗಈԽ͞Ε͍ͯΔ͜ͱͰɺݪҼௐࠪΛૉૣ͘ߦ͏͜ͱ͕Ͱ͖Δ
  2. ʮ඼࣭୲อͷͨΊͷे෼ͳ2"͕ඞཁʯ΁ͷΞϓϩʔν w ίʔυϑϦʔζ͔ΒϦϦʔε·Ͱɺिؒઃ͚͍ͯΔ w ि࣍2"Ͱݟ͔ͭͬͨෆ۩߹ͷमਖ਼΍࠶ϏϧυͳͲΛ༨༟࣋ͬͯߦ͏ͨΊ ݄ Ր ਫ ໦ ۚ

    ि໨ ि໨ ि໨ όʔδϣϯ" ίʔυϑϦʔζ ि࣍2" ϦϦʔε W w ίʔυϑϦʔζɿि࣍2"Λґཔ͢ΔͨΊͷ४උͱ2"ґཔ w ि࣍2"ɿػೳશମΛ֬ೝ͢Δ2" w ϦϦʔεɿ"QQ4UPSFͰΞϓϦΛϦϦʔε ϦϦʔε·ͰͷΠϕϯτ
  3. ʮ඼࣭୲อͷͨΊͷे෼ͳ2"͕ඞཁʯ΁ͷΞϓϩʔν w ίʔυϑϦʔζ͔ΒϦϦʔε·Ͱɺिؒઃ͚͍ͯΔ w ि࣍2"Ͱݟ͔ͭͬͨෆ۩߹ͷमਖ਼΍࠶ϏϧυͳͲΛ༨༟࣋ͬͯߦ͏ͨΊ ݄ Ր ਫ ໦ ۚ

    ि໨ ि໨ ि໨ όʔδϣϯ" ίʔυϑϦʔζ ि࣍2" ϦϦʔε W όʔδϣϯ# W w ίʔυϑϦʔζɿि࣍2"Λґཔ͢ΔͨΊͷ४උͱ2"ґཔ w ि࣍2"ɿػೳશମΛ֬ೝ͢Δ2" w ϦϦʔεɿ"QQ4UPSFͰΞϓϦΛϦϦʔε ϦϦʔε·ͰͷΠϕϯτ
  4. ʮ඼࣭୲อͷͨΊͷे෼ͳ2"͕ඞཁʯ΁ͷΞϓϩʔν w ίʔυϑϦʔζ͔ΒϦϦʔε·Ͱɺिؒઃ͚͍ͯΔ w ि࣍2"Ͱݟ͔ͭͬͨෆ۩߹ͷमਖ਼΍࠶ϏϧυͳͲΛ༨༟࣋ͬͯߦ͏ͨΊ ݄ Ր ਫ ໦ ۚ

    ि໨ ि໨ ि໨ όʔδϣϯ" ίʔυϑϦʔζ ि࣍2" ϦϦʔε W όʔδϣϯ# W όʔδϣϯ# W w ίʔυϑϦʔζɿि࣍2"Λґཔ͢ΔͨΊͷ४උͱ2"ґཔ w ि࣍2"ɿػೳશମΛ֬ೝ͢Δ2" w ϦϦʔεɿ"QQ4UPSFͰΞϓϦΛϦϦʔε ϦϦʔε·ͰͷΠϕϯτ
  5. ʮ඼࣭୲อͷͨΊͷे෼ͳ2"͕ඞཁʯ΁ͷΞϓϩʔν w ίʔυϑϦʔζ͔ΒϦϦʔε·Ͱɺिؒઃ͚͍ͯΔ w ि࣍2"Ͱݟ͔ͭͬͨෆ۩߹ͷमਖ਼΍࠶ϏϧυͳͲΛ༨༟࣋ͬͯߦ͏ͨΊ ݄ Ր ਫ ໦ ۚ

    ि໨ ि໨ ि໨ όʔδϣϯ" ίʔυϑϦʔζ ि࣍2" ϦϦʔε W όʔδϣϯ# W όʔδϣϯ" W όʔδϣϯ# W w ίʔυϑϦʔζɿि࣍2"Λґཔ͢ΔͨΊͷ४උͱ2"ґཔ w ि࣍2"ɿػೳશମΛ֬ೝ͢Δ2" w ϦϦʔεɿ"QQ4UPSFͰΞϓϦΛϦϦʔε ϦϦʔε·ͰͷΠϕϯτ
  6. ʮ඼࣭୲อͷͨΊͷे෼ͳ2"͕ඞཁʯ΁ͷΞϓϩʔν w ίʔυϑϦʔζ͔ΒϦϦʔε·Ͱɺिؒઃ͚͍ͯΔ w ि࣍2"Ͱݟ͔ͭͬͨෆ۩߹ͷमਖ਼΍࠶ϏϧυͳͲΛ༨༟࣋ͬͯߦ͏ͨΊ ݄ Ր ਫ ໦ ۚ

    ि໨ ि໨ ि໨ όʔδϣϯ" ίʔυϑϦʔζ ि࣍2" ϦϦʔε W όʔδϣϯ# W όʔδϣϯ" W όʔδϣϯ# W όʔδϣϯ$ W w ίʔυϑϦʔζɿि࣍2"Λґཔ͢ΔͨΊͷ४උͱ2"ґཔ w ि࣍2"ɿػೳશମΛ֬ೝ͢Δ2" w ϦϦʔεɿ"QQ4UPSFͰΞϓϦΛϦϦʔε ϦϦʔε·ͰͷΠϕϯτ
  7. ʮ඼࣭୲อͷͨΊͷे෼ͳ2"͕ඞཁʯ΁ͷΞϓϩʔν w ίʔυϑϦʔζ͔ΒϦϦʔε·Ͱɺिؒઃ͚͍ͯΔ w ि࣍2"Ͱݟ͔ͭͬͨෆ۩߹ͷमਖ਼΍࠶ϏϧυͳͲΛ༨༟࣋ͬͯߦ͏ͨΊ ݄ Ր ਫ ໦ ۚ

    ि໨ ि໨ ि໨ όʔδϣϯ" ίʔυϑϦʔζ ि࣍2" ϦϦʔε W όʔδϣϯ# W όʔδϣϯ" W όʔδϣϯ# W όʔδϣϯ$ W όʔδϣϯ$ W w ίʔυϑϦʔζɿि࣍2"Λґཔ͢ΔͨΊͷ४උͱ2"ґཔ w ि࣍2"ɿػೳશମΛ֬ೝ͢Δ2" w ϦϦʔεɿ"QQ4UPSFͰΞϓϦΛϦϦʔε ϦϦʔε·ͰͷΠϕϯτ
  8. ʮ඼࣭୲อͷͨΊͷे෼ͳ2"͕ඞཁʯ΁ͷΞϓϩʔν w ίʔυϑϦʔζ͔ΒϦϦʔε·Ͱɺिؒઃ͚͍ͯΔ w ि࣍2"Ͱݟ͔ͭͬͨෆ۩߹ͷमਖ਼΍࠶ϏϧυͳͲΛ༨༟࣋ͬͯߦ͏ͨΊ ݄ Ր ਫ ໦ ۚ

    ि໨ ि໨ ि໨ όʔδϣϯ" ίʔυϑϦʔζ ि࣍2" ϦϦʔε W όʔδϣϯ# W όʔδϣϯ" W όʔδϣϯ# W όʔδϣϯ$ W όʔδϣϯ$ W όʔδϣϯ# W w ίʔυϑϦʔζɿि࣍2"Λґཔ͢ΔͨΊͷ४උͱ2"ґཔ w ि࣍2"ɿػೳશମΛ֬ೝ͢Δ2" w ϦϦʔεɿ"QQ4UPSFͰΞϓϦΛϦϦʔε ϦϦʔε·ͰͷΠϕϯτ
  9. ʮ඼࣭୲อͷͨΊͷे෼ͳ2"͕ඞཁʯ΁ͷΞϓϩʔν w ίʔυϑϦʔζ͔ΒϦϦʔε·Ͱɺिؒઃ͚͍ͯΔ w ि࣍2"Ͱݟ͔ͭͬͨෆ۩߹ͷमਖ਼΍࠶ϏϧυͳͲΛ༨༟࣋ͬͯߦ͏ͨΊ ݄ Ր ਫ ໦ ۚ

    ि໨ ि໨ ि໨ όʔδϣϯ" ίʔυϑϦʔζ ि࣍2" ϦϦʔε W όʔδϣϯ# W όʔδϣϯ" W όʔδϣϯ# W όʔδϣϯ$ W όʔδϣϯ$ W όʔδϣϯ# W w ίʔυϑϦʔζɿि࣍2"Λґཔ͢ΔͨΊͷ४උͱ2"ґཔ w ि࣍2"ɿػೳશମΛ֬ೝ͢Δ2" w ϦϦʔεɿ"QQ4UPSFͰΞϓϦΛϦϦʔε ϦϦʔε·ͰͷΠϕϯτ
  10. ʮ඼࣭୲อͷͨΊͷे෼ͳ2"͕ඞཁʯ΁ͷΞϓϩʔν ݱঢ়ͷϑϩʔͰ͸ɺಉ࣌ʹ̏छྨͷλά͕ଘࡏ͠ಘΔ͜ͱʹΑΓൃੜ w ि࣍2"׬ྃʢϦϦʔε଴ͪʣͷόʔδϣϯɿW w ࠷৽ϦϦʔεόʔδϣϯɿW w 2"Λґཔ͢ΔόʔδϣϯɿW ݄ Ր

    ਫ ໦ ۚ ि໨ ि໨ ि໨ όʔδϣϯ" όʔδϣϯ# όʔδϣϯ$ όʔδϣϯ# όʔδϣϯ$ όʔδϣϯ" όʔδϣϯ# W W W W W W W ࠓ೔ŠŠ ίʔυϑϦʔζ ि࣍2" ϦϦʔε
  11. w ख࡞ۀ͕૿͑Δ͜ͱͰϛε͕ൃੜ͢ΔՄೳੑ͕ߴ͘ͳΔ w ࠷৽ϦϦʔεόʔδϣϯɿ 
 w 2"Λґཔ͢Δόʔδϣϯɿ 
 w ि࣍2"׬ྃʢϦϦʔε଴ͪʣͷόʔδϣϯɿ

    
 ʮ඼࣭୲อͷͨΊͷे෼ͳ2"͕ඞཁʯ΁ͷΞϓϩʔν W99::ܗࣜͷӡ༻ͩͱɺ࠷৽ϦϦʔεͷόʔδϣϯΞοϓʹ൐͍ɺͦͷଞͭ΋্͛Δඞཁ͕͋Δ WˠW WˠW WˠW ݄ Ր ਫ ໦ ۚ ि໨ ि໨ ि໨ όʔδϣϯ" W όʔδϣϯ# W όʔδϣϯ" W όʔδϣϯ# W όʔδϣϯ$ W όʔδϣϯ$ W όʔδϣϯ# W ίʔυϑϦʔζ ि࣍2" ϦϦʔε
  12. w ख࡞ۀ͕૿͑Δ͜ͱͰϛε͕ൃੜ͢ΔՄೳੑ͕ߴ͘ͳΔ w ࠷৽ϦϦʔεόʔδϣϯɿ 
 w 2"Λґཔ͢Δόʔδϣϯɿ 
 w ि࣍2"׬ྃʢϦϦʔε଴ͪʣͷόʔδϣϯɿ

    
 ʮ඼࣭୲อͷͨΊͷे෼ͳ2"͕ඞཁʯ΁ͷΞϓϩʔν W99::ܗࣜͷӡ༻ͩͱɺ࠷৽ϦϦʔεͷόʔδϣϯΞοϓʹ൐͍ɺͦͷଞͭ΋্͛Δඞཁ͕͋Δ ͜͜Λ্͛Δͱ WˠW WˠW WˠW ݄ Ր ਫ ໦ ۚ ि໨ ि໨ ि໨ όʔδϣϯ" W όʔδϣϯ# W όʔδϣϯ" W όʔδϣϯ# W όʔδϣϯ$ W όʔδϣϯ$ W όʔδϣϯ# W ίʔυϑϦʔζ ि࣍2" ϦϦʔε
  13. ʮ඼࣭୲อͷͨΊͷे෼ͳ2"͕ඞཁʯ΁ͷΞϓϩʔν W99::ܗࣜͷӡ༻ͩͱɺ࠷৽ϦϦʔεͷόʔδϣϯΞοϓʹ൐͍ɺͦͷଞͭ΋্͛Δඞཁ͕͋Δ ͜͜Λ্͛Δͱ ্͕͕͜͜Δͱ ͜͜΋্͛Δ ඞཁ͕͋Δ WˠW WˠW WˠW ݄

    Ր ਫ ໦ ۚ ि໨ ि໨ ि໨ όʔδϣϯ" W όʔδϣϯ# W όʔδϣϯ" W όʔδϣϯ# W όʔδϣϯ$ W όʔδϣϯ$ W όʔδϣϯ# W w ख࡞ۀ͕૿͑Δ͜ͱͰϛε͕ൃੜ͢ΔՄೳੑ͕ߴ͘ͳΔ w ࠷৽ϦϦʔεόʔδϣϯɿ 
 w 2"Λґཔ͢Δόʔδϣϯɿ 
 w ि࣍2"׬ྃʢϦϦʔε଴ͪʣͷόʔδϣϯɿ 
 ίʔυϑϦʔζ ि࣍2" ϦϦʔε
  14. ʮ඼࣭୲อͷͨΊͷे෼ͳ2"͕ඞཁʯ΁ͷΞϓϩʔν ηϚϯςΟοΫόʔδϣϯʹͯ͠ɺύονόʔδϣϯΛઃ͚ͯ΋ʜʢW99::;;ʣ w ϝλσʔλߋ৽ͳͲΞϓϦຊମͷΞοϓσʔτͰ͸ͳ͍৔߹ʹࠔΔ w "QQMFͷ࢓༷ͰΞοϓσʔτ࣌ʹόʔδϣϯΛΠϯΫϦϝϯτ͢Δඞཁ ͕͋ΔͨΊɺIPU fi Y͸ೖ͍ͬͯͳ͍͕ɺόʔδϣϯΛߋ৽͢Δඞཁ͕ ग़ͯ͘Δ

    w WˠWˠW ΞϓϦͷ৽͍͠όʔδϣϯ͝ͱʹɺ৽͍͠όʔδϣϯ൪߸ΛߟҊ͢Δඞཁ͕͋Γ·͢ɻ ͜ͷ൪߸͸ɺ࠷ޙʹ࢖༻ͨ͠7FSTJPO/VNCFSΑΓ΋େ͖ͳ஋Ͱ͋Δඞཁ͕͋Γ·͢ɻ 5FDIOJDBM/PUF5/7FSTJPO/VNCFSTBOE#VJME/VNCFST
  15. ʮ඼࣭୲อͷͨΊͷे෼ͳ2"͕ඞཁʯ΁ͷΞϓϩʔν ηϚϯςΟοΫόʔδϣϯʹͯ͠ɺύονόʔδϣϯΛઃ͚ͯ΋ʜʢW99::;;ʣ w ΞϓϦຊମ͸W͕࠷৽ w ͕͓ͩ٬༷ͷΞοϓσʔτճ਺ʹΑͬͯόʔδϣϯ͕ΠϯΫϦϝϯτ͞ΕΔ͜ ͱͰɺ͓٬༷ͷΞϓϦ͕Ͳͷόʔδϣϯͳͷ͔Θ͔Βͳ͘ͳΔ W W "ΞϓϦͷ

    όʔδϣϯ ϠϓϦͰ؅ཧ͍ͯ͠Δ ϦϦʔεόʔδϣϯ W ͕ࠩͰ͖Δ ΞϓϦຊମͷΞοϓσʔτ͸ͳ͠ W ͕ࠩͰ͖Δ ΞϓϦຊମͷΞοϓσʔτ͸ͳ͠ W ϝλσʔλߋ৽ͷΈ W ϝλσʔλߋ৽ͷΈ
  16. ʮ඼࣭୲อͷͨΊͷे෼ͳ2"͕ඞཁʯ΁ͷΞϓϩʔν ηϚϯςΟοΫόʔδϣϯʹͯ͠ɺύονόʔδϣϯΛઃ͚ͯ΋ʜʢW99::;;ʣ W W ϠϓϦͰ؅ཧ͍ͯ͠Δ ϦϦʔεόʔδϣϯ W ͕ࠩͰ͖Δ ΞϓϦຊମͷΞοϓσʔτ͸ͳ͠ W

    ͕ࠩͰ͖Δ ΞϓϦຊମͷΞοϓσʔτ͸ͳ͠ W ϝλσʔλߋ৽ͷΈ͋Γ W ϝλσʔλߋ৽ͷΈ͋Γ W #ΞϓϦͷ όʔδϣϯ W ϝλσʔλߋ৽ͳ͠ W ϝλσʔλߋ৽ͷΈ͋Γ ͕ࠩͰ͖Δ ͕ࠩͰ͖Δ "ΞϓϦͷ όʔδϣϯ
  17. ʮ඼࣭୲อͷͨΊͷे෼ͳ2"͕ඞཁʯ΁ͷΞϓϩʔν ϦϦʔεϊʔτͷόʔδϣϯʢλάͷ஋ʣͱΞϓϦਃ੥࣌ͷόʔδϣϯܗࣜΛ෼͚ͨ w ϦϦʔεϊʔτɿW w ΞϓϦਃ੥࣌ͷόʔδϣϯɿWɹɹɹɹɹW ϦϦʔεϊʔτ ͷόʔδϣϯ Ϗϧυ൪߸ ΠϯΫϦϝϯτ

    ͜͜͸ 
 มΘΒͳ͍ʂ ϝλσʔλߋ৽ͷΈ W W W ϝλσʔλߋ৽ͷΈ ϠϓϦͰ؅ཧ͍ͯ͠Δ ϦϦʔεόʔδϣϯ ԼܻҎ֎ΛݟΕ͹όʔδϣϯ͕Θ͔Δ W ΞϓϦຊମͷΞοϓσʔτ͸ͳ͠ "ΞϓϦͷ όʔδϣϯ
  18. ʮ඼࣭୲อͷͨΊͷे෼ͳ2"͕ඞཁʯ΁ͷΞϓϩʔν ϦϦʔεϊʔτͷόʔδϣϯʢλάͷ஋ʣͱΞϓϦਃ੥࣌ͷόʔδϣϯܗࣜΛ෼͚ͨ w ϦϦʔεϊʔτɿW w ΞϓϦਃ੥࣌ͷόʔδϣϯɿWɹɹɹɹɹW ϦϦʔεϊʔτ ͷόʔδϣϯ Ϗϧυ൪߸ ΠϯΫϦϝϯτ

    ͜͜͸ 
 มΘΒͳ͍ʂ ϝλσʔλߋ৽ͷΈ W W W ϝλσʔλߋ৽ͷΈ W ϝλσʔλߋ৽ͷΈ ϠϓϦͰ؅ཧ͍ͯ͠Δ ϦϦʔεόʔδϣϯ ԼܻҎ֎ΛݟΕ͹όʔδϣϯ͕Θ͔Δ W ΞϓϦຊମͷΞοϓσʔτ͸ͳ͠ W ΞϓϦຊମͷΞοϓσʔτ͸ͳ͠ "ΞϓϦͷ όʔδϣϯ
  19. ʮ඼࣭୲อͷͨΊͷे෼ͳ2"͕ඞཁʯ΁ͷΞϓϩʔν ͜ͷόʔδϣϯӡ༻มߋͷͨΊʹߦͬͨ͜ͱ w ᶃϦϦʔεϊʔτͷλάͷ஋ͱΞϓϦਃ੥༻ͷ 
 όʔδϣϯͷ஋ͷࠩΛٵऩ͢ΔϩδοΫΛ࣮૷ w CVJMECPUͰೖྗ͢Δͷ͸ɺલऀͷΈ 
 w

    ᶄྫ֎ͱͯ͠ɺಛఆόʔδϣϯͷΞϓϦͷ 
 Ϗϧυ͕ՄೳʹͳΔΑ͏ʹʢFHʣ ᶃ ᶄ     Ϗϧυ൪߸Λ຤ඌʹ෇༩ ஋͸มΘΒͳ͍
  20. ·ͱΊ w ϠϓϦͷΞϓϦ਺͕ଟ͍ɺػೳ਺͕ଟ͘ͳΔ͜ͱͰൃੜ͍ͯͨ͠՝୊ w ෆ۩߹ௐࠪͷόʔδϣϯಛఆ͕೉͍͠ w े෼ͳ2"Λߦ͏ඞཁ͕͋Δ w ͱͬͨΞϓϩʔν w

    ։ൃϑϩʔͷ޻෉ʢछྨͷ2"΍ɺίʔυϑϦʔζ͔Β2"·Ͱͷे෼ͳظؒʣ w ϏϧυࣗಈԽ w όʔδϣϯӡ༻ͷ޻෉ʢϦϦʔεϊʔτͱΞϓϦਃ੥༻ͷόʔδϣϯܗࣜΛ෼͚ Δʣ