Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
新規サービスのアプリ開発で経験したリアルな出来事
Search
Tomohiro Imaizumi
February 20, 2018
Programming
1
2.7k
新規サービスのアプリ開発で経験したリアルな出来事
mixi GROUP Tech Meet ! でのPoiboyグループ 今泉の発表資料です。
https://connpass.com/event/78324/
Tomohiro Imaizumi
February 20, 2018
Tweet
Share
More Decks by Tomohiro Imaizumi
See All by Tomohiro Imaizumi
Feature Flagを使った開発で高速かつストレスフリーなデリバリーを実現する / Fast and stress-free delivery with Feature Flag-based development
imaizume
2
3.7k
プロダクトグロースと技術のベースアップを両立させるRettyのアプリ開発スタイル / Achieve Product Growth and Tech Update
imaizume
1
770
git branchを自由に操れるようになろう / Let's Play with Git branch!
imaizume
2
1.2k
スナップショットテスト実戦投入 / Practical Snapshot Testing
imaizume
13
7.1k
コーディング以外のエンジニアリング / About Engineering Without Coding
imaizume
1
1.7k
Firebase Remote Configの運用で知ったこと・知っておくと良いこと / Things I Learned from Operation of Firebase Remote Config
imaizume
6
4k
iOSアプリのテストを書きたいのに書けないあなたへ / How You Should Start to Write Your First Unit Test for iOS
imaizume
6
5k
循環的複雑度を上げないためのSwiftプログラミングTips / Tips of Swift Programming to Reduce Code Complexity
imaizume
11
8.1k
シングルトンではじめる状態管理と依存注入 / A way to control state using singleton pattern
imaizume
0
4.8k
Other Decks in Programming
See All in Programming
月刊 競技プログラミングをお仕事に役立てるには
terryu16
1
1.2k
선언형 UI에서의 상태관리
l2hyunwoo
0
270
どうして手を動かすよりもチーム内のコードレビューを優先するべきなのか
okashoi
3
870
テストコード書いてみませんか?
onopon
2
340
アクターシステムに頼らずEvent Sourcingする方法について
j5ik2o
6
700
Alba: Why, How and What's So Interesting
okuramasafumi
0
210
Androidアプリの One Experience リリース
nein37
0
1.2k
KMP와 kotlinx.rpc로 서버와 클라이언트 동기화
kwakeuijin
0
300
ISUCON14感想戦で85万点まで頑張ってみた
ponyo877
1
590
AWSのLambdaで PHPを動かす選択肢
rinchoku
2
390
PicoRubyと暮らす、シェアハウスハック
ryosk7
0
220
Amazon Nova Reelの可能性
hideg
0
200
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
19
3.1k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.2k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
28
2.2k
Statistics for Hackers
jakevdp
797
220k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
Producing Creativity
orderedlist
PRO
343
39k
We Have a Design System, Now What?
morganepeng
51
7.3k
Facilitating Awesome Meetings
lara
51
6.2k
Music & Morning Musume
bryan
46
6.3k
Automating Front-end Workflow
addyosmani
1366
200k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
19
2.3k
Transcript
新規サービスのアプリ開発で 経験したリアルな出来事 株式会社Diverse 新規サービス事業部 Poiboyグループ 今泉智博 (2018/02/20 @mixi GROUP Tech
Meet)
今泉智博 (2017年新卒⼊社) @imaizume 所属 iOSデビュー1ヶ⽉⽬で iOS版の開発を担当 学⽣時代はRubyやWebフロントエンド開発が中⼼ 2015年 サマーインターン in
(内定者に聞く!現場で実務を経験できるサマーインターンシップ「Dive into mixi GROUP」 - ミクシィグループ公式ブログ)
就活時の企業選択軸 サービス作りしたい フルスタックになりたい 事業創造の仕⽅ 経営者のビジョン 経営状態 福利厚⽣ 技術スタック 優秀な社員の存在 ⾃⾝のやりたいこと/⽬標
組織/制度 事業/経営 短期的/狭域的 ⽐較的よく⾒られる ⻑期的/⼤域的 難しいけど⼤事
組織/制度 ✅ ライフサービス×エンタメ ✅ SNS時代の失敗経験 ✅ 「⽂化」の数値⽬標 ✅ 優秀な新卒がリードする現場 ✅
個⼈の⽬標実現を仕事で応援 ✅ ⽣産性向上のための福利厚⽣ 事業/経営 ミクシィグループの強み
とは❓
⼥性主導の カジュアルマッチングアプリ❤
社内表彰
過去には ノンスタ井上さんとのコラボも
そんな での活動記録&'
メンターさん 自分 メンターさんを上回るコードをpushし 圧倒的 Contributionを達成❗❗ 失敗・修正しながら技術を覚える 「現場で育つ」ミクシィの新卒研修⽂化
インセンティブ強化施策 ⭐写真分析機能 夏CPスロットポップアップ ⭐セカンドリニューアル ⭐XCTest/mock/stub導⼊ 学校/職業追加 ストア申請 (リリース毎) コードレビュー&対応 (毎⽇)
リファクタリング (毎⽇) 本業 ⭐Diverse 公式HP Renewal ⭐チームKPTの環境作り/運⽤ Android版デバッグ (毎⽇) 採⽤/技術イベント登壇 懇親会幹事3回 サブ タスク実績
インセンティブ強化施策 ⭐写真分析機能 夏CPスロットポップアップ ⭐セカンドリニューアル ⭐XCTest/mock/stub導⼊ 学校/職業追加 ストア申請 (リリース毎) コードレビュー&対応 (毎⽇)
リファクタリング (毎⽇) 本業 ⭐Diverse 公式HP Renewal ⭐チームKPTの環境作り/運⽤ Android版デバッグ (毎⽇) 採⽤/技術イベント登壇 懇親会幹事3回 サブ タスク実績
夏CPスロットポップアップ 2017年夏のキャンペーン アプリ内にスロットゲームを設置 賞品が当たる抽選企画を実施 概要
㘬㘲㖽㘻 サーバーから事前に結果を受け取る ボタン押下で3つのリールが独⽴に回転 対応する絵柄を揃え停⽌ Auto Layout 要件 中⼼で⽌める 独⽴に回転 無限スクロール
適度な待ち時間 開始ボタン押下でリクエスト送信 /api/campaign , {“type”: 1 } サーバーは抽選結果を返す {“result”: 3 } — // 賞品ID
無限スクロールすら⼤変なのに 複雑な座標計算が必要? 初の⼤きなタスクを前に ⼿を動かせずにいた時 「指定位置で⾃動停⽌」の⽅法 はネットには載ってないし… ⾃動停⽌なんてどう実装するんだ… 締切りまで時間なさそうだな…
難しい実装だよね ⾃分も経験無くて良いアドバイスできないかも でも全⼒でサポートするし時間かけて良いから どんどん試して結果を教えてほしいな❗ チャレンジする仲間を応援する⽂化 考えるより、とにかく⼿を動かしてトライする メンターさんのフォロー UIScrollView UITableView UICollectionView
SpriteKit 最終的に UICollectionView で実装に成功 @cfiken さん
できたもの
しかし現実は残酷だった
なんとその後、他の機能が原因で Appleの審査を通過できない事態が発⽣ 通った時には既に夏が終わり スロットが⽇の⽬を⾒ることはなかった… チャレンジは成功ばかりではない 失敗も学びと捉え前に進む⼒を得た!
学校/職業追加 ⾒た⽬以外の魅⼒を伝える またマッチング後の話題提供のため プロフィールに学歴と職業を追加 概要
登録時にFacebookから情報を受け取る 情報は⼀旦サーバーへ送られる 編集時はサーバーから情報を受け取って編集 要件 学歴職歴の取得許諾 FBデータを転送 編集時に取得 学歴/職歴データ ここだけ⾒ると簡単そうだが…
学歴職歴の取得許諾 FBデータを転送 編集時に取得 学歴/職歴データ 既存/FB以外で登録のUserは そもそも情報がない String? で返却 = 条件分岐増
許諾降りない場合のハンドリング FBに職業ないUserには「カテゴリ」を表⽰ カテゴリ表⽰と実職業表⽰をスイッチ可に 取得不可だったら デフォルト値を送信? 学校登録ない場合は カテゴリに「学⽣」を追加 隠れた仕様が⼤量に… これはデスマしそうな予感
変化・不確定要素と向き合い ⾃発的に⾏動することが⼤切 仕様の⽬的・機能の価値を理解 すべきこと1 関係者へこまめに報告/相談 (⼯数に⾒合わない価値の仕様はないか) エンジニアから仕様を提案する (エンジニア視点の制約を仕様に反映する) (⼝頭確認もSlack&Wikiへの記録を⽋かさない)
できたもの 登録 編集 v5.4.0で無事リリースされました❗
未来: これからの話 (次の1年に向けて)
今まで ✓ リリース優先 ✓ 実装重視 ✓短期/狭域的問題解決 ✓ ⼈海戦術 ✓ 局所最適化
これから ✓ 開発効率と持続性 ✓ 設計重視 ✓⻑期/広域的問題解決 ✓ ⾃動化の推進 ✓ ⼤域的最適化 はこんな状態だった ⾒えたもの
今後続く開発/運⽤に 持続的に対応可能な へ を⽀えるにはまだ⼒不⾜ しかし経験値は着実に上がっている 既存実装にとらわれず設計から⾒直す 強い意志で⾃動テストやMock/Stubを導⼊ 壁にぶつかってもチャレンジをやめない 現状 次の⽬標
⾏動