hyoromoのブログ

最近はVRSNS向けに作ったものについて書いています

iOS/Androidアプリ開発時に感じた差異

先日「nicoマンガ」という非公式ニコニコ漫画サービスのビューアをAndroidでリリースしました。その時に同様な機能を実装したiOSアプリも作っていた事を前回のブログで書きました。

今まで誰かが作ったアプリを別プラットフォームへ移植、もしくは自分で作ったけど別プラットフォームにそのまま移植出来ないから大幅に仕様変更して移植は行なった経験はありましたが、ほぼ同じ機能を搭載したアプリをiOS->Androidと続けて開発したのは(たぶん)初めての経験でした。今回はその時に感じたことをメモ程度に書き残しておきます。

比較

この内容を考えてる時に思いついた事をつらつら比較してきます。実装やテスト内容に踏み込んだ比較はしません、書くのメンドウですしね。

項目 iOS Android
外部ライブラリ cocoa controlsサイトへ行けば大抵見つかる。探しやすいhubサイトの存在がアリガタイ 頑張ってググる
GitHubGoogle Codeに色々あるがノイズが多いし、たいていスクリーンショットが無くて見つけにくい状況。でも、iOSと違ってJava用として作られたライブラリも使える(全てではない)ため、探せば色々とある...が、UI系はない
断片コード ぐぐる
Qiita、GitHub、Stack Overflowサイト、個人ブログなどで見つかる。Stack Overflowでのヒット率が多い印象で、逆にGitHubでは少ない印象
ぐぐる
GitHubGoogle Codeサイト、個人ブログ、MLなどで見つかる。日本人のブログとMLによくヒットする気がする
仮想端末でのテスト シミュレータなので軽い 重すぎる。エミュレータの重さに絶望する
が、ここなどを参考に設定を良い感じにすると軽くなるようです。トラブルが発生するかもしれませんので、自己判断&責任でどうぞ
実機でのテスト 実機登録するフローは非常に手間だしトラブルが発生しやすいが、登録後はスムーズ 実機登録するフローは割りと簡単*1だが、登録後にしばしばadbで端末認識しなくなる事があってトラブル
IDE Xcode必須…だが別にコードは他を用意てもいいがXcodeとは切っても切れぬ関係 自由だー!!デファクトEclipse、自動でimportを追加してくれて素晴らしいなとXcode使ってると思ってしまう
UI実装 storyboardでの実装が楽。遷移が分かりやすいので実装時に遷移がブレにくい。デメリットは他storyboardからコピペ出来ないんで、他からの流用がし難い….そういうケースが多ければコードで書くかxibで書いたほうがいいのかもごめんなさい、勘違いでした。コピペできます I love xmlな人にオススメしたいくらいxmlをひらすら書くことになる。javaでも書けるが基本xmlで書くことになるだろう。
Graphical LayoutからGUIレイアウト出来るが、xmlで書いたものを少し確認する程度に踏みとどまるのが吉。メリットはコピペし放題なので他からの流用がしやすい
アプリ公開方法 全て英語、がんばって読んでください。項目は分かりにくい上にヘルプリンクなぞ無い、一度設定すると変更出来ない項目があるので事前に下調べが必要 日本語訳されている。分かりにくい項目にはヘルプがあり、文字数制限エリアにはカウンタがある親切設計
審査 ある
だいたい申請後に5営業日ほどで結果が返ってくる。クリティカルバグや、ガイドラインに違反してたらrejectされる
ない
でも規約に違反するようなアプリをリリースしてると、アプリが勝手に削除されたり。何度も繰り返していると垢BANされる。私のサブ垢で試したところ、3回アプリ削除された後に垢BANされた

まとめた感想

コードをゴリゴリ書き続けたいならeclipseたんが優秀なのでandroid、UIを綺麗に作って楽しむならstoryboardや外部ライブラリが豊富なiOSやってると良いんじゃなかろうか。
どっちも楽しめるお得感あるプラットフォームはWindows Phoneなんだけど、ユーザ数が少ないのでアプリリリースしても反応薄いってデメリットがある三竦み関係。。。ってオチで。

追記(2013/03/19)

  • 比較内容の「仮想端末でのテスト」項目上のAndroidに、エミュレータチューニングURLを追記
  • storyboardでプロジェクトをまたいでコピペ出来ないと表記していましたが、コピペ可能でした

*1:windowsでは地獄を見ることになる