読者です 読者をやめる 読者になる 読者になる

iOSDC Reject Conference day2 参加レポ

@kanamorit です。よろしくどーぞ。

iOSDC RC に参加しました。 day1はこちら

iosdc-reject-conference.connpass.com

今回も個人的に気になったものだけピックアップします。


iOSアプリ開発のテスト環境

@tarappo

アデノウイルス

  • 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

@_ishkawa

よくある悩み

  • リクエストとレスポンスの組み合わせをいい感じに解決したい!

解決

  • APIKit
    • リクエストの型に応じてレスポンスの型を変える
  • JSONRPCKit
    • リクエストとレスポンスを JSON で表す
    • 1回の通信で複数リクエストが可能
      • Array で送る
      • リクエストとレスポンスは id で紐付け
    • JSON-RPC のための library

それぞれの思惑も解決

思惑
Server APIはシンプルにしたい
Client 1画面1リクエストにしたい

 →利害が一致!

Swift の落とし穴

  • Swift には可変長の型パラメータがない
    • 任意の個数の型の組み合わせができない
  • 標準を参考に Equatable の実装を確認
    • 事足りる分のパラメータ数までオーバーライド
    • Swift4 or later で Variadic Generics (可変長) が実現されるかも?

魅せるデバッグ技術

@dealforest

デバッグ方法

  • プリントデバッグ
    • ログを仕込んで動かす
  • 脳内デバッグ
    • あれかな?これかな?と原因として考えられそうなものを考える
  • LLDB
    • そのタイミングでの変数情報などが得られる

この中だと LLDB 使えば幸せになれそうだね。
とはいえ、何かある度に同じような作業を何度もするとなると・・・

LLDB の Plugin を作ろう!

メリット

  • デバッグ時に debug / release ビルド分けるとか気にしなくていい
    • #ifdef DEBUG マクロの呪いからの解放
  • プロジェクト変わっても同様に使える
  • debug 用コードも必要ない
    • debug の為に private method 呼ぶ必要もない
    • うっかりそのまま審査に出すみたいなこともない!

Plugin の開発方法

dealforest.hatenablog.com


初っ端のスピーカーが遅れるというトラブルがありつつも、本日も楽しく盛り上がっていました。 ざっと見た感じですが、 day1 よりも参加人数が多かったように思います。

これにて iOSDC Reject Conference は終了となりました。 主催の @akatsuki174 さん お疲れ様でした。 そして会場提供してくださったメルカリさん、スタッフ、スピーカー、参加者の方々、ありがとうございました。とても楽しめた会でした!