search
LoginSignup
1

More than 5 years have passed since last update.

posted at

updated at

クロスプラットフォーム開発のフォルダ構成について

一人(+α)アドベントカレンダー3日目。
Kotlin+RoboVMで挑むクロスプラットフォーム開発試行錯誤。

本日は、フォルダ構成などについて(12/7 : 書きぶりが拙かったので更新)。
クロスプラットフォーム開発環境を導入しての開発に値するアプリの基本形は、共通ロジックが大きめのもの。
すなわち、以下の形:

└─ android
 └── src/main/kotlin etc../ここにandroid向けViewコード(含、通信周りのコード)
└─ core
 └── src/main/kotlin etc../ここに共通ロジックコード(ここに多めのコード)
└─ ios
 └── src/main/kotlin etc../ここにios向けViewコード(含、通信周りのコード)

今回取り組むKotlin on RoboVMでは、具体的にはこんな感じになっている:
(初期フォルダ構成:再掲載) : スクリーンショット 2015-11-27 7.12.57.png

共通ロジックの最終形はこんな想定:

└─ core
 └── src/main/kotlin or java or scala/
   └─ share
     └── 音声インターフェイス(複数言語対応)
     └── 知能ロジック(判断支援、操作アシストなど)
   └─ abst #共通的な抽象ロジックを実装
     └── インターネット通信抽象ロジック
     └── ローカル通信抽象ロジック(bluetoothなど)
     └── 永続化関係抽象ロジック(モデルなど)

永続化など、各プラットフォーム実装の共通化は難しいところの抽象ロジックをabst以下に書く。

Android Studioで開発する場合、開発はJavaや今回のKotlin などのJVM言語で行う。共通ロジック部分は適宜サーバー側とも実装を共有すべきだから、サーバー側と同一の言語で実装するのが良いと考える。このあたりはエンタープライズなサーバーがJVM環境での選択肢は広い。もちろん、SpringBootなどではKotlinで行くのもあり。自分の場合は、知能ロジック系(ML等)が強いscalaでの実装を主に考えたい。

本日はここまで。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
1