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
Shinichiro Oba
January 13, 2017
Programming
8
2.2k
サーバサイドエンジニアと効率よく開発するためにやっていること
potatotips #36の発表資料です
https://potatotips.connpass.com/event/46832/
Shinichiro Oba
January 13, 2017
Tweet
Share
More Decks by Shinichiro Oba
See All by Shinichiro Oba
アッテ開発の技術:Swift と RxSwift
bricklife
19
17k
RxSwiftのobserveOnとsubscribeOnを理解する
bricklife
20
7.4k
Swift 2.0でRxSwift、ReactKit、ReactiveCocoaを使ってみた
bricklife
10
5k
ReactiveCocoaのゆるい紹介とメルカリでの活用事例
bricklife
3
3.8k
Apple Pay対応のやりかた
bricklife
1
25k
iOS版グローバル対応の罠と技
bricklife
8
24k
Other Decks in Programming
See All in Programming
物語を動かす行動"量" #エンジニアニメ
konifar
14
5.2k
Claude Code と OpenAI o3 で メタデータ情報を作る
laket
0
130
Go製CLIツールをnpmで配布するには
syumai
2
1.2k
パスタの技術
yusukebe
1
390
あのころの iPod を どうにか再生させたい
orumin
2
2.5k
The state patternの実践 個人開発で培ったpractice集
miyanokomiya
0
130
CLI ツールを Go ライブラリ として再実装する理由 / Why reimplement a CLI tool as a Go library
ktr_0731
3
1.1k
TROCCO×dbtで実現する人にもAIにもやさしいデータ基盤
nealle
0
260
管你要 trace 什麼、bpftrace 用下去就對了 — COSCUP 2025
shunghsiyu
0
420
ワープロって実は計算機で
pepepper
2
1.4k
AIに安心して任せるためにTypeScriptで一意な型を作ろう
arfes0e2b3c
0
370
tool ディレクティブを導入してみた感想
sgash708
1
140
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
470
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
810
A Tale of Four Properties
chriscoyier
160
23k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Why You Should Never Use an ORM
jnunemaker
PRO
58
9.5k
Why Our Code Smells
bkeepers
PRO
338
57k
Being A Developer After 40
akosma
90
590k
Transcript
サーバサイドエンジニアと 効率よく開発するために やっていること ⼤庭 慎⼀郎 iOSエンジニア / メルカリ 2017/1/13 potatotips
#36 1
⾃⼰紹介 2 ⼤庭 慎⼀郎 ooba / bricklife iOSエンジニア / 株式会社メルカリ
-メルカリJP版の⽴ち上げ -メルカリUS版の⽴ち上げ -メルカリ アッテの⽴ち上げ -メルカリUK版の⽴ち上げ ← いまここ
メルカリの状況
メルカリのエンジニアの数 4 クライアントサイド(iOS) • 今⽉で7⼈になりました! サーバサイド • 60⼈くらい?? 正直何⼈いるかわからない… 圧倒的にサーバサイドのほうが多い
• サーバサイドエンジニアが開発しやすい環境がよい
開発拠点 5 ! " #
3拠点ある問題点 6 エンジニアは各拠点に点在している • JPが⼀番多い 各拠点間の時差が7〜9時間ある • 業務時間内でお互いに起きている時間が少ない やりとりの往復に時間がかかりすぎる •
なるべく往復を少なくしたい
効率的な開発のために
効率的に開発するためにやっていること 8 1. ⼿元ですぐにアプリを実⾏できる環境 2. 開発者向け機能の拡充 3. LLDB Pluginの活⽤ 4.
Charlesの活⽤
⼿元ですぐにアプリ を実⾏できるように
サーバサイドにアプリを使ってもらう⽅法 10 1. DeployGateやTestFlightによる配布 2. リポジトリからビルド
アプリの配布 11 開発環境アプリはDeployGateで配布 • Enterprise • パスワード付きの匿名配布 本番環境アプリはTestFlightも使う • プッシュ通知の確認などはTestFlight必須
リポジトリからビルド 12 チェックアウトしたらすぐに実⾏できる • CocoaPodsやCarthageをいれなくても、リポジトリを チェックアウトしてXcodeで開けばすぐに実⾏できる • git submodule or
バイナリ or コードまるごと • CIも早くなったり
開発者向け機能
本番環境アプリと開発環境アプリ 14 本番環境アプリと開発環境アプリの違い • APIサーバなどの向き先 • アイコンとデザイン • 開発者向け機能
本番環境アプリと開発環境アプリ 15
開発者向けメニュー 16 開発版だけに⼊っている • 本体を振ると出てくる できること • サーバの切り替え • 内部状態の確認
• 状態のリセットなど
開発者向けメニュー 17
実装の仕⽅ 18 #ifdef DEBUG - (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event { if
(motion == UIEventSubtypeMotionShake) { // ։ൃऀ͚ϝχϡʔͷදࣔ } } #endif
LLDB Pluginの活⽤
LLDB Pluginによる出⼒整形 20 LLDB Pluginとは • デバッガに独⾃コマンドを作れる仕組み どう使っているか • APIのレスポンスが期待しているものと違うときなどに、
サーバサイドエンジニアに通信内容を伝えるために使う
よく使っているLLDB Plugin その1 21 NSArrayやNSDictionayをJSON⽂字列と して出⼒
よく使っているLLDB Plugin その2 22 NSURLRequestのインスタンスをcurlコマ ンドとして出⼒
jsonコマンドのコード 23 https://gist.github.com/bricklife/1f6bff179cf5bda5b99638afc25b248a
curlコマンドのコード 24 https://gist.github.com/bricklife/080533e6855c7aef2319baeac60d2b8e
LLDB Pluginの作り⽅ 25 iOSエンジニアのための LLDB Plugin ⼊⾨ http://dealforest.hatenablog.com/entry/ 2016/09/02/043048 ポイント
• Pythonで書く必要があるがPythonの知識はいらない • 実⾏部分はSwiftやObjective-Cで書ける
Charlesの活⽤
Charlesとは 27 • みんな⼤好きネットワークプロキシ・デバッグアプリ • HTTPS対応!
Charlesの実⾏画⾯ 28
Charlesでよくやること 29 ネットワーク通信の監視 • ブレイクポイントも貼れる リクエストやレスポンスのダンプ • 正確な内容を知りたいときに レスポンスの書き換え •
⼀部を書き換えたり全部を差し替えたり • API側がまだ新仕様に対応していないときに
Thanks!