実務に役立つテクノロジーを見極めるために
デベロッパーズ・インサイト「最新技術の実践レポート」
目まぐるしく進化する技術の中で、実務に役立つテクノロジーを見極めることは重要です。このコラムでは、システム開発者として最新技術を試し、その利点や課題、対策を共有します。皆さんのプロジェクトに役立ててもらい、より良い開発を目指していただくことが目的です。
最新技術にはリスクもありますが、大きな可能性も秘めています。このコラムがその可能性を探る助けになれば幸いです。
Flutter攻略への道① 社内ポータルアプリ開発から始める次世代モバイル基盤構築
プロジェクトの概要
今回は私たちの部で取り組んでいる新しいプロジェクトについてお話しします。それは社内ポータルアプリの開発を通じて、次世代のモバイルアプリ開発基盤を構築するという挑戦です。
部署の背景と課題
私たちの部署は、Webアプリケーションやスマートフォンアプリの受託開発を主な事業としています。近年テレワーク主体の就業形態への移行に伴い、リモート環境下で社員同士のコミュニケーション不足が課題となってきました。
プロジェクトの目的
この課題に対応するため、部内向けのポータルアプリをスマートフォンアプリとして開発することを決定しました。しかし、アプリを作るだけでは不十分です。私たちはこの機会を活かし、今後のスマートフォンアプリ開発にも応用できる基盤構築をすることを目指します
基盤構築の重要ポイント
基盤構築にあたり、いくつかの重要なポイントを考慮しました。まず「部内メンバーで開発できる技術」であることです。チーム全体のスキルセットを活かし、効率的な開発を行うためには、メンバーが習得しやすい技術を選択する必要があります。
次に「開発コスト削減」も重要な要素です。限られたリソースの中で最大の効果を得るためには、開発効率を上げつつ、コストを抑える工夫が必要です。また「簡便な機能追加」も考慮しました。ビジネスニーズの変化に迅速に対応するためには、柔軟性と拡張性が求められます。
Flutterについて
採用技術:Flutter
これらの要素を総合的に検討した結果、私たちはFlutterを採用することにしました。Flutterは、Googleが開発したオープンソースのUIソフトウェア開発キットで、iOS、Android、Web、デスクトップアプリケーションを単一のコードベースから開発できるフレームワークです。
Flutterを選んだ理
・豊富なウィジェットによる迅速なUI開発
Flutterは多様な組み込みウィジェットを提供し、迅速なUI開発を可能にします。マテリアルデザインやCupertinoスタイルのコンポーネントを活用することで、複雑なレイアウトやアニメーションも効率的に実装できます。これにより、プロトタイピングから本番アプリケーションまで、UI構築プロセス全体が加速します。
・Dart言語の採用による学習曲線の緩やかさ
Flutterで使用されるDart言語は、JavaやJavaScriptに類似した構文を持ち、多くの開発者にとって習得が容易です。オブジェクト指向プログラミングの経験があれば、短期間でDartの基本を学び、Flutterでの開発を開始できます。静的型付けと動的型付けの両方の特性を持つDartは、柔軟なコーディングスタイルを可能にします。
・クロスプラットフォーム開発による工数削減
Flutterの単一コードベースによるクロスプラットフォーム開発は、iOSとAndroid両方のアプリケーション開発を効率化します。これにより開発工数と保守コストが大幅に削減され、市場投入までの時間短縮とリソースの効率的な配分が可能になります。
・ホットリロード機能を活用した迅速な開発サイクル
Flutterのホットリロード機能は、コード変更をリアルタイムでアプリに反映させ、開発者の生産性を向上させます。UIの調整やバグ修正を即座に確認でき、試行錯誤のサイクルが短縮されます。これにより、アイデアの素早い具現化とユーザー体験の迅速な改善が可能になります。
新技術導入の課題
新しい技術の導入には常に課題がつきものです。Flutterの学習曲線は比較的緩やかですが、チーム全体のスキルアップには時間がかかります。また、既存のネイティブアプリとの統合や、プラットフォーム固有の機能の実装には、追加の工夫が必要になる場合もあります。
これらの課題に対しては、段階的なアプローチを取ることにしました。まずは、基本的な機能を持つシンプルなポータルアプリを開発し、そこから徐々に機能を拡張していく予定です。また、定期的な勉強会やペアプログラミングを通じて、チーム全体のFlutterスキルを向上させていきます。
次のアクション
プロジェクトの意義
この社内ポータルアプリの開発プロジェクトは単なるアプリ開発にとどまらず、今後のアプリ開発の基礎となる重要な取り組みです。ここで構築する基盤は、今後の受託開発案件にも活用できる貴重な資産となるでしょう。
今後の予定
今後の予定として、まず基盤に必要な機能の洗い出し、次にそれを細分化して基盤の標準機能としてどれを載せていくかを検討します。それから必要な機能に対してどのようなアーキテクチャを用いて全体を構成するのかなどを順に決めていきます。