2022 Monthly I Learned - kirseia/study GitHub Wiki

2022. 12
2022. 11
  • SwiftUI Charts Tutorial
  • TestFlight์—์„œ ๋งค๋ฒˆ ํ‘œ์‹œ๋˜๋Š” '์ˆ˜์ถœ ๊ทœ์ • ์ค€์ˆ˜ ์—†์Œ' ์„ค์ •์„ ์ƒ๋žตํ•˜๋Š” ๋ฐฉ๋ฒ•
    • ๋งค๋ฒˆ ์ˆ˜๋™์œผ๋กœ ํ•˜๋‹ค๊ฐ€ ์ตœ๊ทผ์— ์• ํ”Œ ์‚ฌ์ดํŠธ์— ํ•ด๋‹น ๋‚ด์šฉ์— ๋Œ€ํ•œ ๊ฒฝ๊ณ ๊ฐ€ ์žˆ์–ด์„œ ์ถ”๊ฐ€ํ–ˆ๋Š”๋ฐ, ์ •๋ฆฌ๋œ ๊ธ€์ด ์žˆ์–ด์„œ ๋‚จ๊น€.
  • SwiftUI Redraw ๋ถ„์„, 2
    • ์ฝ”๋“œ๋งŒ ๋”ฐ๋กœ ๋นผ๋†“์€ ๊ฒฝ์šฐ๋Š” identity๊ฐ€ ๋ณ€๊ฒฝ๋˜์–ด ๋‹ค์‹œ ๊ทธ๋ ค์ง, struct ๋ฅผ ์•„์˜ˆ ๋ถ„๋ฆฌํ•ด์„œ view๋ฅผ ๋ณ„๋„๋กœ ๋งŒ๋“ค๋ฉด identity ๊ฐ€ ๋ณ„๋„๋กœ ๋ถ€์—ฌ๋˜์–ด ๊ด€๋ จ ์—†๋Š” ๊ฒฝ์šฐ redraw ๋˜์ง€ ์•Š์Œ
    • ์ฝ”๋“œ๋Š” ๊ฐ€๋Šฅํ•˜๋ฉด ๋ณ„๋„ struct view๋กœ extract ํ•˜์ž, ์—ฐ๊ฒฐ๋˜๋Š” ๊ฐ’์„ ํ†ต์œผ๋กœ ๋„˜๊ธฐ์ง€ ๋ง๊ณ  ๊ฐ€๋Šฅํ•˜๋ฉด ๊ฐœ๋ณ„๊ฐ’์„ ๋„˜๊ฒจ์„œ ์—…๋ฐ์ดํŠธ๋ฅผ ์ตœ์†Œํ™” ์‹œํ‚ค์ž.
  • SwiftUI - NavigationLink in .sheet ๋˜๋Š” .sheet in NavigationLink ์—์„œ ํƒˆ์ถœํ•˜๊ธฐ
    • ์˜ˆ์ œ์™€ ๊ฐ™์€ ์ฝ”๋“œ์—์„œ ํƒˆ์ถœ์ฒ˜๋ฆฌ ํ•  ๋•Œ ์ตœ์ข…์ ์œผ๋กœ ํƒˆ์ถœ ํ›„ ๋‹ค๋ฅธ ๋ทฐ๋กœ ์ด๋™์ฒ˜๋ฆฌํ•˜๊ฑฐ๋‚˜ ํ•˜๋ฉด, ์ด๋™๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์žˆ์Œ, ๋‹จ๊ณ„๋ณ„๋กœ disappear ์ค‘์— ๋‹ค๋ฅธ ๋ทฐ๋กœ ์ด๋™์‹œ์ผœ๋ฒ„๋ฆฌ๋ฉด disappear ์ค‘๊ฐ„์— ๋ฃจํŠธ๊ฐ€ ์‚ฌ๋ผ์ ธ๋ฒ„๋ ค์„œ ๋ทฐ๊ฐ€ ๋‚จ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊น€. animation ์„ ๋„๊ณ  view๋ฅผ ์‚ฌ๋ผ์ง€๊ฒŒ ํ•˜๊ฑฐ๋‚˜ ๋˜๋Š” dismiss ์• ๋‹ˆ๋ฉ”์ด์…˜์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ๋Œ€๊ธฐ ํ›„ view ์ด๋™ ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ค˜์•ผ ํ•จ.
2022. 10
2022. 9
  • CloudKit Product๋กœ ๋กœ๋“œ ์„ค์ •
  • Xcode ์—์„œ svg ํŒŒ์ผ์˜ gradient ์ฒ˜๋ฆฌ๋ฅผ ํ•˜์ง€ ๋ชปํ•จ. ๋ฒกํ„ฐ ๋Œ€์‹  png ๊ฐ™์€ ์ด๋ฏธ์ง€๋กœ ๋ณ€๊ฒฝํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•จ
  • SwiftUI Markdown ์ฒ˜๋ฆฌํ•˜๊ธฐ
    • swiftui markdown ์€ ์•„์ง๊นŒ์ง€ ๋ฌธ๋‹จ์ด๋‚˜, ์ค‘๊ฐ„์— color ๋ฅผ ๋ฐ”๊พผ๋‹ค๊ฑฐ๋‚˜ ํ•˜๋Š”๊ฑด ๋ถˆ๊ฐ€๋Šฅ, ๊ธฐ์กด์˜ attributed string ์„ ํ™œ์šฉํ•ด์•ผ ๊ฐ€๋Šฅ.
    • github ์ผ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋ฌธ๋‹จ ์ •๋„๋Š” ์ง€์›ํ•˜๊ธฐ๋„ ํ•˜๋‚˜ ์ปฌ๋Ÿฌ ๋ณ€๊ฒฝ ๋“ฑ์€ ์—ฌ์ „ํžˆ attributed string ์„ ํ™œ์šฉํ•ด์•ผ ๊ฐ€๋Šฅ...
  • ์›์ฃผ์œจ์€ ์†Œ์ˆ˜์  ๋ช‡ ์งธ์ž๋ฆฌ๊นŒ์ง€ ํ•„์š”ํ• ๊นŒ
    • ๋‚˜์‚ฌ์—์„œ๋Š” ํ–‰์„ฑ๊ฐ„ ์—ฌํ–‰ ํ•  ๋•Œ ์†Œ์ˆ˜์  15์ž๋ฆฌ๊นŒ์ง€, ์šฐ์ฃผ ํฌ๊ธฐ ๊ณ„์‚ฐ์‹œ ์†Œ์ˆ˜์  40๋ฒˆ์งธ์ž๋ฆฌ ๊นŒ์ง€ ์‚ฌ์šฉํ•˜๋ฉด ์ˆ˜์†Œ ์›์ž ํ•˜๋‚˜์˜ ์ง€๋ฆ„๋ณด๋‹ค ์ž‘์€ ์˜ค์ฐจ๊ฐ€ ๋œ๋‹ค๊ณ  ํ•จ.
    • ๊ฐœ๋ฐœ ์ด์•ผ๊ธฐ๋Š” ์•„๋‹Œ๋ฐ ์žฌ๋ฐŒ์–ด์„œ ๋‚จ๊น€.
  • addObserver ์ดํ›„์— Remove ํ•ด์•ผ ํ• ๊นŒ
    • block ๊ธฐ๋ฐ˜ ๋“ฑ๋กํ–ˆ์œผ๋ฉด removeํ•„์š”, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์•ˆํ•ด๋„ ๋จ.
  • SwiftUI ๊ทธ๋ฆผ์ž ๊ด€๋ จ
    • .background(Color.yellow.shadow...) ์ด๋ ‡๊ฒŒ ํ•ด๋„ ๋๋˜๊ฑธ๋กœ ๊ธฐ์–ต
  • ์•…๊ธฐ ํŠœ๋„ˆ ๋งŒ๋“ค๊ธฐ
    • ๋งˆ์ดํฌ๋กœ ์ž…๋ ฅ๋ฐ›์€ ๊ฒƒ์„ fft ๋กœ ์ฃผํŒŒ์ˆ˜ ๋ถ„์„ํ•ด์„œ ์ฝ”๋“œ๋ฅผ ์ฐพ๋Š” ๋ฐฉ์‹. ๋งˆ์ดํฌ -> ๋ฒ„ํผ -> ๋ฉ”๋ชจ๋ฆฌ๋กœ ์ฝ์–ด์„œ fft ์ฒ˜๋ฆฌ๊นŒ์ง€ ๊ณผ์ •, ์–ธ์  ๊ฐ€ ์จ๋จน์„์ง€๋„
  • iOS 16 ์œ„์ ฏ ๋Œ€์‘๋ฒ•
  • Xcode 15์˜ single size icon
    • ๋ฆฌ์‚ฌ์ด์ฆˆ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ๋””ํ…Œ์ผ ๊นจ์งˆ ์ˆ˜ ์žˆ์Œ, ๊ธฐ์กด์—๋„ icon generator ๊ฐ™์€๊ฑธ ์ด๋ฏธ ์“ฐ๊ณ  ์žˆ๋‹ค๋ฉด single size icon ์“ฐ๋Š”๊ฒŒ ๋‚˜์Œ.
    • ๋””ํ…Œ์ผ ์‹ ๊ฒฝ ์“ด๋‹ค๋ฉด ๊ธฐ์กด์ฒ˜๋Ÿผ ๋ชจ๋“  ์•„์ด์ฝ˜ ๋”ฐ๋กœ ๋งŒ๋“ค์–ด์„œ ์“ฐ๋Š”๊ฒŒ ์ข‹์Œ.
2022. 7
2022. 6
2022. 5
  • AdMob prepare ๋Š” SwiftUI ๊ธฐ์ค€ app ์˜ .task ๊ฐ€ ์•„๋‹ˆ๋ผ .onAppear ๋˜๋Š” onChange(phase - scene)์—์„œ active ๋์„ ๋•Œ ์ฒ˜๋ฆฌํ•ด์•ผ ์•„์ดํŒจ๋“œ์—์„œ ํฌ๋ž˜์‹œ ๋‚˜์ง€ ์•Š์Œ.
  • SwiftUI alert -> View.alert(isPresented: ...).alert(isPresented: ...) ์ค‘์ฒฉํ•˜๋ฉด ์˜ค๋™์ž‘ํ•จ (๋™์ž‘ ์•ˆํ•˜๊ฑฐ๋‚˜...) -> View.alert(item: )์„ ํ™œ์š”ํ•˜์ž.
  • Xcode shortcut
  • Color Generator - Figma plugin
  • SwiftUI pattern image ๋ฐฐ๊ฒฝ ์ฒ˜๋ฆฌ
  • SwiftUI preferredColorScheme ๋™์ž‘์ด ์•ˆ๋˜๋Š” ๊ฒƒ
    • Color ๋Œ€์‹ ์— UIColor("lightColor") ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ UIColor ๋Š” colorScheme ์— ๋”ฐ๋ผ ๋™์ž‘ํ•˜์ง€ ์•Š์Œ.
    • UIColor๋Š” UIColor(color)?.resolvedColor(with: .init(activeAppearance: ...)) ์„ ์‚ฌ์šฉํ•ด์•ผ color scheme ์— ๋”ฐ๋ผ ๋™์ž‘ํ•จ
    • ๊ทธ๋ƒฅ Color("lightColor")๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด colorScheme ์— ๋”ฐ๋ผ ๋™์ž‘ํ•จ.
  • ํ™”๋ฉด ์บก์ณ ์‹œ dark mode / light mode ๋ฐ˜์˜ ์•ˆ๋˜๋Š” ๊ฒƒ - ์บก์ณ ํ•  window ์— window.overrideUserInterfaceStyle = userInterfaceStyle ์„ค์ •ํ•ด์ค˜์•ผ ํ•จ
2022. 4
2022. 3
2022. 2