社内でオブジェクト指向UI（OOUI）の勉強会を開いてみた

# はじめに
株式会社Relicでフロントエンドエンジニアをしているみきです。
社内でオブジェクト指向UI（OOUI）の勉強会を開いてみたというお話しです。

OOUIを概念的に学ぶのは結構ハードルが高く、手を動かしていくのが重要になる中で、重めのタスクを伴う勉強会はなかなか継続が難しい...

そんな中でこの勉強会の試行錯誤や進め方が、少しでも参考になる場面があるといいなと思っています:writing_hand:

# 目次
1. [勉強会の目的](#勉強会の目的)
1. [輪読会編](#輪読会編)
1. [ワークアウト編](#ワークアウト編)
1. [勉強会をやってみて](#勉強会をやってみて)

<a id="#勉強会の目的"></a>
# 勉強会の目的
当初はこんな感じで目標を立てていました。
- 課題(なぜやるのか)
    - デザイナーとデザインエンジニアの共通言語を育てる
    - 機能の簡単なUIを提案するときのベースが、個人の経験値に委ねられている
    - デザイナーとエンジニアが、気軽に、会話のネタ程度にUIについて相談できる環境を作る（交流の場を設ける）
- 課題に向けた定量目標
    - 参加者全員がアプリをオブジェクト指向でデザインできるようになる
- 何をやるのか
    - 輪読会（ワークアウトを含む）
    - ワークショップ
- 誰とやるのか
    - デザインエンジニアとデザイナーの希望者
    - 気兼ねなく話せる環境を作りたいので５人程度が理想

メンバーを絞っているのは、この勉強会の前進である「デザイナーとデザインエンジニアの合同勉強会」なるものを企画した時に、希望者向けに広く募集をかけたらエンジニア議論が白熱してしまって、デザイナーさんを置いてけぼりにした苦い経験があるからです...

目的に沿った規模感が大事なんだなと。


<a id="#勉強会の企画"></a>
# 勉強会の企画
## 教材
教材はOOUIに触れたことがある方ならおそらく目にしたことがある銀の弾丸本です。理由はデザイナーさん一押しだったので。
- [オブジェクト指向UIデザイン──使いやすいソフトウェアの原理 (WEB+DB PRESS plusシリーズ)](https://gihyo.jp/book/2020/978-4-297-11351-3)

## 輪読会の計画
勉強会の前半は輪読会、後半はワークアウト編とざっくり決まったところで、一口に輪読会といっても進め方はさまざまですよね。

輪読会の進め方は参加メンバーに投票形式で決めてもらいました。
![スクリーンショット 2023-03-31 18.24.00.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725830/cb4485ce-9172-f0ec-2d63-c32f5020f963.png)


## ワークアウトの計画
後半のワークアウト編はタスクが発生する分、参加者への負担が増えるので進め方は迷いましたが、
先輩に相談のもと、もくもく会を取り入れることにしました。
![スクリーンショット 2023-04-03 10.33.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725830/c7d521af-0fa7-cfd8-4675-d839d4f5ae67.png)

ようは自習会で、タスクを進める時間を、勉強会内で確保してしまおうという考え方です。
計画段階では、もくもく会という名の自習会と、答え合わせの会が交互になるようにスケジュールを組みました。


<a id="#輪読会編"></a>
# 輪読会編
勉強会は毎週木曜日の終業後30分間で、
2022年9月~12月の3ヶ月をかけて、本の1~3章を読みました。

![スクリーンショット 2023-04-03 10.41.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725830/91b471ce-beb3-aa5b-bc0f-6312208f9bac.png)

アンケートに基づき、本を読んでの気づきと質問を事前に記載しておく方針です。

当日の内容は議事録に残して、今回参加できなかった方でも次回参加しやすいようにというのを心がけました。

## メンバーのテコ入れ
メンバー編成についてですが、実は輪読会を終えたあたりで、「 デザインエンジニアとデザイナーの希望者」の制限をとっぱらって参加者の見直しを行なっています。

理由は単純に参加人数が減ってきたことで、
活動の様子を聞いてお声掛けくれたバックエンドの方など数名が参加になりました。

普段からデータベースの設計を考えているBEの方のオブジェクト指向は大変参考になり、それと同時にメンバーを制限することのデメリットも実感しました:thought_balloon:

<a id="#ワークアウト編"></a>
# ワークアウト編
年明け1月からは、ワークアウト編に突入しました。
4章レベル1のタスクを1ヶ月かけて進めました。というのも...

## 初っ端から挫折:zap:
書籍では各タスク30分で進めるように設定されていて、当初の計画ではその30分をもくもく会で吸収するように設計していたのですが、ここに来てノンデザイナーではこのタスクを30分では終えられないということに気が付きます。

そこで進め方は下記のようになりました。
:one: みんなでオブジェクト抽出
:two: ビューとナビゲーションの検討
:three: レイアウトパターンの適用

ワークアウトタスクはFigmaを使って進めました。

:one: **みんなでオブジェクト抽出**
ワークアウトのメモを見ながら、おもいおもいにオブジェクトを書き出します。話しながらやっていると、なんだかんだ30分はあっという間です。

![スクリーンショット 2023-04-03 11.20.17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725830/7d59fdd4-e812-26ec-c3a0-de69d8a20380.png)


:two: **ビューとナビゲーションの検討**
前回出したオブジェクトを書籍の解説と照らし合わせて答え合わせをしながら、ビューとナビゲーションの検討に入ります。

ビューとナビゲーションとはつまり、
項目一覧画面のコレクションビューと、項目詳細画面のシングルビューの検討のことなのですが、
ここも一からデザインを起こすととても勉強会の30分ではやりきれないのでチートします。

![Group 1 (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725830/225fa33e-14ce-5f47-110b-3cfcc3ab07cb.png)
実際に存在するアプリのスクリーンショットから、コレクションビューとシングルビューの中でオブジェクトがどのように配置されているのかを研究します。

スクリーンショットを用意できなかった場合は、画面共有をしてもらって実際のメモアプリを見ながら話し合いをしました。

このスクリーンショット活用案は、参加してくれているデザイナーさんの「実在のアプリの構成を見比べるだけでも参考になる」のひとことから採用に至りました:tada:

:three: **レイアウトパターンの適用**
最後にレイアウトパターンの適用です。上記の情報を、PC/SP画面に落とし込みます。
特に画面の小さいSP画面でビューをどう配置するかというのが、検討のポイントになってきます。

![Group 2 (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725830/7e98a6ad-66f6-7718-5c58-5ab4bde16528.png)


## 卒業制作物
勉強会の締めくくりは卒業制作物として、Excel管理されている社内Radioのアーカイブ一覧のビューをOOUI指向で検討することにしました。

![スクリーンショット 2023-04-03 12.47.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725830/1718eebe-ee82-d29b-e1d2-4f287710616a.png)


いざ実践に入ると途端に初心を忘れるもので、「あれ、何を見せたいんだっけ」と話し合いながら作成を進めました。
サムネイル、カテゴリ、検索画面、アイコン等、わいわい脱線・検討しながら画面構築しました。

![スクリーンショット 2023-04-04 12.31.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725830/2d98cf01-dfee-ee9f-c8de-5a131ce94416.png)


<a id="#勉強会をやってみて"></a>
# 勉強会をやってみて
## 目的を振り返る
冒頭の目標を再掲
- 課題(なぜやるのか)
    　:ballot_box_with_check: デザイナーとデザインエンジニアの共通言語を育てる
    　:ballot_box_with_check: 機能の簡単なUIを提案するときのベースが、個人の経験値に委ねられている
    　:ballot_box_with_check: デザイナーとエンジニアが、気軽に、会話のネタ程度にUIについて相談できる環境を作る（交流の場を設ける）
- 課題に向けた定量目標
   　 ◯ 参加者全員がアプリをオブジェクト指向でデザインできるようになる
- 何をやるのか
  　  :ballot_box_with_check: 輪読会（ワークアウトを含む）
  　  :ballot_box_with_check: ワークショップ（卒業制作）
- 誰とやるのか
  　  :thought_balloon: デザインエンジニアとデザイナーの希望者
 　   :ballot_box_with_check: 気兼ねなく話せる環境を作りたいので５人程度が理想

もちろんプロジェクトが忙しくなって途中から参加が難しくなったメンバーもいるので、
「参加者全員が」とはいきませんが、卒業制作では自分たちでOOUIをベースに画面を構築しました。

これでOOUIは完ペキ！というよりは、ここからの反復練習だ:muscle:という気持ちです。

勉強会の進め方はもちろん計画通りにいきませんでしたが、
振り返ってみると案外目的は達成できていたのではと感じます。

## 最後に
締めは本の一節の引用から、勉強会ででた名言を一つ

>オブジェクト指向UIの大きな特徴はその操作が「オブジェクト選択→アクション選択」の手順になっていることです（図133）。...... これは「名詞→動詞」の順序と言うこともできます。
ソシオメディア株式会社,上野 学,藤井 幸多. オブジェクト指向UIデザイン──使いやすいソフトウェアの原理 (WEB+DB PRESS plus) (Japanese Edition) (p.39). Kindle 版. 

![スクリーンショット 2023-04-04 12.23.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2725830/719a171d-d266-e9bd-052c-dbf877e07418.png)

今年のGWはOOUIを勉強して、日常のオブジェクト指向UIを見つけてみませんか？:eyes:


他のRelicメンバーが書いた記事は以下にまとめられているので、良ければ見てください！
https://dev.relic.co.jp/