Slide 1

Slide 1 text

Shibuya.apk#43ɹ2023.7.14ɹTiphaineɹ จࣈ֦େ͞Εͯ΋ා͘ͳ͍ ϨΠΞ΢τ࡞Γͷίπ

Slide 2

Slide 2 text

ࣗݾ঺հ ✤ Tiphaine(ςΟϑΣϯ) ✤ AndroidΤϯδχΞ ✤ϝυϐΞגࣜձࣾ

Slide 3

Slide 3 text

จࣈ֦େʁ ✤ Ϣʔβʔิॿػೳ ✤ ϑΥϯτͱදࣔ྆ํͱ΋ ✤ ୺຤ʹΑͬͯσϑΥϧτͷ ઃఆͰ͋Δ͔΋

Slide 4

Slide 4 text

·͊ɺSPΛ࢖͑͹ ͳΜͱ͔ͳΔͰ͠ΐ͏ …ͦͷ͸ͣͩͬͨ

Slide 5

Slide 5 text

STORY TIME

Slide 6

Slide 6 text

ʮܾఆϘλϯ͕ग़ͯͳ͍ Ͱ͚͢Ͳʔʯ

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

จࣈ֦େΛ͢Δͱ Ϙλϯ͕ݟ͑ͳ͍

Slide 10

Slide 10 text

͔͠΋ ͜ͷը໘͚ͩ͡Όͳ͍

Slide 11

Slide 11 text

😇

Slide 12

Slide 12 text

࠶ൃ๷ࢭରࡦͷͨΊʹ ࢀߟ͕ཉ͍͠

Slide 13

Slide 13 text

“ WCAG ୡ੒ج४1.4.4ɹςΩετͷαΠζมߋ (…)ςΩετ͸ɺ ίϯςϯπຢ͸ػೳΛଛͳ͏͜ͱͳ͘ɺ ࢧԉٕज़ͳ͠Ͱ200%·ͰαΠζมߋͰ͖Δɻ

Slide 14

Slide 14 text

➤ શͯͷςΩετΛ֦େͰ͖Δ ➤ શͯͷςΩετ͕ಡΊΔ ➤ શͯͷػೳ͕࢖͑Δ ໨ඪ

Slide 15

Slide 15 text

͍ͭ΋ಉ͡໰୊ʹͳΔ ࡞Δ࣌ʹରࡦͰ͖Δ

Slide 16

Slide 16 text

ؾΛ͚ͭΔ΂͖ϙΠϯτ 1⃣ εΫϩʔϧ 2⃣ Margin/Padding 3⃣ লུͱվߦ

Slide 17

Slide 17 text

1⃣ εΫϩʔϧ ✤ ΧελϜϨΠΞ΢τɺ·ͨ͸ComposeΛ࢖͏ͳΒɺ શମεΫϩʔϧग़དྷΔΑ͏ʹ͠Α͏ AμΠΞϩάʹ͍ͭͯ εΫϩʔϧͰ͖ͳ͍ ➡︎

Slide 18

Slide 18 text

1⃣ εΫϩʔϧ ✤ AlertDialog͸௕͍ςΩετΛsetTitleͰઃఆ͠ͳ͍ AμΠΞϩάʹ͍ͭͯ AlertDialog.Builder(this) .setTitle(“λΠτϧʹඇৗʹ…”) .setPositiveButton("ܾఆ", /*…*/) .setNegativeButton("Ωϟϯηϧ", /*…*/) .show() ̎ߦͰলུ͞Εͯ͠·͏ ➡︎

Slide 19

Slide 19 text

AlertDialog.Builder(this) .setTitle(“λΠτϧʹඇৗʹ…”) .setPositiveButton("ܾఆ", /*…*/) .setNegativeButton("Ωϟϯηϧ", /*…*/) .show() AlertDialog.Builder(this) .setTitle(“λΠτϧʹඇৗʹ…”) .setMessage(“λΠτϧʹඇৗʹ…”) .setPositiveButton("ܾఆ", /*…*/) .setNegativeButton("Ωϟϯηϧ", /*…*/) .show() 1⃣ εΫϩʔϧ ➡ setMessageΛ࢖͓͏ AμΠΞϩάʹ͍ͭͯ

Slide 20

Slide 20 text

✤ ϢʔβʔͷखؒΛݮΒͨ͢Ίɺॏࢹ͍ͨ͠෦෼͚ͩΛ εΫϩʔϧൣғ͔Β֎ͦ͏ 1⃣ εΫϩʔϧ A෦෼తʹݻఆ͢Δ

Slide 21

Slide 21 text

A෦෼తʹݻఆ͢Δ 1⃣ εΫϩʔϧ ݻఆ෦෼ εΫϩʔϧ Մೳ෦෼

Slide 22

Slide 22 text

✤ εΫϩʔϧͰ͖ΔࣄΛ໌֬ʹ͍͔ͨ͠Βɺ Πϯδέʔλʔ͸ফ͑ͳ͍Α͏ʹ͢Δ ✤ Compose͸·ͩͰ͖ͳ͍😣 1⃣ εΫϩʔϧ AΠϯδέʔλʔΛදࣔ͢Δ android:fadeScrollbars="false" android:scrollbarAlwaysDrawVerticalTrack="true" android:scrollbarSize="4dp" android:scrollbarThumbVertical=“@color/…” android:scrollbars="vertical"

Slide 23

Slide 23 text

1⃣ εΫϩʔϧ AΠϯδέʔλʔΛදࣔ͢Δ

Slide 24

Slide 24 text

2⃣ MARGIN / PADDING ✤ ࠨӈͷmarginΛ๨Εͳ͍

Slide 25

Slide 25 text

2⃣ MARGIN / PADDING ✤ ࠨӈ/্Լpadding΋๨Εͳ͍ʢಛʹΧελϜϏϡʔʣ

Slide 26

Slide 26 text

✤ padding͕ޮ͘Α͏ʹɺඞͣ minHeight/minWidthΛ࢖͓͏ 3⃣ লུͱվߦ AαΠζΛݻఆ͠ͳ͍ Modifier.defaultMinSize(minHeight = …) android:layout_height="wrap_content" android:minHeight=“@dimen/…”

Slide 27

Slide 27 text

✤ λοϓͯ͠ଓ͖͕ಡΊΔจষܥͳΒ🆗 ✤ ΞΫγϣϯΛى͜͢Ϙλϯܥ͸🆖 ❌ ✅ ✅ ✅ ELLIPSISͷ࢖͍ํ 3⃣ লུͱվߦ

Slide 28

Slide 28 text

✤ Horizontal LinearLayoutɺ·ͨ͸ComposeͷRow͸ ෯ͷweightͳͲΛࢦఆ͠Α͏ ROWܥ͸ཁ஫ҙ ӈͷཁૉ͕֎΁ԡ͞Εͯ͠·͏ ⬆︎ 3⃣ লུͱվߦ

Slide 29

Slide 29 text

✤ ςΩετೖྗܥ͸ग़དྷΔ͚ͩϚϧνϥΠϯՄೳʹ͢Δ ✦ ʢจࣈ਺੍ݶͷӨڹͰແཧ͔΋😥ʣ ✦ ʢώϯτͷ௕͞ʹ߹Θͤͯվߦ͞Εͳ͍͔΋😭ʣ 3⃣ লུͱվߦ AςΩετೖྗʹ͍ͭͯ

Slide 30

Slide 30 text

⚠ ANDROID STUDIOͷϓϨϏϡʔ ✤ ࣮ػͱൺ΂ͯ෯͕޿͗͢Δ

Slide 31

Slide 31 text

ݕূ୺຤ʹ͋Ε͹ແఢɿ Β͘Β͘εϚʔτϑΥϯ

Slide 32

Slide 32 text

·ͱΊ ✤ ϑϨʔϜϫʔΫΛ৴༻͗͢͠ͳ͍ ✤ ͻͨ͢ΒεΫϩʔϧΛೖΕΔ ✤ εΫϩʔϧͰ͖Δ͜ͱΛ໌֬ʹ͢Δ ✤ EllipsisΛਖ਼͘͠࢖͏ ✤ Ͱ͖Δ͚ͩϚϧνϥΠϯՄೳʹ͢Δ

Slide 33

Slide 33 text

͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ @tahia910ɹ