LoginSignup
1
1

More than 5 years have passed since last update.

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

Last updated at Posted at 2015-12-02

一人(+α)アドベントカレンダー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での実装を主に考えたい。

本日はここまで。

1
1
0

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
  3. You can use dark theme
What you can do with signing up
1
1