Save 37% off PRO during our Black Friday Sale! »

新卒1年目で Androidアプリの アーキテクチャ移行を主導した話

新卒1年目で Androidアプリの アーキテクチャ移行を主導した話

BIT VALLEY 2020 プレイベント#2 [20代で圧倒的成長を目指すエンジニア] #bitvalley2020

長年運用されているサービスでは、設計が流行から遅れてきたり、度重なる機能追加/変更によりコードが複雑化し、開発体験が下がる傾向にあると思います。一方、継続的な機能追加も求められ、なかなか抜本的な改善は難しいです。OPENRECのAndroidチームでは、昨年からjavaからkotlinへの移行も含めた段階的なアーキテクチャ移行を実施しています。その中で意識してる点やうまくいったこと等をお話します。

▼スピーカー
株式会社 CyberZ
OPENREC事業部 Androidエンジニア
森 篤史

https://2020.bit-valley.jp/
https://sbv.connpass.com/event/183549/

A45681c58220b58ca83a926b1be52e65?s=128

Mori Atsushi

August 05, 2020
Tweet

Transcript

  1. ৽ଔ೥໨Ͱ "OESPJE  ΞϓϦͷ ΞʔΩςΫνϟҠߦΛओಋͨ͠࿩ .PSJ"UTVTIJc#*57"--&:ϓϨΠϕϯτ<୅Ͱѹ౗త੒௕Λ໨ࢦ͢ΤϯδχΞ>CJUWBMMFZ

  2. .PSJ"UTVTIJ ໌ੴߴઐೖֶ ஜ೾େֶฤೖֶ גࣜձࣾαΠόʔΤʔδΣϯτೖࣾ גࣜձࣾ$ZCFS;ग़޲ ະ౿*5ਓࡐൃ۷ɾҭ੒ࣄۀεʔύʔΫϦΤʔλ !BU@TVTIJ@BU גࣜձࣾ$ZCFS; 01&/3&$ࣄۀ෦ "OESPJEΞϓϦΤϯδχΞ

  3. ήʔϜ࣮گ΍ϓϨΠಈըɺ ϥΠϒ഑৴ָ͕͠ΊΔɺ ಈըίϛϡχςΟϓϥοτϑΥʔϜ ݄ؒສਓͷΞΫςΟϒϢʔβʔ ೥݄σβΠϯϦχϡʔΞϧ ԻָϥΠϒ౳΋

  4. શࣾ ਓͷٕज़ऀ͕બͿʮ$"#"4&"8"3%ʯͰ ࠷༏लϕετϧʔΩʔ৆

  5. ͳͥϕετϧʔΩʔʹʁ "OESPJE  ΞϓϦͷ ΞʔΩςΫνϟҠߦΛओಋ LPUMJO͔ΒKBWB΁ϞμϯͳΞʔΩςΫνϟஈ֊తͳҠߦཧ૝ͱݱ࣮Λόϥϯε

  6. ͳͥ೥໨ʹϦΞʔΩςΫνϟʁ Ͳ͏΍ͬͯਐΊ͔ͨ ࿩͢͜ͱ

  7. ͳͥ೥໨ʹϦΞʔΩςΫνϟʁ .PSJ"UTVTIJͷߴઐ࣌୅ʙ ආ೉ܦ࿏Λࢦࣔ͢Δ Ϛϯϗʔϧ Ո଒޲͚εϚʔτϛϥʔ μϯε࿅श༻ εϚʔτϛϥʔ $ݴޠ3BTQCFSSZ1J K2VFSZ1)1QZUIPO $

    %Y-JC,JOFDU
  8. ͳͥ೥໨ʹϦΞʔΩςΫνϟʁ .PSJ"UTVTIJͷߴઐ࣌୅ʙ ආ೉ܦ࿏Λࢦࣔ͢Δ Ϛϯϗʔϧ Ո଒޲͚εϚʔτϛϥʔ μϯε࿅श༻ εϚʔτϛϥʔ $ݴޠ3BTQCFSSZ1J K2VFSZ1)1QZUIPO $

    %Y-JC,JOFDU ͱΓ͋͑ͣಈ͚͹
  9. ͳͥ೥໨ʹϦΞʔΩςΫνϟʁ .PSJ"UTVTIJͷେֶ࣌୅ʙ ಉ͡ಈըΛݟͳ͕Β νϟοτ͕Ͱ͖Δ TMBDL޲͚ DVTUPNFNPKJڞ༗αΠτ KBWBLPUMJO.77.3Y+BWB 3FBDU6OJU5FTU

  10. ͳͥ೥໨ʹϦΞʔΩςΫνϟʁ .PSJ"UTVTIJͷେֶ࣌୅ʙ ಉ͡ಈըΛݟͳ͕Β νϟοτ͕Ͱ͖Δ TMBDL޲͚ DVTUPNFNPKJڞ༗αΠτ KBWBLPUMJO.77.3Y+BWB SFBDUVOJUUFTU εέʔϧ͢Δ࢓૊Έ ෳ਺ਓͰಉ࣌։ൃͰ͖Δอकੑϝϯςφϯεੑ

  11. .PSJ"UTVTIJͷೖࣾ࣌ͷϞνϕʔγϣϯ ΑΓେ͖͍ϓϩδΣΫτͰ ࢓૊Έͮ͘ΓΛ͍ͨ͠ ͳͥ೥໨ʹϦΞʔΩςΫνϟʁ

  12. 01&/3&$UWͷ"OESPJEΞϓϦͷഎܠ େ෯ͳϦχϡʔΞϧ͕ ༧ఆ͞Ε͍ͯͨ ೥ؒͷӡ༻ʹΑΔӨڹ +BWB.7$DBMMCBDL஍ࠈ HPPHMFʹΑΔ৽ΞʔΩςΫνϟͷਪ঑ େ෯ͳߏ଄มߋ %BSL-JHIUϞʔυͷ࣮૷ ͳͥ೥໨ʹϦΞʔΩςΫνϟʁ

  13. ৽ଔ೥໨ʹ೚ͤΔෆ҆Λ෷১͢ΔͨΊʹ ͳͥ೥໨ʹϦΞʔΩςΫνϟʁ ϝϦοτ ࠓ΍Δҙٛͷઆ໌ ۩ମతͳܭը ܧଓతͳݟ௚͠ HPPHMF͕ఏڙ͢Δ ϑϨʔϜϫʔΫͷมԽ େਓ਺Ͱͷ։ൃΛਪਐ ۩ମతʹಋೖ͢Δ෺

    Ҡߦͷํ๏ Ҡߦͷεέδϡʔϧ Ҡߦ෦ͷݟ௚͠ εέδϡʔϧͷมߋ ✅
  14. ۩ମతͳઆ໌ʢҰ෦ʣ ͳͥ೥໨ʹϦΞʔΩςΫνϟʁ "OESPJE.VMUJ.PEVMFΛ ࢖ͬͨஈ֊తͳҠߦ .7$ͱ.77.ͷҧ͍ ϝϦοτͷઆ໌

  15. ͳͥ೥໨ʹϦΞʔΩςΫνϟʁ ৴པΛੵΈॏͶɺ λΠϛϯάΛଊ͑Δ͜ͱ͕Ͱ͖ͨ ࣄ࣮λΠϛϯά͸Α͔ͬͨ ҰͭҰͭͷઆ໌ٞ࿦Λ͔ͬ͠Γ͢Δ

  16. ͳͥ೥໨ʹϦΞʔΩςΫνϟʁ Ͳ͏΍ͬͯਐΊ͔ͨ ࿩͢͜ͱ ʲ࠶ܝʳ

  17. Ͳ͏΍ͬͯਐΊ͔ͨ ࠷ॳʹ໰୊ʹͳͬͨ͜ͱ ѹ౗తܦݧෆ଍

  18. ܦݧෆ଍Λิ͏ํ๏ Ͳ͏΍ͬͯਐΊ͔ͨ ͱʹ͔͘ TBNQMFίʔυΛݟ·͘Δ ଞΞϓϦͷ ৄࡉΛௐ΂Δฉ͘ ෦ॺ಺ͷਓಉظ༑ਓʹ ૬ஊ͢Δ

  19. ৽ଔ೥໨͔ͩΒͰ͖ͨ͜ͱ Ͳ͏΍ͬͯਐΊ͔ͨ ࠷ॳʹײͨ͡ҧ࿨ײ͸௒ॏཁ ͩΜͩΜ׳Εͯ๨Ε͍ͯ͘ ܭըతʹఏҊղܾ͍ͯ͘͠ ςετίʔυ͕ແ͍ ৽ΞʔΩςΫνϟͰ υϝΠϯϨΠϠʔͷDPWFSBHFΛ໨ඪͱ͢Δ MJOU͕͔͔ͬͯͳ͍ $*Λઃఆ͠ɺ13ʹࣗಈίϝϯτ

    ॻ͖௚ͨ͠ͱ͜Ζ͔Βڧ੍
  20. Ͳ͏΍ͬͯਐΊ͔ͨ ਐΊΔதͰײͨ͜͡ͱ ಈ͘ίʔυʹ ࠷େݶͷϦεϖΫτΛ ίʔυ΋ਓ΋଀·ͣ ෛͷײ৘Λ࣋ͬͯ΋࢓ํ͕ͳ͍ ࠓ·ͰͦͷϓϩμΫτΛࢧ͖͑ͯͨ͜ͱ͸ࣄ࣮ ֶͿͱ͜Ζ͸ͨ͘͞Μ͋Δ

  21. νϟϯεΛଊ͑ɺ௅ઓ͢Δ ࣗ෼Λ஌ΓɺͰ͖Δ͜ͱΛ΍ΔɻଞਓʹཔΔ ಈ͘ίʔυʹ࠷େݶͷϦεϖΫτΛ ·ͱΊ