[Android TIL] 240325 (์Šคํƒ ๋‹ค๋“œ UI ์ง‘์ค‘ ๊ตฌํ˜„ ์™„๋ฃŒ, ๊ฐœ๋ฐœ ์ผ์ • ์‚ฐ์ •)
๋ฐ˜์‘ํ˜•

 

 

 

 

 

~ Today I Learned ~

 

โœ”๏ธ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด (๋ฌธ์ž์—ด ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ๋ฐฐ์น˜ํ•˜๊ธฐ)
โœ”๏ธ ์Šคํƒ ๋‹ค๋“œ๋ฐ˜ ๊ณผ์ œ (ํ”ผ๊ทธ๋งˆUI๋ฅผ XML๋กœ ๊ตฌํ˜„)
โœ”๏ธ ์ข…ํ•ฉ๋ฐ˜ 3์ฃผ์ฐจ ๋‹ค์‹œ ์ˆ˜๊ฐ• ์‹œ๋„

(์ง„ํ–‰์ค‘) ๋ฐœ์ œ ๊ฐœ์ธ๊ณผ์ œ ์ถ”๊ฐ€ ๊ตฌํ˜„ ์‹œ๋„
(์‹œ๊ฐ„์ด ๋‚จ์œผ๋ฉด) ํ‚ค์˜ค์Šคํฌ ๋ฆฌํŒฉํ† ๋ง
(์‹œ๊ฐ„์ด ๋‚จ์œผ๋ฉด) ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ ์‹œ์ž‘

 

 

 


 

 

 

 

1. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด (๋ฌธ์ž์—ด ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ๋ฐฐ์น˜ํ•˜๊ธฐ)

 

 

[Kotlin] ๋ฌธ์ž์—ด ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ๋ฐฐ์น˜ํ•˜๊ธฐ

๋ฌธ์ œ https://school.programmers.co.kr/learn/courses/30/lessons/12917 ์ ‘๊ทผ ๋Œ€๋ฌธ์ž์™€ ์†Œ๋ฌธ์ž๋ฅผ ๋ถ„๋ฆฌ (์•„์Šคํ‚ค ์ฝ”๋“œ ์ด์šฉํ•˜๋ฉด ๋˜์ง€ ์•Š์„๊นŒ ๋Œ€๊ฐ• ์ƒ๊ฐ) ์†Œ๋ฌธ์ž๋ฅผ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ๊ฒƒ๊ณผ, ๋Œ€๋ฌธ์ž๋ฅผ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ

limheejin.tistory.com

  • ์ •๋ ฌ์„ ํ–ˆ์„ ๋•Œ, ์›๋ž˜ ๋Œ€๋ฌธ์ž๋Š” ์†Œ๋ฌธ์ž๋ณด๋‹ค ์ž‘์€ ๊ฐ’์„ ๊ฐ€์ง„๋‹ค.

 

๐Ÿ’กsortedWith()

fun <T> Iterable<T>.sortedWith(comparator: Comparator<in T>): List<T>
  • ์‚ฌ์šฉ์ž๊ฐ€ ์ œ๊ณตํ•œ ๋น„๊ต์ž(Comparator)์— ๋”ฐ๋ผ ์ปฌ๋ ‰์…˜์„ ์ •๋ ฌ
  • ์ •๋ ฌ๋œ ์ƒˆ๋กœ์šด ์ปฌ๋ ‰์…˜์„ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ, ์›๋ณธ ์ปฌ๋ ‰์…˜์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์Œ
  • comparator: ์ •๋ ฌ์— ์‚ฌ์šฉ๋  ๋น„๊ต์ž
    Comparator ์ธํ„ฐํŽ˜์ด์Šค์˜ compare() ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜์—ฌ ๋‘ ์š”์†Œ๋ฅผ ๋น„๊ต

 

val list = listOf(3, 1, 4, 1, 5, 9)
val sortedList = list.sortedWith(Comparator { a, b -> b - a })
println(sortedList) // ์ถœ๋ ฅ: [9, 5, 4, 3, 1, 1], ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ


val numbers = listOf(5, 3, 8, 2, 7)
val sortedNumbers = numbers.sortedWith(Comparator { a, b -> b.compareTo(a) })
println(sortedNumbers) // ์ถœ๋ ฅ: [8, 7, 5, 3, 2]


val words = listOf("apple", "banana", "orange", "kiwi")
val sortedWords = words.sortedWith(compareBy { it.length })
println(sortedWords) // ์ถœ๋ ฅ: [kiwi, apple, banana, orange], ๋ฌธ์ž ๊ธธ์ด์— ๋”ฐ๋ฅธ ์ •๋ ฌ


data class Person(val name: String, val age: Int)
val people = listOf(Person("Alice", 30), Person("Bob", 25), Person("Charlie", 35))
val sortedPeople = people.sortedWith(compareBy<Person> { it.age }.thenBy { it.name })
println(sortedPeople) 
// ์ถœ๋ ฅ: [Person(name=Bob, age=25), Person(name=Alice, age=30), Person(name=Charlie, age=35)]

 

 

 

 

 

 

 

2. ์Šคํƒ ๋‹ค๋“œ๋ฐ˜ ๊ณผ์ œ (ํ”ผ๊ทธ๋งˆUI๋ฅผ XML๋กœ ๊ตฌํ˜„)

 

 

 

๐Ÿ”จ ์ผ์ • ์‚ฐ์ •

 

ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ ์ผ์ • ์‚ฐ์ •์„ ์‚ฐ์ •ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋ฒ•

์ฐธ๊ณ  ์‚ฌ์ดํŠธ1 (https://the-next-web-research-lab.github.io/fe-dev/project-management/estimation.html) ์ฐธ๊ณ  ์‚ฌ์ดํŠธ2 (https://okky.kr/articles/1274632) MD(Man Day) ํ•˜๋ฃจ ์ž‘์—… ์‹œ๊ฐ„ = 8์‹œ๊ฐ„ ์ผ์ • ์‚ฐ์ •์˜ ํ๋ฆ„ User Story -> Feature List ->

limheejin.tistory.com

์˜ˆ์ƒ ์‹œ๊ฐ„

[US] ๋ฉ”์ธํ™”๋ฉด์—์„œ Sign in์„ ๋ˆŒ๋ €์„ ๋•Œ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€๋กœ ๊ฐ„๋‹ค
- [1์‹œ๊ฐ„][UI] ์ธํŠธ๋กœ ํŽ˜์ด์ง€ UI ์„ค๊ณ„
- [2์‹œ๊ฐ„][UI] ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ UI ์„ค๊ณ„
	- [1์‹œ๊ฐ„] UI ์•„์ด์ฝ˜, ํ…์ŠคํŠธ, ๋ฒ„ํŠผ ๋ฐฐ์น˜ ๋ฐ ๋ฐฐ์—ด
	- [1์‹œ๊ฐ„] ์ธํ’‹ํ…์ŠคํŠธ ์„ค์ •
- [0.5์‹œ๊ฐ„] ์ธํ…ํŠธ๋กœ ๊ฐ ํŽ˜์ด์ง€ ์—ฐ๊ฒฐ
  • ๊ณผ์ œ ์‹œ์ž‘ ์ „, ์ผ์ • ์‚ฐ์ • ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ์˜ˆ์ƒ ์‹œ๊ฐ„์„ ์‚ฐ์ •ํ•ด๋ณด์•˜๋‹ค. ์ด 3์‹œ๊ฐ„ 30๋ถ„ ์ •๋„๋ฅผ ์˜ˆ์ƒํ–ˆ๋‹ค.

 

์‹ค์ œ ์‹œ๊ฐ„ 

[US] Sign in์„ ๋ˆŒ๋ €์„ ๋•Œ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€๋กœ ๊ฐ„๋‹ค
- [50๋ถ„][UI] ์ธํŠธ๋กœ ํŽ˜์ด์ง€ UI ์„ค๊ณ„ // ์ด์ค‘ ๋ฒ„ํŠผ ์„ค๊ณ„ ์Šคํ‚ต, ํ•˜๋‚˜์˜ ๋ฒ„ํŠผ์œผ๋กœ ์„ค๊ณ„
- [52๋ถ„][UI] ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ UI ์„ค๊ณ„ // Edittext์— ์ž์ฒด ๋ฐฐ๊ฒฝ ์ ์šฉ
	- [41๋ถ„] UI ์•„์ด์ฝ˜, ํ…์ŠคํŠธ, ๋ฒ„ํŠผ ๋ฐฐ์น˜ ๋ฐ ๋ฐฐ์—ด 
	- [5๋ถ„] ์ธํ’‹ํ…์ŠคํŠธ ์„ค์ •
- [5๋ถ„] ์ธํ…ํŠธ๋กœ ๊ฐ ํŽ˜์ด์ง€ ์—ฐ๊ฒฐ (5๋ถ„)
  • ์‹ค์ œ๋กœ 1์ฐจ ์ปค๋ฐ‹, ์ตœ์†Œ ๊ตฌํ˜„๊นŒ์ง€ ๊ฑธ๋ฆฐ ์‹œ๊ฐ„์€ ์œ„์™€ ๊ฐ™๋‹ค. (์ด 2์‹œ๊ฐ„ 33๋ถ„)
  • ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€ UI๊ฐ€ ์ƒ๊ฐํ–ˆ๋˜ ๊ฒƒ๋ณด๋‹ค ๋นจ๋ฆฌ ๊ฑธ๋ ธ๊ณ , ์• ์ดˆ์— UI๊ตฌํ˜„ ๊ณผ์ œ๋ผ ์•กํ‹ฐ๋น„ํ‹ฐ๋ฅผ ์ธํ…ํŠธ๋กœ ์—ฐ๊ฒฐํ•ด์ค„ ์ˆ˜๊ณ ๊ฐ€ ์ ์—ˆ๋‹ค. ๋‹ค๋งŒ ์ƒ๊ฐ๋ณด๋‹ค ์ธํŠธ๋กœ ํŽ˜์ด์ง€์—์„œ '๋‘ ๊ฐœ๊ฐ€ ๊ฒน์ณ์ง„ ๋ชจ์–‘์˜ ๋ฒ„ํŠผ'์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์— ๊ณ ๋ฏผํ•˜๋Š” ์‹œ๊ฐ„์ด ๊ธธ์—ˆ๋‹ค. ๊ธฐ์กด ๋ฒ„ํŠผ ๋ชจ์–‘์„ rotationY ์ค„๋ ค๋‹ค๊ฐ€, ๊ทธ๊ฒƒ๋ณด๋‹ค ๋” ๊ทผ๋ณธ์ ์ธ ํ•ด๊ฒฐ์ฑ…์€ ์—†์„๊นŒ ๊ณ ๋ฏผํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.

 

 

๐Ÿ”จ 1์ฐจ ๊ตฌํ˜„

 

 

  • ์œ„์˜ ๋‚ด์šฉ์œผ๋กœ 1์ฐจ ๊นƒ ์ปค๋ฐ‹์„ ์™„๋ฃŒํ–ˆ๋‹ค.
  • ๋‹ค๋งŒ ์ฃผ์–ด์ง„ ๋Œ€๋กœ ์™„๋ฒฝํžˆ ๊ณผ์ œ๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ํ•ด๊ฒฐํ•ด์•ผ ํ•  ๋ถ€๋ถ„์€ ์•„๋ž˜์™€ ๊ฐ™์•˜๋‹ค.
  1. ๋ฒ„ํŠผ ๋‘ ๊ฐœ๊ฐ€ ๊ฒน์ณ์ง„ ๋ชจ์–‘ ๋ฐ ๊ทธ๋ฆผ์ž ๊ตฌํ˜„
  2. ํ˜„์žฌ EditText์˜ ์ด๋ฏธ์ง€๋ฅผ background๋กœ ์ฃผ์—ˆ๋Š”๋ฐ, ์ž…๋ ฅ ์‹œ ์•ž๋ถ€๋ถ„์˜ margin์ด ๋ถ€์กฑํ•˜์—ฌ ํ•ด๋‹น๋ถ€๋ถ„ ํ•ด๊ฒฐ
    (EditText์™€ Background๋ฅผ ์ด๋ฏธ์ง€๋ทฐ๋กœ ๋ถ„๋ฆฌํ•ด์„œ, ์ด๋ฏธ์ง€๋ทฐ ์•ˆ์— EditText๋ฅผ ๋„ฃ์–ด์•ผ ํ• ๊นŒ ๊ณ ๋ฏผ)
  • ์œ„์˜ ๋‚ด์šฉ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€์ ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •์ค‘์ด๋ฉฐ, ๋‹ค ํ•ด๊ฒฐ์‹œ 2์ฐจ ์ปค๋ฐ‹ ๋ฐ ํ‘ธ์‰ฌ๋ฅผ ํ•  ์ƒ๊ฐ์ด๋‹ค.

 

 

๐Ÿ”จ 2์ฐจ ๊ตฌํ˜„

  • (+ 17๋ถ„) ์ธํŠธ๋กœ ํ™”๋ฉด ๋ฒ„ํŠผ 2๊ฐœ๋กœ ๋ถ„๊ธฐํ•˜๊ธฐ
    - XmlํŒŒ์ผ์„ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด์„œ ๊ฐ Radius ๊ฐ’์„ ์ˆ˜์ •ํ–ˆ๋‹ค. (topRight, bottomRightRadius / topLeft,bottomLeftRaius)
    - ๋ฒ„ํŠผ์˜ Background๋กœ ์ง€์ •ํ•˜์—ฌ ์‰ฝ๊ฒŒ ์™„๋ฃŒํ•˜์˜€๋‹ค.
    - ์‹ค์ œ๋กœ ๋””ํ…Œ์ผํ•˜๊ฒŒ ์ˆ˜์ •ํ•˜๊ฒŒ๋˜๋ฉด, ๋‹ค์–‘ํ•œ ํ•ด์ƒ๋„์— ๋Œ€์‘ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•„๋ฌด๋ž˜๋„ xml์ด svg๋ณด๋‹ค ๋‚ซ๋‹ค๊ณ  ํ•œ๋‹ค.
  • (+ 15๋ถ„) EditText ๋ฐฐ๊ฒฝ์— ๋งž๋Š” ์ ์ ˆํ•œ ๋ฐฉ๋ฒ• ์ฐพ๊ธฐ
    - ์™ผ์ชฝ์ด ๋„ˆ๋ฌด ๋ถ™์–ด์žˆ๋˜ ๋ฌธ์ œ๋Š” Padding ๊ฐ’์„ ์ค˜์„œ ์†์‰ฝ๊ฒŒ ๋ช‡ ์ดˆ๋งŒ์— ํ•ด๊ฒฐ์ด ๊ฐ€๋Šฅํ–ˆ๋‹ค.
    - ํŠœํ„ฐ๋‹˜๊ป˜ ์ด๋Ÿฐ์‹์œผ๋กœ EditText์— ๋ฐฐ๊ฒฝ์„ ์ฃผ๋Š” ๊ฒŒ ํ˜„์—…์—์„œ ์“ฐ์ด๋ƒ ์—ฌ์ญค๋ณด๋‹ˆ, ์ง€๊ธˆ์ฒ˜๋Ÿผ ๋ณด๊ธฐ์— ์ž˜ ๋งŒ๋“ค์–ด์กŒ์œผ๋ฉด ์ด๋ ‡๊ฒŒ ๋งŒ๋“ค์–ด๋„ ๋˜๊ณ , ์ข€ ๋” ๋””ํ…Œ์ผํ•˜๊ฒŒ ๊พธ๋ฉฐ์•ผ ํ•˜๋ฉด ๋ฆฌ๋‹ˆ์–ด/ํ”„๋ ˆ์ž„/์ปจ์ŠคํŠธ๋ ˆ์ธํŠธ ๋ ˆ์ด์•„์›ƒ ์•ˆ์— ๋„ฃ๊ธฐ๋„ ํ•œ๋‹ค๊ณ  ํ•˜์…จ๋‹ค.
  • ๊นƒ 2์ฐจ ์ปค๋ฐ‹/ํ‘ธ์‰ฌ, ๋ฉ˜ํ† ๋‹˜๊ป˜ ์งˆ๋ฌธํ•˜๋Š” ๋“ฑ์˜ ์‹œ๊ฐ„๊นŒ์ง€ ํ•ฉ์ณ์„œ 2์ฐจ ๊ตฌํ˜„์€ ์ด 30๋ถ„ ์ •๋„๊ฐ€ ๊ฑธ๋ ธ๋‹ค.
  • ์˜ˆ์ƒ ์‚ฐ์ •์‹œ๊ฐ„์ด 3์‹œ๊ฐ„ 30๋ถ„, ์‹ค์ œ ๊ตฌํ˜„์‹œ๊ฐ„์€ 3์‹œ๊ฐ„ 10๋ถ„์ด ๊ฑธ๋ฆฐ ๊ณผ์ œ์˜€๋‹ค.

 

 

 

๐Ÿ’ก sp์™€ dp์˜ ์ฐจ์ด

 

  • sp๋Š” TextView์˜ textSize๋ฅผ ์ง€์ •ํ•  ๋•Œ ์‚ฌ์šฉ
  • dp๋Š” ํ™”๋ฉด์— ๋”ฐ๋ผ ์‚ฌ์ด์ฆˆ๊ฐ€ ๋‹ฌ๋ผ์ง€์ง€ ์•Š๊ณ  ๊ณ ์ •๋œ ๊ฐ’
  • sp๋Š” ์‹œ์Šคํ…œ์˜ ์‚ฌ์ด์ฆˆ์— ๋”ฐ๋ผ TextView๊ฐ€ ์ž‘์•„์ง€๊ฑฐ๋‚˜ ์ปค์ง
  • dp๋Š” TextView์˜ ์‚ฌ์ด์ฆˆ๋ฅผ ๊ณ ์ •๊ฐ’์œผ๋กœ ์œ ์ง€

 

 

 

 

3. ์ข…ํ•ฉ๋ฐ˜ 3์ฃผ์ฐจ ๋ณต์Šต ์‹œ๋„

  • viewpager2์™€ fragment๋กœ ํ™”๋ฉด์„ ๊ตฌ์„ฑํ–ˆ๋˜ ์ , ์—˜๋น„์Šค ์—ฐ์‚ฐ์ž(?:), ์ธํ…ํŠธ ์ฒ˜๋ฆฌ ๋“ฑ์„ ์ด์ œ์•ผ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.
  • ๋‹ค๋งŒ ์—ฌ์ „ํžˆ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ์žˆ์–ด ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ต๋‹ค๊ณ  ๋Š๊ปด์„œ, ์ˆ™๋ จ ์ดํ›„์— ๋‹ค์‹œ ์‹œ๋„ํ•ด๋ณด์ž.
    (์˜ˆ) const val์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ , ํ•ด๋‹น ๋ฐฉ๋ฒ•์—์„œ companion object๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ  ๋“ฑ์— ๋Œ€ํ•œ ์ดํ•ด ๋ถ€์กฑ

 

 

 

 

 

 

 


 

~ Trouble Shooting ~

 

 

1. XML์—์„œ์˜ '&' ์‚ฌ์šฉ ์˜ค๋ฅ˜

  • & ๋ฌธ์ž๋Š” XML์—์„œ ํŠน์ˆ˜ ๋ฌธ์ž๋กœ ์ธ์‹๋˜๋ฏ€๋กœ ํ•ด๋‹น ๋ฌธ์ž๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค. ๋Œ€์‹  XML์—์„œ ํŠน์ˆ˜ ๋ฌธ์ž๋ฅผ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด ํ•ด๋‹น ๋ฌธ์ž์˜ ์—”ํ‹ฐํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. 
  • &์˜ ์—”ํ‹ฐํ‹ฐ์ธ &amp; ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.
android:hint="   Username, Email &amp; Phone Number"

 

 

 

2. ๋ฒ„ํŠผ ์ƒ์˜ ์˜์–ด ์†Œ๋ฌธ์ž๊ฐ€ ๋Œ€๋ฌธ์ž๋กœ ํ‘œ์‹œ

  • ์•ˆ๋“œ๋กœ์ด๋“œ ์ŠคํŠœ๋””์˜ค XML ํŒŒ์ผ์—์„œ android:text ์†์„ฑ์— ์ง€์ •ํ•œ ํ…์ŠคํŠธ๋Š” ๋””๋ฐ”์ด์Šค์˜ ๊ธฐ๋ณธ ํ…Œ๋งˆ๋‚˜ ์Šคํƒ€์ผ์— ๋”ฐ๋ผ ๋Œ€๋ฌธ์ž๋กœ ํ‘œ์‹œ๋  ์ˆ˜๋„ ์žˆ๋‹ค. ํŠนํžˆ, ์ผ๋ถ€ ๊ธฐ๋ณธ ํ…Œ๋งˆ๋Š” ๋ฒ„ํŠผ ํ…์ŠคํŠธ๋ฅผ ๋ชจ๋‘ ๋Œ€๋ฌธ์ž๋กœ ํ‘œ์‹œํ•˜๋„๋ก ์„ค์ •๋˜์–ด ์žˆ๋‹ค.
    ์•„๋งˆ ๋‚˜์˜ ๊ฒฝ์šฐ appcompat.widget.AppcompatButton์„ ์‚ฌ์šฉํ•ด์„œ ๊ทธ๋Ÿฐ ๊ฒƒ ๊ฐ™์•˜๋‹ค.
  • ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์€ ๊ฐ„๋‹จํ•˜๋‹ค. ๋ชจ๋‘ ๋Œ€๋ฌธ์ž๋กœ ํ‘œ์‹œ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋œ๋‹ค. (textAllCaps)
android:textAllCaps="false"

 

 

3. Github์—์„œ ํด๋ก ํ•œ ํ”„๋กœ์ ํŠธ gradle ๋นŒ๋“œ ์˜ค๋ฅ˜

  • ๋ณดํ†ต์€ SDK ๋ฌธ์ œ๊ฐ€ ๋งŽ์€๋ฐ, SDK๋ฅผ ์„ค์น˜ํ•˜๊ณ  ์ผ์น˜์‹œ์ผœ๋„ ์•Œ ์ˆ˜ ์—†๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋„˜์ณ๋‚ฌ๋‹ค. ๊ด€๋ จ ๋‚ด์šฉ์œผ๋กœ ๊ตฌ๊ธ€๋ง๊ณผ ์Šคํƒ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ๊ฒ€์ƒ‰์„ ์˜ค๋žซ๋™์•ˆ ํ–ˆ์ง€๋งŒ ํ•ด๊ฒฐ๋˜์ง€ ์•Š์•˜๋‹ค.
  • ๊ฒฐ๊ตญ ํŒ€์›๋ถ„์ด ๊ฐ์‚ฌํ•˜๊ฒŒ๋„ ๊ฑฐ์˜ 30๋ถ„ ๊ฐ€๊นŒ์ด ๋„์™€์ฃผ์…จ๋Š”๋ฐ, ์‹œ๋„ํ•œ ๋ฐฉ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.
    - ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ๋กœ ์‹œ๋„ ๋ฐ sdk ์ผ์น˜
    - .idea ํด๋”๋ฅผ ์‚ญ์ œํ•˜๊ณ  ์—ด๊ธฐ
    - gradle์—์„œ Firebase๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๋Š” ์˜์—ญ / ์˜ค๋ฅ˜์˜์—ญ ์‚ญ์ œ
  • ๊ฒฐ๋ก ์€ Firebase ์„œ๋ฒ„๋ฅผ ์ด์šฉํ•œ ํ”„๋กœ์ ํŠธ์ด๊ธฐ ๋•Œ๋ฌธ์— Firebase ํ‚ค๊ฐ’(?)๋“ฑ์ด ์ฝ”๋“œ๋‚˜ ํŒŒ์ผ์— ํฌํ•จ๋˜๋Š”๋ฐ, ์ด ๋ถ€๋ถ„์ด Git์— ์—…๋กœ๋“œ๋˜์ง€ ์•Š์•„์„œ ์—ฌ๋Ÿฌ ๋ถ€๋ถ„์ด ๋ˆ„๋ฝ๋˜์–ด์„œ ์ƒ๊ธด ์ผ๋กœ ์˜ˆ์ƒ๋œ๋‹ค. ํ•ด๋‹น ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ”„๋กœ์ ํŠธ ์ฃผ์ธ์—๊ฒŒ ํ•ด๋‹น ํŒŒ์ผ์„ ์š”์ฒญํ•˜๋Š” ๋ฐฉ๋ฒ•๋ฐ–์— ์—†์„ ๊ฒƒ ๊ฐ™์•˜๋‹ค. ์ผ๋‹จ์€ ์ฝ”๋“œ๋งŒ ์ฐธ์กฐํ•˜๊ธฐ๋กœ!

 

 

 

 


~ Retrospect ~

 

์˜ค๋Š˜ ๋„ค์ดํ‹ฐ๋ธŒ์™€ ํฌ๋กœ์Šคํ”Œ๋žซํผ์— ๋Œ€ํ•œ ์–˜๊ธฐ๋ฅผ ์ž ๊น ๋‚˜๋ˆ ์„œ ์ƒ๊ฐํ•ด๋ณผ ๊ธฐํšŒ๊ฐ€ ์ƒ๊ฒผ๋Š”๋ฐ, ํ™•์‹คํžˆ ๋‚ด๋…„๋„์— ํˆฌ์ž…ํ•  ์˜ˆ์‚ฐ๊ณผ ๋…ธ๋ ฅ์„ ํ—ˆ๋น„ํ•˜์ง€ ์•Š๊ธฐ ์œ„ํ•ด ์•„์ดํ…œ๊ณผ BM์„ ์ข€ ๋” ๊ณ ๋ฏผํ•ด๋ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. 

๊ณ ๋ฏผ์€ ์ฐจ๊ทผ์ฐจ๊ทผํ•˜๊ณ ... ๋‹น์žฅ์€ ๋นจ๋ฆฌ ๋ฐฐ์›Œ์„œ ์˜ค๋ฅ˜์™€์˜ ์‹ธ์›€์„ ๋” ๋Šฅ์ˆ™ํ•˜๊ฒŒ ํ•˜์ž.

 

 

 

 

 

 

๋ฐ˜์‘ํ˜•
 ๐Ÿ’ฌ C O M M E N T