カテゴリー
App

Multiplatform2

2 評価

 どのプラットフォームを採用すれば良いかはその時々で様々な見解に分かれますが常に念頭に置いておかなければならない観点をまとめます。

2.1 ネイティブ機能へのアクセス方法

 それぞれのプラットフォームはアプリを開発出来ると謳っていますが、どこまでネイティブ固有の機能を利用できるか承知した上で利用します。開発していく中で要件を実現できないことになっては大変です。無理してできたとしても予定外のコストが掛かってしまってはそのプロジェクトを成功には導けません。

C\C++

 OS自体がC/C++でできているのでネイティブ機能は全て利用できるはずですがそのアクセス方法が利用し易い形でまとまって公開されているわけでもないので難易度が高くまた、直接OSにアクセスするのでメンテナンスが大変です。高速処理が必要なOSに依存しないビジネスロジックをSDKなどの共通ライブラリとして利用するならば良いでしょう。

Flutter

Binding to native code using dart:ffi にあるようにネイティブ機能を呼び出せます。

KMM

 Connect to platform-specific APIs にあるようにネイティブ機能を呼び出せます。

Haxe

 アプリ開発の具体的な手順があまり載っていませんのでよくわかりません。OpenFL等の高機能なライブラリを利用して実装しC++に変換してからXcodeやAndroidStudioに取り込むのでしょうか?どの程度実用性があるかは試してみないと何とも言えないです。

カテゴリー
App

Haxe

 昔のことですが随分とActionScriptにお世話になりました。だいぶ廃れてきましたがHaxeとOpenFLという形になって生き続けていると思います。実務に活かせるかどうかわかりませんが追い続けていきます。

カテゴリー
App

Multiplatform1

 今注目しているMultiplatform開発環境は、
  C/C++
  Flutter
  KMM
です。それぞれ長所、短所があるので比較してみます。それとマイナーですが個人的な思い入れで
  Haxe
も一緒に比較します。

1 概要

C/C++
 PCでもスマホでも組み込み用のマイクロコントローラーでも開発できます。Emscriptenを使えばWebアプリでも大丈夫です。古い言語なので広範囲に応用されており修得している人材の幅が広いです。

Flutter
 ビューもコントローラーもモデルもDartで開発できます。FlutterもPCでもスマホでもアプリを開発できます。デザインを統一できるアプリ開発なら共通化のメリットを存分に受けられます。

KMM
 デザインパターンでいうモデルを両モバイルOSで共通化しビューはそれぞれのIDEで作成するというコンセプトです。KMMはKotlinで作ったモデルをiOSでも使えます。OSごとの特徴を生かし且つ少しでも共通化したいアプリ開発に向いています。

Haxe
 ActionScriptから発展したマルチプラットフォーム開発環境です。Flashの資産を使えるためアニメーションを多用するならばまだ選択肢になるのではないかと思います。

カテゴリー
KMM

Kotlin Multiplatform Mobile


 AndroidStudio + KotlinでiOSのアプリも開発できるのがKMMです。まだ正式リリースされていませんがベータ版でその実力を見ていきましょう。

https://developer.android.com/studio/preview

 Android Studio Preview releaseをインストールします。

 ConfigureでPluginをインストールします。

 Kotlin Multiplatformをインストールします。

 Projectを新規作成しKMM Applicationを選択します。

 Androidアプリをデバック実行します。

 Androidシュミレーターで無事に動きました。

 続いてiOSアプリをデバック実行します。

 iOSシュミレーターで無事に動きました。

カテゴリー
Flutter

Flutter


アプリをビルドできるまでXcodeをインストールします。CocoaPodsも必要です。

アプリをビルドできるまでAndroidStudioをインストールします。

AndroidStudioにDartのプラグインをインストールします。

AndroidStudioにFlutterのプラグインをインストールします。

あとは、
https://flutter.dev/docs/get-started/install/macos
の通りにインストールを行います。

flutter doctorを実行し以下のように問題が出なくなるまで設定します。

flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel master, 1.22.0-10.0.pre.142, on Mac OS X 10.15.6 19G2021,
    locale ja-JP)
 
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
[✓] Xcode - develop for iOS and macOS (Xcode 11.6)
[✓] Android Studio (version 4.0)
[✓] Connected device (1 available)

• No issues found!

Androidのシミュレーターを立ち上げてからデバック実行しました。

iOSのシミュレーターを立ち上げてからデバック実行しました。

 AndroidとiOSそれぞれシュミレーターでの実行ができました。mac mini 2014 1.4GHzでは起動まで結構時間がかかるので実機をつないで検証した方がいいと思われます。