経歴のスタート地点
伊藤大輝さん(29)は、新卒で入社したBtoB SaaS企業でRuby on Railsを用いたバックエンド開発に従事してきた。担当領域は契約管理SaaSのコア部分で、REST APIの設計、PostgreSQLのスキーマ設計、N+1問題のチューニング、Sidekiqによる非同期処理――Webサービスの裏側を支えるあらゆる仕事を5年間積み上げてきた。
「同期から『DB設計のことなら伊藤に聞け』と言われるのは、ちょっと自慢でした」。社内では中堅エンジニアとして信頼を集め、後輩のレビューも担当する立場だった。しかし、その自信の領域はサーバーサイドに限定されていた。フロントエンドはVue.jsを軽く触ったことがある程度。モバイルアプリ開発に至っては、App StoreやGoogle Playの世界はほとんど未知の領域だった。
最初のつまずき
転機は2025年初頭、自社プロダクトをiOS/Androidに展開する計画が発表されたときに訪れた。会社はクロスプラットフォーム開発を選択し、フレームワークにFlutterを採用。「APIを叩く側もちゃんと知っているバックエンド出身者がいい」という理由で、伊藤さんがモバイル担当を打診された。
最初の壁はDartだった。Rubyの動的型付け・メタプログラミングに慣れ親しんだ手は、null安全と型システムに何度も止められた。「Future<List<User>?> みたいな型を見るだけで頭が痛くなった」。さらに苦戦したのはモバイルUIの設計思想だ。Webの感覚で画面を作ろうとすると、StatefulWidgetのライフサイクル、画面遷移のNavigator、状態管理のRiverpod――どれも独自の世界観を持っていて、サーバーサイドの設計知識がそのままでは通用しない。
MVPを2週間で作る計画は1ヶ月遅延した。コードレビューでは「これはWebの発想ですね」と指摘されることが続き、自信が揺らいだ時期もあったという。
転機 — モバイルチームへの異動
潮目が変わったのは、Flutterのアーキテクチャを基礎から学び直したタイミングだった。伊藤さんはまず『Flutter実践入門』でWidgetツリーとビルドの仕組みを叩き込み、続けて『プロフェッショナルFlutter開発』でルーティング・依存性注入・状態管理の選択肢を整理した。
そして決定的な手応えを得たのは、mobile-app-architecture 系の知識をRailsで培った設計力と接続できた瞬間だった。「ドメイン層・データ層・プレゼンテーション層という分け方は、Railsで自分がやってきたサービスクラス分割と本質的に同じだと気づいた」。レイヤード設計の語彙が共通であることがわかると、Flutterは急に「読める」コードになった。
Firebase AuthとFirestoreを組み合わせたプロトタイプを週末に個人開発し、半年後にはStoreにリリース。社内プロダクトでもチームのテックリードとしてアーキテクチャ提案を行うようになった。
いま振り返る選書
伊藤さんが最も価値を感じたのは、言語・フレームワーク・設計の3層を分けて学んだことだった。
- 『Dart入門』: 最初の1週間で読み切った。Null安全とasync/awaitを言語仕様レベルで理解できたことが、後のすべてのコードの読みやすさにつながった。
- 『Flutter実践入門』: WidgetとBuildContextの基礎を、写経しながら身体に入れた一冊。
- 『プロフェッショナルFlutter開発』: 状態管理・ナビゲーション・テストまで、実務で迷うポイントを網羅。リリース直前に何度も参照した。
- 『Mobile App Architecture』: バックエンドで培ったレイヤード設計をモバイルに翻訳する地図になった。
- 『Flutter × Firebase モバイルアプリ開発』: 個人開発の加速装置。認証とDBの基盤を1日で立ち上げられた。
「Railsの設計の知識は捨てる必要なんてなかった。むしろレイヤー分割の感覚があったから、Flutterの世界に早く馴染めた」と振り返る。
これから挑む人へ
「Webバックエンド出身者がモバイルに来ると、最初は『何もわからない』ように感じる。でも、設計の語彙を共通化できると一気に景色が変わる」と伊藤さんは語る。
彼の助言は3つ。第一に、フレームワークより先に言語を1冊仕上げること。Dartの基礎なしにFlutterを学ぶのは砂の上に城を建てるようなものだ。第二に、UI設計は「Webの常識」をいったん脇に置くこと。タップ領域、戻るボタン、画面遷移の慣習はモバイル独自だ。第三に、自分の強みを捨てないこと。バックエンドで磨いたAPI設計力やDB知識は、モバイルチームでも希少価値を持つ。
「2年後には、サーバーもアプリも一人で設計できるエンジニアとして、個人プロダクトをリリースしたい」。彼の挑戦はまだ始まったばかりだ。