ラベル iPhone の投稿を表示しています。 すべての投稿を表示
ラベル iPhone の投稿を表示しています。 すべての投稿を表示

2011-06-06

Whistle App: A Case Study of Smart-phone Development and Comparison

ホイッスル on Androidがそろそろ50,000ダウンロードに到達しそうなので、記念に(?)ホイッスル on Androidを題材としたレポートをアップしときます。本当はブログに本文をべたーっと貼りたいのですが(検索に引っかかるので)、うまい方法が見つからないので、とりあえずアブストラクトとインデックスだけ貼っておいて、中身はリンク先へ、という形でアップします。興味があればどうぞ(*)。

* 諸事情でノー添削ver.です。文章はかなりroughなので注意。

Whistle App: A Case Study of Smart-phone  Development and Comparison


Abstract

In order to clarify the insight of differences between Android and iPhone applications, this paper first introduces Whistle App, which is a smart-phone application that runs on both devices. And then, using it as a case study, this paper attempts to compare both de-vices in terms of UI components, resource managements, and markets. The other works not directly related to this paper yet helpful to write it are all attached as an appendix.


Index:
1. Introduction
  a. Background
  b. Why comparing with a case study
  c. What's Whistle App
2. Evaluation Environment, Resource, and Collaborators
  a. Evaluation Environment
  b. Resources
  c. Collaborators
3. Comparison
  a. UI Components
    i. Whistle on Android
    ii. Whistle on iPhone
  b. Resource Management
    i. Whistle on Android
    ii. Whistle on iPhone
  c. Market
4. Future Work
5. Conclusion
6. Acknowledgement
7. Reference

Appendix
  Multi-media Productions of Whistle App
  Reports on Whistle App
  Whistle on Titanium Studio
  Whistle Widget

Body:
https://docs.google.com/viewer?a=v&pid=explorer&chrome=true&srcid=0B2FvmcJSggmCZjhmMmUzM2UtZTRlNy00NTY0LWEzOGUtNmNkNGMyN2QyYmU0&hl=en_US

Whistle App in Android Market:
https://market.android.com/details?id=org.sorarier.whistle

2011-04-16

ホイッスルアプリがAppleからRejectされたので反論したが、再びRejectされるまでの経緯





追記:NGな内容が入っていたので、一部修正して再投稿しました。

エンジニアとしての生き方という本を読んで、自分も思考をまとめるためにブログの記事を書いてみようと思い立ち、早速、実験的に自分の思考をまとめてみたいと思います。今回まとめたい内容は、Android Marketにおいて1週間で10,000ダウンロード、一ヶ月で35,000ダウンロードを達成したホイッスル on Androidが、AppleにはRejectされてしまったよ、という話についてです。「こんなアプリはRejectされるよ」という1つの例として参考にしてもらえれば幸いです。

3月13日、かくかくしかじかの背景があって、友人らと共にホイッスルアプリのAndroid版とiPhone版を開発し、それぞれのMarketで同時に投稿しました。Android版のアプリは、特に問題なくAndroid Marketにアップロードされ、各レビューサイトやブログなどで徐々に注目を集めていき、最終的にはDoCoMo Smart-phone Loungeに展示されたり、Mobile ASCIIに載ったりするまでに至りました。


それなりに盛況だったAndroid版ホイッスルアプリでしたが、一方で、iPhone版の方はどうなったのかというと、App Storeにアプリを投稿した約1週間後に、AppleにRejectされてしまいました。

Rejectされた理由については、指摘してもらった項目がいくつかありますが、ポイントをまとめると、こういう意味になると僕は解釈しました。

   理由1. ホイッスルアプリはあまり役に立ちそうではない.
   理由2. ホイッスルアプリの価値は長く続かない(?).
   →したがって、App Storeには載せられない。

確かに技術的にはとても簡単なので誰でも作れそうなアプリではありますが、価値が長く続かなく、役に立たないかと言われれば、「本当に?」という疑問がありました。というのも、事実として、Android版のアプリではそれなりに人気があり、今もなおダウンロード数は伸びているからです。なので、次の論拠を元に、Appleの主張した理由1.に対して反論を試みてみました(理由2.については、文脈からそこまで重要ではないと判断したため、理由1.に対して重点的に反論)。

   1.1. ホイッスルは緊急時の生存確率を上げる
          (cf. 登山時の緊急用ホイッスルの存在).
   1.2. ホイッスルは常に持ち歩かないし, 緊急時に持っていないかもしれないが,
          iPhoneは常に携帯している→いざという時に使える可能性が高い.
          →ホイッスルをiPhoneアプリにする必要性
   2. 素早く簡単に音が鳴らせること, また, 災害時は節電が
     (ネット接続を試みたり, 重い処理をしないことが)重要であること.
       →機能をシンプルにした正当性
   3. Android版では(当時)10,000ダウンロード/週だったこと,
       かつ, アプリに対して肯定的なレビューがほとんどであったこと。
       →ユーザーがusefulだと思っている証拠。
  →したがって、ホイッスルアプリは役に立つ。

これらの論拠を元にAppleに問い合わせをし、さらに待つ事2週間。Appleから来た返事は、審査委員会によって再びRejectされた、という内容でした。詳細は省きますが、僕なりに意訳すると「ホイッスルアプリに簡単にアクセス出来るようにする理由は理解出来ました。しかし、もう少し追加機能があると、より良くなると思います。」といった理由で、ホイッスルアプリの承認はやはり出来ないそうです。

ちなみに、ここでいう"追加機能"とは、フラッシュライト、緊急用アイテム一覧、避難場所案内などの機能を指しているようです。しかし、これらの機能を実装しても承認は保証できないそうです(これは、審査した人と提案した人が違うので当たり前ですね)。

少々長くなってしまいましたが、こういった経緯があってホイッスルアプリのiPhone版はApp Storeには未だありません。今後、Appleが提案したような機能を実装して再びsubmitするかもしれませんが、現段階では未定です。すみません。仮にsubmitするとしても、少なくとも「ホイッスルアプリ」という名前ではないと思います。

最後に、今回の件で得た知識を僕なりにまとめると、

   1. 論理的な思考だけでは、Appleを説得出来ないかもしれない。
   2. シンプルすぎるor技術的に簡単すぎる機能は、審査を通らないっぽい。
   3. 問い合わせの返事は、1週間〜2週間の単位で見積もりましょう。

といった感じです。何か他に気付いたことがあれば、コメント等でお知らせしてもらえると嬉しいです。

うん、結構思考がまとまったような気がする。あと、こんな記事を書いてしまうと勘違いされそうなので、少し断っておきますが、僕はApple好きのマカーです。友人に勧めるLaptopは常にMacBookで、"Besides Mac!"と友人に言われたら、"Okay, then there is nothing I can recommend."と返してしまう人間です。

2011-04-14

Titanium Studio:3日で出来るiPhoneアプリ開発環境

噂のTitanium Studioを使って、iPhoneアプリ開発経験の無い僕が3日(金、土、日曜)で出来るところまでやってみました。作った物はImage-based Word Listといって、英語初心者および初級者向けの英単語学習アプリです。



このアプリは、与えられた英単語から、その英単語に関連する画像(flickr API)と定義(Dictionary.com API)、および例文をWeb上から取って来ます(Google Search API)。英単語を学習するモード(Learn)と、復習するモード(Review)、テストするモード(Quiz)の3つがあり、これらのモードを使い分けて、英単語を学習していくことが出来ます。

似たようなコンセプトのアプリとして、LinkedWordという辞書アプリがありますが、僕の作った物は辞書ではなく単語帳アプリです。なので、APIは同じか、もしくは似ている物を使っているはずですが、表示の仕方が異なります。

具体的な動作については、DEMO動画を取ったので、それを見て下さい。バグやら何やらも写っていますが、良いところだけ写すのもどうかと思ったので、取り直しはしていません。



Titanium Studioを使ってみた感想ですが、付属のKichenSinkというサンプルアプリ集がかなり秀逸で、それを参考にして作っていけば、かなりサクサクとアプリを作っていくことができます。また、デフォルトで背景が黒色、文字が白色なのも素晴らしいです。それと、未だ試していまませんが、CUIでも動くようです。これでオープンソースというのだから、驚きです。

TitaniumではAndroidアプリも作れるようなので、今度はアンドロイドアプリをTitanium Studioで作ってみようかと思います。今のところ、ホイッスル on Androidのウィジェット版が欲しいという声をちらほら聞くので、今週末は、その実装をTitaniumでやろうかと考えてます。

Image-based Word Listのソースコード
https://github.com/yasulab/Image-based-Word-List

なお、自作API用に使っている自サーバのメンテナンスコストが大きいので、Image-based Word Listアプリを公開する予定はありません。また、自サーバが動いていないと、WebView(画面下の表示領域)に何も表示されなくなります。

// もし自作APIをGoogle App Engineなどにうまく移植出来たら、公開するかもしれません。

How to run your iPhone App on Actual Device with Titanium Studio

iPhoneアプリ開発の未経験者の僕が、Titanium Studioで実機テストをしようとして少し躓いたので、ポイントをまとめておきます。

0. 実機テストに使用するiPhoneアプリを開発。

1. 次のページを参考にProvisioning Profileを作成する。

第9回 デバイスでアプリを動かす

2. Titanium Studioを開いて、左のペインにある右矢印アイコンをクリックし、iOSデバイスを選択



3. 1.で取得したProvisioning Profileをアップロードする。

4. Finishをクリック。(クリックすると、実機へのインストールが始まります。)

ちなみに、Xcodeを開いた状態で実機へのインストールを開始するとエラーが起こります。一度エラーが起こると、たとえXcodeを閉じて再び実機へインストールしようとしても、同じ場所でエラーが起こります。このときは、キャッシュをクリアしてあげれば良いです。

具体的には、buildファイル内のファイルを全て削除すれば良いです。ここにあるファイルはbuildする度に自動生成されるので、削除しても問題ありません。



Good luck!


2011-04-12

How to Use Custom Font in Titanium Studio



ちょっとやり方が特殊だったのでメモしておきます。

Titanium Studioのカスタムフォントの使い方:

1. http://www.fontsquirrel.com/などでフォントファイルを取得&解凍する。

2. 解凍したフォントファイルを/PATH/TO/PROJECT/Resources/に置く。

3. /PATH/TO/PROJECT/build/iPhone/Info.plistをコピーして、

4. /PATH/TO/PROJECT/にコピーしたInfo.plistをペーストする。

5. /PATH/TO/PROJECT/build/iPhone/以下のすべてのファイルを削除。

# 再ビルドでまた自動生成されるので気にしない。
# キャッシュをクリアするようなものです。

6. /PATH/TO/PROJECT/Info.plistを開く。

7. Add Itemをクリックし、”UIAppFonts”と入力。

8. 生成された"UIAppFonts"を右クリック->Value Type->Arrayを選択。

9. "UIAppFonts"の直前にある矢印アイコンをクリックし(フォーカスを移し)、その後同じアイコンを右クリック。

10. Add Rowを選択。

11. Item 0 が生成されるので、そのValueにフォントファイル名(e.g. "comic_zine_ot.otf")を入力。

12. Titanium Studio内の任意のコンポーネントでカスタムフォントを使用してみる。

例:
var customFontLabel = Ti.UI.createLabel(
{
     text:"Custom Font Test",
     top: 0,
     font:{
          fontSize:60,
          fontFamily:"Comic Zine OT"
     },
     width:"auto",
     textAlign:"center"
});
Titanium.UI.currentWindow.add(customFontLabel);

13. ビルド&実行してみて、うまく表示されれば成功です。

もしどこかでつまづいたら、次のサイトの動画を参考にすればよいかと思います。

Titanium Mobile: Displaying Custom Fonts

2011-04-11

Image-based Word List on iPhone with Titanium

昨日、偶然Titaniumに出会ってしまったので、即興でちょっとしたiPhoneアプリを作ってみました。flickr APIと自作API(例文検索API)を使ってますが、まぁ、あんまり期待したほど精度は良くないですね。しかもflickrのAPIはエラーが起きる始末w。


2011-03-13

ホイッスル on Android



友人達とホイッスルアプリを作成し、先ほどAndroid Marketに投稿しました。後日App Storeにも投稿される予定です。このアプリを作るきっかけはこんな会話でした。

今回の東北地方太平洋沖地震に対して、自分も何かできないか色々考えたんだけど、献血とか節電くらいしか思いつかなかったんだよね。色々調べてたら、どうやらホイッスルがあるとさ、生存確率がすごい上がるらしいんだよね。今回の被災者には役立たたないかもしれないけど、次回地震が起きた時に、一人でも助かればいいなと思って、ホイッスルアプリを作ろうかと思うんだけど、どう思う?

こんな話をしたのが、Android Marketに投稿する約10時間前のことです。すぐに開発に取り掛かりすぐにリリースする事が当初の目標だったので、Androidアプリ開発未経験者としては本当に作れるかどうか不安だったのですが、今までの経験とカンを頼りに、なんとか作り上げることが出来ました。これも、暇な時にGoogle App EngineやGoogle Web Toolkitなどで遊んでいたおかげかもしれません。

ホイッスル on Androidは、普通のホイッスルと同じ機能を実装しただけなので、機能はかなりシンプルです。中央のボタンを押すと大きなホイッスル音が鳴り続け、もう一度ボタンを押すと止まります。画面を見ずに操作出来ることを踏まえて、このような設計にしました。

# トップ画面のどこにこのアプリを配置するか、という事も同様に重要です。
# また、スリープ状態でも音は鳴るので、電池節約のため、
# 音を鳴らしたままスリープ状態にすることをオススメします。

起こらないに越した事はありませんが、万が一、二次災害や次の地震が起こったとき、このアプリが役立てばいいなぁ、と考えています。もちろん、普通のホイッスルとしての使い道もOKだと思います。何かの役に立てば幸いです。



デザイン: @migihiza


DEMO動画
--------------




以下、Android Marketから引用
========================

-----------------------------

ホイッスルは、災害時における生存確率を高めます。居場所が外部と遮断されてしまった場合、救助隊や近くの人に助けを求める時に役立ちます。ホイッスルを常に携帯する事がベストですが、必要な時に手元に無いかもしれません。本アプリ「ホイッスル」は、起動後、中央のボタンを押すと大きなホイッスル音が鳴り続け、1ボタンでON/OFFの操作が可能です。万が一に備えて、あるいは女性や子供の方への防犯としてもお役立てください。Android版/iPhone版の両方があります。

# 今回の東日本大地震を受け、製作しました。2011年3月の大地震で被害に遭われた方には心よりお悔やみ申し上げます。

また、本アプリへのご要望、ご意見はお気軽にどうぞ。

# iPhone版は現在審査中...


-----------------------
According to the rule of thumb in Japan, whistles help you survive after natural disasters such as Tsunamis and earthquakes. In particular, they will be beneficial in case that you cannot escape from collapsed buildings. However, it is not in practice to always hold a whistle for disasters that you cannot expect to occur. So, put it into your belongings, your smart phones. This will help you when accidents happen. Whistle on iPhone can be downloaded from App Store as well.


# Whistle on iPhone is being reviewed by Apple