iOSDC Reject Conference day2 参加レポ
@kanamorit です。よろしくどーぞ。
iOSDC RC に参加しました。 day1はこちら
iosdc-reject-conference.connpass.com
今回も個人的に気になったものだけピックアップします。
iOSアプリ開発のテスト環境
アデノウイルス
- 4day~7day 高熱に耐える病気
- 罹ったら耐えよう!
- tarappo さんは耐えた!そして今日来た!!
SWET (Software Engineer in Test)
- ミッション
- サービス全般の品質向上
- エンジニアの開発生産性向上
- 事業サポートチーム / テスト基盤チーム に分かれる
- DeNAが取り組む Software Engineer in Test
- テストを書く、伝える、浸透させる、場合によってはプルリクも出しちゃう
- DeNA さんの中ではゲーム系を担当することが多いが、ツールも言語も幅広く対応できることが求められるとのこと
大事なこと
開発について
- (Apple的な)制約はたくさんある
- 過去から比べるといろいろ出来るようになってきた
- ただし、「コレさえあれば!」というものは無いのでプロジェクトに応じて選ぼう
- いくつかを駆使してテストを書くとよい
- 1個でやろうみたいな変なこだわりは要らない
- テストの関数名は test~ となっていればよい
- テスト内容は日本語でおk
- クラス名も日本語でおk
- 名前付けで困ってコミットできないなんて現象とはおさらば!
環境について
- リリースフローも自分たちに合うものを考えよう
- 基本的にテスト結果は目に入るところへポスト
- テスト結果は JUnit 形式を選択するとよい
- Slack へのポストもいい感じになる
- お金出せるなら実行環境はクラウドでいいでしょう
- 端末用意も要らない
- テスト時間長ければどんどんお金かかる!
お知らせ
- 9/14 (Wed) 19:00~ Test Engineers Meetup #1
- SWETメンバーも募集しているみたい!
JSON-RPC on APIKit
よくある悩み
- リクエストとレスポンスの組み合わせをいい感じに解決したい!
解決
- APIKit
- リクエストの型に応じてレスポンスの型を変える
- JSONRPCKit
それぞれの思惑も解決
思惑 | |
---|---|
Server | APIはシンプルにしたい |
Client | 1画面1リクエストにしたい |
→利害が一致!
Swift の落とし穴
- Swift には可変長の型パラメータがない
- 任意の個数の型の組み合わせができない
- 標準を参考に Equatable の実装を確認
- 事足りる分のパラメータ数までオーバーライド
- Swift4 or later で Variadic Generics (可変長) が実現されるかも?
魅せるデバッグ技術
デバッグ方法
この中だと LLDB 使えば幸せになれそうだね。
とはいえ、何かある度に同じような作業を何度もするとなると・・・
LLDB の Plugin を作ろう!
メリット
- デバッグ時に debug / release ビルド分けるとか気にしなくていい
#ifdef DEBUG
マクロの呪いからの解放
- プロジェクト変わっても同様に使える
- debug 用コードも必要ない
- debug の為に private method 呼ぶ必要もない
- うっかりそのまま審査に出すみたいなこともない!
Plugin の開発方法
初っ端のスピーカーが遅れるというトラブルがありつつも、本日も楽しく盛り上がっていました。 ざっと見た感じですが、 day1 よりも参加人数が多かったように思います。
これにて iOSDC Reject Conference は終了となりました。 主催の @akatsuki174 さん お疲れ様でした。 そして会場提供してくださったメルカリさん、スタッフ、スピーカー、参加者の方々、ありがとうございました。とても楽しめた会でした!