2013年8月18日日曜日

AndroidアプリにParse.comのプッシュ通知機能を実装する方法+送信する方法

「グロースハック(growth hack)」とかいう流行りつつある単語に乗せられて、プッシュ通知(Push Notification)を使ってみようと思い立ち、この間Facebookに買収されたBaaS(Backend as a Service)のParse.comが提供するプッシュ通知機能を、自作クソゲー「ギリジャン!」に乗せてみたのでそのメモ。
というか、https://parse.com/tutorials/android-push-notificationsの必要部分を抜粋しての和訳。

なお、既にParse.comにアプリの登録をしてることを前提としています。

【実装編】

■AndroidManifest.xml

1.サービス
<service android:name="com.parse.PushService" />
<receiver android:name="com.parse.ParseBroadcastReceiver">
  <intent-filter>
    <action android:name="android.intent.action.BOOT_COMPLETED" />
    <action android:name="android.intent.action.USER_PRESENT" />
  </intent-filter>
</receiver>

2.パーミッション
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.VIBRATE" />

■Activityクラス

1.初期化
onCreateメソッドに
Parse.initialize(this, "アプリID", "クライアントキー");
アプリIDもクライアントキーもParse.comの画面(下の画像)に表示されているものを使う。



2.通知を受信する部分の実装
onCreateメソッドに
PushService.setDefaultPushCallback(this, ほにゃららActivity.class);
ParseInstallation.getCurrentInstallation().saveInBackground();
「ほにゃららActivity.class」には、端末上に表示された通知をクリックしたときに表示させたいActivityクラスを書く。
インストール時に、アプリ名(言語によってアプリ名が違う場合はその言語に応じたアプリ名)とかアプリのバージョンとかタイムゾーンがParse.comに送信されるけど、それ以外にも情報がほしければ実装可能。
今回は試しに実装しただけなので省略。

3.トラッキングの実装
onCreateメソッドに
ParseAnalytics.trackAppOpened(getIntent());
通知からアプリが開かれたかどうかをトラッキングしたければ書く。
(普通はトラッキングしたいはず。)

【送信編】

あとはParse.comの管理画面から通知をするだけ。

まず、通知するページにアクセスして、Send a pushボタンをクリック


次に、通知する内容を登録して、Send Notificationボタンをクリック。


実装も送信もめっちゃ簡単。

ただし、何に使うねんと言われてもよく分かりまへん。

2013年7月7日日曜日

enchant.jsでゲーム作ってPhoneGapでスマホアプリ化したった

HTML5+JavaScriptでゲームが作れるフレームワークであるenchant.js(http://enchantjs.com/ja/)で簡単なゲームを作って、それをPhoneGapでラップしてアプリ化してみた。

穴に落ちないようにギリギリでジャンプし続けるだけの超単純なゲームです。
ギリギリでジャンプすることだけが目的なので、ジャンプした後は勝手に飛距離を調整して着地させてます。
キャラがクマなのはenchant.jsに付属してたものをそのまま使ってるだけで、お金か絵心があればオリジナルキャラでやりたかったけどやむなし。



実装上困った点はまた後日まとめるとして、Android4.x系のバグでenchant.jsの最新バージョンが使えなかったこととPhoneGapとの絡みでコールバック地獄が大変。

あと、使いたかったParse.comでスコアの共有。


なんのトラブルもなく超簡単に実装できた。

iPhone版はリジェクトされたのでAndroid版しかないけど、気が向いたら遊んでみてくださいな。


Android app on Google Play

2013年5月31日金曜日

さっそくSquareリーダー&レジアプリを使ってみた。

ちまたで噂のSquare

Squareリーダーが届いたので早速使ってみました。

まずは箱。
めっちゃあっさりしたシンプルな紙の箱。



開けた。


ちっちゃ。

出してみた。


逆サイドから。


こっちからカードを入れるみたい。

スマホに差してみた。


ジャスミンかわいい。

で、レジアプリを起動。
商品の値段として50円と入力した画面。


カードを通してみた。


100円以上じゃないといけないみたい。

というわけで100円に入れ直して再度通してみた。


AMEXはあかんみたい。
箱にもそう書いてた。

別のカードを通してみた。


署名画面が出てきた!

署名した。


で、右上の「続行」ボタンを押したら、


決済完了してもうた。
簡単過ぎワロタ

で、「メールで送信」っていうところにメアドを入れて、「送信」ボタンをポチッとな。


そしたら、メールが飛んできた!

一番上の「吉村恭輔」は、あらかじめ設定していたお店の名前です。
で、その下に住所と電話番号。
そして一番下には署名がデカデカと。


字汚すぎゲロゲロ

管理画面を見たら決済情報が見れます。


これで7営業日待てば登録した銀行口座に手数料を引いたお金が振り込まれるようです。

トップページにはこれ見よがしに「翌営業日」って書いてますが、これは三井住友銀行の口座を登録した場合のみですわ。

でも、通常の支払サイトと比べたら格段に早いよな。

操作も超簡単。これなら誰でも扱える。


個人としても使い道はありそう。

フリマとか家の前でレモネード売るときとか。
(両方やったことないけど。)


路上でやってる占い師さんとか屋台のラーメン屋さんでカード使えるとかアツいな。

クロい感じでやってきそうなのは、ショッピング枠の現金化とかね。

キャッシング代わりに使ったらあかんで。


これはユーザーの立場からも普及して欲しい!!

手数料のことはあるけど、キャッシュフローの関係でクレジット導入していないお店は是非導入して欲しい!!

お願いしま~す!

2013年5月14日火曜日

PhoneGapのWebIntentプラグインを2.7.0に対応させてみた。

PhoneGapのプラグインはたくさんあっていいけど、PhoneGap本体の頻繁なアップデートに追随していないものもいっぱいあってイマイチ。

ちょっとしたアップデートならいいけど、プラグインのアーキテクチャがゴロッと変わったりしてるのに放置されたりするのさすがにどうかと思うわ。

それはさておき、これまでPhoneGap2.3.0を使っていたのを現時点(2013/05/14)で最新の2.7.0にしたのを機に、今使っているプラグインをそれに対応させたので、せっかくなので公開しておきます。 

まずはWebIntentプラグイン。 その名のとおりIntentを発行するプラグインで、僕はアプリからブラウザを起動するのに使ってます。

https://github.com/kyosuke25/phonegap-plugins/tree/master/Android/WebIntent

どうぞご自由にお使いください。

2013年3月20日水曜日

iOSアプリの2.23リジェクトに対応した話

iPhone版の「ねちゃったー」をバグフィックスしたのにリジェクトされました。
iOS Data Storage Guidelinesに従え、と。


どうやら、アプリのホームディレクトリ直下のDocumentフォルダにはユーザーが作成したデータ(メモ書きとか写真とか)以外を置いたらダメみたい。

というのも、DocumentフォルダはiCloudに保存する対象になるのでそこに無駄なファイルを置くと、iCloudの容量を圧迫してユーザーにとって好ましくないからだとか。
(でも、そこは前回から何も変えてないから、前回見逃したんやろ。ええ加減やぞw)

で、Documentフォルダをのぞいてみたら、アラームの設定を記録したDBファイル(sqliteファイル)しかない。
でも、これっていらんデータではないし、ある意味ユーザーが作成したデータやし。。。
だいたいデバイスを超えてアラーム設定を同じにしたい場合もあるやろうからiCloudに保存しても良いんじゃないか。(いや、これはないなw)

というわけで、Apple様には素直に従って修正することにしました。

を参考にしました。
とても参考になりました。ありがとうございました。

■ sqliteファイルの保存場所をDocumentフォルダからLibrary/Cachesに変更

NSSearchPathForDirectorisInDomains(NSDocumentDirectory, NSUserDamainMask, YES);
となっている場所を
NSSearchPathForDirectorisInDomains(NSCachesDirectory, NSUserDamainMask, YES);
に変えたらいいだけ。

■ アプリの起動時にDocumentフォルダにsqliteファイルがあったらLibrary/Cachesに移動

(数少ない)既存ユーザーのための対応。
NSFileManagerクラスを使って、
fileExistsAtPath
でファイルの有無を確認して、存在すれば、
moveItemAtPath
で移動するだけ。

さて、今度は無事承認されるでしょうか。
結果は1週間ちょっと後。

2013年3月2日土曜日

ねちゃったー、またまたreject!

「ねちゃったー」がまたAppStoreからrejectを食らいました。

今回の理由は2つ(増えとるw)

1.アイコンの鳥がTwitterの公式ロゴと紛らわしい。
2.Descriptionに「Android」っていう文字が入ってる。

1はともかくとして、2くらいは許してよ。
なので、Androidアプリ大賞の特別賞をもらったことも書けない。

というわけで、再度アイコンを変えました。




2013年2月26日火曜日

ねちゃったー for iPhone、リリースならず!あっさりreject。

「ねちゃったー for iPhone」ですが、ようやくレビューに入ったと思ったら即rejectでした。

rejectの理由はアイコンにTwitterロゴ(「t」の文字)が含まれているからダメ、とのことでした。
フリーフォントで作って似せたものであっても誤解を生むからNGということです。

というわけで、アイコンを変えました。




2013年2月22日金曜日

「ねちゃったー」の宣伝をココナラを使ってやってみた。

今度は国内への宣伝を目論んで(※)、「Fiverr」と同種の国内サービスである「ココナラ」を使ってみることにしました。
※誤解のないように書いておくと、これが正しいマーケティング手法だとは決して思っていないです。つまり、これは「正しくない」という仮説の検証です。

「Fiverr」の場合、Twitterに関する案件(gig)はフォロワーをメッチャ増やすよというのが主なものでした。
「ココナラ」の場合、同じように"Twitter"で検索すると、「教えます」系が主なもので、今回の不特定多数の人に情報をバラまく案件が少なかったです。

そこで、"フォロワー"で検索してみました。
そうすると、「フォロワーをメッチャ増やすよ」系か「俺のフォロワーにバラまくよ」系に絞られます。
こんな感じです↓


で、(正直誰でもそんなに変わらないでしょうけど、)一応フォロワー数が多い「総フォロワー数 49716人 効果は絶大!一週間で189回ツイート可能」という案件にしました。


そして、画面右上の「購入画面に進む」ボタンをクリックすると決済画面に遷移します。


決済が完了すると、その後取るべきアクションが記載されたページに遷移します。
この辺りは当然Fiverrと同じです。
そして、あとはその指示に従ってツイートして欲しい文章を送信して、作業待ち。


で、1日後からツイートが開始された模様。
9つのアカウントを使ってツイートすると書いていたので、下の9つと思われます。









これが、1日3回×1週間ツイートされるようです。
まあ500円で不特定多数の目に触れるのであればAdwordsに出すより手軽ですね。
Adwordsと比較して意味があるかどうかは要検証。

2013年2月21日木曜日

「ねちゃったー」のランディングページを作ってみた。

前回のエントリーでは「Fiverr」でランディングページのテンプレートを買ったときのことを書きました。

そのテンプレートを使って、「ねちゃったー」のランディングページを実際に作ってみました。

まず大変だったのが101種類もあるテンプレートの中からどれを使うのかを選ぶことでした。

それが終われば、あとはページの作成ですがこれは基本的には画像の差し替え、文言の変更で作業は完了です。

そして最終的にできあがったのがこれ。


いかがでしょう。
われながらカッコ良いものができたと思います。

http://kyosuke25.com/nechatter/ で実物をご覧いただけます。

【追記】
ついでに、日本語版も作ってみました。
http://kyosuke25.com/nechatter/ja/