전체 κΈ€

🌱iOS 개발자λ₯Ό κΏˆκΎΈλŠ” 학생이 λ§Œλ“œλŠ” λΈ”λ‘œκ·Έ
·🌈 UIUX
00. λ“€μ–΄κ°€λ©° μš°λ¦¬λŠ” κ°œλ°œμ„ ν•˜λ©΄μ„œ λ‹€μŒκ³Ό 같은 μ§ˆλ¬Έμ„ ν•œ 적이 μžˆμ„κΉŒ? - '이 뢀뢄은 μ΄λ ‡κ²Œ ν•˜λŠ” 것이 쒋지 μ•Šμ„κΉŒμš”?' Β· '이건 μ΄λ ‡κ²Œ λ°”κΏ”λ³΄λŠ” 건 μ–΄λ–¨κΉŒμš”?' - κ°œλ°œμžλŠ” λ‹¨μˆœνžˆ μ½”λ“œλ§Œ 잘 짜면 λœλ‹€λŠ” μƒκ°μ—μ„œ λ²—μ–΄λ‚˜ ν”„λ‘œλ•νŠΈμ— λŒ€ν•΄ '주체적으둜' μƒκ°ν•˜κ³  λ§Œλ“€μ–΄ λ‚˜κ°€λŠ” 역할이 λ˜μ–΄μ•Ό ν•œλ‹€. λ””μžμ΄λ„ˆ 및 κΈ°νšμžλ“€κ³Ό '주체적으둜' μ‚¬μš©μ„±μ— λŒ€ν•΄ μ†Œν†΅ν•  수 μžˆλŠ” νž˜μ„ κΈ°λ₯΄λŠ” 것이 λ‹€μŒ μŠ€ν„°λ””μ˜ λͺ©ν‘œλ‹€. - μœ μΎŒν•œ 윑회 μŠ€ν„°λ””(UIΒ·UX Challenge) μ†Œκ°œκΈ€ 쀑 일뢀 발췌 - 01. Navigation (ν•­ν•΄ Β· 탐색) πŸ‘Ύ μœ„ν‚€ν”Όλ””μ•„μ— λ‚˜μ™€μžˆλŠ” Navigation의 μ •μ˜λ₯Ό 찾아보면 항법 λ˜λŠ” ν•­ν•΄μˆ μ΄λΌκ³  λ‚˜μ™€μžˆμŠ΅λ‹ˆλ‹€. 특히, ν•œ μž₯μ†Œμ—μ„œ λ‹€λ₯Έ μž₯μ†Œλ‘œ μ΄λ™ν•˜κΈ° μœ„ν•œ 방법 λ˜λŠ” κ·ΈλŸ¬ν•œ 기술이라고 ..
·🍎 iOS & Swift
πŸ’₯ 인사말 μ•ˆλ…•ν•˜μ„Έμš”, νƒœλΌμž…λ‹ˆλ‹€ γ€° πŸ‘‹ λ‹€μŒ μΉ΄ν…Œκ³ λ¦¬μ—μ„œλŠ” λͺ¨λ₯΄λŠ” κ°œλ…μ΄λ‚˜ ν‚€μ›Œλ“œ, 문법 λ“± λ‹€μ–‘ν•œ λ‚΄μš©μ„ μ •λ¦¬ν•©λ‹ˆλ‹€. λ‹€μŒ λ‚΄μš©μ€ μ €μ˜ μΈμŠ€νƒ€ 개발 둜그 계정(@taekki.dev)에도 μ˜¬λΌκ°€λ‹ˆ λ§Žμ€ 관심 λΆ€νƒλ“œλ €μš” :) κ°œλ…μ˜ λΉˆκ³΅κ°„μ„ λ©”κΏ€ 수 μžˆλŠ” κ·Έλ‚ κΉŒμ§€ ν™”μ΄νŒ…ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€. 그럼 였늘 ν¬μŠ€νŒ… μ‹œμž‘ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€. πŸ™Œ πŸ’¬ λ“€μ–΄κ°€λ©° UIWindowλ₯Ό 처음 λ§ˆμ£Όν•˜κ±°λ‚˜, κ°€μž₯ 많이 λ³΄λŠ” 곳이 μ–΄μ©Œλ©΄ SceneDelegate.swift λ‚˜ AppDelegate.swift 일지도 λͺ¨λ¦…λ‹ˆλ‹€. 항상 κ°€λ³κ²Œ μ§€λ‚˜μΉ˜κΈ°λ§Œ ν–ˆλ˜ UIWindowκ°€ 무엇인지 μ΄λ²ˆμ— μ•Œμ•„λ³΄κΈ°λ‘œ ν–ˆμŠ΅λ‹ˆλ‹€. 이번 글은 Apple κ³΅μ‹λ¬Έμ„œμ˜ ꡬ쑰λ₯Ό λ°”νƒ•μœΌλ‘œ κ΅¬μ„±ν–ˆμŠ΅λ‹ˆλ‹€. 🌱 UIWindow의 νƒ€μž… πŸ“Œ νƒ€μž…(Type) - 클래슀 νƒ€μž…μ€ 클래슀(Cl..
·🍎 iOS & Swift
πŸ’­ λ“€μ–΄κ°€λ©° λͺ¨λ“  UI μš”μ†Œμ˜ 크기가 λ™μΌν•˜λ©΄ μ–Όλ§ˆλ‚˜ μ’‹μ„κΉŒμš”? ν•˜μ§€λ§Œ 그렇지 μ•ŠκΈ° λ•Œλ¬Έμ— μš°λ¦¬λŠ” 방법을 찾게 되죠 πŸ₯² νŠΉνžˆλ‚˜ μ»¨ν…μΈ μ˜ μ‚¬μ΄μ¦ˆμ— λ”°λΌμ„œ UI μ»΄ν¬λ„ŒνŠΈμ˜ μ‚¬μ΄μ¦ˆλ₯Ό λ™μ μœΌλ‘œ μ‘°μ ˆν•΄μ£ΌλŠ” 상황은 κ½€λ‚˜ 자주 λ“±μž₯ν•©λ‹ˆλ‹€. κ·Έ μ€‘μ—μ„œλ„ CollectionViewλŠ” 단골 μ†λ‹˜μž…λ‹ˆλ‹€. CollectionView 자체의 높이λ₯Ό λ™μ μœΌλ‘œ μ‘°μ ˆν•˜λŠ” μƒν™©μ΄λ‚˜, CollectionView Cell의 λ„ˆλΉ„λ‚˜ 높이λ₯Ό μ‘°μ ˆν•˜λŠ” 상황을 예둜 λ“€ 수 μžˆκ² λ„€μš”! ✨ μ˜€λŠ˜μ€ CollectionView Cell의 λ„ˆλΉ„λ₯Ό λ™μ μœΌλ‘œ μ‘°μ ˆν•˜λŠ” 방법을 μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€ γ€° πŸ“Ί μš”κ΅¬μ‚¬ν•­ μš°λ¦¬κ°€ κ΅¬ν˜„ν•΄μ•Όν•  상황은 λ‹€μŒκ³Ό κ°™μ•„μš”. 빨간색 λ°•μŠ€ μ˜μ—­μ„ κ΅¬ν˜„ν•΄μ•Ό ν•˜λŠ”λ° 각 μΉ΄ν…Œκ³ λ¦¬ μ˜μ—­μ΄ ν…μŠ€νŠΈ 길이에 맞게 λ™μ μœΌλ‘œ μ‘°μ ˆλ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€. 슀..
·🎁 Tip
0. λ“€μ–΄κ°€λ©° μ•ˆλ…•ν•˜μ„Έμš”γ€° μ˜€λŠ˜μ€ μ½”λ“œκ°€ μ•„λ‹Œ TIP을 λ“€κ³ μ™”μŠ΅λ‹ˆλ‹€. λ°”λ‘œ κΉƒν—ˆλΈŒ(GitHub)μ—μ„œ Issueλ‚˜ Pull requestλ₯Ό 생성할 λ•Œ μ‚¬μš©ν•˜λŠ” 라벨(labels)에 κ΄€ν•œ λ‚΄μš©μž…λ‹ˆλ‹€. μš°λ¦¬λŠ” 개인 ν”„λ‘œμ νŠΈλ₯Ό ν•  λ•Œλ‚˜ νŒ€ ν”„λ‘œμ νŠΈλ₯Ό ν•  λ•Œ 이슈 ꡬ뢄 Β· μ—­ν•  ꡬ뢄 Β· λ‚΄μš© ꡬ뢄 등을 μ •ν™•ν•˜κ²Œ μœ„ν•΄μ„œ λΌλ²¨μ΄λΌλŠ” 것을 μ‚¬μš©ν•©λ‹ˆλ‹€. μ΄λ¦„ν‘œ μ •λ„λ‘œ μƒκ°ν•˜λ©΄ νŽΈν•˜κ² μ£ ? νŠΉνžˆλ‚˜ νŒ€ κ°œλ°œμ„ ν•  λ•Œμ—λŠ” λ”μš± μœ μš©ν•˜κ²Œ μ‚¬μš©μ΄ 되죠. 이것이 μ–΄λ–€ 것을 κ΅¬ν˜„ν•œκ±΄μ§€ λˆ„κ°€ κ΅¬ν˜„ν•œκ±΄μ§€ ν•œ λ²ˆμ— μ•Œμ•„λ³Ό 수 μžˆλŠ” μš©λ„λ‘œλ„ μ‚¬μš©μ΄ λ©λ‹ˆλ‹€. ν‰μ†Œμ— μš°λ¦¬λŠ” μ΄λŸ¬ν•œ 라벨을 ν•„μš”μ— 맞게 μˆ˜μ •ν•˜κ³  μΆ”κ°€ν•˜κ³  ν•˜λŠ”λ°μš”. 맀번 μƒˆλ‘­κ²Œ 라벨을 μ„€μ •ν•˜λŠ” 것도 μ΄μ œλŠ” 지겹고 힘이 λ“­λ‹ˆλ‹€... μ΄λŸ¬ν•œ λΆˆνŽΈν•¨μ„ μ‘°κΈˆμ€ ν•΄μ†Œν•˜κ³ μž 였늘의 νŒμ„ λ“€κ³ ..
·🌈 UIUX
λ“€μ–΄κ°€λ©° μš°λ¦¬λŠ” κ°œλ°œμ„ ν•˜λ©΄μ„œ λ‹€μŒκ³Ό 같은 μ§ˆλ¬Έμ„ ν•œ 적이 μžˆμ„κΉŒ? - '이 뢀뢄은 μ΄λ ‡κ²Œ ν•˜λŠ” 것이 쒋지 μ•Šμ„κΉŒμš”?' Β· '이건 μ΄λ ‡κ²Œ λ°”κΏ”λ³΄λŠ” 건 μ–΄λ–¨κΉŒμš”?' - κ°œλ°œμžλŠ” λ‹¨μˆœνžˆ μ½”λ“œλ§Œ 잘 짜면 λœλ‹€λŠ” μƒκ°μ—μ„œ λ²—μ–΄λ‚˜ ν”„λ‘œλ•νŠΈμ— λŒ€ν•΄ '주체적으둜' μƒκ°ν•˜κ³  λ§Œλ“€μ–΄ λ‚˜κ°€λŠ” 역할이 λ˜μ–΄μ•Ό ν•œλ‹€. λ””μžμ΄λ„ˆ 및 κΈ°νšμžλ“€κ³Ό '주체적으둜' μ‚¬μš©μ„±μ— λŒ€ν•΄ μ†Œν†΅ν•  수 μžˆλŠ” νž˜μ„ κΈ°λ₯΄λŠ” 것이 λ‹€μŒ μŠ€ν„°λ””μ˜ λͺ©ν‘œλ‹€. - μœ μΎŒν•œ 윑회 μŠ€ν„°λ””(UIΒ·UX Challenge) μ†Œκ°œκΈ€ 쀑 일뢀 발췌 - 01. H.I.Gμ—μ„œ μ•Œμ•„λ³Έ Text Fields λ³Έ λ‚΄μš©μ€ H.I.G - Controls - Text Fields λ₯Ό νŽΈμ—­ν•œ κ²ƒμž…λ‹ˆλ‹€. κ°œλ… ν•œ μ€„μ˜ 고정적인 높이λ₯Ό 가진 ν•„λ“œ (λ‘₯κ·Ό λͺ¨μ„œλ¦¬λŠ” 선택 μš”μ†Œ) μ‚¬μš©μžκ°€ ν•„λ“œλ₯Ό νƒ­ν• ..
·🍎 iOS & Swift
πŸ’₯ μƒˆλ‘œμš΄ μ‹œμž‘ μ•ˆλ…•ν•˜μ„Έμš”, νƒœλΌμž…λ‹ˆλ‹€ γ€° πŸ‘‹ λΈ”λ‘œκ·Έμ— μƒˆλ‘œμš΄ μΉ΄ν…Œκ³ λ¦¬κ°€ μƒκ²ΌμŠ΅λ‹ˆλ‹€ γ€° (μ•Όν˜Έ) λ­λƒκ΅¬μš”? λ°”λ‘œ '✨ iOSλ₯Ό μœ„ν•œ κ°œλ… 쏙쏙' μΉ΄ν…Œκ³ λ¦¬μΈλ°μš” γ€° 곡뢀λ₯Ό ν•˜λ‹€λ³΄λ©΄ 가끔씩(맨날) λͺ¨λ₯΄λŠ” κ°œλ…μ΄λ‚˜ ν‚€μ›Œλ“œ, 문법 등이 λ‚˜μ˜€λŠ”λ° 그런 λ‚΄μš©λ“€μ„ μ •λ¦¬ν•˜λ €κ³  ν•˜λ €κ³  ν•©λ‹ˆλ‹€. λ‹€μŒ λ‚΄μš©μ€ μ €μ˜ μΈμŠ€νƒ€ 개발 둜그 계정(@taekki.dev)에도 μ˜¬λΌκ°€λ‹ˆ λ§Žμ€ 관심 λΆ€νƒλ“œλ €μš” :) 이건 TMI인데 숫자 인덱싱이 μ„Έ 자리수죠!? μ„Έ μžλ¦¬μˆ˜κΉŒμ§€ ν¬μŠ€νŒ… ν•  κ·Έ 날을 μœ„ν•¨μ΄λΌλŠ”... 뭐 κ·Έ λ‚  μ―€ 되면 μ‹€λ ₯이 μ‘°κΈˆμ€ λŠ˜μ–΄μžˆκ² λ„€μš”(ν•˜ν•˜) 그럼 였늘 ν¬μŠ€νŒ… μ‹œμž‘ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€ πŸ™Œ πŸ’¬ λ“€μ–΄κ°€λ©° typealias에 λŒ€ν•΄ κ³΅λΆ€ν•˜λ˜ 쀑에 β€˜μ„œλΈŒν΄λž˜μ‹±μ—†μ΄ μ»€μŠ€ν…€ νƒ€μž…μ˜ 배열을 μ •μ˜ν•˜λŠ”λ° μœ μš©ν•˜λ‹€β€™ μš”λŸ° 이야기가 λ‚˜μ™€μ„œ μ„œλΈŒν΄λž˜μ‹±..
·🎁 Tip
이보닀 μžμ„Έν•  수 μ—†λ‹€.. ν™”λ©΄ 속 λΉ¨κ°„ μ‚¬κ°ν˜•μ„ λ”°λΌμ˜€λ‹€λ³΄λ©΄ μ–΄λŠμƒˆ κΉƒν—ˆλΈŒμ™€ μŠ¬λž™ 연동이 λλ‚˜μžˆλŠ”.. 0. λ“€μ–΄κ°€λ©° ν˜‘μ—…μ„ ν•˜λ‹€λ³΄λ©΄ ν˜‘μ—… 툴둜써 Slackκ³Ό Notion을 μ‚¬μš©ν•˜κ²Œ λ©λ‹ˆλ‹€. μš°λ¦¬λŠ” κ·Έ μ€‘μ—μ„œ μ†Œν†΅ μˆ˜λ‹¨μœΌλ‘œμ¨ Slack을 많이 μ‚¬μš©ν•˜κ²Œ λ˜λŠ”λ°μš”. 이번 κΈ€μ—μ„œλŠ” Github의 ν˜‘μ—… Project에 Pull Request, Issue, Commit 등을 μˆ˜ν–‰ν–ˆμ„ λ•Œ νŒ€μ›λ“€μ—κ²Œ 변경사항을 μ‰½κ²Œ κ³΅μœ ν•  수 μžˆλ„λ‘ κΉƒν—ˆλΈŒ 봇을 μŠ¬λž™μ— μ—°κ²°ν•˜λŠ” 방법을 μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€. 전체 화면을 μΊ‘μ²˜ν•œ κ²ƒμ΄λ―€λ‘œ 잘 μ•ˆ 보일 수 μžˆμŠ΅λ‹ˆλ‹€. 화면을 ν™•λŒ€ν•΄μ„œ λ΄μ£Όμ„Έμš” :) 1. κΉƒν—™ μ•± μΆ”κ°€ν•˜λŠ” 단계 2. λ‚΄κ°€ μ†Œμ‹μ„ λ°›κ³  싢은 채널에 κΉƒν—ˆλΈŒ 봇을 μΆ”κ°€ν•˜λŠ” 단계 μ›ν•˜λŠ” 채널을 잘 μ„ νƒν•΄μ£Όμ„Έμš”. μŠ¬λž™ μ›Œν¬μŠ€νŽ˜μ΄μŠ€ μ•ˆμ— μ—¬..
·🍎 iOS & Swift
πŸ˜€μ˜€λŠ˜μ€ κ°„λ‹¨ν•˜κ²Œ Delegate Pattern을 μ μš©ν•΄λ³΄λŠ” μ˜ˆμ‹œ μ€‘μ—μ„œ ν™”λ©΄ μ „ν™˜ μ‹œ 데이터λ₯Ό λ‹΄μ•„λ³΄λ‚΄λŠ” μž‘μ—…μ„ ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€. πŸ§‘πŸ»β€πŸ’» λ“€μ–΄κ°€λ©° Delegate Pattern(πŸ˜‡? 😈??), 항상 κ³΅λΆ€ν•˜λ©΄μ„œ κ·Έ μˆœκ°„μ—λŠ” μ΄ν•΄ν–ˆκ³  λΆ„λͺ… μ•Œκ² λŠ”λ° λ„λŒ€μ²΄ μ–΄λŠ 뢀뢄에 Β· 또 μ–Έμ œ μ‚¬μš©ν•΄μ•Ό ν•˜λŠ”μ§€ 감이 μ•ˆ μž‘νž™λ‹ˆλ‹€... μ € μ—­μ‹œλ„ κ·ΈλŸ°λ°μš”... μ–΄μ©” 수 μ—†μ–΄μš”... λ‹€μ–‘ν•œ 상황에 써보렀고 λ…Έλ ₯ν•΄λ³΄λŠ” 수 밖에 μ΄λ²ˆμ— μ΅œλŒ€ν•œ μ—¬λŸ¬ 상황에 μ‚¬μš©ν•΄λ³΄λ©΄μ„œ μ–΄λ–€ μž₯단점이 μžˆλŠ”μ§€λ„ μ•Œμ•„λ³΄κ³  μ‚¬μš©λ²•μ— μ΅μˆ™ν•΄μ§€λ €κ³  ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€. 같이 λ…Έλ ₯ν•΄λ³΄μ•„μš”. πŸ“Ί μ‹€ν–‰ ν™”λ©΄ 였늘 κ΅¬ν˜„ν•΄ λ³Ό 화면은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€. 크게 μƒν’ˆ ν™”λ©΄κ³Ό μž₯λ°”κ΅¬λ‹ˆ λ‹΄κΈ° ν™”λ©΄ 2κ°€μ§€λ‘œ κ΅¬μ„±λ˜μ–΄μžˆκ΅¬μš”. μš°μ„  흐름을 μ„€λͺ…ν•΄λ“œλ¦΄κ²Œμš”. μƒν’ˆ ν™”λ©΄μ—μ„œ μž₯λ°”κ΅¬λ‹ˆ λ²„νŠΌμ„ 클..