クロスプラットフォームでのiOS/Android開発

どうも、凡人です。
友人から、共同開発に誘っていただきました。

開発するにあたって、クロスプラットフォーム開発しようとなりました。AndroidとiOSの両方に対応したアプリを作成したいからです。


クロスプラットフォーム開発の利点を活かそう

クロスプラットフォームで開発すると、アプリの完成度が下がるという欠点があるみたいです。しかしそれぞれの環境を用意して開発しようとすると、AndroidとiOSの開発資産が別々になってしまいます。そして私がAndroidの実機を持っていない、友人がiOSの実機を持っていない。そのような理由から、クロスプラットフォームでやったほうがいいんじゃないかと。どうせ一緒にやるならば、同じ資産をいじりまわしたいものです。いつもの仕事仲間じゃない人とコードの共有とかちょっと夢でしたし。

「おいおいマイフレンド、ここはこう書いたほうがいいんじゃないか?」「hahaha!さすがマイフレンド!CoolなCodeになったぜThanks!」とかやりとりしてみたいじゃないですか違いますかそうですか。


ネイティブアプリとハイブリットアプリってなんだろう

iOSだったらObvective-C、AndroidだったらJavaで動くのがネイティブアプリ。HTML5などがWeb View等を通してアプリとして動作するのがハイブリットアプリ。たぶん。ネイティブ万歳。ハイブリットアプリ遅い。そんな印象。

このへんの言葉の認識は、人によって違うのかな?と、調べてて思いました。とりあえず、ここでは上記の意味合いで使っていきます。


開発環境の候補

どうゆう開発環境があるのか。調べてみました。

PhoneGap(開発環境ではなくフレームワーク)

有名なフレームワーク。友人がまず提案してくれたのがPhoneGapです。アプリ内にWebViewを内蔵。HTMLやCSS、JavaScriptで開発するためのフレームワークです。WebViewを使ってことは、ブラウザを使ったWebサイトアプリってことなんでしょうか。速度が遅いというのが問題らしいです。ハイブリットアプリ開発。
フレームワークなので、Android SDKとXcodeが必要になります。Xcodeだとプラグインみたいなのが入れるみたいです。Androidは開発環境を持っていないからまだ調べていない。それぞれの開発環境を用意するのが手間っていうのも欠点ですね。
もともとはNitobi社が開発していたのを、Adobe社が買収。今もAdobe社により提供されています。

PhoneGap Build

Adobe社が提供する開発環境。Web上でPhoneGapのビルド環境を提供してくれています。PhoneGapの開発環境構築の悩みを解決してくれます。無料版あり。 プロジェクトファイルをアップロードして、オンライン上でビルドする。なにこれ凄い。 言語はHTML5+CSS+JavaScript。

Monaca

PhoneGapのビルド環境を持つ、オンラインIDE。Webブラウザ上でコードを書き、ビルドすることができる。PhoneGap Buildはビルド環境だけなのに対し、こちらはIDEもあります。Webブラウザさえあれば開発できるというのは非常に魅力的。アカウント作成の必要があります。無料のプランもあり。
Visual StudioもオンラインIDEが発表されたし、これからこういう流れになっていくのでしょうか。言語はHTML5+CSS+JavaScript。

Titanium Mobile

Titanium StudioというIDEを提供してくれています。IDEはWindows,Mac,Linuxでインストール可能。もちろん無料。PhoneGapと双璧をなす感じで有名どころ。ドットインストールにレッスンがあったりします。言語はHTML5+CSS+JavaScript。
ビルド環境として、Android SDKとXcodeが必要。しかしIDEがOSを問わないというのはいいですね。

Delphi EX

有料なので、今回は採用しません。ですが、実はうちの会社でこれ使っていくことが決定しました。私はまだそのプロジェクトに入ってないのですが、確実に使うことになります。プロジェクト担当の先輩に聞いたところ、資料が少なくて苦労しているそうです。
言語はDelphi。Delphiで書いたコードをコンバートするので、ネイティブアプリ開発が可能だそうです。 ビルド環境として、Android SDKとXcodeが必要。


結論

MonacaかTitanium Mobileかなぁという感じです。
どちらも学習コストが低そうという利点がありました。Monacaには、公式サイトにサンプルアプリが公開されています。Titanium Mobileはドットインストールのレッスンがあります。どちらも本がそれなりに出ているようです。枯れた技術大好き万歳!
友人がお気に入りのHTML5やJavaScript用のIDEとかすでに持っているとなったら、PhoneGap Buildですかね。Phonegap Buildを使う場合も個人的にMonacaはIDEとして利用しようかなぁと。


あとがき

ハイブリットアプリの弱点が気になりました。「各OS依存機能が一部使えない」「遅い」ということです。複雑かつ各OSに最適なアプリを開発するには、結局のところネイティブコードで作るのが一番なのですね。

ただ、「各OS依存機能を利用しない」「処理が重くない」アプリを開発するのはハイブリットアプリでいい。今回の開発では、「勉強のためにサービスを立ち上げてみよう」という意味が大きいので、ハイブリットアプリという選択肢が最適かなと。必要になったらネイティブに移行すればいいですし。Xcodeの勉強はまぁぼちぼち続けて行くことになりそうです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax