デザインシステム×マルチプラットフォームアプリ開発 / abceed_Tech_Night
by
Recruit
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
デザインシステム × マルチプラットフォームアプリ開発 @chuymaster @geckour EdTech Night
Slide 2
Slide 2 text
Agenda | 01 02 03 04 05 発表者紹介 デザインシステム導入の背景 iOS の実装紹介 Android の実装紹介 まとめ
Slide 3
Slide 3 text
発表者紹介 01
Slide 4
Slide 4 text
@chuymaster / チャイ - iOS アプリエンジニア - 「スタディサプリ 中学講座」開発担当 @geckour / 石田 智宏 - Android アプリ開発者 - 「スタディサプリ 中学講座」開発担当
Slide 5
Slide 5 text
リクルートグループでの位置づけ メディア& ソリューションSBU 人材派遣SBU HRテクノロジーSBU 創業 本社 連結売上収益 グループ企業数 グループ従業員数 創業 1960年 設立 1963年 東京 22,693億円 (2020年4月1日~2021年3月31日) 連結子会社 351社 関連会社8社 (2021年3月31日時点) 46,800名(2021年3月31日時点) OUR MISSION
Slide 6
Slide 6 text
国内向けサービス 小学生から受験生や大人まで、学習したい全ての人が学べる月額制のオンライン学習サービス。 約4万本の録画授業動画が見られるベーシックプランのほか、オンラインコーチングプランや生配信で授業を受けられるライブプ ランなど、一人一人が自由に学習できるよう、様々なプランを展開しています。 先生方が生徒個々人のレベルに合った最適な学習を提供できる校内インフラサービス。クラス全員に特定の講義や確認テスト、 宿題を配信することができるほか、アクティブラーニングに使える教材も提供。 生徒が夢中になって学び、希望する進路を実現することを支援しています。 隙間時間に3分で学習できる英語サービス。リスニングと発話を鍛えられる「新日常英会話コース」、短期間でのスコアアップを 狙う「TOEIC®L&R TEST対策コース」、「ビジネス英語コース」があり、業界初オンライン完結型コーチングも提供しています。
Slide 7
Slide 7 text
サービスラインナップ 様々なサービスラインナップにて事業展開をしています スタディサプリ 対象学年 小・中学校 高校 大学・社会人 オンラインビデオ (B to C) オンラインビデオ& アセスメント (B to B to C) オンラインコーチング パーソナルコーチプラン
Slide 8
Slide 8 text
サービス会員推移 47万人 74万人 26万人 8万人 4万人 国外 国内 2014 2015 2016 2017 2018 2013 97万人 194 22 127万人 2019 2020 216万人 サービス開始から 7 年、有料会員数は国内外で累計 216 万人となりました (2020 年度単体)
Slide 9
Slide 9 text
デザインシステム導入の背景 02
Slide 10
Slide 10 text
デザインシステムとは グッドパッチエンジニアが選ぶ、推しデザインシステム 10 選|Goodpatch Blog グッドパッチブログ より 「 デザインシステムとは、ソフトウェアやグラフィックなどにおけるデザインの 原則や指針と、それらを実現するための仕組みの集合体です。 (中略) 一般的にデザイン原則にはタイポグラフィ・カラーシステムやボイス&トー ンなどが含まれ、仕組みにはコードベースのUIコンポーネントやデザイン トークンなどが含まれます。 」
Slide 11
Slide 11 text
デザインシステムを導入した背景 ● アプリ全体のデザインを統一したい ● 再利用可能コンポーネントを作って、コミュニケーションコスト・実装コストを減 らしたい
Slide 12
Slide 12 text
デザインシステムの紹介 ● Atomic Design を改修した設計を採用 ○ Tokens を追加し、Atoms、Components まで定義 ○ デザイン工数削減・実装がルールに縛られすぎないメリット COMPONENTS
Slide 13
Slide 13 text
● Atomic Design を改修した設計を採用 ○ Tokens を追加し、Atoms、Components まで定義 ○ デザイン工数削減・実装がルールに縛られすぎないメリット COMPONENTS デザインシステムの紹介 🐟 🍣 🍱
Slide 14
Slide 14 text
● 🐟 Tokens デザインシステムの紹介
Slide 15
Slide 15 text
デザインシステムの紹介 ● 🍣 Atoms
Slide 16
Slide 16 text
デザインシステムの紹介 ● 🍱 Components
Slide 17
Slide 17 text
iOS の実装紹介 03
Slide 18
Slide 18 text
SwiftUI とデザインシステムは 相性がいい
Slide 19
Slide 19 text
SwiftUI とデザインシステム ● 一つのファイルで View の記述が 完結するので、UI の部品として管 理しやすい ● Previews が便利
Slide 20
Slide 20 text
SwiftUI とデザインシステム ● 一つのファイルで View の記述が 完結するので、UI の部品として管 理しやすい ● Previews が便利
Slide 21
Slide 21 text
enum と Extension で Tokens を実装 ● enum で Tokens を定義し、View の Extension に関数を追加することで、 馴染みやすい実装に
Slide 22
Slide 22 text
enum と Extension で Tokens を実装 ● Sizing
Slide 23
Slide 23 text
enum と Extension で Tokens を実装 ● Sizing
Slide 24
Slide 24 text
enum と Extension で Tokens を実装 ● Sizing
Slide 25
Slide 25 text
enum と Extension で Tokens を実装 ● Typography
Slide 26
Slide 26 text
enum と Extension で Tokens を実装 ● Typography
Slide 27
Slide 27 text
enum と Extension で Tokens を実装 ● Typography
Slide 28
Slide 28 text
enum と Extension で Tokens を実装 ● Typography
Slide 29
Slide 29 text
enum と Extension で Tokens を実装 ● Typography
Slide 30
Slide 30 text
Previewsで開発が爆速に
Slide 31
Slide 31 text
Previews でカタログ化 ● Previews 機能で Tokens のカタログを 作って、視覚的に確認できる
Slide 32
Slide 32 text
Previews でカタログ化 ● UI のパターンを網羅でき て、不具合を防ぐことがで きる 🍣MainButton の Previews カタログ
Slide 33
Slide 33 text
● SnapshotTesting というライブラリーで Visual Regression Test をしている ○ https://github.com/pointfreeco/swift-snapshot-testing SnapshotTesting と Previews でテストを自動化
Slide 34
Slide 34 text
SnapshotTesting と Previews でテストを自動化 ● コード自動生成ツール「Sourcery」を使って、自動でテストコードを生成して いる ○ 詳しくはメルカリさんの記事をご覧ください ○ https://engineering.mercari.com/blog/entry/20201204-1f94b9dc a2/
Slide 35
Slide 35 text
Android の実装紹介 04
Slide 36
Slide 36 text
Jetpack Compose とデザインシステム 詳細はコチラ: Jetpack Compose と GraphQL Fragment でつくるデザインシステム実装 (blog.studysapuri.jp) ● Jetpack Compose: 宣言的 UI ● デザインシステム: デザインコンポーネントの関連付け ● コンポーネントの実装と宣言的 UI は相性が良い
Slide 37
Slide 37 text
● Atomic Design を改修した設計を採用 ○ Tokens を追加し、Atoms、Components まで定義 ○ デザイン工数削減・実装がルールに縛られすぎないメリット COMPONENTS デザインシステムの紹介 🐟 🍣 🍱
Slide 38
Slide 38 text
Components Lesson
Slide 39
Slide 39 text
Components Lesson
Slide 40
Slide 40 text
● Atomic Design を改修した設計を採用 ○ Tokens を追加し、Atoms、Components まで定義 ○ デザイン工数削減・実装がルールに縛られすぎないメリット COMPONENTS デザインシステムの紹介 🐟 🍣 🍱
Slide 41
Slide 41 text
Atoms Chips
Slide 42
Slide 42 text
Atoms Chips
Slide 43
Slide 43 text
● Atomic Design を改修した設計を採用 ○ Tokens を追加し、Atoms、Components まで定義 ○ デザイン工数削減・実装がルールに縛られすぎないメリット COMPONENTS デザインシステムの紹介 🐟 🍣 🍱
Slide 44
Slide 44 text
Tokens Typography
Slide 45
Slide 45 text
Tokens Typography (XML)
Slide 46
Slide 46 text
コンポーネントの内包関係を スッキリ表現できる
Slide 47
Slide 47 text
Jetpack Compose (宣言的 UI) ならね
Slide 48
Slide 48 text
ついでに得られた 副次的なメリットいろいろ
Slide 49
Slide 49 text
デザインカタログの生成 ● Showkase を利用
Slide 50
Slide 50 text
コンポーネントの Visual Regression Testing ● Showkase + reg-suit を利用
Slide 51
Slide 51 text
コンポーネントの Visual Regression Testing
Slide 52
Slide 52 text
コンポーネントの Visual Regression Testing
Slide 53
Slide 53 text
コンポーネントの Visual Regression Testing
Slide 54
Slide 54 text
コンポーネントの Visual Regression Testing
Slide 55
Slide 55 text
コンポーネントの Visual Regression Testing
Slide 56
Slide 56 text
まとめ 05
Slide 57
Slide 57 text
● SwiftUI & Jetpack Compose とデザインシステムは相性が良い ○ コンポーネントの表現がしやすくなり、コードの見通しがよくなった ○ カタログ化で、コンポーネントの認知負荷が減った ○ UI 部品のテストの自動化で、画面レベルではコンポーネントの状態を気に しなくて良くなった デザインシステムを取り入れてよかった!
Slide 58
Slide 58 text
一緒に事業拡大を目指す仲間を お待ちしています!
Slide 59
Slide 59 text
ご清聴ありがとうございました