このエントリーをはてなブックマークに追加

Apr

24

Swift Zoomin' チャレンジ

Fat View Controllerを倒せ!

Hashtag :#swiftzoomin
Registration info

参加枠

Free

Attendees
105

Description

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 人に限定されます。特に枠が埋まってしまった場合には、応募後参加できなくなった方は他の方のために必ずキャンセルをして下さい。

Media View all Media

If you add event media, up to 3 items will be shown here.

Feed

Kosuke Ogawa

Kosuke Ogawa published Swift Zoomin' チャレンジ.

03/21/2020 22:28

Swift Zoomin' チャレンジ を公開しました! #swiftzoomin

Group

Ended

2020/04/24(Fri)

19:30
23:00

You cannot RSVP if you are already participating in another event at the same date.

Registration Period
2020/03/21(Sat) 22:28 〜
2020/04/24(Fri) 23:00

Location

Discord swift-developers-japan

kyoprobu

Attendees(105)

MeSummery

MeSummery

Swift Zoomin' チャレンジ に参加を申し込みました!

フレディ

フレディ

Swift Zoomin' チャレンジ に参加を申し込みました!

いたる

いたる

Swift Zoomin' チャレンジ に参加を申し込みました!

りず / rizumita

りず / rizumita

Swift Zoomin' チャレンジ に参加を申し込みました!

lcr

lcr

Swift Zoomin' チャレンジ に参加を申し込みました!

Kakeru2626

Kakeru2626

Swift Zoomin' チャレンジ に参加を申し込みました!

nanashiki

nanashiki

Swift Zoomin' チャレンジ に参加を申し込みました!

shiz

shiz

Swift Zoomin' チャレンジ に参加を申し込みました!

藤 治仁

藤 治仁

Swift Zoomin' チャレンジ に参加を申し込みました!

koishi

koishi

Swift Zoomin' チャレンジ に参加を申し込みました!

Attendees (105)

Canceled (18)