[2024. 01. 03]

Gahyeon Leeยท2024๋…„ 1์›” 3์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
38/47
post-thumbnail

๐Ÿ‰ ํŒ€ ํ”„๋กœ์ ํŠธ ํ”ผ๋“œ๋ฐฑ

  • ๋ฐฐ์šด ๋ฒ”์œ„ ๋ฒ—์–ด๋‚˜์ง€ ์•Š๋Š” ์„ ์—์„œ ๊ธฐ๋Šฅ ์ž˜ ์จ์„œ ๋งŒ๋“ค์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋””์ž์ธ ๋•Œ๋ฌธ์— ๊ธฐ๋Šฅ์ด ๋ฌปํžˆ๋Š” ๋А๋‚Œ์ด ๋“ ๋‹ค.
  • ๋ ˆ์ด์•„์›ƒ์—์„œ includeํ•˜๋Š” ๊ฒƒ ์ž˜ ํ–ˆ๋‹ค.
  • ํšŒ์›๊ฐ€์ž…์ชฝ์—์„œ ๋‚ ์งœ ์ง‘์–ด๋„ฃ์„๋•Œ date picker ๊ฐ™์€ ui ์ผ์œผ๋ฉด ์ข‹์•˜์„ ๊ฒƒ ๊ฐ™๋‹ค.
  • ๋ฒ„ํŠผ ์œ„์ ฏ์€ ๊ธฐ๋ณธ ๋ง๊ณ  ์•„์ด์ฝ˜์„ ๋”ฐ๋‹ค๊ฐ€ ์“ฐ๋Š” ๊ฒƒ์ด ์ข‹๊ณ , ํšŒ์›๊ฐ€์ž… ๋•Œ ๋‚ ์งœ picker๋ฅผ ์‚ฌ์šฉํ•˜์ž.
  • ํ™”๋ฉด ์•ˆ์—์„œ ์—๋”งํ…์ŠคํŠธ์— ์ž…๋ ฅํ•˜๊ธฐ ์œ„ํ•ด ํ‚ค๋ณด๋“œ ์˜ฌ๋ผ์˜ฌ๋•Œ (ํ† ์Šค์•ฑ ๊ฐ™์ด) ํ™”๋ฉด์ด ์œ„๋กœ ๋ฐ€๋ฆฌ๋Š” ๊ธฐ๋Šฅ ์ถ”๊ฐ€ํ•ด๋ณด๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค.
  • ํšŒ์›๊ฐ€์ž…์€ ์‚ฌ์šฉ์ž๋“ค์—๊ฒŒ ํ—ˆ๋“ค์ด๋ผ ์‰ฝ๊ฒŒ ๋„˜์„ ์ˆ˜ ์žˆ๊ฒŒ ํŽธํ•˜๊ฒŒ ๊ตฌ์„ฑํ•ด์•ผ ์ข‹๋‹ค.
  • ํ”ผ๊ทธ๋งˆ์—์„œ ๋””์ž์ธํ•  ๋•Œ ๋ฒ„ํŠผ๊ณผ ๋ฒ„ํŠผ ์‚ฌ์ด์— ์—ฌ๋ฐฑ์„ ์ฃผ๋Š” ์—ฐ์Šต์„ ํ•˜๋ฉด ์‚ฌ์šฉ์ž๋“ค์ด ์‚ฌ์šฉํ•˜๊ธฐ ํŽธํ•  ๊ฒƒ์ด๋‹ค.
  • ๋ณดํ†ต ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ์กฐ๊ฑด์ด ์นธ ์•„๋ž˜๊ฐ€ ์•„๋‹ˆ๋ผ ์ž…๋ ฅ์นธ ์•ˆ(placeholder)์— ๋œจ๊ณ , ์•„๋ž˜์—๋Š” ์œ ํšจํ•˜๋‹ค, ์œ ํšจํ•˜์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์ด ๋œฌ๋‹ค.

๐Ÿ‰ ๋กœ์ปฌ ํด๋”์™€ ๊นƒํ—ˆ๋ธŒ(์›๊ฒฉ ์ €์žฅ์†Œ) ์—ฐ๋™

  1. ์—ฐ๋™ํ•  ๋กœ์ปฌ ํด๋”, ๊นƒํ—ˆ๋ธŒ ๋ ˆํฌ์ง€ํ† ๋ฆฌ ์ƒ์„ฑ
  2. ๋กœ์ปฌ ํด๋”๊ฐ€ ์žˆ๋Š” ์œ„์น˜๋กœ ์ด๋™
    cd ๋กœ์ปฌ์ €์žฅ์†Œ ์ฃผ์†Œ
  3. ์ดˆ๊ธฐํ™”
    git init
  4. ์›๊ฒฉ ์ €์žฅ์†Œ ์ฃผ์†Œ ์—ฐ๊ฒฐ
    git remote add origin "์›๊ฒฉ ์ €์žฅ์†Œ https"
  5. ์›๊ฒฉ ์ €์žฅ์†Œ์˜ ํŒŒ์ผ์„ ๋ถˆ๋Ÿฌ์™€ ๋กœ์ปฌ ์ €์žฅ์†Œ์˜ ํŒŒ์ผ์„ ๋˜‘๊ฐ™์ด ๋งŒ๋“ค์–ด์ฃผ๊ธฐ
    git pull origin main
  6. ๋กœ์ปฌ ์ €์žฅ์†Œ์— ์›๊ฒฉ ์ €์žฅ์†Œ์— ์žˆ๋˜ ํŒŒ์ผ์ด ์ƒ๊ธด ๊ฒƒ ํ™•์ธ(readme ํŒŒ์ผ)
  7. ์—ฐ๋™๋œ ๋กœ์ปฌ ํด๋” ์•ˆ์— ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•˜๋ฉด ์ž๋™์œผ๋กœ ๊ทธ ํ”„๋กœ์ ํŠธ๋„ ์—ฐ๋™์ด ๋œ๋‹ค.

์ด์ œ ๋˜‘๊ฐ™์ด ๋กœ์ปฌ ์ €์žฅ์†Œ์— ์žˆ๋Š” ํŒŒ์ผ์„ ์›๊ฒฉ ์ €์žฅ์†Œ์— ์—…๋กœ๋“œ(add, commit, push) ํ•˜๋ฉด ๋œ๋‹ค!

๐Ÿ‰ ์•ˆ๋“œ๋กœ์ด๋“œ ImageView์—์„œ contentDescription์˜ ์—ญํ• 

contentDescription๋Š” ImageView, ImageButton, CheckBox์™€ ๊ฐ™์€ ์‹œ๊ฐ์ ์œผ๋กœ ์ •๋ณด๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋ณด๊ธฐ์—์„œ ์ด ์†์„ฑ์„ ์‚ฌ์šฉํ•œ๋‹ค. ์‹œ๊ฐ์žฅ์• ์ธ์˜ ๊ฒฝ์šฐ ์ด๋ฏธ์ง€์™€ ๊ฐ™์€ ์ •๋ณด๋“ค์€ ์ œ๋Œ€๋กœ ๋ฐ›์•„๋“ค์ผ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์—, ์ด๋ฅผ ๋Œ€์ฒดํ•  ์„ค๋ช…๋„ ํ•„์š”ํ•œ๋ฐ, contentDescription์ด ์ด ์—ญํ• ์„ ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค.

VoiceOver์™€ ๊ฐ™์€ TTS๊ฐ€ ImageView๋ฅผ ํด๋ฆญ ํ•  ๊ฒฝ์šฐ, contentDescription์—์„œ ์„ค์ •ํ•œ ํ…์ŠคํŠธ๋ฅผ ์ฝ๋Š”๋‹ค. ์ด์™€ ๊ฐ™์€ ์žฅ์• ์ธ ์ ‘๊ทผ์„ฑ์— ํ›Œ๋ฅญํ•œ ์ˆ˜๋‹จ์ด๋‹ค.

xml์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฝ”๋“œ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
android:contentDescription="@string/imageview_descriptor(strings.xmlํŒŒ์ผ์— ์„ค์ •ํ•œ ๊ฐ’)"/>
@string/~์™€ ๊ฐ™์€ ๊ฒƒ๋“ค์€ res/values/strings.xml์—์„œ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋ฌผ๋ก  ์ฝ”ํ‹€๋ฆฐ ์ฝ”๋“œ ์ƒ์—์„œ๋„ ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด๋ฏธ์ง€๊ฐ€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๊ทธ์— ๋งž๋Š” contentDescription์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ฝ”๋“œ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.
img_imageview(xml์—์„œ ์„ค์ •ํ•œ ImageView์˜ id).contentDescription = "๋Œ€์ฒด๋  ํ…์ŠคํŠธ"

profile
์ฝ”๋ฆฐ์ด ๊ฐ•์•„์ง€ ์ง‘์‚ฌ๐Ÿถ

0๊ฐœ์˜ ๋Œ“๊ธ€