スタートアップ勉強会
TRANSCRIPT
「一人で進めるモバイル開発」第一回スタートアップ IOS/ANDROID 勉強会 10/01 @JUMBOS5
最近、骨折って皆さんしました?
転職して社内でたった一人のアプリエンジニアになったし骨折もしたけど無事リリースできたのでその話
一人になった人の自己紹介
KENTARO HANEDA (27) @JUMBOS5▸ 職種
▸ Marketing Dept. Mobile Developer▸ 職歴
▸ Retty Yahoo!JAPAN👉 (ヤフオク) 👉 RareJob▸ 仕事
▸ Go/iOS/Kotlin/Python/Marketing
いろいろ作ってます
作っているもの「レアジョブ日常英会話アプリ」フルスクラッチで Swift2.3 で作りました
InShade趣味で作りましたサーバは Rails, アプリは Swift2.0 ですandroid も kotlin+RxJava で作ったけどリリースしてない
lanskip週末で手伝ってますweb 側は Go(Revel), AppleTV もあります
一人になりまして導入
アプリを作るときの意思決定者の移り変わり
前々職アプリ関係者 5 人- エンジニア- デザイナー- プランナー
前職アプリ関係者 めちゃめちゃたくさん- エンジニア(ベトナム・委託)
- デザイナー- プランナー
- CS- 偉い人- その他
今アプリ関係者 1,2 人
一人のアプリエンジニアのお仕事▸ 企画
▸ 戦略立案、効果測定▸ 開発
▸ 新機能、バグ修正、新 OS 、デバイス対応、デザイン▸ 運用
▸ CS 返答対応、クラッシュ監視 なんでもやりたいと言ったらほんとになんでもやることになったでござる
なんでもできるとは言ってない(白目)しかもリリース日決まっている
しかもリリース前に 1 週間アメリカ行く・・・
〜 入社後すぐ 〜
気づいた、うまくやらないと詰む
うまくやるための進め方、実装、仕事の領域
うまくやるための進め方
進め方
WEB サービスのアプリ化▸ 何年もあるサービスのアプリ化を実施する
▸ 様々な問題がある。▸ A. 仕様がプロダクト▸ B. API チームのリソース不足▸ C. 優先度決め
A. 仕様がプロダクト. 問題仕様書がない、それをまとめる時間もない、人がいなくなってわからない、ビジネスロジックがクライアントに寄りすぎている
進め方
A. 仕様がプロダクト. 問題仕様書がない、それをまとめる時間もない、人がいなくなってわからない、ビジネスロジックがクライアントに寄りすぎている
. 取り組み 「めちゃめちゃドッグフーディングしてもらう」
進め方
進め方
進め方
PHP が動くサーバであればだいたい動きますあとで公開します
A. 仕様がプロダクト. 結果バグや仕様漏れ、使用感についてサービスに詳しい社員から 50 件以上のフィードバックがもらえた。特に大きなバグもなくリリースできた
. 取り組み 「めちゃめちゃドッグフーディングしてもらう」
• 自作のフィードバックツール• すぐフィードバックできる UI もアプリに用意• 社内カフェスペースに実機も用意
進め方
B.API チームのリソース不足. 問題API のログとかよしなに見てくれない
API のログ見たいのでFluentd+Kibana でよしなに・・・
・・・(忙しそうだ)
リソースが、セキュリティが、工数が・・・
進め方
B.API チームのリソース不足. 問題API のログとかよしなに見てくれない
API のログ見たいのでFluentd+Kibana でよしなに・・・
・・・(忙しそうだ)
リソースが、セキュリティが、工数が・・・
. 取り組み 「仕方ないので自分で集めて自分で見る」
進め方
B.API チームのリソース不足
Firebase は UI も使いやすいし、広告と紐付けて CV の定義が簡単なのでとても便利なんだけど- イベントの値が BigQuery 使わないと扱えない(有料)- ファネルを見るなら Flurry explore の方が便利 - A/B Test の RemoteConfig も使い難い
. 結果Firebase でログをほぼ全て落とすようにしてみた。これで API チームに負担かけることなく意図せず出ているエラーの頻度や他とのファネルが見れるようになった
進め方
C. 優先度決め. 問題一人だと管理がザルになりがち、優先度も主観で決めちゃう振り返ってみるとリリース後に何を検証したかったのか見失う・・・
進め方
C. 優先度決め. 問題一人だと管理がザルになりがち、優先度も主観で決めちゃう振り返ってみるとリリース後に何を検証したかったのか見失う・・・
. 取り組み 「なにごとも KPI ツリーで説明する」例)次のリリース何するの?なんで UI 変更なんてするの?うごくやん!
進め方
テキストまずWEB と比較したKPI ツリーを作る
WEB だと初回起動からの会員登録が〇〇% なのでアプリでも同程度のパフォーマンスが出ると思うので検証しますいつもどの数値の検証をしているかを全体への影響を考慮して話せるようにする
進め方
うまくやるための実装
入社してすぐアメリカへ行き帰ってきてすぐ腕を骨折をし、メガネを割り PC にヒビを入れる
〜 リリース 2ヶ月前 〜やばいとにかく時間がない・・・しかも予想より API も重い・・・うまくキャッシュ使わなきゃ・・・振る舞いが複雑になる予感、データアクセスに闇が生まれそう
_人人人人人人人人_> 助けて! OSS! < ̄ Y^Y^Y^Y^Y^Y^Y ̄
実装
ReserveView
ReserveViewModel :StateView
Model
TeacherDataStore
TeacherModel
RxSwift
ViewController ViewModel Repository Model
APIKIT
MVVM実装
ReserveView
ReserveViewModel :StateView
Model
TeacherDataStore
TeacherModel
RxSwift
ViewController ViewModel Repository Model
APIKITRxSwift で振る舞いとデータの動きを全部関連づけるビルドはすごい重くナッタ orz
MVVM実装
ReserveView
ReserveViewModel :StateView
Model
TeacherDataStore
TeacherModel
RxSwift
ViewController ViewModel Repository Model
APIKITViewModel はキャッシュや API を意識せずアクセスできる
MVVM実装
ReserveView
ReserveViewModel :StateView
Model
TeacherDataStore
TeacherModel
RxSwift
ViewController ViewModel Repository Model
APIKIT
* Realm を初めて使うときの注意点- Relam 使うなら Model を Class にしなければ- Model 変更時に Migration のコードがないと落ちる-別スレッドに値を渡すと落ちる- AND検索とかはサブクエリ使わないといけないこの辺守ればめちゃ便利!!!!
MVVM実装
〜 リリースした後 〜
リリースしたら安心した。たくさんアップデートしたいけど申請ビルドとかテスト配信めんどくさい
_人人人人人人人人_> 助けて!誰か! < ̄ Y^Y^Y^Y^Y^Y^Y ̄
助けるで
実装
bitrise
実装
・こんなとこがいい- 無料プランで十分回せる-設定が簡単- fastlane連携で itunesconnectへのアップロードやテスト配信可能-外部サービスと連携簡単- android も使える
実装
うまくやるための仕事の領域
. マーケティングをやるノンプロモでのオーガニックでの獲得を取るのはもちろん重要、でも使える予算があるなら、それをもとにコンテンツがあるのにユーザーを集めないのはもったいない!!
広告は設計できるアプリユーザーの入り口、媒体ごとにどんなユーザーが入ってきているのか、その人たちにどれだけお金をかけていいのか・・・実装の優先度もそれで変わってくる。
仕事の領域
おわり
まとめ▸ bitrise 最高▸ OSS 最高▸ マーケティング超楽しい
一人でうまくやるために「ロボット」「周りの人に頼る仕組み」「説明しやすい仕組み」を作る・整理する
お約束絶賛エンジニア・デザイン募集中です、英語喋れるようになる環境ですよろしくお願いいたします(入社すぐアメリカ行って骨折しても優しくしてくれるいい会社です)
上場企業のアプリ事業を一緒に進めてくださいいいいいい!!!!