システム方式に関する事項
システム方式に関する事項は政府公開のデジタル・ガバメント推進標準ガイドラインに照らし合わせると以下となります。
クラウドサービス、ハードウェア、ソフトウェア、ネットワーク等の情報システムの構成に関する全体の方針等の案について記載する。
本項では、このアプリのシステム方式に関する要件として、以下の事項を定義します。
要件内容
- フレームワーク選定方針
- アプリ方式について
- ネイティブアプリとクロスプラットフォームアプリ
- このアプリで採用する方式
- クラウドサービス・ソフトウェア製品の活用方針
フレームワーク選定方針
このアプリでフレームワーク採用する場合、以下の要件を満たしていることを確認します。
- 当該フレームワークの保守および技術サポートの調達が困難でないこと
- 当該フレームワークのライセンス条項によって採用後に訴訟リスクなどが生じないこと
アプリ方式について
ネイティブアプリとクロスプラットフォームアプリ
モバイルアプリケーションのシステムアーキテクチャとしてネイティブアプリとクロスプラットフォームアプリがあり、それぞれにメリット・デメリットがあります。 ここではその2つのシステムアーキテクチャについて記述します。
ネイティブアプリ
ここでの「ネイティブアプリ」は、AndroidであればKotlin/Java、iOSであればObjective-C/Swiftで開発というようにプラットフォーム専用に開発したアプリを指します。 この方式を採用した場合のメリット・デメリットは以下になります。
- メリット
- 専門エンジニアの在籍状況によっては後述する「クロスプラットフォームアプリ」よりも生産性が高いとされる
- デメリット
- Android/iOS両方にアプリをリリースする場合プラットフォームそれぞれで開発が必要になる
- 上記理由によりAndroid/iOS両方に対応したアプリを開発する場合、単純計算で2倍の開発工数がかかる想定となる
クロスプラットフォームアプリ
特定の開発フレームワークを用いて開発し、1つのソースコードでAndroid/iOS共に動作するアプリのことをここでは「クロスプラットフォームアプリ」と称します。 この方式を採用した場合のメリット・デメリットは以下になります。
- メリット
- Web技術をベースにしたフレームワークもあるため専門エンジニアが少なくても生産性が確保できる
- ソースコードはフレームワークによって一本化されるためプラットフォームそれぞれで開発するより必要工数の削減が期待できる
- デメリット
- OSバージョンアップによってフレームワーク側で問題が発生した場合、フレームワークの対応を待っての修正となるため問題の即時対応できない場合がある
- ネイティブ機能に関連した開発とリリースビルドはそれぞれの環境で行う必要があるため、ソースコードの完全な一本化はできない
このアプリで採用する方式
このアプリでは「クロスプラットフォームアプリ」を採用とします。これは以下の点を考慮し検討した結果となります。
- Web技術をベースにしたフレームワークもあるためSI事業者に多く在籍している既存Webエンジニアでの対応が可能
- ネイティブ機能以外は開発を1本化できるためAndroid/iOS共にリリースする前提とした場合、開発工数の削減が見込める
クラウドサービス・ソフトウェア製品の活用方針
このアプリでクラウドサービス・ソフトウェア製品を導入する場合、以下の要件を満たしていることを確認します。
- アプリケーションプログラムの動作、性能等に支障を来たさない範囲において、可能な限りOSS製品を活用する
- ただし、それらのOSS製品のサポートが将来に渡って継続され、ライセンス面で問題ないことが確認できていること