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.5k
プロダクトグロースと技術のベースアップを両立させるRettyのアプリ開発スタイル / Achieve Product Growth and Tech Update
imaizume
1
750
git branchを自由に操れるようになろう / Let's Play with Git branch!
imaizume
2
1.1k
スナップショットテスト実戦投入 / Practical Snapshot Testing
imaizume
13
7k
コーディング以外のエンジニアリング / About Engineering Without Coding
imaizume
1
1.7k
Firebase Remote Configの運用で知ったこと・知っておくと良いこと / Things I Learned from Operation of Firebase Remote Config
imaizume
6
3.9k
iOSアプリのテストを書きたいのに書けないあなたへ / How You Should Start to Write Your First Unit Test for iOS
imaizume
6
4.9k
循環的複雑度を上げないためのSwiftプログラミングTips / Tips of Swift Programming to Reduce Code Complexity
imaizume
11
8k
シングルトンではじめる状態管理と依存注入 / A way to control state using singleton pattern
imaizume
0
4.7k
Other Decks in Programming
See All in Programming
Snowflake x dbtで作るセキュアでアジャイルなデータ基盤
tsoshiro
2
520
A Journey of Contribution and Collaboration in Open Source
ivargrimstad
0
970
ECS Service Connectのこれまでのアップデートと今後のRoadmapを見てみる
tkikuc
2
250
レガシーシステムにどう立ち向かうか 複雑さと理想と現実/vs-legacy
suzukihoge
14
2.2k
OnlineTestConf: Test Automation Friend or Foe
maaretp
0
110
3 Effective Rules for Using Signals in Angular
manfredsteyer
PRO
1
100
Figma Dev Modeで変わる!Flutterの開発体験
watanave
0
140
シェーダーで魅せるMapLibreの動的ラスタータイル
satoshi7190
1
480
CSC509 Lecture 09
javiergs
PRO
0
140
2024/11/8 関西Kaggler会 2024 #3 / Kaggle Kernel で Gemma 2 × vLLM を動かす。
kohecchi
5
930
CSC509 Lecture 12
javiergs
PRO
0
160
Amazon Qを使ってIaCを触ろう!
maruto
0
410
Featured
See All Featured
Thoughts on Productivity
jonyablonski
67
4.3k
Rails Girls Zürich Keynote
gr2m
94
13k
Designing for humans not robots
tammielis
250
25k
Building Your Own Lightsaber
phodgson
103
6.1k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
Music & Morning Musume
bryan
46
6.2k
BBQ
matthewcrist
85
9.3k
GraphQLとの向き合い方2022年版
quramy
43
13k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
31
2.7k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
130
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
250
21k
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を導⼊ 壁にぶつかってもチャレンジをやめない 現状 次の⽬標
⾏動