moxt

Just another Blog site

シードラウンドなスタートアップでアプリ開発する上で心がけたこと

      2015/07/03

約2ヶ月の開発期間を経てアプリ(Android)をリリースすることができた。
まだまだダウンロード数はこれから、といった感じであるが、ユーザの方から「こんなアプリが欲しかった」、「がんばって下さい応援してます」といった励ましの言葉をいただき気分が高まっているところである。

これまでの約2ヶ月を今後の開発に活かすという意味も込めて、振り返ってみる。

自分でつくらない

当然のことだがスタートアップ、特にシードラウンドにいるようなスタートアップでは人が少ない。
エンジニアとデザイナーが少ない。私が勤めてる会社は自分を含めて2人のエンジニアしかいない。
デザイナーはいない。外注である。
他のスタートアップ事情を聞いてる感じ、これでも恵まれてる方じゃないかと思ってる。

とにかくリソースが無いので、真面目に手を動かしてると何も進まない。
なので、叡智を拝借することになる。
ということで、Qiitaやライブラリのサイトはよく目を通すようにしていた。
使えそうなライブラリは積極的に使った。

イマドキなイカした Android のオープンソースライブラリ集
http://qiita.com/KeithYokoma/items/fb6872a72a75e9b6f2e6

少し昔の記事だが、Model、Observer、Viewに関するライブラリは導入しない理由はないほど重宝する。
Retrofit,UniversalImagerLoader,Otto,ButterKnifeは必需品だ。
DaggerのようなDIコンテナを使ってみたかったが、実戦で使った経験がないこともあり見送った。

使えそうなもの、それが何ができるか分かるものだけ使った。すげー当たり前だけど。。w
なので、DIコンテナのような意識の高そうなライブラリ(コンテナを積み替えるだけでテストが簡単にできるのはスゴい)は、あくまでプラスαなので無視した。

このサイトではAndroid用の兵器工場(arsenal)という名にふさわしく、あらゆるジャンルのライブラリが蓄積され、日々アップデートされている。

https://android-arsenal.com/

これは毎日見てる。ライブラリを見ながらこういう場面で使えそうとか、こういう動きのときはこれだなと武器を拾ってる感じ。実際にここで見つけたライブラリをいくつか使用してる。

アプリの必須要件だったカメラ機能や端末の画像選択機能なんかも自分では全く作ってない。
カメラはデフォルトカメラにIntent投げてるだけだし、画像選択機能もライブラリを使ってる。
APIとの連絡をするクラスも基本的にはRetrofitがやってくれるし、取得結果の通知はOttoに任せてController内にModelな処理は持ち込まないようにしてる。アプリ内で表示する画像はUILに丸投げしてる。キャッシングや表示のアニメーションなど使いたい機能は大抵あるので、それを呼び出すだけだ。Viewの操作はButterKnifeで行って、findBy地獄から解放された。

自前で作りこんだ所はほとんどなくて、ガッツリ作ったかもと思うのはFragmentを中央集権的に管理できるような仕組みやiOSチック(←)なViewの2つくらいである。

↑このようなことを書くと、情弱、カスプログラマーと意識の高い諸君らは罵りたくなるだろう。
その言葉に対して『理想は分かった、じゃあどうすんの?』と返したい。
キレイなプログラムで書かれてないから、レビューで☆1とはならない。
もちろんキレイなプログラムは素晴らしい。変な依存もなく拡張性にも優れ、インターフェースで情報がやりとりされてる。美しい。
それは今のフェーズでは求められてないと思ってる。
いやいや超人になればいいでしょ、と口では言えるけどそう簡単になれるもんではない。
StackOverFlowみたいなサイトは要らないはずだw

自分で作らず、人の成果を拝借して自分の作りたいものを構築する。
このスピード感はアーリーなスタートアップでは必須だろうと考える。

今はつくらない

CEOは高い理想を持ってる。当然だ。
ただ、現実的にそれは時間がかかるよとか、それどういう仕組で解決するのとか現実的じゃない部分って出てくる。
それを容赦なく切り捨てる、かつMVPと呼ばれる本当に届けたい価値は残す。ということを議論しながら詰める必要がある。

その結果、今はつくらないことにしようとなる。
もちろん、これがないと届けたい価値が全く伝わらないという所までを先送りにはしない。
それでもじゃあ、どうすれば最小限のコストで価値が伝わるかというそぎ落としはやめない。

エンジニアは膨大な機能要件を容赦なく切り捨てる役目かなと思ってる。
いや、それはあるに越したことはないよ。でも、それってこれより大事なの?
と、何度言っただろうかw
ただ、切り捨てることに夢中になってると価値の芯まで削り取ることになってしまう。
なので、私たちのチームでは週一でビジョンやコンセプトを確認するようにしていた。
現実の世界ばかりに目を向けてると、大事なことを忘れてしまうことがある。

なので、この振り返りは有意義だと思う。

月並みだけど、費用対効果を意識することが大事。

 - Uncategorized

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

  関連記事

no image
AngularJS再入門メモ

国内では相当disられて下火感を醸しているAngularJS disるほどこのフレームワークに詳しくないので理解したところをメモ。 …

shibaken
ソーシャルの呪縛から解き放たれたい

最近は何かしらのサービスを始めると、たいてい顔見知りな人にフォローしたり、されたりする。自動で。これがお節介な機能で、書きたいこといろいろ書くけど、公開されたモノが知り合いに晒されるのかと思うと公開をためらってしまう。 結局、下書きのまま放置なんてことがままあった。 …

no image
DJしてみたいけど混乱してる人がここにいるよ。

クラブ系の音楽が昔から好きでよく聞いてる。 クラブではDJが曲を絶えずかけてフロアを盛り上げてる。 …