์ „์ฒด ๊ธ€

๐ŸŒฑiOS ๊ฐœ๋ฐœ์ž๋ฅผ ๊ฟˆ๊พธ๋Š” ํ•™์ƒ์ด ๋งŒ๋“œ๋Š” ๋ธ”๋กœ๊ทธ
ยท๐ŸŽ iOS & Swift
์šฐ์ธก ํ™”๋ฉด์„ ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์„๊นŒ? ๊ฐ„๋‹จํ•˜๊ฒŒ TableViewController๋ฅผ ์ด์šฉํ•ด๋ณด๋„๋ก ํ•˜์ž. ๋“ค์–ด๊ฐ€๊ธฐ ์ „์— ์‚ฌ์šฉํ•œ ํ”„๋กœํ† ์ฝœ์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์†Œ๊ฐœํ•˜๊ฒ ๋‹ค. CaseIterable ์—ด๊ฑฐํ˜•์„ ๋ฐฐ์—ด์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ํ”„๋กœํ† ์ฝœ CustomStringConvertible ์•„๋ž˜ ๋งํฌ ์ฐธ๊ณ  [Swift] CustomStringConvertible ํ•œ๊ฐ€์ง€ ์ƒˆ๋กœ ์•Œ๊ฒŒ๋œ ๊ฒƒ์€ CustomStringConvertible ํ”„๋กœํ† ์ฝœ์„ ์ฑ„ํƒํ•˜๊ณ , ์ถœ๋ ฅ์„ ํ•˜๋ฉด description์œผ๋กœ ์ •ํ•ด ๋†“์€ String ๊ฐ’์œผ๋กœ ์ถœ๋ ฅ๋˜๊ธธ๋ž˜ ๊ทธ ๋™์•ˆ Type ์—ญ์‹œ String์ธ ์ค„ ์•Œ์•˜์ง€๋งŒ Type์€ ๊ทธ๋Œ€๋กœ ์—ด๊ฑฐํ˜• ํƒ€์ž…์ด์—ˆ๋‹ค. print(SettingType.total)์™€ ๊ฐ™์ด ์ถœ๋ ฅ์„ ํ•˜๋ฉด "์ „์ฒด ์„ค์ •"๊ณผ ๊ฐ™์ด ์ถœ๋ ฅ๋˜๋Š”๋ฐ ์ด๋ฅผ ํ—ค..
ยท๐ŸŽ iOS & Swift
๋“ค์–ด๊ฐ€๋ฉฐ ๊ทธ ๋™์•ˆ ๋„ˆ๋ฌด ์ƒ๊ฐ์—†์ด forEach๋ฌธ์„ ์‚ฌ์šฉํ•ด์™”๋˜ ๊ฒƒ ๊ฐ™๋‹ค. for-in๊ณผ ๋น„์Šทํ•œ ์—ญํ• ์€ ํ•˜๋Š”์ง€๋Š” ์•Œ์•˜์œผ๋‚˜ ์ •ํ™•ํžˆ ์–ด๋–ค ์ฐจ์ด๊ฐ€ ์žˆ๋Š”์ง€ ๊นŠ๊ฒŒ ์ƒ๊ฐํ•ด ๋ณธ ์ ์€ ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ฒจ์—๋Š” ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฝ๊ณ  ์‹ ์„ธ๊ณ„์˜€๊ธฐ์— ๋ฌด์ž‘์ • ์จ์™”์ง€๋งŒ ์ด์ œ๋Š” ์–ด๋–ค ์ฐจ์ด๊ฐ€ ์žˆ๋Š”์ง€๋Š” ์งš์–ด๋ณด๊ณ  ๊ฐˆ ๋•Œ์ด์ง€ ์•Š์„๊นŒ ์‹ถ๋‹ค. ๋ฉ˜ํ† ๋‹˜๊ป˜์„œ ์ด๋Ÿฌํ•œ ๋ถ€๋ถ„์— ๋Œ€ํ•ด ์–ธ๊ธ‰ํ•ด์ฃผ์…”์„œ ์ข‹์€ ๊ธฐํšŒ์— ์ •๋ฆฌ๋ฅผ ํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค. for - in var nums: [Int] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] // ์ปฌ๋ ‰์…˜์˜ ์‚ฌ์ด์ฆˆ๋งŒํผ ๋ฐ˜๋ณต for num in nums { print(num) } // 5๋ณด๋‹ค ํฐ ์ˆ˜๋งŒ ์ถœ๋ ฅ for num in nums where num > 5 { print(num) } // ์ง์ˆ˜๋งŒ ์ถœ๋ ฅ for num ..
ยท๐ŸŽ iOS & Swift
์˜ค๋Š˜์€ ๋ญ”๊ฐ€ ์˜๊ด‘์Šค๋Ÿฌ์šด(?!) ๋‚ ์ž…๋‹ˆ๋‹ค. ์ƒ๊ฐ๋งŒ ํ–ˆ์—ˆ๋˜ ์˜คํ”ˆ์†Œ์Šค Contributor ๋˜๊ธฐ ๋ชฉํ‘œ๋ฅผ ๋‹ฌ์„ฑํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ธ๋ฐ์š”. ์‚ฌ์‹ค ์–ด๋”” ๋‚ด๋†“๊ธฐ ์ •๋ง ๋ถ€๋„๋Ÿฌ์šด Commit์œผ๋กœ ๋‚ ๋กœ ๋จน์€ ๋Š๋‚Œ์ด ์žˆ์ง€๋งŒ์€ ๊ทธ๋ž˜๋„ ๋ฟŒ๋“ฏํ•ด์„œ ๊ธฐ๋ก์„ ๋‚จ๊น๋‹ˆ๋‹ค. ํ‰์†Œ์—๋„ ์œ ๋ช…ํ•œ ์˜คํ”ˆ์†Œ์Šค์— ๊ธฐ์—ฌ๋ฅผ ํ•˜๊ณ  ์‹ถ๋‹ค๋Š” ๋ง‰์—ฐํ•œ ๊ฟˆ์€ ๊ฐ€์ง€๊ณ  ์žˆ์—ˆ์ง€๋งŒ ์—„๋‘๊ฐ€ ์ „ํ˜€ ๋‚˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์ƒˆ์‹น ๊ณผ์ • 9์ผ์ฐจ์— ์ ‘์–ด๋“ค๋ฉด์„œ ์˜ค๋Š˜์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•ด์„œ ๋‚ด์šฉ์„ ๋‹ค๋ฃจ์—ˆ๋Š”๋ฐ์š”. ๋ฉ˜ํ† ๋‹˜๊ป˜์„œ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ช‡ ๊ฐœ๋ฅผ ์†Œ๊ฐœํ•ด์ฃผ์…จ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ค‘ FSCalendar ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ๋‚˜๋ฆ„ ์• ์ฆ์˜ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜€๋Š”๋ฐ์š”. ๊ฐ€์žฅ ์ตœ๊ทผ์— ํ•œ ํ”„๋กœ์ ํŠธ์—์„œ๋„ FSCalendar๋ฅผ ์‚ฌ์šฉํ–ˆ์—ˆ๊ณ , ๋‚˜๋ฆ„ ์ปค์Šคํ…€๋„ ํ•˜๊ณ  ํ–ˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— Contributor๋กœ ์ด๋ฆ„์„ ..
ยท๐ŸŒฑ SeSAC
๐Ÿชด Summary AutoLayout Priority ViewController ์ข…๋ฅ˜ (UIAlertController - Alert, Action Sheet - ์ค‘์‹ฌ์œผ๋กœ ๋ณธ) Literal Playground ํ•จ์ˆ˜, ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜๊ฐ’ ๐Ÿ—‚ Memo TIL์— ๋„ˆ๋ฌด ๋งŽ์€ ๋ฆฌ์†Œ์Šค๋ฅผ ๋“ค์ด์ง€ ๋ง™์‹œ๋‹ค. AutoLayout Priority hugging priority resistance priority ์šฐ์„ ์ˆœ์œ„๋Š” ์ดํ›„์— ๋‹ค๋ฅธ ์•„ํ‹ฐํด์—์„œ ๋” ์ž์„ธํžˆ ์ •๋ฆฌํ•˜๋„๋ก ํ•˜๊ฒ ๋‹ค. View ๋˜๋Š” Button์— Tag ๊ฐ’ ๋ถ€์—ฌ UIView์—๋Š” tag๋ผ๋Š” ํ”„๋กœํผํ‹ฐ๊ฐ€ ์กด์žฌํ•œ๋‹ค. ํ•ด๋‹น ํ”„๋กœํผํ‹ฐ๋กœ ๊ฐ๊ฐ์˜ ์š”์†Œ๋ฅผ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋™์ผํ•œ ์š”์†Œ๋ฅผ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์•ก์…˜์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋นจ๊ฐ„์ƒ‰ ๋ฐ•์Šค ๋ถ€๋ถ„์ด UIBut..
ยท๐ŸŽ iOS & Swift
Swift 5๋ถ€ํ„ฐ ์ง€์›ํ•˜๋Š” ๋ฌธ์ž์—ด ํ‘œํ˜„ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๊ฐœ์„ ์ ์„ ๊ฐ™์ด ์•Œ์•„๋ด…์‹œ๋‹ค. SE-0200 Enhancing String Literals Delimiters to Support Raw Text ๋งŽ์€ ๋‹ค๋ฅธ ์–ธ์–ด์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ Swift๋Š” ์ด์Šค์ผ€์ดํ”„ ๋ฌธ์ž( \ )๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด ๋‚ด์—์„œ ํ›„์† ๋ฌธ์ž์˜ ํŠน๋ณ„ํ•œ ํ•ด์„์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค. ์ด์Šค์ผ€์ดํ”„ ๋ฌธ์ž ์‹œํ€€์Šค๋Š” ๋ฌธ์ž์—ด ๊ตฌ๋ถ„ ๊ธฐํ˜ธ(ํฐ ๋”ฐ์˜ดํ‘œ), ์ด์Šค์ผ€์ดํ”„ ๋ฌธ์ž(๋ฐฑ ์Šฌ๋ž˜์‹œ), ๋ฌธ์ž์—ด ๋ณด๊ฐ„ ๋“ฑ์— ๋Œ€ํ•œ ๋ฌธ์ž ์ง‘ํ•ฉ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์‚ฌ์‹ค ์ด์Šค์ผ€์ดํ”„ ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋„ˆ๋ฌด ๊ท€์ฐฎ์€ ์ผ์ด๊ณ , ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด ์•ˆ์— ๋งŽ์€ ์ด์Šค์ผ€์ดํ”„ ์‹œํ€€์Šค๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉด ์ฝ๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ Apple์—์„œ ์•Œ์•„์ฃผ์—ˆ๋Š”์ง€ Swift 5๋ถ€ํ„ฐ๋Š” ์กฐ๊ธˆ ๋” ๋‹จ์ˆœํ•˜๊ณ  ๊น”๋”ํ•˜๊ฒŒ ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด ๊ตฌ๋ฌธ์„ ์ž‘์„ฑํ•  ..
ยท๐ŸŽ iOS & Swift
tintColor UIImageView - Instance Property ๋ทฐ ๊ณ„์ธต์—์„œ ํ…œํ”Œ๋ฆฟ ์ด๋ฏธ์ง€์— ์ƒ‰์กฐ๋ฅผ ์ง€์ •ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์ปฌ๋Ÿฌ์ž…๋‹ˆ๋‹ค. var tintColor: UIColor! { get set } default๋Š” nil์ž…๋‹ˆ๋‹ค. ๋งŒ์•ฝ nil์ด ์•„๋‹ˆ๋ผ๋ฉด ์ปฌ๋Ÿฌ๋Š” ์ด๋ฏธ์ง€ ๋ทฐ์— ์ฒจ๋ถ€๋œ ํ…œํ”Œ๋ฆฟ ์ด๋ฏธ์ง€์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ tintColor๋Š” UIView๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํ”„๋กœํผํ‹ฐ์ž…๋‹ˆ๋‹ค. ์ƒ์œ„๊ฐ€ ๋˜๋Š” ๋ทฐ์˜ tintColor๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ์ƒ์†๋ฐ›๋Š” ํ•˜์œ„ ๋ทฐ์— ์ฐจ๋ก€๋Œ€๋กœ ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. override func viewDidLoad() { view.tintColor = UIColor.red } func application(_ application: UIApplication, didFinishLaunchi..
ยท๐ŸŒฑ SeSAC
๐Ÿชด Summary ๋ทฐ์˜ ์ผ๋ฐ˜์ ์ธ ์†์„ฑ ๊ฐ’๋“ค(Alpha, Opacity, Rendering Mode, Corner Radius, Cilps to bounds, Shadow) ์˜คํ† ๋ ˆ์ด์•„์›ƒ (๋ ˆ์ด์•„์›ƒ ์žก๋Š” ์—ฐ์Šต ์ง„ํ–‰ ์ค‘) ๋„ค๋น„๊ฒŒ์ด์…˜ ์ปจํŠธ๋กค๋Ÿฌ ํƒญ๋ฐ” ์ปจํŠธ๋กค๋Ÿฌ ๐Ÿ—‚ Memo TIL์— ๋„ˆ๋ฌด ๋งŽ์€ ๋ฆฌ์†Œ์Šค๋ฅผ ๋“ค์ด์ง€ ๋ง™์‹œ๋‹ค. 1. ํฐํŠธ ํฌ๊ธฐ ํฐํŠธ ํฌ๊ธฐ๋Š” ๋ณดํ†ต ๋ฐ”๊พธ์ง€ ์•Š๋Š” ํŽธ SE์™€ ๊ฐ™์ด ํ™”๋ฉด์ด ์ž‘์€ ๋””๋ฐ”์ด์Šค์—์„œ๋Š” ์ปจํ…์ธ ๊ฐ€ ๋œ ๋ณด์ด๋„๋ก ๋†”๋‘๋Š” ํŽธ 2. Swift Convention ๊ณต๋ถ€๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ์ž…์žฅ์—์„œ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋„ˆ๋ฌด ์‹ ๊ฒฝ์„ ์“ฐ๋Š” ๊ฒƒ์€ ์˜คํžˆ๋ ค ์ฃผ๊ฐ์ „๋„๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค. ์ฐจ๊ทผ์ฐจ๊ทผ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด๊ฐ€๋‹ค๋ณด๋ฉด ์ ์ฐจ ์ต์ˆ™ํ•ด์งˆ ๊ฒƒ์ด๋‹ค. 3. Build Phases Compile Sources (์†Œ์Šค ์ฝ”๋“œ) Copy Bundle Resour..
ยท๐ŸŽ iOS & Swift
Alpha UIView์˜ ์ธ์Šคํ„ด์Šค ์†์„ฑ var alpha: CGFloat { get set } ์ด ์†์„ฑ์˜ ๊ฐ’์€ 0.0 ~ 1.0๊นŒ์ง€์˜ ๋ถ€๋™ ์†Œ์ˆ˜์  ์ˆซ์ž๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค. 0.0์œผ๋กœ ๊ฐ€๊นŒ์›Œ์งˆ์ˆ˜๋ก ํˆฌ๋ช…ํ•ด์ง€๊ณ , 1.0์œผ๋กœ ๊ฐ€๊นŒ์›Œ์งˆ์ˆ˜๋ก ๋ถˆํˆฌ๋ช…ํ•ด์ง„๋‹ค. ์ด ์†์„ฑ์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋ฉด ํ˜„์žฌ ๋ทฐ์˜ ์•ŒํŒŒ ๊ฐ’๋งŒ ์—…๋ฐ์ดํŠธ ๋œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ•ด๋‹น ์•ŒํŒŒ ๊ฐ’์— ๋ถ€์—ฌ๋œ ํˆฌ๋ช…๋„๋Š” ํ•˜์œ„ ๋ทฐ๋ฅผ ํฌํ•จํ•˜์—ฌ ๋ทฐ์˜ ๋ชจ๋“  ์ปจํ…์ธ ์— ์˜ํ–ฅ์„ ์ค€๋‹ค. ์•ŒํŒŒ๊ฐ’์— ๋Œ€ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ ์• ๋‹ˆ๋ฉ”์ด์…˜ ํ•  ์ˆ˜ ์žˆ๋‹ค. Opacity CALayer์˜ ์ธ์Šคํ„ด์Šค ์†์„ฑ var opacity: Float { get set } ์ด ์†์„ฑ์˜ ๊ฐ’์€ 0.0(ํˆฌ๋ช…)์—์„œ 1.0(๋ถˆํˆฌ๋ช…) ์‚ฌ์ด์—ฌ์•ผ ํ•œ๋‹ค. ํ•ด๋‹น ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚œ ๊ฐ’์€ ์ตœ์†Œ๊ฐ’, ์ตœ๋Œ€๊ฐ’์œผ๋กœ ๊ณ ์ •๋œ๋‹ค. ๊ธฐ๋ณธ ๊ฐ’์€ 1.0์ด๋‹ค. Alpha ์†์„ฑ๊ณผ๋Š”..