profile
i๐ŸŽS ๊ฐœ๋ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค
post-thumbnail

Xcode custom script ์‹œ์ž‘ํ•˜๊ธฐ

์•ˆ๋…•ํ•˜์„ธ์š”! ๋ฆด๋ฆฌ์ž…๋‹ˆ๋‹ค~์˜ค๋Š˜์€ Xcode์˜ Build phase์—์„œ custom script๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์šฉ์–ด๋“ค์— ๋Œ€ํ•ด ์ดˆ์‹ฌ์ž์˜ ๋ˆˆ์œผ๋กœ ํ•˜๋‚˜ํ•˜๋‚˜ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹น๐Ÿค“

2023๋…„ 3์›” 6์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

๊ณต๊ณต๋ฐ์ดํ„ฐํฌํ„ธ SERVICE_KEY_IS_NOT_REGISTERED_ERROR ์›์ธ ํŒŒํ—ค์น˜๊ธฐ

ํฌ์ŠคํŠธ๋งจ์—์„œ๋Š” ์ •์ƒ์ ์œผ๋กœ ์˜ค๋˜ ์‘๋‹ต์ด,์•ฑ์—์„œ ํ˜ธ์ถœํ•˜๋‹ˆ SERVICE_KEY_IS_NOT_REGISTERED_ERROR๋ผ๋Š” ์‘๋‹ต์„ ๋ฐ›์•˜๋‹ค. ๊ตฌ๊ธ€๋ง์„ ํ•ด๋ณด๋‹ˆ APIkey ์ธ์ฝ”๋”ฉ์ด ์ฃผ๋œ ์›์ธ์ด์—ˆ๋‹ค.๊ณต๊ณต๋ฐ์ดํ„ฐํฌํ„ธ์— ์˜ฌ๋ผ์™€ ์žˆ๋Š” Q&A์™€ ๊ฐ™์ด, ์šฐ์„  APIKey๋Š” URL ์ธ์ฝ”๋”ฉ

2023๋…„ 2์›” 14์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

String Literal ์ •๋ณต (feat. ๋ฐฑ์ค€ 10172 ๊ฐœ)

์•ˆ๋…•ํ•˜์„ธ์š”!์˜ค๋Š˜์€ ๋ฐฑ์ค€์˜ 10172๋ฒˆ ๊ฐœ, 10171 ๊ณ ์–‘์ด, 25083 ์ƒˆ์‹น์„ ํ’€๋‹ค๊ฐ€ ์•Œ๊ฒŒ๋œ String Literal์˜ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๋“ค์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค!๐Ÿถ๐Ÿˆ๐ŸŒฑ

2023๋…„ 2์›” 2์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

Realm์ด๋ž‘ Concurrency๊ฐ™์ด ์“ฐ๊ธฐ

Swift Concurrency + Realm + SerialQueue ๋‹ค ๊ฐ™์ด ์จ๋ณด๊ธฐ

2023๋…„ 1์›” 7์ผ
ยท
1๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

CoreAnimation์œผ๋กœ ์›์„ ๋”ฐ๋ผ ์›€์ง์ด๋Š” ํ™”์‚ดํ‘œ ๋งŒ๋“ค๊ธฐ

์›์˜ ๋‘˜๋ ˆ๋ฅผ ๋”ฐ๋ผ ์›€์ง์ด๋ฉฐ ์…€๋ ‰๋œ ๋ฒ„ํŠผ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ํ™”์‚ดํ‘œ๋ฅผ ๊ตฌํ˜„ํ•œ ๊ณผ์ •์„ ์ •๋ฆฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

2022๋…„ 12์›” 28์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

Segmented Controls

Segmented Controls์˜ HIG ์ฝ์–ด๋ณด๊ธฐ

2022๋…„ 12์›” 25์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

UIView ๐Ÿ†š CALayer ์ฐจ์ด์ 

์•ˆ๋…•ํ•˜์„ธ์š”~ ๋ฆด๋ฆฌ์ด์ž…๋‹ˆ๋‹ค๐Ÿ˜ƒ ์˜ค๋Š˜์€ ๋น„์Šทํ•œ ์—ญํ• ์„ ํ•˜๋Š” ๊ฒƒ ๊ฐ™์ง€๋งŒ, ๋‹ค๋ฅธ UIView์™€ CALayer์˜ ํŠน์ง•๋“ค๊ณผ ์ฐจ์ด์ ์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. CALayer ์–ด๋””์„œ ๋ดค๋”๋ผ? UIView์˜ ๊ทธ๋ฆผ์ž(shadow)๋‚˜ ๊ฒฝ๊ณ„์„ (border)์„ ์„ค์ •ํ•  ๋•Œ, layerํ”„๋กœํผ

2022๋…„ 11์›” 8์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

[HIG] Playing Haptics ๐Ÿ“ณ

๋ถ๋ถ~, ํ–…ํ‹ฑ์„ ์ž˜ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ด…์‹œ๋‹ค.

2022๋…„ 9์›” 25์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

Instrument๋กœ Commit hitch ์ฐพ๊ณ  ์ œ๊ฑฐํ•˜๊ธฐ

Commit hitch๋ฅผ Instrument๋กœ ํฌ์ฐฉ, ๋ถ„์„ํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ hitch๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค!

2022๋…„ 9์›” 11์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

UIAnimation Hitch์™€ Render Loop์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž

hitch์˜ ๊ฐœ๋…, ์ด๋ฏธ์ง€๊ฐ€ ๋งŒ๋“ค์–ด์ง€๋Š” ๊ณผ์ •์ธ render loop๋ฅผ ์•Œ์•„๋ด…์‹œ๋‹ค

2022๋…„ 9์›” 6์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

[HIG] Designing for iOS

์˜ค๋Š˜์€ HIG์—์„œ iOS๋ผ๋Š” ํ”Œ๋žซํผ์„ ์œ„ํ•œ ๋””์ž์ธ ๊ฐ€์ด๋“œ๋ฅผ ๊ฐ„๋žตํ•˜๊ฒŒ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

2022๋…„ 8์›” 7์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

Special Case Pattern

Special Case Pattern (ํŠน์ˆ˜ ์‚ฌ๋ก€ ํŒจํ„ด) ์–ด๋–ค ์ƒํ™ฉ์—์„œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๊ณ , ์–ด๋–ป๊ฒŒ ์“ฐ๋Š” ๊ฑด์ง€ ์•Œ์•„๋ณด์ž๋ฏธ~

2022๋…„ 8์›” 7์ผ
ยท
1๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[RxSwift] Traits 1ํŽธ: Control Property/Control Event

rxSwift์˜ Trait์€ ์–ด๋–ค ๊ฒƒ์ผ๊นŒ? ์•Œ์•„๋ณด์ž๋ฏธ~๐Ÿš€

2022๋…„ 7์›” 10์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[RxSwift] ์—๋Ÿฌ ํ•ธ๋“ค๋ง : catch, retry

์—๋Ÿฌ ์žก์œผ๋Ÿฌ ๊ฐ€์ž๋ฏธ~

2022๋…„ 6์›” 26์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

Hashable

Swift์˜ Hashable ๋ญํ•˜๋Š” ์นœ๊ตฌ์ธ์ง€ ์•Œ์•„๊ฐ์ž~

2022๋…„ 6์›” 22์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

[RxCocoa] TableView์— Observable ๋ฐ”์ธ๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•

rxCocoa๋ฅผ ์‚ฌ์šฉํ•ด UITableView ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ฟŒ๋ ค์ฃผ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž๋ฏธ~

2022๋…„ 6์›” 19์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

Domain๊ณผ Entity์˜ ๊ฐœ๋…

Domain, Entity + layered architecture์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•ด๋ณด์ž๋ฏธ~

2022๋…„ 6์›” 14์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

[WWDC22] Get more mileage out of your app with CarPlay ๐Ÿš˜

Carplay์—์„œ ์ƒˆ๋กญ๊ฒŒ ์ถ”๊ฐ€๋œ ์•ฑ ํƒ€์ž…, Carplay simulator, ๊ณ„๊ธฐํŒ ๋งต ํ‘œ์‹œ์— ๋Œ€ํ•ด ์•Œ์•„๋ด…์‹œ๋‹ค๐Ÿš—๐Ÿ’จ

2022๋…„ 6์›” 10์ผ
ยท
1๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

UICollectionViewCell์˜ Subview๊ฐ€ ์•ˆ๋ณด์ผ ๋•Œ

์Šคํ† ๋ฆฌ๋ณด๋“œ๋กœ UICollectionViewCell์„ ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉํ•˜๋ ค๋˜ ์™€์ค‘์— CollectionViewCell์˜ subview(ContentView)๊ฐ€ ๋‚˜ํƒ€๋‚˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๋ฅผ ๋งž๋”ฑ๋œจ๋ ธ๋‹ค.์Šคํ† ๋ฆฌ๋ณด๋“œ์—์„œ CollectionViewCell์„ ๋งŒ๋“ค์–ด์„œ CollectionVie

2022๋…„ 6์›” 9์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

[RxSwift] dispose๋ฅผ ํ˜ธ์ถœํ•˜์ง€ ์•Š์œผ๋ฉด?

"Disposable์˜ dispose() ๋ฅผ ํ˜ธ์ถœํ•˜์ง€ ์•Š์œผ๋ฉด ์ •๋ง ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๊ฐ€ ์ผ์–ด๋‚ ๊นŒ?"๋ผ๋Š” ๊ถ๊ธˆ์ฆ์—์„œ ์‹œ์ž‘๋œ ์‹คํ—˜์„ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ”ฌ ์ €์ฒ˜๋Ÿผ ๊ถ๊ธˆํ•ดํ•˜์‹œ๋Š” ๋ถ„๋“ค์ด ํ˜น~์‹œ๋‚˜~ ๊ณ„์‹ ๋‹ค๋ฉด ๊ถ๊ธˆ์ฆ์„ ํ•ด๊ฒฐํ•˜๋Š”๋ฐ ๋„์›€์ด ๋˜์—ˆ์œผ๋ฉด ์ข‹๊ฒ ๋„ค์š”๐Ÿ˜ŠrxSwift๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉฐ

2022๋…„ 6์›” 4์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท