関西アンカンファレンスの最近のブログ記事
iPhoneアプリを作る10の方法 - もぎゃろぐを比較表にしてみた。
iQueryMobileは、jQtouchと同じ仕組みでUIをつくってくれるんだけど、iPhoneではなくて、スマートフォン全般をターゲットにしたUIになるので、△にしてある。
jQTouchは、画像を使って頑張ってiPhoneぽい見た目を再現してくれるんだけど、同じものではないから、テキストボックスをタッチしたときに開くキーボードの種類とか、チェックボックスをタッチしたときの動きとか、微妙な部分ではどうしても普通のアプリとちょっと違う動きになってしまう。
この違いを埋めようとし始めるとものすごく大変な開発になってしまうから、そんなことをするくらいならネイティブUIを使える環境を選ぶべき。そういう事は気にしない、見た目が同じであればいい、ということであればjQTouchがお手軽で便利です。
×になっている環境でも、例えばGPSとかsqliteデータベースは、HTML5の機能で使うことができる。でも、例えばデータベースに最初からデータを入れておきたいとか、カメラで撮影した写真をサーバに上げたいといった機能を実現するためには、ここが◯になっている環境である必要がある。
Packager for iPhoneは、原理的にはカメラだって使えていいはずなんだけど、この記事を書いた時点ではまだ対応出来ていない。
| デザイナさん? | iPhoneぽいUI | ネイティブUI | カメラやファイルアクセス | AppStore | |
| HTML/CSS/JS | 可能 | X | X | × | X |
| jQTouch | 可能 | ◯ | X | × | X |
| jQuery Mobile | 可能 | △ | X | × | X |
| SenchaTouch | 難しいのでは | ◯ | X | × | X |
| PhoneGap | まだマシ | 自前 | カメラなどごく一部 | ◯ | ◯ |
| Flash(Packager for iPhone) | ありうる | X | X | △ | ◯ |
| Titanium Mobile | たぶん無理 | ◯ | ◯ | ◯ | ◯ |
| MonoTouch | 無理 | ◯ | ◯ | ◯ | ◯ |
| ObjectiveC | 無理 | ◯ | ◯ | ◯ | ◯ |
説明
デザイナさん?
普段PC向けや携帯向けWEBサイトの制作をしているデザイナさんでも扱いきれるかどうか。もちろん、デザイナさんにもピンキリあって、C#をバリバリ書くデザイナさんがいないとは限らないんだけど、そんなのは(ryiPhoneぽいUI
ON/OFFがスライドするチェックボックスとか、右端に矢印のついたリストとか、そういうiPhoneぽい見た目のUIを実現する仕組みがあるかどうか。iQueryMobileは、jQtouchと同じ仕組みでUIをつくってくれるんだけど、iPhoneではなくて、スマートフォン全般をターゲットにしたUIになるので、△にしてある。
ネイティブUI
「iPhoneぽいUI」に近いんだけど、iOSが持っているネイティブのUIを使うかどうか。jQTouchは、画像を使って頑張ってiPhoneぽい見た目を再現してくれるんだけど、同じものではないから、テキストボックスをタッチしたときに開くキーボードの種類とか、チェックボックスをタッチしたときの動きとか、微妙な部分ではどうしても普通のアプリとちょっと違う動きになってしまう。
この違いを埋めようとし始めるとものすごく大変な開発になってしまうから、そんなことをするくらいならネイティブUIを使える環境を選ぶべき。そういう事は気にしない、見た目が同じであればいい、ということであればjQTouchがお手軽で便利です。
カメラやファイルアクセス
カメラ機能や、iOSのファイルシステム上にファイルを保存するといったことができるか。×になっている環境でも、例えばGPSとかsqliteデータベースは、HTML5の機能で使うことができる。でも、例えばデータベースに最初からデータを入れておきたいとか、カメラで撮影した写真をサーバに上げたいといった機能を実現するためには、ここが◯になっている環境である必要がある。
Packager for iPhoneは、原理的にはカメラだって使えていいはずなんだけど、この記事を書いた時点ではまだ対応出来ていない。
AppStore
作ったアプリをAppStoreで販売してもらうことができるかどうか。 AppStoreで販売できないのはひとつの弱点だけど、AppStoreに登録するためにはAppleの審査が必要だったり、バージョンアップに時間がかかったりしてしまうので、場合によっては、ブラウザで動かせる他の環境を使って気軽にユーザーさんに使ってもらうという選択肢もアリだと思います。
第2回関西アンカンファレンスでしゃべってきました。
(2011-01-15追記)動画が公開されました。
友達に頼む
- 技術的詳細を知らなくても機能を実現することが出来る
- 愛と勇気しかお友達のいない方には向かない
- レベニューシェアという手もあるよ
プロに頼む
- lancersオススメ。過去の履歴が残るので発注価格の参考になる
- 普通に発注すると、バージョンアップのたびに開発費用がかかる点に注意
ObjectiveC
- Appleが認める正式な開発言語
- なんでもできるから、これで開発できる人はそうするのが一番
- めんどくさすぎだろjk...
Flash
- FlashCS5からiPhoneアプリを作ることができる
- デザイナさんとかは、Flashから入れるのでわかりやすいかも
- 一度Appleの規約改正でNGにされた。その後再改正されて、現在は通るらしい。
- でも、正直いつまただめになるかと思うと不安で不安で・・・
HTML+CSS+JavaScript
- iPhoneブラウザで見てもらう
- 普通のWEB開発の延長線上にあるので入りやすい
- GPSやローカルキャッシュなど、HTML5の機能も使える
- カメラとかファイルアクセスはできない
- iPhoneぽいUIにするのは大変
- AppleStoreに登録することはできない
- モバイラーズオアシスのiPhoneサイトはこの手法で作られています
- 技術的詳細は、iPhoneアプリケーション開発ガイド ―HTML+CSS+JavaScript による開発手法
にだいたい書いてある
jQTouch
- iPhoneブラウザで見てもらう
- 1ページに複数ページの内容を書くなど、ちょっと違うけどまだまだ普通のWEB開発の範疇
- HTML+CSS+JavaScriptでできること(GPS,ローカルキャッシュなど)は当然できる
- カメラとかファイルアクセスはできない
- iPhoneぽいUIにすることができる
- AppleStoreに登録することはできない
jQueryMobile
- みんな大好きjQueryをつかって、iPhone/Android/SymbianなどのブラウザでUIを実現しよう
- まだベータ版。今月あたりに正式リリース?
- 理屈上は、JavaScriptすら動かない環境でも見られるサイトになるそうだけど、その割にjQueryをロードしないといけないとか、正直まだよくわからない
- jQTouchに比べて、幅広い環境で動くらしい
- JavaScriptなので、カメラとかファイルアクセス、AppStoreはNG。
SenchaTouch
- iPhone/Android向けライブラリ
- jQTouch以上にリッチなUIが実現できる
- キャンバス描画ができるので、ソリティアみたいなゲームも登場している
- HTMLとCSSもつかうけど、bodyタグ空っぽのところに、JavaScriptで部品を挿入していくプログラミングスタイル。デザイナさんには厳しいかも。
- JavaScriptなので、カメラとかファイルアクセス、AppStore登録はできない
PhoneGap
- WEBページをiPhoneアプリにしてくれる仕組み。WEBKitブラウザを使って表示する
- カメラとかファイルアクセスのためのAPIも用意してくれる
- UIはjQTouchと組み合わせるのが一般的だと思う
- 当然、AppStore登録が可能
TitaniumMobile
- mogyaイチオシ!
- JavaScriptでプログラムを書くと、iPhoneとAndroidのプロジェクトに変換、ビルドしてアプリを作る
- PhoneGapのようにWebKitでHTML,CSS,JavaScriptのページを使うことも可能
- カメラやファイルアクセスのためのAPIも用意されていて使うことが可能
- AppStore登録も可能
- HTMLやCSSは出番が無くなって、完全にJavaScriptプログラミングの世界なので、デザイナさんとかは無理だと思う
一応、PhoneGapみたいな使い方もできないことはない
あと、発表後のQAで、.NET FrameworkをつかってiPhoneアプリを作るMonoTouchというのもあるよ、と教えていただきました。
今軽く見た感じだと、TitaniumMobileよりもっとObjectiveCよりで、ObjectiveCの開発環境から言語がC#に置き換わった、という感じでしょうか。開発環境が有償なのが注意点になりそうですね。
(2011-01-15追記)動画が公開されました。
関西アンカンファレンスに行ってきました。
「HTML5で作るiPhoneアプリケーション」というテーマで、モバイラーズオアシスiPhone版を作る課程でわかったノウハウのお話をさせていただきました。
「HTML5で作るiPhoneアプリケーション」というテーマで、モバイラーズオアシスiPhone版を作る課程でわかったノウハウのお話をさせていただきました。