Android と iOS でどの程度コードを共通にできるのか?
2018/11/14 - moriya - ~2 Minutes
先日、知人から、Android、iOS 開発の案件をいただいた。
Android 用のデモバージョンがあったのだが、ある機能をライブラリ化したいということだった。その後、iOS 版も作ることになった。
Android 版の構成は、エンジン部分が C++ で書かれており、そのライブラリを コンパイルしてネイティブコードにしたもの(shared object)を、JNI (Java Native Interface) を使って java から呼び出すという構成になっていた。
これを iOS に持っていくのは大変なのか?と思ったが、C++ で書かれたエンジン部分は、色々調整はしたものの、基本的には xcode に C++ のソースコードを登録するだけでよかった。iOS はネイティブコードなので、コンパイル、リンクできればよいのだろう。
複雑なロジックを Android/iOS 両方で使う時は、Android 用に java コードを、iOS 用に swift コードを用意するのかな、と思っていたが、共通の部分を C/C++ で作っておくと、どちらにも対応できて嬉しいのではないだろうか。私は、C/C++のロジックは、PC上で簡単に検証できるのも嬉しい点だと思う。
そろそろ、C や C++ は使わなくてよくなったのかと思っていたが、スマートフォンアプリで使う場面があったのが、少し意外だったので投稿することとした。
自分は、これまで、サーバ側の構築が主だったが、スマートフォンアプリも作ってみたいと思っていた。ネイティブで開発する場合に備えて swift を、WEB で対応する場合に備えて cordova や vue.js のドキュメントを流し読みしたり、試したりしていたので、少しは予備知識があった。そのため、受託できてよかった・・・