最近流行りのニュースアプリの動画版をリリースしてみた
どうも。
先日の記事が700はてブを越え、多くの方に見て頂いて色々な反響があり、嬉しく思っています。
ところで、先日あるiPhoneアプリをリリースしました。
簡単に説明すると、最近流行りのグノシーや、SmartNews、Antenna、カメリオなどニュースキュレーションアプリの動画版といったところでしょうか。この中ですとカメリオの動画版というのが一番近いかもしれません。
3月の終わりにふと作ってみようとおもって開発を進めてきたので開発期間は1ヶ月ちょっとでしょうか。
以下がリリースしたアプリです。
https://itunes.apple.com/jp/app/livi-anatano-haokina-dong/id869487151?mt=8&uo=4&at=10l8JW&ct=hatenablog
作ろうと思ったきっかけ
- 通学中や時間が空いた時になにか動画を見ようとした時に検索ワードが思いつかない
- グノシーのように自分にあった動画を配信してくれるアプリが欲しかった
- 最近動画系サービスが勢いを増しつつある
- YouTubeのリコメンドが微妙だった
みたいな感じです。良かったら使ってみてください。
まぁでも普通にYouTubeのアプリでいいじゃん、という話なんですが、リコメンドが微妙であったり、たとえば好きなアーティストの動画を見たいときに、毎回検索するのでは面倒だなーと思ったのも大きいです。
あと、能動的にでなく、受動的にだらだら動画を見続けたいと思ったのも同じく大きいです。
技術的な話
基本的にはYouTubeのAPIを使って動画の情報を取得しています。
アプリ側から直接YouTubeのAPIを叩いているのではなく、Herokuにおいてあるサーバーにリクエストをして、自分にあった動画の情報を返しているという感じです。
サーバーでは1日に2回YouTubeのAPIを叩いて動画情報を取得しています。
今はYouTubeだけですが、今後は他の動画メディアにも対応できたらなーと考えています。
その他
Appleに3回リジェクトされてなんとかリリースできました。
レビュアーが毎回違うのか、「これを直せ」と言われて直すと「ここがダメだ」と違う箇所を指摘されるなどまぁ大変でした。
最終的にリジェクトされた後に抗議したところふつーに審査に通過してリリースすることが出来ましたのでリジェクトされまくってる開発者の方は一回抗議してみたらいいんじゃないですかね。
大学生が約3年間WebアプリとiPhoneアプリを合計16個リリースして感じた10個の事
どうも。
何か情報発信をするべきなんじゃないかとふと思って久し振りに記事を書こうと思います。
ところで、私は大学1年生だった2011年の6月からWebアプリとiPhoneアプリを開発してきて、今までに16個のアプリをリリースしてきました。
内訳ですがWebアプリが10個、iPhoneアプリ6個で合計16個です。個という単位があっているのかはわかりません。
開発を始めたのは2011年6月で、2011年の3月にとあるWeb系の会社でアルバイトしていた時に「あ、Web楽しい」って思ったのがきっかけで、Webアプリ、そしてiPhoneアプリを作ってきました。
それまではWebといえば、しょぼいHTMLとしょぼいCGIくらいしか書けませんでしたし、あまり興味がありませんでした、というより自分にはできないと思ってました。
ずっとそれまではネットワークとかセキュリティが好きでちまちまPythonでスクリプトを書いていたりしたのですが、Webでもバリバリ使えるのでDjango/Flask/webapp(GAE)とかで今もサーバーサイドを書いてます。
MacのSublime Text2でHTML/CSS/JavaScriptが書きたいけど、サーバサイドはMacで動いてないからそうもいかない件
Webアプリケーションを開発するときに私はMacでVMwareを起動させて、その上のUbuntu ServerにMacのiTerm2からsshで作業をしていて、その時にMacとVMの間にsshトンネルを掘ってvimでコードを書いてはMacのChromeから動作を確認する感じで作業してました。
Sublime Text2でHTML/CSS/JavaScriptが書きたいので、Sublime Text2のSFTPプラグインを使ってVM上のファイルを編集していたのですが、どうも使い勝手が悪いのと、プロジェクトで管理できないのでLiveReloadが使えないことが分かりました(自分の使いかたが悪かっただけかもしれない)。
次にVMwareの共有フォルダの機能を使って、Mac上のあるフォルダをVMのサーバーと共有させたのですが、これもいろいろあって(略)使えない(使いにくい)ことが分かりました。
そこでVagrantの共有フォルダを使うと作業が捗ることがわかりプロジェクト毎にvagrant upすることにしました。
おわり。
SpiderMonkeyをUbuntuにインストールする
jsを書いている時にFirebugをよく使うのですが、行数が多くなってくると結構辛くなってきます。
なので、適当にindex.htmlを作ってみたいにjsの確認をするのにhtmlとか作るのだるいので、コンソールからjsが実行できるようにSpiderMonkeyをUbuntuにインストールした時のメモ。
debianだとリポジトリにあるのでインストールがapt-getとかでできるそう。
ちなみにSpiderMonkeyはFirefoxのJavaScriptエンジン。
$ wget ftp://ftp.mozilla.org/pub/js/mozjs17.0.0.tar.gz $ tar vfx mozjs17.0.0.tar.gz $ cd js/src $ ./configure $ make $ sudo make install
jsとタイプしてコンソールでれば完了。
エンジニアインターンでインタビューされました
こんな自分ですが、エンジニアインターンというサイトでインタビューされたので、お時間ある人は読んでいただけると嬉しいかもしれないです。
エンジニアインターン WebサービスやiPhoneアプリを開発してみたい学生必見!理系大学生坂本 蓮さんインタビュー
iPhoneアプリ開発を初めて3ヶ月の初心者が、AppStoreのランキング最高43位をとるまでの話。
どうも。
ちょっとタイトルに釣り要素があるのですが、AppStoreのゲームのファミリーとキッズのジャンルで最高43位を取った話です。
一見凄そうなタイトルですが、たいしてすごくないです 。
実際にやったこと、工夫したことを書きます。
先日ちょっーとだけ話題になった一ヶ月でiPhoneアプリをリリースした話はこちら
最高43位を取ったアプリはこのシャーペンマスターというゲームです。
アイデアがなければ何も始まりませんね。
私はユーティリティ系のアプリはほとんど諦めていて、ゲームにしぼっているのでちょっとでも「あ、こういうの面白いかも」とか思いついたらまずEvernoteに書いています。
寝る前によく思いつく事が多いのですが、その時点でEvernoteとかなにかしらメモをとっておかないと、朝起きた時にはアイデアもアイデアを思いついたことすらも忘れている場合が多いです。(自分だけかな..
ちなみに開発が追いついていないので、アイデアだけなら30くらいあります。
技術力がないのと、実装が面倒くさいのは嫌なのでシンプルで実装しやすそうなゲームにしました。
あとは、思わず何回もプレイしたくなるような仕掛け作りを入れたりするとなお良いとおもいます。起動回数が多ければ広告表示回数も多くなるので。
仕様
開発は一人なのでがっちりとした仕様ではなく、簡単な仕様を決めました。
今回のアプリの場合だと、シャーペンを何種類用意するのか、どれくらいの難易度を設定するのかなどですね。
マネタイズ
あと、マネタイズというのかわかりませんが、広告がいいのか、アプリ自体を有料にするのかなども決めておきます。
広告に向いているアプリは起動回数が多いアプリだと思うので、ゲームのような暇つぶしアプリは広告に向いているとおもいます。
逆に広告に向いていないアプリは、ユーティリティ系かなーと思います。(起動回数が少ない)
開発
実際にアプリを作っていきます。
Objective-Cの基礎は理解していたので、この前の記事で触れたcocos2dの勉強をしました。
cocos2dを使えば、かっこいいトランジション、画面遷移、アニメーションがとても簡単にできるので便利です。UIKitでこれを実現しようとするとかなりメンドイです。
実装は合間合間をぬって2週間くらい。
デザイン
私の場合、アプリはデザイナーと二人で作っているのですが、デザインが仕上がるまでは自分でかいたお粗末なデザインで枠組みを作っておいて、あとでデザイナーに書いてもらったデザインに差し替えるみたいな感じでした。
デザインが仕上がったら簡単に差し替えられるロジックにしておきました。
iPhoneユーザはデザインにたいしてとてもうるさいので、デザインはかなり大事です。
1タップでも少なく設計する、1つの画面に多くの機能をつめ込まないなどユーザーエクスペリエンス的なことも考慮しました。
レビュー画面に誘導させる
AppStoreのレビュー、大事ですよね。
評価によっては「やっぱダウンロードするのやめよ」とか、「評価がいいからダウンロードしてみるか」とか思うのではないでしょうか。
シャーペンマスターの場合は、起動回数をUserDefaultというiPhoneのシンプルなDBに保存してあり、ある回数まで起動回数がいくと「レビューしてください!」てきなアラートを出すようにしています。
何回かアプリを起動してくれているということは、このアプリを気に入ってプレイしてくれているということなので、レビューを書いてくれるかもしれません。
Twitterとの連携
アプリの宣伝を勝手にユーザがしてくれたら嬉しいですよね。
ゲームの結果などをTwitterに投稿できるようにすれば、そのツイートをした人のフォロワーさんがURLをクリックしてアプリをダウンロードしてくれるかもしれません。
友達にアプリを評価してもらう
自分の作ったアプリを友達などに遊んでもらいました。
「〇〇がちょっと気に食わない」
「動作がおそい」
など、自分とは違う目線で意見をもらってアプリに反映させました。
宣伝
AppStoreにリリースしただけでも、そこそこダウンロードはされるのですがもっとたくさんの人に遊んでもらいたいですよね。
ということでレビュー依頼を結構だしました。
実際にレビューを載せていただいたのは
ありがとうございます。
やはりメディアの影響はかなり大きくてダウンロード数が跳ね上がりました。
特にAppBankさんの影響力マジパネェっす..
利益
うーん、まずまず。
1日あたり牛丼が一杯食べれるかくらいの利益が入ってきますが微妙ですね。
admobを使っているのですが、単価が低いのがちょっとアレですね。
次のアプリはもっとランキング上位狙いたいです。
おすすめリンク
Debianでinsservを使って起動時に実行されるスクリプトを登録する
Debianの起動時にgunicornでアプリを起動させたかったので、メモ。
環境はDebianの6.0.5。
どうやら最近のdebianでは、update-rc.dコマンドを使って起動スクリプトを登録するのは推奨されていないらしい。
update-rc.dを実行すると、以下のようなメッセージがでてくる。
update-rc.d: using dependency based boot sequencing
なので、insservコマンドを代わりに使う。
予め、起動時に実行させたいスクリプトを/etc/init.d/に移動させておく
mv hoge /etc/init.d/
insservでさっき/etc/init.d/に移動したスクリプトを登録する
sudo insserv hoge
正しく登録されてるか確認する
sudo find /etc/ -name "*hoge"
/etc/rc5.d/S03hoge
/etc/rc1.d/K02hoge
/etc/init.d/hoge
/etc/rc3.d/S03hoge
/etc/rc2.d/S03hoge
/etc/rc0.d/K02hoge
/etc/rc4.d/S03hoge
/etc/rc6.d/K02hoge
削除は
insserv -r hoge
insserv便利ですね!