Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
サーバサイドエンジニアと効率よく開発するためにやっていること
Shinichiro Oba
January 13, 2017
Programming
8
1.7k
サーバサイドエンジニアと効率よく開発するためにやっていること
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
16k
RxSwiftのobserveOnとsubscribeOnを理解する
bricklife
20
6.4k
Swift 2.0でRxSwift、ReactKit、ReactiveCocoaを使ってみた
bricklife
10
4.4k
ReactiveCocoaのゆるい紹介とメルカリでの活用事例
bricklife
3
3.2k
Apple Pay対応のやりかた
bricklife
1
24k
iOS版グローバル対応の罠と技
bricklife
8
23k
Other Decks in Programming
See All in Programming
Explore Java 17 and beyond
josepaumard
3
680
byte列のbit表現を得るencodingライブラリ作った
convto
1
210
Node.js 最新動向 TFCon 2022
yosuke_furukawa
PRO
6
3k
バンドル最適化マニアクス at tfconf
mizchi
5
2.4k
Reactive Microservices with Spring Boot and JHipster - Spring I/O 2022
mraible
PRO
2
590
【Qiita Night】新卒エンジニアによるSwift6与太予想
eiji127
0
190
SRE bridge the gap: Feature development to Core API / 機能開発チームとコアAPIチームの架け橋としてのSRE
kenzan100
1
610
roadmap to rust 2024
matsu7874
1
910
熊でもわかるCI/CD/モダンインフラVol1:用語を覚えよう編
srockstyle
0
110
Jetpack Compose 頑張らないPreviewParameterProvider
horie23
0
110
NieR Re[in]carnationにおけるUnityアニメーション活用術
applibot
1
960
GraphQL+KMM開発でわかったこと / What we learned from GraphQL+KMM development
kubode
0
140
Featured
See All Featured
Creatively Recalculating Your Daily Design Routine
revolveconf
207
10k
Design by the Numbers
sachag
271
17k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
350
21k
Designing with Data
zakiwarfel
91
3.9k
The Cult of Friendly URLs
andyhume
68
4.7k
Stop Working from a Prison Cell
hatefulcrawdad
261
17k
The Invisible Customer
myddelton
110
11k
Done Done
chrislema
174
14k
What's in a price? How to price your products and services
michaelherold
229
9.3k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
4
450
Building Better People: How to give real-time feedback that sticks.
wjessup
343
17k
Principles of Awesome APIs and How to Build Them.
keavy
113
15k
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!