カテゴリー: 未分類

Airbnbはホテルと共存できると思った

前回のUberの記事に続いて、Airbnbも使ってた。すると、使ってみてわかったことが想像以上に多かったので書いてみる。

Easybeatsというドラムアプリ作ってる友達を訪ねてオーストラリアのパースに行ったんだけど、格安の宿を探す身としてはホテルがやっぱり高いんですね。

で、ついでによったメルボルンでAirbnbの相場を見てみたんだけど、まあ、そこまでホテルと変わらない値段。というわけでスルーしてたんだけど、急遽使う時がきた。

僕は、あまり先の予定決めずに、適当に毎日泊まる日を延長してたんですよ。そしたら週末なって、 泊まってた格安ホテルが倍以上の値段になり、他の場所も全部埋まる緊急自体に。

ヤバい、こんな高いのしか残ってないわ、どないしよと。ちょうどいいからAirbnb使うかとなったわけです。

ホテルない場所にも泊まれる

とりあえず、Airbnbで泊まれる場所を見てると、ほんとあらゆるところに点在してるんですね。まあ、普通に住んでる人が泊まらせてくれるんだからあたり前なんだけど、ホテルとかほぼ見つけられない郊外にもある。

これは経済合理性を追求するホテルにはできないなあ。例えば、ドイツのニュルブグリンクという車好きの聖地では、高いホテルが少しあるだけで、全然お手頃なのが選べないらしいんですね。

そんなとこにAirbnbの選択肢があるといいかも。あと、週末のホテルは埋まったりして高くなるけど、Airbnbはまず同じ。

ホテルみたいにすぐ予約とれない

使ってみて焦りまくったんだけど、まず、ホテルと違って簡単には予約できない。

ホストにメッセージ送り、返信返ってくるまですぐの人もいれば、数時間、もっとの場合もある。

インスタントブッキングっていう即効で予約できる仕組みもあるけど、それ可能なのは一部のホストのみ。

結果的には、明日泊まりたいから予約ポチっとしても、9時間後に、”ごめん、今日は友達来るから泊めれないんだ。グッドラック!”みたいなのきて、やべえ、今日泊まるところないよとかなる。

結果的に、余裕ない時はスパムみたいに、いろいろいなホストに、泊まってよいですかみたいなメッセ送る結果に。

実は、システム的に、一気にメッセージ送った人達全員に、今日泊まるところ見つかりましたメッセージ送る仕組みもあるので、いろいろな人に同時に聞くのは普通なのかも。

まあ、僕が新参者ユーザーで、レビューがなかったのもあるけど、とにかく、”ごめん、今日は無理なんだ”というお断りメッセージはたくさんもらって焦った。

まあ、知らない人を泊めるわけだから確認待ち必要なのは当然なわけで、ここはホテルとの大きな違いの一つ。

ちなみに一番面倒だったのが、女性オンリーの部屋をシステムでフィルターできないからいちいち説明文読まないといけなかったところ。なんでや。

ホテルともゲストハウスとも違う宿泊体験

二回使ってみたんだけど、これはまさに、誰かの家に泊めてもらってる感覚だった。

まず、ホストの人とメッセージして、どうやって家に行くかとか、鍵どうするかとか、いろいろコミュニケーション取らないといけない。

これが面倒な時は、絶対向かないと思う。まあ、オートマチックに対応できるホストもいるけど、それでも、いつでも連絡繋がって、チェックインもほぼいつ行ってもよいホテルとは全然別物。

ただ、いい部分は、現地の人の家に泊めてもらうということで、その土地に住んでる人が見れて凄い勉強なる。

例えば、移住とか、留学する場所の下見には最適だし、いろいろ話も聞ける。ホテルだと観光地案内を聞くぐらいだけど、Airbnbだと、普通に夜、一緒にリビングで二時間ぐらい一緒にいるとかするわけですよ。

だから、1人目の人の家では、その人の仕事とか、メルボルンはシドニーより家賃が遥かに安くて、街が碁盤の目になってるから移動しやすいとか、いろいろ教えてくれた。

なんか、ネットラジオ制作してる人で、youtuberを最近はプッシュしてるとか、Youtubeフェスタが今度東京でもやるよとか教えてくれた。

二つ目のとこは、メルボルン大学で博士課程の中国人の男女5人が住んでるデカイ家だった。ちなみに、説明文にはまったくそういうこと書いてなかった。(笑)

てっきりホストのおばちゃんが1人で住んでると思ってたら、家に行ったらホストはその夜いなかった。(笑)

まあ、特にそれは問題なく、女の子3人が自分たちの部屋で勝手にきゃっきゃと盛り上がっているところ、男子一人でリビングにいた人が僕と話してくれました。

女子生徒多数に男数人のクラスは、こんなんなのかと思った。なんか結束する。彼がいなかった僕はたぶん死にたくなってた状況だと思う。ひたすら漫画と中国のと日本のことを話しました。

ホストが自分の趣味書いてたりする

Airbnbが従来の宿泊施設と全然違うのが、ホストが自分の趣味趣向を書いてるのが印象的。

例えば、俺はミュージシャンでピアノが家にあるよ。近くのライブハウス紹介するよとか。スタートアップしててテクノロジーに興味あるよとか。僕たち二人はヘルシーな食事とヨガが好きだよとか。

まあ、いろんな人がいるみたいでして、交流してみたい人にはぴったりだ。逆に、交流いらない場合は面倒なことのほうが多いかもしれない。一軒家貸切とかもあるけど、そこは使ってないのでよくわからない。

こういう部分がホテルとは全然違ってて、以前思ってたより両者はお互いに住み分けできるなあと感じました。

Uberのほうは、もし町中にUber走り回ってさえすれば、従来のタクシー使わなくなりそうなので、駆逐されそうな気配はしたんですよ。でも、ホテルとはAirbnbはそうでもないと思う。

自分もホストしよかなと思うようになる

Airbnbがサービスとして面白いのが、一度泊まる側として使ってみると、なるほど、こんな感じで貸し出すのねというのがわかる。

最初は貸し出すなんてとんでもありませんみたいな気持ちだったのが、自分も今度ホストやってみよかなみたいな気持ちになるようになる。

これはどんなチュートリアル見るよりも勉強なるので、ここがサービスとして面白いなあと思った。よく考えると、これはシェアリングエコノミー系サービスの特徴ですね。

今度、一か月ほど旅行に行くからその間だけ貸しますとか、部屋が余ってるから金欠の月だけ数日貸すとか、いろいろな使い方してる人がいる。

外国は部屋をシェアして住む人が多いから、旅行中にもやりやすいというのはあるかも。日本ではいろいろな障壁があるだけに、日本で流行るまでは時間がかかりそうだけど。

そんな感じのAirbnbですが、使おうかなと思う時は、こっから登録して宿泊したら2400円お互いにもらえるので、もしよければ。
https://www.airbnb.com.au/c/nonu1?s=4&i=1


*家計簿読み上げのアプリ作ってます。自己紹介と過去ログはこちら


Uberのドライバーはストレスが減るらしい

前回こんな記事を書きました。

UberとかGrabTaxiのよさがやっとわかった

この続きを書いてみる。この前バリに行った時、Uber乗るたびにいろいろ聞きまくってたんだけど、一番興味深いのが、以前のタクシー会社よりストレスが大幅に減った、と言われた時でした。

ストレス減った?

え、ストレスなくなったってどういうこと?って思ったら、話は単純だった。

話を聞いた一人によると、今まではBluebirdというタクシー会社で10年近く運転手してたらしいけど、何が大変かって、ずっとお客さんを探し続けないといけないことだったらしい。

「常に見込み客を探さないといけないのは面倒でストレス溜まるのヨ。さらに、客探しに移動する時は、ガソリン代もかかるでしょ?以前はこちらからアクティブに行動しないといけないのよ。」

と教えてくれた。

「それが、Uberになったら、待ってるだけでいい。パッシブなんだよ。だからストレスフリー。ガソリン代も節約できる。」

なるへそ。

確かに、日本でもベテランタクシー運転手は客が出現しそうな場所を知ってたり、窓を少しだけ開けてゆるりと流して、「どこ行く?」とか話してないか聞き耳立てて、見込み客っぽい人だったらスピードを緩めるとかいう話を聞いた。

そういう、ベテランの知恵みたいなのが、涼しい場所で好きな事しながら、スマホで呼ばれるのを待ってるだけで良いというのは革命ですな。うーむ。

今までは客目線でしか見てなかったけど、こういう視点もあったのか!と思いました。

で、ふんふんと聞いてたら、どのぐらい稼げるかの話もしてくれました。

「大きな違いは、タクシー会社時代は、会社のタクシーを使えるけど、その分お金も給料から引かれる。Uberに変わったら、自分の車を使えるのがでかいのヨ。もちろん、ローンで自分で投資しないといけないけど、自分の車になるわけだし。」

と、根本的な仕組みの違いを教えてもらった。ついでに、トータルでの儲けも、Uberの方が儲かってると言ってた。ただ、一番重要なポイントは、自分の時間をもっと自由にコントロールできるようになるってことらしい。

なるへそ。日本では、いろいろ法律の問題もあるけど、空き時間にちょろっとできる副業の選択が増えるのはいいな。

ちなみに、カーナビなんてものはなくて、みんなスマホのナビを見ながら運転してました。片手でスマホ見ながら、カオスな交通状況を駆け抜けるので、僕は不安でソワソワしました。

しかし、カーナビも含めて、スマホ時代の最大のイノベーションやな、タクシー配車サービスは。

ちなみに、サンフランシスコに行った時にビビったのが、年収1000万以上もらってる人が、バイトで空き時間にUberやってる場合もあると聞いた時。

なんで、そんな金持ちなのに!と驚愕したんだけど、サンフランシスコは家賃が高いし、子供の教育費も高いから、1000万では足らないからバイトしてるらしい。ほんとかよ。未来社会だな。

ローカルには内緒だよ

もう一つ面白かったが出来事あります。

ある日、Uberを呼んだら、いつものように電話がかかってきて、

「今から迎えに行くけど、他のタクシー運転手が勧誘してきた時は、Uberを呼んだとは言わないでくれ。友達が迎えに来ると言ってくれ。ローカルピーポーはUber嫌いなんだ。」

と言われた。

その時僕は、

「え、なんだね、それは。。なんか怪しい運転手さんだな。。」

と思ったんだけど、迎えに来た時にいろいろ事情を話してくれた。

「実は、ローカルの人達はUber嫌いだから、Uber待ってるってわかったら、Uberドライバーが来た時にトラブルが起こりやすいんだよ」

まじですか?じゃあ、俺もお前Uberとか使いやがってこの野郎!とかいちゃもんつけられるの??と聞いたら、

「いや、お客さんは大丈夫だよ(笑)。でも、ドライバー同士で揉めるんだよ。ローカルの人達にとってUberは商売敵だし。なんと言っても、Uberの方がはるかに安いでしょ?」

と言われた。確かに、その辺歩いてて、「タクシー?タクシー?」と合言葉のように話しかけてくる人達に値段を聞いたら、いつもすげえ高い。

すげえ高いというのも、UberとかGrabTaxiで相場を知ってるから、わかるんだけど、3倍から4倍、交渉してもまずUberみたいな値段までは落ちない。

まあ、今までは観光客相手はいろいろと高い金を要求できたのに、一気にデフレを加速させやがってUber許さんとなるのかもしれん。

でも、Uber使ったら「タクシー?タクシー?」とか道行く人に言い続ける必要もないし、待ってればいいからみんな、なんでやらないの?って聞いてみたら、

「まあ、今までのやり方を変えたくない人が多いし、スマホとかうまく使えないとダメなのもあるし。」

と言ってて、これは納得できた。まさにSoftware is eanting the worldの世界。今は、Smartphone is eating the worldらしいけど。

ちなみに、Uberのドライバになるのは結構難しいのかい?と聞いてみたこともあるんだけど、

「いや、そんなに難しくないよ(笑)。」

とのことでした。事務所に行って、登録しただけだと。僕の経験では、Uberの人は英語うまい人が相対的に多くて、丁寧な人が多かったんだけど、ほんとかな?

ちなみに、「ローカルには言わないでくれ」と電話してきたドライバーのBさん、実はナイスガイだった。

キンタマーニ草原という冗談みたいな名前のところに連れてってもらったんだけど、いろいろ気をきかせてくれた。

「後ろに座る代わりに横に座ってくれ。ポリスに止められた時に友達だって言いやすいから。ポリスは観光客っぽいやつ見つけたらお金要求するんだよ。」

とか。話には聞いてたけど、賄賂社会というのは本当でしたか。

興味津々な僕は、いろいろ聞いてみたんだけど、インドネシアの公務員は賄賂あげないと進まないらしい。

本業はツアーリスト会社を今年起業してて、空き時間にUberをやっているというBさん。ビジネス上の手続きを申請する時も、役所に行くと賄賂をそれとなく要求されるらしい。

「役所には、正規のお金以外は受け取りませんって目立つところに貼ってあるんだよ。でも、実際は全然違う(笑)。もし払わなかったら、なぜか手続きがすげえ遅れて、また来週来てくれ、その次もまた二週間後来てくれとズルズル長引かせられるわけ。」

と言ってた。だから、面倒で急いでる時は、「いくら欲しいんだ?」と、先に聞くらしい。

Bさんとは、いろいろビジネスとかお国柄の話をしてたら仲良くなって、次の日は一緒に晩飯食いに行っていろいろ話しました。デヴィ夫人のことは知らないみたいでした。

*このリンクでUber新規登録すると2000円までのクーポンが入るので(登録した人と、僕に)、気が向いたらどうぞ宜しく。https://www.uber.com/invite/bem3e


*家計簿読み上げのアプリ作ってます。自己紹介と過去ログはこちら


VCなしでアプリ開発者が市場独占を狙った方法と背景

寝る時間なのについついTwitter開いてたら、すごく面白いネタが目にとまりました。

Pragmatic app pricing
http://www.marco.org/2015/10/13/pragmatic-pricing

Instapaperを作ったMarcoさんのポッドキャストアプリ、Overcastが完全無料化したらしい。

そして、その理由が面白い。すごく面白い。

簡単に言うと、”ポッドキャスト市場は大きくなる可能性があるから、市場を支配するために無料化する”という理屈。

これだけだったら、

「なんだ、よくあることじゃないか。有料サービスが完全無料化するなんて。VCマネーが入ったか、買収されたとか。」

と思うかもしれない。

でも、Marcoさんは、VCバックアップのスタートアップとかやりたくない性格の個人開発者なんですよ。これは、Build&Analyzeっていうポッドキャストで昔話してた。

この人はTumblrっていう会社のCTOを昔やってたんだけど、

「Tumblr時代を思い出すと、もう本当、仕事環境が過酷で、あんな働き方はもうしたくないし、そもそも人を管理する性格じゃないから向いてないんだよ。俺はもう子供もいるんだよ。。」

とか言ってた。

なんで、このラジオを僕が聞いてたかというと、自分も個人でiOSアプリを作ってるので、すごく参考になる話を色々話してたのもある。

それ以上に、僕はPocketの記事を読み上げるLisgoというアプリを作ってたので、Instapaperのプロダクトデザインの意思決定の背景をラジオで語ってるのが死ぬほど参考になったわけですよ。

いや、本当に参考になってよく聞いてた。でも、Pocketを支援する形になるLisgoを作っててちょっと申し訳ない気分だったのを覚えてる。

まあ、僕が最初からReadItLaterユーザだったのもあるけど。

ただ、Pocketは完全無料なんだけど、Instapaperは有料ユーザじゃないと、Lisgoみたいなサードパーティアプリに記事はユーザが取り込めなかったわけなのですよ。だから、Instapaperも対応したかったけど、対応できなかった。

ちなみに、この話も、今ここで書いている内容に関係している。

話を詳しく説明すると、後で読むアプリである、Pocket(当時はReadItLater)と、Instapaperは当初、どちらも有料アプリで、二大巨頭で争ってたわけです。

で、途中、PocketがVCマネーを取り入れて、当然のようにアプリが完全無料化。ほぼ同じサービスが無料なので、一気にPoketが優勢になり、今は完全にPocketが市場を支配してしまったと。

いやあ、あの当時のポッドキャストとかリアルタイムで聞いてたけど、面白かった。

「なんで、ReadItLaterっていう分かりやすい名前を捨ててPocketにしたのか謎だ。まあ、動画にも使われる時代だからだろうけど。。」

とか、

「Pocketの作者とは仲は良くない。一度会った時、彼はInstapaperの成功は自分のブログが理由だというようなこと言ってきて頭にきたから。」

とか、そういう、正直な心情をPodcastで語りつつも、Pocketが無料化した時点で、Instapaperのことはもう諦めてたんだろうなあという雰囲気をラジオ聴きながら感じてた。

実際、しばらくして、Instapaperを信頼の置ける会社に売却している。

この時の売却の心情はすごく共感できて、

「Instapaperを個人でずっと運営しているストレスは本当に大変だった。いつ何時サーバが落ちるか、常にiPhoneはアラームをつけてたし、飛行機のっている時とか対応できないから、いつもヒヤヒヤしてた。」

とか語ってて、ああ、そうだよなあ。。その心労たるや大変やろう。。と思いながら聞いてたわけです。

とまあ、僕は、個人開発者として、普段からブログで参考になることが書かれてたり、製品開発においての細かい倫理観とかも含めて、かなりリスペクトしているわけです。

そんなMarcoさんが、少し前にOverCastというPodcastアプリを作っていて、僕は使ってないけど、周りでは結構評判もいい人気アプリらしい。

このアプリは、サーバサイドも使っているのにもかかわらず、無料で試せて、一部の有料機能を使うには、一回買い切りの500円アプリだったと思う。

これを、このたび、完全無料化して、収益源には寄付のみにするとか。ユーザが払いたい額を払ってもらう形式にと書いてる。

ちょっとWikipediaに近いけど、思想はちょっと違ってて、Pocketに敗北した過去を繰り返したくないからだとブログで書いてる。

「あの時は、自分も同じことができたけどやらなかった。そして、負けるのはわかっていて、そのまま見ているだけだった。」

「目先の利益を優先して、長期的なビッグマネーのことは無視していた。」と書いてる。

でも、ラジオで、VCマネーのビジネスは向いてないと言ってたからそういう選択肢はないんだろうなということで、寄付形式にしたのかーと、個人的に大変興味深すぎて、ペチペチとこのブログ記事を書いてしまっているわけです。

寄付形式にすることで短期的に収益は減るけど、自分が食っていくには十分。Podcast市場は大きくなってきているから、これで市場を支配して、今回は、将来のビッグマネーへの準備ができる。と締めくくっている。

ビジネス用途の月額課金ができるサービスとか、リアルなものを売るビジネスなら、課金しつつ大きくなることもまだまだ可能なんだけど、大衆向けのフリーミアムだと、完全無料で市場を独占しちゃうのが最適という、Winner take allなビジネスだからこその決断。

うーむ、まさに勝者総取りの世界。

個人的には、一つのアプリがすべてのユーザのニーズを満たすことはできないので、ニッチに絞る戦略も可能だとは思う。

僕のTaxnoteとかZenyなんて、完全に入力の素早さだけに絞るという、大手ができないことをしているので、こっちの思想です。

ただ、大きな市場でナンバーワンになってビッグマネーを目指すには、まずは市場支配、これですもんね。

年間2,000万円前後の収入(以前ブログで公表してたのがこのぐらいだった)を捨てて、数年以内に数億円以上で買収される可能性にかけた。ということかな。

今後どうなるか、気になるところです。


*家計簿読み上げのアプリ作ってます。自己紹介と過去ログはこちら


UberとかGrabTaxiのよさがやっとわかった

旅行でマレーシアとか、インドネシアのバリに行きまして、今、世界中でホットなタクシー配車アプリを使ってみたんですよ。

Uberとか、Grabtaxiとか。

日本にいた時なんて、タクシーは高くてまず乗らないし、そもそもタクシー必要な時は、そのへん普通に走ってるわけじゃないですか。

Uberのプロモで4000円分使えるんだけど、根がケチな僕は、いざという時のために取っておこうと思い、結局使わないままだった。東京は地下鉄という便利なものがあるし。

それが、東南アジアだと、日本だと無用だったタクシー配車アプリが死ぬほど便利。これがないと本当に困るというか、命に関わるというか。

というのも、東南アジアってタクシーは危険なものらしいんですよ。

「え、タクシーが危険ってどういうことよ」って日本の感覚からすると思うんだけど、なんか、知らないところに連れて行かれて、身ぐるみ剥がされたり、襲われたりするのがよくあるらしい。

さらに、日常的にあるのがボッタクリで、乗る前にいちいち交渉しないといけない。メーター使ってくれるタクシー探したり。

初乗り100円とかで、東京の地下鉄ぐらいの値段で移動できるんだけど、安全性とか、ボッタクリに神経使ったりと、なんか疲弊するんですよ。

そこでGrabTaxi

それが、Grabtaxiとかいう、タクシー配車アプリ使うと一気に解決する!

GrabTaxiはマレーシアの起業家が作ったタクシー配車アプリなんだけど、ここだと神アプリ。

まず、ちゃんと身元調査された運ちゃんで安全性が高いし、アプリに値段がハッキリ表示されて明瞭会計。

ホテルで普通にタクシー呼んだ時は、なんか4倍の値段だったので、常にアプリで呼ぶことにした。

これ、出発地点と到着地点をセットしたら、勝手に値段をはじき出して、それが固定価格となる。お国柄でそのままの値段を要求してくる場合もあれば、さらにそこからチップ要求してくる地域もあるけど、基本的には明瞭会計。安い。

まず、安全性が確保されるのと、ぼったくられない、この二つがでかい。

さらに、こっちが現地の言葉話せなくて、相手も英語があまり話せなくて、どうやって意思疎通とったらいいのですか僕たち、みたいな時も、アプリで到着地点を登録してるから、特に問題なく運んでいってもらえる。これが3つ目にでかい。

流れとしては、アプリで現在地点と到着地点登録したら、近くのマッチするドライバーを検索しはじめて、「わーい、ドライバー発見したよ!」みたいな画面になる。

そして、アプリの地図上で、タクシーが近づいてくるのがわかって、あと何分ぐらいで着くかも表示される。

だいたいは、マッチ直後にドライバーから電話がかかってきて、その時に、相手がどの程度英語話せるかわかるんだけど、話すことは「今ロビーにいるから待ってますね。」ぐらいの確認程度。

現地の電話番号は空港で買った、プリペイドSIMカードについてくる。電話番号なんていらないかなと思ったけど、タクシーアプリ使う時に使いまくるので、必須だった。

ぼったくりなしの現地価格で安いし、なんて便利なんだ!もう海外旅行する時は日本にいる時以上にスマホが重要になってきた。

GrabTaxi使えない地域に行ってみたら

その後、インドネシアのマカッサルというところに行ってきたんだけど、ここが観光地じゃないので、タクシー配車アプリが一切使えなかった。

バリとかは英語がいろんなところで通じるんだけど、マカッサルは観光地じゃないから全然通じない。そして、Grabtaxiも使えないし、もちろんUberとかも使えない。

便利な観光地しか行ったことない自分としては、はじめてのローカル地区という感じで、いつも以上に治安に神経尖らせる必要があり、なかなか脳みそが疲れました。

治安が悪いって脳みそのリソースを奪われるから、たぶん、他のことに脳みそを使う余裕もなくなる。欠乏の科学って本に、貧乏なるとお金の計算をする分、学校の成績が落ちる話が載ってたけど、治安の悪化も同じ効果あるなと思った。

ちなみに、使えるのは、Go-Jekとかいう、バイク相乗りアプリのみ。

バイク相乗りて。。渋滞だらけで、ノールールの交通状況を見てたら、容易に事故率の高さは推し量れたので、バイク二人乗りはやめときました。

しかし、このタクシー配車アプリ使えないというのは想像以上に困りまして、とにかくそのへんのタクシーを捕まえると、「このタクシーは大丈夫なタクシーなのか。。」という、面倒なことを考えないといけないんですよ。

インドネシアではBlueBirdというタクシーだけは安心だ!と言われていて、できるだけこのグループのタクシーを探すんだけど、そんなに簡単に見つからない。

さらには、偽Bluebirdタクシーというのもあり、フロントガラスにBluebirdのステッカーがついてないやつは偽物らしい。(笑)

ちなみに、タクシー乗っても、英語はまったく通じないに等しいので、現地の言葉を話せないとなかなか厳しいものがある。

Uberを使ってみたら

で、その後バリ島に戻りましたところ、ホテルのレストランでデンマーク人と仲良くなりました。なんかシンガポールに留学してて、休みだからサーフィンしにきたらしい。

ちなみに、デンマークは大学に行くだけで、国から毎月10万ぐらいお金がもらえると聞いてびびった。お金かかるんじゃなくて、教育受けたら国がボーナスくれるのかよ。

そして、「夜道歩くのは危険だから、俺はできるだけUber使ってるぜ!」と言われ、「僕はGrabtaxi使ってるよ」と言ったら、「とにかく、お金払う手間がないから楽だヨ」と教えてもらった。

そうか、ここはUberも使えるのかと思い、インストールしてたUberも使ってみることにしました。WWDCでサンフランシスコいった時は、レンタカー借りてあまり使わなかったUber。

アプリを起動すると、思った以上に近くにタクシーがいっぱいいて、なんかこのUIはゴキブリみたいだなと思いながら、呼んでみたら、速攻でマッチングした。

GrabTaxiと違って、事前にいくらかかるかわからないのはマイナス要素なんだけど、アプリの操作手順はこっちのほうがシンプルで呼ぶまでのステップが少ない。この手軽さ重視はいいかも。

Uberのタクシー運ちゃんに聞いたら、「ここではGrabTaxiよりUberのほうが人気だよー」と言ってた。そうだったのか。まあ、すぐに捕まるのは重要だから、タクシー配車サービスはネットワーク外部性も関係してくるなと思いながら、目的地へ到着。

到着したら、その後は降りるだけ。値段はアプリの履歴に出るんだけど、別にそこまで高くない。あったとしても誤差の範囲。

で、この、到着した後の、お金を払わなくてよいというのが想像以上に楽チン。

「この値段でOKだよね」「よし、確認してれ」とかの、お金の受け渡しもないし、あっちがお釣りあるかとか、でかい紙幣しかないとか、細かいお金ないとか、あまりはチップにするとか、そういう煩わしい事を全部すっ飛ばせる。

クレジットカード自動引き落としだから、現金も減らない。現金あまり多く持ち歩きたくないし、両替も面倒なんですよね。

到着したら、「ありがとう」と言って降りるだけ。

これがこんなに心理的に違うのかとびっくりした。お金払わなくていいから楽だよとは聞いてたんだけど、頭では理解して想像できてたんだけど、実際に体で体験しないとこの素晴らしさはピンとこなかった。

一度、この楽チンさを体験すると、今まで当たり前のようにしていた、タクシーの最後にお金を払うという行為が突然煩わしいものになってきてしまう。

この感覚は、便利で使いやすいものを使うと、今まで当たり前のように使っていたものに対し、突然不満が出てくるのに似ている。

プロダクトやサービスは、説明された時点で理解できる領域って本当に少ないんだなと思いました。

*このリンクでUber新規登録すると2000円までのクーポンが入るので(登録した人と、僕に)、気が向いたらどうぞ宜しく。https://www.uber.com/invite/bem3e


*家計簿読み上げのアプリ作ってます。自己紹介と過去ログはこちら


Parse Local Datastoreの限界と、クラウド同期アプリ作る時の注意点

iOSでParseと Parse Local Datastore最近2ヶ月ぐらい触ってるので、わかったことを書いてみます。間違いがわかれば嬉しいので、突っ込み歓迎。

さて、Local Datatoreは発表された時から僕はワクワクドキドキしていて、そのドキドキ感をブログで書いてきました。

Parse Local Datastore for iOSがやっと出た

しかし、実際には使ったレポートは書いてなかったんですね。なぜなら使ったことがなかったから。

しかし、最近はというと、2ヶ月近く前から毎日ParseとCoreDataの連携するコードを書きまくっていて、いろいろわかってきたことがあったので書いてみる。

基本的には、ParseのForum、Google Group、StackOverFlowで書かれている先人の知恵を借りながら、そこで書かれている現時点のベストプラクティスを参考にコード書いてる。

@目的
Taxnoteっていう経費記帳アプリに自動同期機能つける。

@背景
元々はCoreDataオンリーのアプリ。CoreData + Parse (+ Local Datastore)で自動同期機能をつけようとしてる途中。

@目指す動き
オフライン時はローカルにデータを保存し、オンラインな時にサーバと同期する。ようは、オフライン時でもキビキビ動いて、ユーザは意識しないまま、勝手に裏で同期が動く。

いろいろググったけど、Parse Local Datastoreをまとめたブログ記事は英語でもあんまりないので、参考になれば幸いです。

というわけで、まずは、Parse Local Datastoreの話を中心に書いていきまして、その後に、Parseの普通のメソッドの話を書いていく。

CoreDataとParse繋げるライブラリないの?

そもそも、僕はあんまり自分でコード書くより、もっとプログラミングが上手い人のライブラリを使いたいんですが、残念ながら良さげなのがありませんでした。

FTASyncは数年前に書かれてメンテはされてないし、すごくベーシックなことしかできないみたい。また、NSIncrementalStoreを使ったライブラリも試してみたんだけど、これも今はメンテされてなくて、上手く動かなかった。

Local Datastoreがでたから、みんなこっち使おうね。みたいな流れらしい。ただ、Local Datastoreはパフォーマンスの面で致命的な問題があり、使えず、しゃあないから自分で書かないといけなくなったと。

あとは、同期ってデリケートだから、自分で書いたほうがバグとかも対応できていいかなと思ったら、予想以上に大変で時間かかってる。

Local Datastoreのパフォーマンス

100個ぐらいのデータなら問題ないけど、1000個ぐらいセーブした時点で遅くなる。1500個ぐらいのデータを一気に取得しようとする時、iPhone6Plusで2秒近くかかっちゃう。CoreDataと同じことしようとしたら、雲底の速度差。

なので、Taxnoteのメインのデータのクラスには使えず(仕訳帳のクラス)、大幅に書き直す羽目に。

Taxnoteだと、メインの入力していくデータには使わず、勘定科目リストなどのデータのみに使うことに。

なぜかというと、科目リストのクラスと、メインの帳簿クラスはRelationで繋がっているので、ParseにSaveするたびに、Relationの呼び出しする時にLocal Datastor使うと便利だから。

Pinを分けたらパフォーマンス改善しないの?

Local DatastoreにはPinといって、それぞれ保存する領域を分けられる機能がある。

これを使って、カテゴリクラスのpin、エントリクラスのpinみたいに、Pinを分けたらパフォーマンス改善するかなと思って試してみた。

結果的には改善せず、Local Datastoreのパフォーマンスはこの時点で諦めた。なので、Local DatastoreをCoreDataとか、オフラインデータベースの代替品として使おうとするのは無理ゲーだと思う。

最初は自分もそういうふうに使えんじゃねえかと夢想したけど。

Local Datastoreをsyncするメソッドないの?

これ、Local Datastore使い始めたら思うんだけど、ParseをLocalに保存したものを、サーバ側と同期するメソッドがないんですよ。

Local Datastore Syncみたいな。

オフラインの時はLocal Datastoreに保存して、まだサーバに保存されてない部分だけ明示的に同期するとか。そういうメソッドがあれば便利なんだけど、残念ながらない。

どうすりゃいいかというと、結局、Parseのモデルクラスで、needSyncみたいな項目を作って、自分で needSync = NOのやつを後から呼び出して、syncされてないやつだけちゃんと保存しておくとか。

こういう面倒なことをしないといけない。こういうメソッドは必要だろみたいなことは、Parseのフォーラムでも書かれてます。まじで必要。

ここまで、Local Datastoreの話で、以下は普通のParseのメソッドについての話。

SaveEventuallyの弱点

Parseには、SaveEventuallyっていう、データを保存した時、もしオフラインだったら、あとでオンラインなった時に勝手にサーバに保存しときますよっていう素敵なメソッドがある。

これは、ドキュメント読む限りでは神メソッドだ。

ただ、オフライン時に何回か連発で呼んだり、呼んだ後にアプリをタスクから強制終了させたりしたら、Parseサーバに反映されないデータが出たりする。

いろいろテストして、信頼性が低いので結局使わないことにしました。CoreData側でneedSaveとか、needSyncとかのattribute作って、自分でオフライン対応することに。

SaveInBackGroundもSaveEventuallyのようにオンラインなったら自動saveされる動きするので注意。

まあ、すごく厳密にデータSaveされなかった漏れがないようにしたかったから、Taxnoteでは使わないことにしたけど、そこまで厳密にする意味ないような時はガンガン使ってよいと思う。

たいていの状況では普通にあとからsaveされるし。

複数データを一回でsaveAllした時のリミット制限は?

Parseには、1秒間に何リクエストまでという制限がある。無料プランだと少なくて、有料で段階的に上げていける。

例えば、100個ぐらいのデータを PFObject saveみたいな感じで100回繰り返せば、100リクエストになっちゃうのはわかるとして、100個のデータをまとめて、PFObject saveAllで保存したらリミット制限にはどう影響するか?

これは、saveAllでまとめて保存しても、保存するデータを個別にカウントする。だから、無料プランで、1800個ぐらいのデータを一発のsaveAllで保存しようとすると、リミットにひっかかりましたのエラーが出る。

まあ、そんなことは起きないアプリなら問題ないんだけど、Taxnoteは二年分の仕訳帳データが既にあったら、全部で1800件ぐらいなっちゃうんですよ。それを自動同期使う時に一気にアップロードしようとすると、エラーメッセージでてわかった。

解決策は、有料プランでリミットを上げるか、複数回にリトライするか。今、ここやってる途中。

データ削除の設計

これが厄介なんだけど、デバイスAとデバイスBでのデータを同期する時、片方で一つのデータを削除したら、もう片方でもデータを削除しないといけない。

例えば、デバイスAである一つのデータを削除した時、サーバ側でそのデータを本当に削除しちゃうと、デバイスBで同期する時に、そのモデルクラスにある全てのデータをシンクロしないといけなくなるんです。

これはパフォーマンス的によろしくない。

というわけで、実際にサーバ上ではデータを削除せず、isDeletedみたいなカラムを作って、ソフトデリートというデータベース設計の手法を使うらしい。

これなら、デバイスBはisDeleted = YESとなっているのだけQueryで検索かけて同期し、デバイスAで削除されたデータをデバイスBでも同期した時に削除するという動きができる。

まあ、これがベストなやり方だとは思うんだけど、定期的にサーバ側でisDeleted = YESになっているデータをクリーンアップする必要があるんですよね。Cronとか使って。このタイミングが悩み中。

これはParseは直接関係ないけど、同期アプリ作る時はぶち当たる壁かも。

まとめ

Parse Local Datastoreは1000件ぐらい保存したら遅くなるので、この遅さが問題になるアプリなら使いにくい。結局、CoreDataとParseの連携部分のロジックを書かないといけない。

でも、局所的に使うには便利です。

Taxnoteだと、仕訳帳一覧のモデルクラスと、科目のモデルクラスでRelationsつなげないといけないので、科目の部分だけLocal Datasore使うのは意味あった。

ちなみに、TaxnoteはもともとCoreDataで作ってたけど、新しいアプリなら、Realm + Parseで作ってたかも。Realm評判いいし。


*家計簿読み上げのアプリ作ってます。自己紹介と過去ログはこちら


新しい便利なモノは新しい問題も作る

最近、Dモーニングっていうのを購読したんですよ。モーニングっていう雑誌がiPhoneやiPadで読み放題、一ヶ月に500円っていう値付けのやつ。

これ、モーニング系の漫画好きな人ならモトが取れるし、きっかけは友達に熱烈に勧められて、「た、たしかにそれはいいかも。。」と思って一週間まえから始めてみた。

使ってみた感想はなかなかいい!雑誌買ったらゴミになるけど、スマホならいつでもどこでも、気軽に読めるし、バックナンバーも自由にダウンロードできる。

僕は毎週木曜日にチャンピオンの刃牙を立ち読みするのが一週間の楽しみだったんだけど、毎週の楽しみがまたひとつ増えました。

と、こういう普通の日記を書こうと思ったんじゃなくて、このDモーニングの重要な設計について書きたい。

漫画の掲載順が重要になる

この、Dモーニング、雑誌版に比べて、漫画の掲載順が死ぬほど重要になるんです。それぞれの漫画のページビューにとって。

というのも、Dモーニングの設計はまず低画質版を一気に全部ダウンロードされると、すべての漫画が”とりあえず”アプリで読めるようになり始める。

しかし、低画質版だとちょっと読む気にならないレベル。だから、バックグラウンドで高画質版をアプリがダウンロードし始めるので、高画質版が完了した漫画から読むようになりました。

これ、高画質版のダウンロードは漫画の掲載順なんですよ。

普通、雑誌の掲載順も読まれやすい漫画に影響はあるだろうけど、この高画質版のダウンロード完了の順番が関係してくると、もう圧倒的に影響がでかい。

だって、雑誌ならペラペラっと数秒で終わるところが、高画質版のダウンロードになると、数分、電波悪いともっとかかるわけですよ。

これなら、Dモーニングの掲載順が一番後ろの漫画は読まれる可能性がすごい低くなるだろうと簡単に予想できる。

読まれる可能性が低くなると、読書投票にも影響するし、電子書籍版はページビューとかの数値も計測してるなら、そこにも大きく影響するはず。

今後、電子書籍版で読むユーザがほとんどになった時、この設計のままだと大御所の作者が掲載順の前で有利になるから、新しい漫画の読まれる確率や、後ろに回された漫画の逆転は雑誌時代に比べてはるかに難しくなるかもしれない。

App Storeでランキング上位になれば、ずっと上位が続きやすく、新しいアプリがなかなか下克上しにくいみたいな。

じゃあ、どうすりゃいいか。お気に入り機能とかで、高画質版ダウンロード順をカスタマイズできるとか、いろいろな方法があるとは思うんだけど、僕は、別にDモーニングの設計はこうするべきだってことをここで書きたいわけでもないんですよ。

何を思ったかというと、使うモノの設計しだいで、人間の行動が大きく影響するから、その業界のビジネスの新陳代謝や発展にどれだけ影響するかを意識しながらアップデートしていくと、いい未来がやってくるんじゃないかと思ったわけです。

ニコラスカーの話

これをすごく意識させられたのは、ニコラスカーの、「ネットバカ」という本です。

毎回、ニコラスカーの本はクソみたいなタイトルを翻訳版はつけられて、カー先生に出版社は恨みでもあるのかと勘ぐっていますが、この本は素晴らしい本です。

人類が、道具の発達によって、行動様式、脳みその機能、身体機能がどう変わっていったかという話を、活版印刷の登場からGoogleまでかなり深く洞察してる。

例えば、パソコンを使うようになって漢字は書けなくなるし、GoogleMapで地図を読めない人が増えるとか、そんなのは誰でも思いつく。

で、そのマイナス面はみんな直感的にわかっていて、僕だって「別に漢字書けなくても、パソコン時代だから特にデメリット少ないし。」と思ってるわけです。

ただ、世の中にはデメリットがないと思いこんでたり、まったく気づいていないデメリットが往々にしてあったりするということもあります。

最近読んだ、「失われてゆく、我々の内なる細菌」という本では、画期的な発明と賞賛され、昔なら死んでいた病気から人類を救っている抗生物質や、家畜に使われる成長促進剤が、昔ならほとんどなかったアレルギーなどの新しい問題の原因になっているという話を書いていた。

なにか便利なものを作ると、想像の範囲を超えたデメリットや結果が発生する可能性がよくあると。そういうことをモノづくりする時は意識して、改良し続けるのが重要だなと思う。

電子書籍 月額読み放題サービス

音楽ではSpotifyやAppleMusicなど、当たり前になってきた月額定額での聞き放題サービス。

これに似た、電子書籍の読み放題サービスをアマゾンがこの前発表してた。

音楽では聞かれた曲数によってクリエイターに収益配分が分配されるが、書籍だとさらに複雑になる。

ニコラスカーのこのブログ記事では、Amazonの新サービスのルールを適用すると、書籍業界にどういう影響が出るかを詳細に書いてて面白い。

How to write a book when you’re paid by the page

例えば、読んだページ数によって、作者に分配がされ、カウントは最初の読んだ時だけというルール。

これなら、サクサクと読みやすく、続きが気になる本が圧倒的に有利になり、儲けるためにはそういうジャンルばかりになりやすい。

何度もページを読み返して、深く味わう種類の本にはまったく儲からないプラットフォームになるので、そういう本は消えていく。

紙の本から電子書籍になり、その次は放題サービスと、プラットフォームが変わるたびに、そのルールが生態系を変えちゃう可能性があります。

ふだんの生活でどうすりゃいいか

普通は大きな影響力を持つプラットフォームを作るわけでもないので、なにかを利用する時のほうが意識すると面白いかもしれない。

なにか、便利なものを買ったり、使い始めたりした時、一見想像できるデメリットや副作用はなさそうで、後々顔を出してくるネガティブな側面に気づくとか。

逆に、すごく不便な土地や、快適とは思えない生活をしばらくしたら、今まで頭の中だけではわからなかった事が実感できたり。最近そういうことが自分にあって面白かった。


*家計簿読み上げのアプリ作ってます。自己紹介と過去ログはこちら


Parse Meetup Tokyoが7月24日に六本木で開催

先日、ParseのエバンジェリストであるEricさんに会いに行ってきたという記事を書いたけど、7月24日にParse Meetupを六本木で開催するらしい。

https://parsemeetuptokyo.splashthat.com/

Parse使ってるけど、Parse周りで情報交換したいとかいう人はオススメだと思う。

しかし、このイベントページ見た人はこう思うはずだ。

「あれ、これ全部英語なの?ここ、日本だし、僕日本人なんだけど?」

そうなんです。今のところ、英語オンリーの予定みたいだ。(同時通訳してくれる人が現れる可能性もあるけど)

場所は六本木のFacebookオフィスだから、この前お邪魔したあの高そうなビルですね。アークヒルズ仙谷山の森ビルだから、あのみんながイメージする、映画館とか隣接するでっかいほうの森ビルとは違うので注意。

Ericさんいわく、このビルの賃料はサンフランシスコより高いぜ!だとか。

このイベント、第一回なのもあり、かなり濃いメンツが集まりそうな予感がするので面白いと思う。ちなみに、このイベントページを作るサービスいいですね。Splashというのか。
https://www.splashthat.com/


*家計簿読み上げのアプリ作ってます。自己紹介と過去ログはこちら


Mixpanelでアプリ内に告知ポップを出す

前回、AppStoreに依存しないメディアの価値という記事を書きました。

ただ、アプリ宣伝にはやっぱ自分のアプリ内で宣伝するのが効果あるなという話になってしまった。

ブログ、Twitter、メルマガなどは、AppStoreに依存しない長期的な資産になるけど、とりあえず今回はアプリ内で他のアプリを宣伝する方法を考えてみる。

これは、アプリが全てリジェクトされたら終了なので、AppStoreに思いっきり依存するのだが。。

アプリ内でスマートに宣伝したい

さて、スマートに宣伝するというのは、スパムにならないように宣伝するとも言い換えられる。このバランスが非常に難しいので、常に気を使わないといけないけど、いろいろ考えました。

まず、自分のアプリの例でいうと、それぞれのアプリの設定画面に、「開発者のアプリ」というボタンを設定してる。このボタンをタップすると、自分のアプリ一覧が表示される画面が出る。

こうやって、ささやかながら、よければこんなのも作ってるから、ダウンロードしちゃってくださいねという動線をこしらえているわけです。

ちなみに、設定画面の奥底に設置しているだけでも、意外にコアなユーザは他のアプリも試してくれたりする。なぜかというと、Zenyのレビュー欄で、こんな書き込みがよくあるから。

「この作者さんのアプリは使いやすい!もうひとつのListTimerも使ってます!」

こういう書き込みを見ていると、うーむ、やっぱり親和性の高いアプリだと、どっちも使ってくれる人が多いんだなという印象を持った。

でも、設定画面の奥底の「開発者のアプリ」みたいなボタンをタップして、他のアプリまで覗いてくれる人は少ないと思う。

なので、ここはもっと、こちらから知らせたい!というのがこっちの理屈なんだけど、どうすればよいか。

プッシュ通知?

まず、思いつくのがこれ。プッシュ通知で他のアプリをオススメする。

ただ、これ、そもそもアップルの規約でプロモーションに使うのは禁止ってあるんですよね。あんま守られてない気もするけど。

さらに、プッシュ通知て、プッシュ通知の許可を取ってないといけないし、アプリがバックグラウンドにある時にお知らせされても鬱陶しい。

というわけで、プッシュ通知はボツにしました。

アプリを開いた時に宣伝する

例えば、Zenyをある程度の期間使ってくれている人に、アプリを開いた時にListTimerを紹介する、というようなダイアログを出したい。

もちろん、紹介するアプリであるListTimerをすでにインストールしている人は覗いて。

例えば、ListTimerがアップデートしてさらに便利になったタイミングとかだと、紹介する理由がちょっとできてやりやすい。

先日Lineを開いてたら、Line Musicの宣伝が出てきたんだけど、イメージとしてはこんな感じ。

ただ、こういう機能って、サーバ側からの操作が必要なので、サーバーサイド用意しないといけないんですね。自分でサーバーサイド準備するの面倒じゃないですか。

みんなが欲しがるような機能はすでに誰かが作っているはずだ。

ちなみに、昔Githubでこのものズバリのライブラリを見た気がするけど、探し出せなかった。。なんだっけなあと調べていると、一番使いやすそうな機能をMixpanelが提供してました。

MixpanelのIn-App-Notifications

MixpanelのIn-App-Notifications。これがそのものズバリです。

他のアプリの宣伝にも使えるし、その他の重要な通知にも使える。最新版にはバグがあるので、こちらを参照してねとか。

画像とボタン付きのポップアップをアプリ内で表示できる。こりゃ便利。というわけで、ここからはMixpanelのこの機能を紹介していこうと思う。

表示の仕方は2つあって、「Fullscreen」と「Mini」。

正直の写真では画像、タイトル、詳細、ボタンとカスタマイズしているFullscreenのほう。Web上ですごくカスタマイズしやすい。ボタンをタップすると、特定のページに飛ばしたり、deeplinkでアプリの特定の場所に飛ばしたりできる。

今回は、AppStoreのダウンロードリンクに飛ぶようにしてみた。これをアプリ内でポップさせるとこのような感じになる。

ちなみに、「Mini」のほうは、アプリの下にメッセージだけ表示できるもので、任意の秒数がたった後に勝手に消える形式。閉じるボタンをタップしないと消えない設定にもできる。

ただ、モーダルとか、アプリ内で画面転移しても自動で消えるので、なにかの操作中に、ぴょこっと下にでて、気づかないうちに画面転移しちゃって同時に消えてしまうという可能性があるので、そこがネックですね。

セグメントする

Mixpanelの便利なところは、闇雲に全員に出すのではなく、ちゃんとセグメント区切ってポップを表示させることができる。

例えば、最近、数日の間にアプリを開いているユーザだとか、英語のメッセージを表示させたいから、言語が英語設定の人だけとか。

僕の場合、ListTimerから家計簿プリのZenyを宣伝する場合、すでにZenyをインストールしている人には宣伝を表示したくない。

この場合、Mixpanelにはpeople設定というのがあり、ZenyのURLスキーム使って、アプリをすでにインストールしているかどうかをAppDelegateで下記のようにチェックしてみた。

// Set indetify and people profile to use in-app notifications
[mixpanel identify:mixpanel.distinctId];

// Check if Zeny installed
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@”zeny:”]]) {
[mixpanel.people set:@{@”Zeny”: @”Installed”}];
} else {
[mixpanel.people set:@{@”Zeny”: @”NotInstalled”}];
}

このコードを書いておけば、Mixpanelのページで後からセグメントが切れる。

国が日本で、なおかつListTimerをインストールしてない人にMixpanel内でセグメント区切るとこんな感じになる。

ちなみに、一度送ったメッセージは同じ端末には送らないようになっているので、重複して送信しちゃうこともないらしい。こりゃ便利。

ついにで、宣伝ポップを表示して、ボタンをタップした割合が何パーセントだとか、そういう分析もAnalyticsで出来る。iTunesのAnalyticsリンクと組み合わせたら、実際にアプリをインストールまで行ったコンバージョンも測れそうだ。

無料では26,000デバイスまで

こんなに便利なMixpanelだけど、基本は有料サービスなので、無料だと制限がある。

このIn-App-NotificationsはMixpanelのPeopleっていう端末毎にセグメントする機能を使わないと送れないんだけど、このPeopleの数が制限あるんですよ。

価格表はこちら。https://mixpanel.com/pricing/#people

このMixpanelパートナーってのは、自分のHPにmixpanelのリンクを設定したら簡単になれるから、tumblerでも登録して、適当にリンクを貼ればOKなゆるいもの。

なので、実質26,000デバイスまでが無料での制限となる。

これ、月に26,000の制限だから、毎月ユーザー追加していけるって意味なのか?とも思って、メールしてみたけど、やっぱり、最大の端末数が26,000であって、それ以上は無料では追加できないようだ。人生そう甘くなかった。

うーん、50,000まで使えるのが一番安い有料プランなんだけど、月に$150はこれだけのために出せないかなあ。

実際に自分でやってみて、どの程度の訴状効果が生まれたかとかをまた書いてみたいので、このシリーズは続くはず。

ちなみに、Mixpanelなどのデータ分析に興味ある人は、LeanAnalyticsについてこちらの記事もどうぞ。
虚構の数字と改善に繋がる数字


*家計簿読み上げのアプリ作ってます。自己紹介と過去ログはこちら


Copyright © 2024 うめのんブログ

Theme by Anders NorenUp ↑