Objective-C / Storyboard / Android View → SwiftUI / Jetpack Compose

Objective-CとStoryboardが残っていて、新機能の見積もりが毎回膨らむ。あのアプリの話です。

SwiftKotlinAndroidCompose

iOS/Androidレガシー刷新支援

iOSのObjective-C / Storyboard、Androidの旧View/XML画面を、SwiftUI / Jetpack Composeへ段階移行します。

アクティブユーザー50万人超のアプリを運用しながら、iOSはObjective-C/StoryboardからSwift/SwiftUIへ、AndroidはXML/View/Fragment中心の画面からJetpack Composeへ、段階的に移行してきました。SwiftUI化した画面では、コード量が約1/3になり、AIに読ませるトークン量も約1/10に減りました。

高野政徳

高野政徳|CTO・CISSP

IoT追跡アプリMAMORIOを、iOS・Androidの両方で運用しています。RubyBizグランプリ2019特別賞受賞プロダクトの技術責任者です。

対象

  • Objective-Cが残っていて触れる人が少ない
  • Storyboardが複雑化して画面改修が怖い
  • AndroidのXML/View/Fragment画面をJetpack Composeへ移行したい
  • SwiftUIやComposeへ移行したいが、どの画面から手を付けるか決まらない
  • 古いモバイルアプリを保守しながら少しずつ近代化したい

Measured impact

数字で見る変化

対象画面のコード量

70%削減
移行前100SwiftUI化後30

Storyboardとロジックが分離した状態から、UIと状態を近い場所に寄せて改修コストを下げます。

AIに読ませるトークン量

90%削減
移行前100SwiftUI化後10

AIに読ませる対象が小さくなり、設計の把握、改修、レビューが速くなります。

提供内容

  • Objective-C / Storyboard の現状診断
  • Android XML / View / Fragment 構成の現状診断
  • Swift / SwiftUI、Kotlin / Jetpack Compose への段階移行計画
  • 画面単位・機能単位の移行
  • 既存機能を壊さないための確認項目整理
  • 小さな移行PRの作成またはレビュー
  • AI支援開発しやすいコード構造への整理
SwiftSwiftUIObjective-CStoryboardKotlinJetpack ComposeAndroid

契約と進め方

  • 提供者は高野政徳個人です。所属企業の公式サービスではなく、所属企業との利益相反はありません。
  • 適格請求書発行事業者(インボイス)として登録済みです。
  • 着手前にNDAを締結できます。最初の相談に、ソースコードや機密資料は不要です。
  • リポジトリや本番環境への権限は、必要な範囲と変更手順を合意してからいただきます。
  • 費用は、対象の規模と範囲を伺って個別にお見積もりします。内容・費用・日程の合意後に着手します。
  • フルリモートで対応します。

お受けしないケース

  • ネイティブからFlutter / React Nativeへの全面リプレース(別領域です)
  • ゲームアプリ(UIKit/SwiftUIではなく独自レンダリングが中心の場合)
  • フルタイム常駐
  • 競合となるBluetoothトラッキング製品のアプリ

30日スプリントの進め方

基本は30日単位のスプリントで進めます。30日で終わらない規模の場合は、振り返りのときに次の30日の範囲を決めて続けます。

Week 1: 現状診断

  • Objective-C / Storyboard / 旧View の残存マッピング
  • SwiftUI / Jetpack Compose への移行優先度の整理
  • 既存テストの状況確認
  • 移行順序の合意

Week 2: 足場固め

  • 移行対象画面の依存関係の切り出し
  • ビルド設定・モジュール構成の整理
  • 既存機能を壊さないための確認項目作成

Week 3: 最初の画面移行

  • 優先度の高い画面のSwiftUI / Compose化PR
  • レビュー観点の整理
  • AI支援開発時の動作確認

Week 4: 本番反映と引き継ぎ

  • 段階リリース
  • 振り返りと、社内で同じ移行を続けるためのガイド作成
  • 次の30日で扱う画面の提案

対象アプリの規模・OS別の優先度に応じて配分を調整します。

相談する

対象アプリのOS、画面数、現状の技術負債、希望スケジュールを書いて送ってください。わかる範囲で構いません。初回の返信で、30日で進められる範囲を整理してお返しします。

Googleフォームで相談する

相談を送るだけで契約にはなりません。パスワードや秘密鍵、顧客の個人情報は送らないでください。

問題が3領域にまたがるとき

Rails、モバイルアプリ、登録・決済導線を私がまとめて見る、統合改善プランもあります。担当者間の伝言ゲームを減らせます。

統合プランを相談する