Upgrade to Pro — share decks privately, control downloads, hide ads and more …

新規サービスのアプリ開発で経験したリアルな出来事

 新規サービスのアプリ開発で経験したリアルな出来事

mixi GROUP Tech Meet ! でのPoiboyグループ 今泉の発表資料です。
https://connpass.com/event/78324/

Tomohiro Imaizumi

February 20, 2018
Tweet

More Decks by Tomohiro Imaizumi

Other Decks in Programming

Transcript

  1. 新規サービスのアプリ開発で
    経験したリアルな出来事
    株式会社Diverse 新規サービス事業部
    Poiboyグループ 今泉智博
    (2018/02/20 @mixi GROUP Tech Meet)

    View full-size slide

  2. 今泉智博 (2017年新卒⼊社)
    @imaizume
    所属
    iOSデビュー1ヶ⽉⽬で iOS版の開発を担当
    学⽣時代はRubyやWebフロントエンド開発が中⼼
    2015年 サマーインターン in
    (内定者に聞く!現場で実務を経験できるサマーインターンシップ「Dive into mixi GROUP」 - ミクシィグループ公式ブログ)

    View full-size slide

  3. 就活時の企業選択軸
    サービス作りしたい
    フルスタックになりたい
    事業創造の仕⽅
    経営者のビジョン
    経営状態
    福利厚⽣
    技術スタック
    優秀な社員の存在
    ⾃⾝のやりたいこと/⽬標
    組織/制度 事業/経営
    短期的/狭域的
    ⽐較的よく⾒られる
    ⻑期的/⼤域的
    難しいけど⼤事

    View full-size slide

  4. 組織/制度
    ✅ ライフサービス×エンタメ
    ✅ SNS時代の失敗経験
    ✅ 「⽂化」の数値⽬標
    ✅ 優秀な新卒がリードする現場
    ✅ 個⼈の⽬標実現を仕事で応援
    ✅ ⽣産性向上のための福利厚⽣
    事業/経営
    ミクシィグループの強み

    View full-size slide

  5. ⼥性主導の
    カジュアルマッチングアプリ❤

    View full-size slide

  6. 社内表彰

    View full-size slide

  7. 過去には
    ノンスタ井上さんとのコラボも

    View full-size slide

  8. そんな での活動記録&'

    View full-size slide

  9. メンターさん
    自分
    メンターさんを上回るコードをpushし
    圧倒的 Contributionを達成❗❗
    失敗・修正しながら技術を覚える
    「現場で育つ」ミクシィの新卒研修⽂化

    View full-size slide

  10.  インセンティブ強化施策
    ⭐写真分析機能
    夏CPスロットポップアップ
    ⭐セカンドリニューアル
    ⭐XCTest/mock/stub導⼊
    学校/職業追加
     ストア申請 (リリース毎)
     コードレビュー&対応 (毎⽇)
     リファクタリング (毎⽇)
    本業
    ⭐Diverse 公式HP Renewal
    ⭐チームKPTの環境作り/運⽤
     Android版デバッグ (毎⽇)
     採⽤/技術イベント登壇
     懇親会幹事3回
    サブ
    タスク実績

    View full-size slide

  11.  インセンティブ強化施策
    ⭐写真分析機能
    夏CPスロットポップアップ
    ⭐セカンドリニューアル
    ⭐XCTest/mock/stub導⼊
    学校/職業追加
     ストア申請 (リリース毎)
     コードレビュー&対応 (毎⽇)
     リファクタリング (毎⽇)
    本業
    ⭐Diverse 公式HP Renewal
    ⭐チームKPTの環境作り/運⽤
     Android版デバッグ (毎⽇)
     採⽤/技術イベント登壇
     懇親会幹事3回
    サブ
    タスク実績

    View full-size slide

  12. 夏CPスロットポップアップ
    2017年夏のキャンペーン
    アプリ内にスロットゲームを設置
    賞品が当たる抽選企画を実施
    概要

    View full-size slide

  13. 㘬㘲㖽㘻
    サーバーから事前に結果を受け取る
    ボタン押下で3つのリールが独⽴に回転
    対応する絵柄を揃え停⽌
    Auto Layout
    要件
    中⼼で⽌める
    独⽴に回転
    無限スクロール
    適度な待ち時間
    開始ボタン押下でリクエスト送信
    /api/campaign , {“type”: 1 }
    サーバーは抽選結果を返す
    {“result”: 3 } — // 賞品ID

    View full-size slide

  14. 無限スクロールすら⼤変なのに
    複雑な座標計算が必要?
    初の⼤きなタスクを前に
    ⼿を動かせずにいた時
    「指定位置で⾃動停⽌」の⽅法
    はネットには載ってないし…
    ⾃動停⽌なんてどう実装するんだ…
    締切りまで時間なさそうだな…

    View full-size slide

  15. 難しい実装だよね
    ⾃分も経験無くて良いアドバイスできないかも
    でも全⼒でサポートするし時間かけて良いから
    どんどん試して結果を教えてほしいな❗
    チャレンジする仲間を応援する⽂化
    考えるより、とにかく⼿を動かしてトライする
    メンターさんのフォロー
    UIScrollView
    UITableView
    UICollectionView
    SpriteKit
    最終的に
    UICollectionView
    で実装に成功
    @cfiken さん

    View full-size slide

  16. できたもの

    View full-size slide

  17. しかし現実は残酷だった

    View full-size slide

  18. なんとその後、他の機能が原因で
    Appleの審査を通過できない事態が発⽣
    通った時には既に夏が終わり
    スロットが⽇の⽬を⾒ることはなかった…
    チャレンジは成功ばかりではない
    失敗も学びと捉え前に進む⼒を得た!

    View full-size slide

  19. 学校/職業追加
    ⾒た⽬以外の魅⼒を伝える
    またマッチング後の話題提供のため
    プロフィールに学歴と職業を追加
    概要

    View full-size slide

  20. 登録時にFacebookから情報を受け取る
    情報は⼀旦サーバーへ送られる
    編集時はサーバーから情報を受け取って編集
    要件
    学歴職歴の取得許諾
    FBデータを転送
    編集時に取得
    学歴/職歴データ
    ここだけ⾒ると簡単そうだが…

    View full-size slide

  21. 学歴職歴の取得許諾
    FBデータを転送
    編集時に取得
    学歴/職歴データ
    既存/FB以外で登録のUserは
    そもそも情報がない
    String? で返却 = 条件分岐増
    許諾降りない場合のハンドリング
    FBに職業ないUserには「カテゴリ」を表⽰
    カテゴリ表⽰と実職業表⽰をスイッチ可に
    取得不可だったら
    デフォルト値を送信?
    学校登録ない場合は
    カテゴリに「学⽣」を追加
    隠れた仕様が⼤量に…
    これはデスマしそうな予感

    View full-size slide

  22. 変化・不確定要素と向き合い
    ⾃発的に⾏動することが⼤切
    仕様の⽬的・機能の価値を理解
    すべきこと1
    関係者へこまめに報告/相談
    (⼯数に⾒合わない価値の仕様はないか)
    エンジニアから仕様を提案する
    (エンジニア視点の制約を仕様に反映する)
    (⼝頭確認もSlack&Wikiへの記録を⽋かさない)

    View full-size slide

  23. できたもの
    登録 編集
    v5.4.0で無事リリースされました❗

    View full-size slide

  24. 未来: これからの話
    (次の1年に向けて)

    View full-size slide

  25. 今まで
    ✓ リリース優先
    ✓ 実装重視
    ✓短期/狭域的問題解決
    ✓ ⼈海戦術
    ✓ 局所最適化
    これから
    ✓ 開発効率と持続性
    ✓ 設計重視
    ✓⻑期/広域的問題解決
    ✓ ⾃動化の推進
    ✓ ⼤域的最適化
    はこんな状態だった
    ⾒えたもの

    View full-size slide

  26. 今後続く開発/運⽤に
    持続的に対応可能な へ
    を⽀えるにはまだ⼒不⾜
    しかし経験値は着実に上がっている
    既存実装にとらわれず設計から⾒直す
    強い意志で⾃動テストやMock/Stubを導⼊
    壁にぶつかってもチャレンジをやめない
    現状
    次の⽬標
    ⾏動

    View full-size slide