Swift Zoomin' チャレンジ

2020/04/24(金)19:30 〜 23:00 開催
ブックマーク

イベント内容

Swift Zoomin' チャレンジ

Swift Zoomin' チャレンジはプログラミング言語 Swift に関するオンラインイベントです。 Zoom を使って音声やスライド・画面共有でコミュニケーションを取りながら、 Swift に関係した課題に取り組みます( Zoom アプリは無料でインストールできます)。

ただし今回のイベントはDiscordswift-developers-japan サーバーにて行います。

課題『 Fat View Controllerを倒せ!』

本イベントは、主催者が用意した Fat View Controller をリファクタリングし、どれだけクリーンな設計とコードを実現できるかというコンペティションです(ジャッジが優劣を判定するわけではなく、設計の技を競い合うのが目的です)。

Fat View Controller は iOS アプリ開発におけるアンチパターンとしてよく知られています。 Fat View Contoller を作ると、 UI とロジックが密結合してしまい、モジュール性が低く、テストしづらいコードができあがります。状態管理が複雑になり、修正時の影響範囲が見通しづらく、メンテナンス性が低下します。

Fat View Controller との戦い方は長らく論じられてきました。しかし、勉強会やカンファレンスの発表等では時間が限られていることから、極度に単純化された例で説明されることが多いです。もし、適切な複雑さとボリュームを持った題材があれば、 Fat View Controller との戦い方をより具体的な形で学べるはずです。また、共通の題材を用いて比較すれば、どの方法が何をどのように解決するのか、また何をカバーしてい ない のかを可視化し、論じやすくなります。

今回は「適切な複雑さとボリュームを持った題材」としてリバーシを用います。

なぜリバーシなのか

リバーシは、次の点で題材として優れていると考えています。

  • 誰もがルールを知っているので仕様の理解が容易である
  • ゲーム自体に最低限以上の複雑さがあり、記述すべき具体的なロジックが存在する(どのディスクを裏返すかなど)
  • 明確にテストすべき事項(ゲームのルールを満たしているか)が存在する
  • ボリュームが大きすぎない(熟練したエンジニアが数時間〜 1 日程度あれば扱える)

また、一般的なアプリ開発において問題となりやすい事項を扱えるように、本アプリの仕様として次のような特徴も備えています。

  • 非同期処理を伴う(ディスクを裏返すアニメーション、 AI の思考など)
  • 永続化のための I/O を伴う(ゲーム途中でプロセスが終了されても再開できるように)
  • インタラクションと、それに伴う UI の制御が必要である

参加方法

日時: 2020/04/24(金) 19:30 〜 23:00

本ページより、参加登録をして下さい。

参加者宛に、後日参加のための URL を連絡しますので、connpassからのメールを受信できる状態にしておいてください。その URL に、上記日時にアクセスして下さい。 URL 経由で Zoom アプリをダウンロード・インストールできますが、 事前にダウンロード・インストールしておくことをオススメします。なお、 19:30 - 19:40 の間は参加者の接続テストを行います。

(2020-04-19) 次の理由から、 今回は Discord を使って音声のみでの開催とします

  • Zoom のセキュリティ問題が取り沙汰されており、現時点で判断を下すのが難しいこと
  • 今回はプレゼン形式の発表があるわけでもないので、画面共有が必要ないこと
  • Discord だとシンタックスハイライトを使ったチャットができるので、コードを書くという今回のイベントに適していること

Discord には人数制限がないため、参加人数の上限を取り払いました。そのため、これまで補欠だった方もご参加いただけます。

会場は次の通りです。

  • Discordswift-developers-japan サーバーの #swift-zoomin チャネル
    • Discord は Slack と似たチャットアプリで、テキストチャットの他に多人数での音声チャットが可能です。
    • swift-developers-japan には、音声チャットとテキストチャットのそれぞれに #swift-zoomin チャネルを設置しています。
    • チャネル一覧の『イベント』グループの中にテキストチャット用の、『音声チャット』グループの中に音声チャット用の #swift-zoomin チャネルが存在します。
    • 当日は音声チャットをメインに、テキストチャットを補足的に利用する予定です。
    • Discord アプリを事前にダウンロードし、 swift-developers-japan にアクセスできるかテストをお願いします。
    • swift-developers-japan は日本で最も活発な Swift のオンラインコミュニティの一つです。今回は管理者に相談してチャネルを設置していただきました。

注意事項

Swift Zoomin' はオンラインイベントですが、 Zoom の制約の関係で参加者は 100 人に限定されます。特に枠が埋まってしまった場合には、応募後参加できなくなった方は他の方のために必ずキャンセルをして下さい。

注意事項

※ こちらのイベント情報は、外部サイトから取得した情報を掲載しています。
※ 掲載タイミングや更新頻度によっては、情報提供元ページの内容と差異が発生しますので予めご了承ください。
※ 最新情報の確認や参加申込手続き、イベントに関するお問い合わせ等は情報提供元ページにてお願いします。

関連するイベント