iOSとAndroidの差異で一番気になっていたライフサイクルの違いを調べてみました。

とりあえず意味的に近そうな主要メソッドの対応表です。

漠然と AppDelegate=Application、ViewController=Activity と考えていたのですが 整理して見ると役割がだいぶ違うようです。

iOS では素直に AppDelegate=アプリ、ViewController=画面制御 と考えて良さそうですが、 Android では Application の役割が希薄で Activity=サブアプリ+画面制御 になっています。 ViewController は Fragment として考えたほうが良いのかもしれません。

モジュールの対比はこんな感じでしょうか?

iOS→Android の移植の場合には AppDelegate=Activity、ViewController=Fragment とするとシンプルに行きそうです。

Android→iOS の移植は難しそうです。複数の Activity を持つアプリの場合、 単純にマッピングできないのでケースバイケースで対応を考えるしかなさそうです。

Android は iOS をもっとパクっていると思っていたのですが基本的な考え方から異なるようですね。 アプリの根幹の部分の差異なので共通アプリを作る場合には設計時点で考慮しておく必要がありそうです。

所感

こんな情報はネットにいくらでも転がってると思っていたんだけど以外に見つからない。 iOSとAndroidの相互移植は頻繁に発生してると思うんだが...

思う所有って iOS の勉強を始めたのだが iOS の開発ってハードル高いよね。
まず Mac 買わなきゃいけない。 勉強目的なので Mac book は予算オーバーで mini を購入。

しかも、ユーザにはメモリ拡張すらさせないボッタクリ。 ますますアップルが嫌いになりますw