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

7年開発/運用が続くkencom iOSアプリの全面的リファクタリング【DeNA TechCo...

DeNA_Tech
March 02, 2023

7年開発/運用が続くkencom iOSアプリの全面的リファクタリング【DeNA TechCon 2023】

youtube:https://youtu.be/ExbncjhxfMM

概要:
kencomは7年以上開発・運用が続いている、ICTを活用したヘルスケアエンターテインメントアプリです。2022年の春から夏にかけて大きくリファクタリングしました。
2022年春の時点では、合計24人のコントリビュータがいるkencomのiOSアプリのコードは秘伝のタレ状態になっていて、不要なライブラリも多数残ったままになっていました。
そこで私達はRxSwiftやRxCocoaをCombineに置き換えたりしながら不要なライブラリのほとんどを断捨離しました。
このセッションでは実際に行った取り組みの詳細について紹介します。

登壇内でのリンク集:
p3, https://kencom.jp

◆ チャンネル登録はこちら↓
https://youtube.com/c/denatech?sub_confirmation=1

◆ Twitter
https://twitter.com/DeNAxTech

◆ DeNA Engineering
https://engineering.dena.com/

◆ DeNA Engineer Blog
https://engineering.dena.com/blog/

◆ DeNA TechCon 2023 公式サイト
https://techcon2023.dena.dev/

DeNA_Tech

March 02, 2023
Tweet

More Decks by DeNA_Tech

Other Decks in Technology

Transcript

  1. kencomとは • https://kencom.jp/ • 2015年10月にv1.0.0をリリース • 楽しみながら健康になれることを促す • 健康保険組合・自治体などの団体に対 して販売を行っている

    ◦ 団体に所属している人だけが使える • 健康診断の結果の閲覧、健康状態に応 じた記事のレコメンド、歩数データの 管理などができる 3
  2. • 1st commit:2015年6月5日 • 1st release:2015年10月8日 • 基本的には100% swift •

    短期間での開発のためか初期から負債が蓄積された状態 ◦ Realmを使っているが不安定で壊れたりしていた(その後に削除) ◦ FatViewController、FatStoryboard ◦ ViewController内でviewの位置調整などを多数やっている kencom iOSアプリの開発の履歴 7
  3. • 現時点で24 Contributors • 大規模なアプリの機能改修は今まであまりなかった • その結果、秘伝のタレコードが多数発生 • 以下のような課題が発生 ◦

    提供する機能要件に対して不必要に多いコード量 ◦ 現在では不要になった多数のOSSのライブラリ ◦ 結果としてビルド時間が長くなってきた kencom iOSアプリの開発の履歴 9
  4. • その他の断捨離について(一部) ◦ SwiftDate → あまり使ってなかったので標準のDateの実装に書き換え ◦ Appirater → レビューのタイミング調整にだけ使ってたので削除

    ◦ XCGLogger → ほぼ使ってなかったので削除 ◦ PKHUD → 自前のローディング画面に置き換え ◦ Device → 更新されてなかったので削除 ◦ SwiftyDrop → 自前のViewに書き換え プロジェクト全体のスリム化 29