Google App EngineでWebアプリをつくった
アウトプットをする1年という目標をもとに、iPhoneアプリを1つリリースし、さて次はゲームを、とか考えていたら他にWebアプリが作りたくなったので作ってみた。
どんなアプリか
- 共通ID,共通PASSで写真共有
背景
解決方法
- こっちでIDとPASSを用意してあげる
- それらを教える
- それらを使ってログインして、写真をアップロードする
言語
フレームワーク
- Flask
稼働状況
GAEの無料枠で現在(たぶんずっと)、プライベートベータとして公開中。
見たい人は僕に連絡をください。俺得なウェブアプリなので・・・。
GAEのBlobstoreの容量限界もあるし、課金してまで動かすサービスではないと考えている。
お勉強になったことなど色々
経験できたこと
雑感
- FlaskはシンプルなWebアプリにはよい。わかりやすい。楽しい。
- jQuery、やるじゃん。Cooooool.
- GAEでBlobを扱うのはやや重い。でも無料だし、十分!
意識したこと
作ったWebアプリには写真にコメントをする機能がある。
コメントが送信されたら、画面上はJavaScriptで即時にコメントを反映する。これについてはjQueryを使うとDOMの操作が簡単で助かった。その後、非同期でコメント処理用のURLへコメントのデータ等をPOSTし、タスクキューにコメント登録処理をお願いする。(スクリーンショットなしではわかりづらいですね。)
タスクキューは登録さえしてしまえば裏で仕事をしてくれるので、クライアントに全く関係ないとところが良い。オートリトライもあるし、時間制限も無い。
GAEの場合は任意のURLにデータをPOSTするだけで、タスクキューが登録される(Webフックっていうの?)ので、このへんは非同期通信と相性がいいと感じた。使い手を待たせなくてすむ。
今回はボタンクリックのイベント後にクライアントサイドでJavaScriptでコメント表示をし、その後$.post(url,data)でサーバー側にコメントデータの登録処理をお任せするといった感じ。
これが正しいやり方なのかは不明ですが・・・。
Help!な時
- StackOverFlow
- Flask公式ヘルプ
- 日本語でおk
- →in English,OK!!
課題
とりえあず、デザインセンスが欲しいですね。
さて、もう1作品くらいやりたいな。
キャンバスはそこらじゅうにあるのに、絵を書かない画家ってどうよ。
まず、画家のお話ではありません。
SE、プログラマのお話です。
IT技術を保有しているってのは、画家に例えると絵の具と筆をもっているようなものだ。
そして、現在はWeb、App Store、Android Marketという大きなキャンバスがそこらじゅうにある。
それなのに、絵を書かない=何も作らないってのはすごくもったいないと感じる。
気づけば、自然と自分は何かを作ってきたなー。
中学の頃は、ネットのレンタル掲示板で友達と遊んでた。
高校の頃は、携帯の待受。
当時は、携帯の待受の自作はカリスマ的な人気だった(言い過ぎ)。
時間割を作ったり、文化祭の待受を作ったり。なぜか、自分の高校の文化祭の待受画面を作ったらクチコミで広がって、となりの高校の分も作ってとか言われたな、そういえば。
それと、「俺の名前の待受を作ってくれ」とかも言われた。
大学の頃は、学部内の偽RSSリーダー。
中身は簡単で、学部内のブログのRSSを読んで、まとめて1Pに表示するもの。
リンク集+RSSリーダみたいな感じ。
(たまに、「勝手にリンクしないで!」みたいな人がいて面倒だった。なら、mixiでもやってろと思った。)
社会人になってからは、twitterボット(@OryoriSan)とか、iPhoneアプリとか、Google App Engineのウェブアプリとか。
そして、最近は仕事では絵の具も筆も使っていない状況か。これじゃあ、画家としては面白くないでしょう。
もっと絵を書きたい。何かを創りたいと考える次第でございます。
お金で買えない価値をAppStoreで見つけた。
以前のエントリで、cocos2dでゲームをとかいっていたけど、AppStoreで要望をいただいたのでその対応をしていた。
なので、ゲーム関連は進んでいない。あちゃー。
そんなことより、本題。
iPhoneアプリを公開して、嬉しいことにレビューを2つ書いてもらった。
こんな感じ。
何よりも、自分の作品にレビューがつくと嬉しいものだ。
AppStoreのレビューは、特に日本はひどいと言われているが、ニッチなアプリなのが原因か、機能が少なくてdisるネタが無いのか、それとも本当に出来が良いのか分からないが高評価をもらっている。
せっかくもらったレビューには対応をしたいね。ということで、それぞれに対応しましたよっと。
別に対応をするもしないも当然作者の自由なのだが、自分の作品はより良いものにしたいのでそれぞれにすぐとりかかった。
こういった気持ちは大事だ。
バージョンアップをしたら、レビュアーに好印象だったようで、レビューに追記がされ、☆4つから☆5になっていた。
さらに嬉しい。
AppStoreには、お金で買えない価値があるのだ。
cocos2dの本を買ったので次はiPhoneでゲームをつくろうかな
今年の目標はアウトプットにしました。
このブログもそうだし、はじめてのiPhoneアプリもリリースもアウトプットの一環です。
さぁ、次は何をしようかと。
そこで「「App Storeはほとんど死んだ」――UEI清水氏らが考えるスマホ時代の稼ぎ方」を思い出した。
「そうだ、ゲームをつくろう」
手始めにcocos2dで作る iPhone&iPadゲームプログラミングを購入して時間がある時に読んでいる。
知的好奇心が満たされる感じが心地よい。
ちょこちょこ動かしながら、アイデアを練っていこう。
結婚式をしてきました。
結婚式をハワイでしてきた。
みなさんのおかげで無事式を終えることができました。ありがとうございます。
結婚式はワタベウェディングにお願いした。
ワタベウェディングは、終始丁寧な対応で非常に気持よく結婚式を終えることができた。
打ち合わせ時も、親身になって考えてくれるのが分かるし、営業トークであろうがなかろうが「お二人、お似合いですね!」など自然に話す。気持ち良い。
日本の打ち合わせで出した細かい要望もすべてハワイへ届いていた。
- ウェディングドレス姿は、式当日まで秘密。
- 写真は下からとると太って見えるので、下からの撮る写真は少なめに。
などといった要望もすべて取り込まれていた。
細かいことだが、満足度はとても高い。
式の当日も、丁寧に対応してくれて困ることなく安心できた。
他の企業の対応をしらないが、ワタベウェディングを選んでよかった。
- 打ち合わせから、良い気分にさせる
- 小さな要望でも見逃さない
大切。
今後とも宜しくお願いします。
お金を稼ぐ難しさ
iPhoneアプリを作成して公開した。
はじめは無料で公開した。無料期間中はダウンロードが毎日わずかではあるが継続してダウンロードされている。感謝!
リリースして数日後に、試しに115円に設定してみた。
その結果、ダウンロード数は0。これが数日続く。
その後、無料に戻したところ、当日のダウンロード数が50倍になった。これは、値下げ情報を拾って公開しているブログ等が存在し、そこを観ている人が多いからであろう。本当に人間は0円に弱いんだな。
値下げ情報を拾っているブログの事を考えると、はじめにアプリを230円以上にしてそこからリリースセールということで115円に設定することで一時的な売上を確保できるかもしれない。値下げに飛びつくのを狙う。よくあるセールは本当にセールしたいのではなくて、売上を増やしたいからであろう。というか、アプリを売るための常套手段。
しかし、0円と1円では需要が非連続。0円のパワーは偉大。この辺がどう影響しているかは興味がある。
話がそれた。
次に、AdMobで広告を入れてみた。
AdMobを入れる事で、収益以外にもどれくらいアプリが作ったのかを簡単に見ることが出来る。
AdMobはクリックされることで、広告料が入るという仕組み。
レポートを見るとアプリの特性からなのか週末に起動をしている人が多い。そして、なかなかクリックされない。と思っていたところ、この前の週末に初めての1クリックがあった。
初めてiPhoneアプリでお金を稼ぎました。
色々試したけど、お金を稼ぐのは難しい!
ちなみに人に雇われていないし、職務と全く関係なくはないし、自分の勉強のためだし副業には当てはまらないと勝手に解釈しております。第一、生業としては稼ぎが少なすぎるわ!
参考文献とまでは言わないが、0円の時の人間の心理、無料で稼ぐ方法とかは以下に少し書いてある。どちらも面白い。
初めてのiPhoneアプリ開発。雑な設計書を公開。
初めてのiPhoneアプリをリリースして、バージョンアップも体験しました。
やはり世界に自分のアプリがリリースされるのは、嬉しいものです(ローカライズはしてないけどね!)。
アプリは、「闘牌の軌跡」。
開発してる最中に記念ということで設計書と言えるか分からないが、そのようなものを捨てずに残しておいた。
記録として公開する。
まずはアプリの構想。
自分が好きな麻雀で、自分も使っていけるようなモノを作ろうと考えていた。
マインドマップもどきで、アイデアや機能を出す。とりあえず思いつくものをジャンジャン書きだす。
次のステップとして、アプリとして何を実装するかを決める。
機能の盛り込みすぎは使い勝手を悪くするし(iPhoneでは画面が小さいので特に注意!)、実装時間も取られるので本当に必要な機能を決める。
1つの目的、1つのアプリということを常に意識。ここの段階で、「麻雀のスコアを管理する。結果をグラフで可視化する。」という目的に決め、機能を決めた。
次は、画面デザイン。
iOSの機能に従って画面をデザイン。よくあるアプリのパターンを参考にするのが良い。
自分は、iPodアプリ(標準アプリ)、Youtubeアプリ(標準アプリ)、家計簿アプリ(App Store)などのデザインを参考にした。iOS Human Interface Guidelinesを読むのが理想だが、費用対効果を考えApple公式アプリを主に参考にした。Appleのアプリを参考にすればまず怒られることは無いだろう、という考え。
この過程で雑に書いた設計書が↓
また、ここまで来ると素人な自分にはiPhoneで何ができて何ができないかが分からないので調べる作業も並行して行う。
主に以下の2点で調べた。
- データの保存はどうするのか
- グラフの描画はできるのか
結果として、データの保存はSQLiteで行い、グラフの描画はCorePlotというフレームワークを使うことに決めた。
ここまでで、おおよその方向がみえてきたので画面デザインの確定とデータベース設計を始めた。
アプリに実装されていない機能も書かれているが、それは気にしない方向で。洗練されたUIの為に機能を絞ったんだよ!
この時の雑な設計書2↓
ここまできて、実装を始めた。
以上、自分の設計手法と設計書の公開でした。
(それにしても、iPhone4のカメラの青カビひどい・・・)