๋ชฉ๋ก์ „์ฒด ๊ธ€ (67)

Focus On Develop ๐ŸคŸ๐ŸคŸ

[Swift] Storyboard vs Programmatic UI

์ €๋Š” ์™•์ดˆ๋ณด์ดˆ๋ณด๋ผ์„œ, ๋ฐฐ์šด๋Œ€๋กœ ์ถฉ์‹คํ•˜๊ฒŒ Storyboard๋ฅผ ํ†ตํ•œ UI์ž‘์—…๋งŒ ํ•ด์™”๋Š”๋ฐ์š”~! ๊ณต๋ถ€๋ฅผ ํ•˜๋ฉด ํ• ์ˆ˜๋ก ๋ณต์žกํ•˜๊ฑฐ๋‚˜ ๋‹ค์–‘ํ•œ User Interaction(swipe ๋“ฑ)์ด ํ•„์š”ํ•œ ํ™”๋ฉด๋“ค์„ ๋งŒ๋‚˜๊ฒŒ ๋˜๊ณ , ๊ทธ๊ฒƒ๋“ค์„ ๋” ์ž˜ ๊ตฌํ˜„ํ•˜๋ ค๋ฉด Code Base๋กœ Programaticํ•˜๊ฒŒ UI๋ฅผ ๊ทธ๋ฆด ์ˆ˜๋„ ์žˆ์–ด์•ผ ๊ฒ ๋”๋ผ๊ตฌ์š”! ๊ทธ๋ž˜์„œ ์ด๋ฒˆ์—๋Š” CodeBase๋กœ๋„ UI๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•˜๋Š” ์ด์œ ๋ฅผ ํฌ์ŠคํŒ… ํ•ด๋ณผ๊ฑฐ์—์š”! Storyboard๋กœ ๊ฐœ๋ฐœํ• ๋•Œ ์žฅ/๋‹จ์  ์žฅ์  ๊ฒฐ๊ณผ๋ฌผ์— ๊ด€ํ•ด ์˜ˆ์ธกํ•˜๊ธฐ ์‰ฌ์›€ (๋‹น์—ฐํžˆ ๋ˆˆ์œผ๋กœ ๋ณด๋ฉด์„œ ํ™”๋ฉด์„ ๊ทธ๋ฆฌ๋‹ˆ๊นŒ..?) ์†์„ฑ ํ™•์ธ ๊ฐ€๋Šฅ (inspector ํ™”๋ฉด์„ ๋ณด๋ฉด์„œ ํ•˜๋ฉด ํด๋ฆญ ๋”ธ๊น ๋”ธ๊น์œผ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ™•์ธ ๊ฐ€๋Šฅํ•˜์ฃ !) ์†Œ์Šค์ฝ”๋“œ๋ฅผ ํ•˜๋‚˜ํ•˜๋‚˜ ๊ธฐ์–ตํ•˜์ง€ ์•Š์•„๋„ ๋ฌด๊ด€ ๋‹จ์  ๋ฌด๊ฑฐ์›€ ๐Ÿ˜ฉ (์•„๋งˆ ๋ณต์žกํ•œ ํ™”๋ฉด ์ž‘์—…..

Figma ์‹œ์ž‘ํ•˜๊ธฐ!

๋‚ด ์ฃผ๋ณ€์—๋Š” ์™œ ๋””์ž์ด๋„ˆ๊ฐ€ ํ•œ๋ช…๋„ ์—†๋Š” ๊ฒƒ์ธ๊ฐ€..ใ… ใ…  ๋Œ€ํ•™์ƒ๋•Œ๋ถ€ํ„ฐ ์ด๋Ÿฐ์ €๋Ÿฐ ํ™œ๋™ํ•˜๋ฉด์„œ ๋‹ค์–‘ํ•œ ์‚ฌ๋žŒ๋“ค์„ ๋งŽ์ด ์‚ฌ๊ท€์–ด๋‘˜๊ฑธ ๊ทธ๋žฌ์–ด์š”! ใ…Žใ…Ž ์•„์‰ฌ์šด๋ฐ๋กœ ์ง์ ‘ ๋””์ž์ธํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค์šฉ~~ ๐Ÿ‘ (๋ฏธ์ ๊ฐ๊ฐ Zero.. ํ˜น์‹œ ์•ฑ๋””์ž์ด๋„ˆ ๊ณ„์‹œ๋ฉด ์—ฐ๋ฝ์ฃผ์„ธ์š”.. ๊ฐ™์ด ํ•ฉ์‹œ๋‹ค.. ใ… ใ…  ๋‹จ, ์—ด์ •ํŽ˜์ด๋งŒ ๊ฐ€๋Šฅ ใ…‹ใ…‹ใ…‹) App์€ ํ•œ๋ฒˆ ๋งŒ๋“ค์–ด๋ณด๊ณ  ์‹ถ๊ณ ,, ํ˜ผ์ž ์ฝ”๋“œ๋งŒ ๋ณด๋ฉด์„œ ๋„์ ๊ฑฐ๋ฆฌ๊ธฐ์—” ๋ญ”๊ฐ€ ๋”ฑ๋”ฑํ•˜๊ณ .. ์™„์„ฑ๋œ ๋ชจ์Šต์„ ๋ฏธ๋ฆฌ ๋ณด๊ณ ์‹ถ๊ธฐ๋„ ํ•˜๊ณ .. ์ข…์ด์— ๋Œ€์ถฉ ํ˜๊ฒจ๊ทธ๋ฆฐ wireframe์€ ์ง€๊ธ‹์ง€๊ธ‹ํ•˜๊ณ .. ๋‚˜๋Š” ๊ณต๋Œ๊ณต๋Œ์ด๋ผ ๋””์ž์ธ๊ฐ™์€๊ฑฐ 1๋„ ๋ชจ๋ฅด๊ณ  ๊ฐ๊ฐ๋„ ์—†๊ณ ... ๊ทธ๋Ÿฐ๋ถ„๋“ค!! ์ƒ์ƒ์†์—์„œ๋งŒ ์ด๋ ‡๊ฒŒ ๋˜๊ฒ ์ง€! ํ•˜๋˜๊ฑด ์ด์ œ ๊ทธ๋งŒํ•˜๊ณ  ๊น”๋”ํ•˜๊ฒŒ ์›ํ•˜๋Š” ํ™”๋ฉด ๋””์ž์ธ ํ•ด๋†“๊ณ  ์•ฑ๊ฐœ๋ฐœ ํ•ด๋ณด์ž๊ตฌ์š”! ํ•œ๋ฒˆ ์ตํ˜€๋†“์œผ๋ฉด ๋‚˜์ค‘์— ๋””์ž์ด๋„ˆ์™€ ๊ฐ™์ด ์ž‘์—…ํ• ๋•Œ๋„ ์ˆ˜์›”ํ•˜๊ณ ,..

[App ๋””์ž์ธ] ์œ ์šฉํ•œ ์‚ฌ์ดํŠธ ๋ชจ์Œ

Sketch, Figma ๋“ฑ๋“ฑ์„ ํ™œ์šฉํ•ด์„œ ์•ฑ ๋””์ž์ธ ํ• ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์šฉํ•œ ์‚ฌ์ดํŠธ ๋ชจ์Œ์ž…๋‹ˆ๋‹ค~~ ๐Ÿ˜Ž๐Ÿ˜Ž 1. ๊ฐ์ข… ์ด๋ฏธ์ง€ ๋‹ค์šด๋กœ๋“œ www.pexels.com/ko-kr/ ๋ฐฐ๊ฒฝ, ์ด๋ฏธ์ง€ ๋“ฑ๋“ฑ ํ•„์š”ํ•œ ์ด๋ฏธ์ง€๋ฅผ ๊ฒ€์ƒ‰์ฐฝ์— ๊ฒ€์ƒ‰ํ•˜๋ฉด ๋‹ค์šด๋ฐ›์„ ์ˆ˜ ์žˆ์–ด์š”. (์ด๋ฏธ์ง€์— ๋”ฐ๋ผ ์œ ๋ฃŒ๋„ ์žˆ์Œ) 2. (์ฃผ๋กœ) ๋ฐฐ๊ฒฝํ™”๋ฉด, App Icon www.pinterest.co.kr/ Pinterest ์š”๋ฆฌ๋ฒ•, ์ง‘ ๊พธ๋ฏธ๊ธฐ ์•„์ด๋””์–ด, ์˜๊ฐ์„ ์ฃผ๋Š” ์Šคํƒ€์ผ ๋“ฑ ์‹œ๋„ํ•ด ๋ณผ ๋งŒํ•œ ์•„์ด๋””์–ด๋ฅผ ์ฐพ์•„์„œ ์ €์žฅํ•˜์„ธ์š”. www.pinterest.co.kr ์›ํ•˜๋Š” ํ‚ค์›Œ๋“œ๋กœ ๊ฒ€์ƒ‰ํ•˜๋ฉด ๋‹ค์–‘ํ•œ ์ด๋ฏธ์ง€๋ฅผ ๋‹ค์šด๋ฐ›์œผ์‹ค ์ˆ˜ ์žˆ์–ด์š”. 3. iOS ๊ธฐ๋ณธ ํ™”๋ฉด ๋ฆฌ์†Œ์Šค ๋‹ค์šด๋กœ๋“œ iosdesignkit.io/ios-11-gui/ iOS 11 GUI for iPhone X an..

[Swift] strong, weak, unowned

๋จผ์ € ARC์˜ ๊ฐœ๋…์— ๋Œ€ํ•ด์„œ ์งš๊ณ  ๋„˜์–ด์™€์•ผ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๊ฐ€ ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค ๐Ÿ‘ ๐Ÿ‘‰ 2021/01/29 - [iOS [Swift]] - [Swift] ARC (Automatic Reference Counting) ์ž ๊น ์š”์•ฝํ•˜๋ฉด ARC๋Š” Swift์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ž๋™์œผ๋กœ ๊ด€๋ฆฌํ•ด์ค€๋‹ค๋Š” ๊ฐœ๋…์ธ๋ฐ, ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ์ž๋™์œผ๋กœ ํ•ด์ฃผ์ง€๋งŒ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ํฌ์ธํŠธ๊ฐ€ ์žˆ์—ˆ์ฃ . ๊ทธ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ํฌ์ธํŠธ๋Š” ์–ธ์ œ์ด๋ฉฐ, ์–ด๋–ป๊ฒŒ ๋ฐฉ์ง€๋ฅผ ํ•ด์•ผ ํ• ์ง€์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋ ค ํ•ฉ๋‹ˆ๋‹ค. ** ์—ฌ๊ธฐ์„œ๋ถ€ํ„ฐ๋Š” Swift ๊ณต์‹ Document๋ฅผ ์ฐธ๊ณ ํ•ด์„œ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค ** [Swift Docs] docs.swift.org/swift-book/LanguageGuide/AutomaticReferenceCounting.htm..

[Swift] ARC (Automatic Reference Counting)

Swift์—์„œ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ์–ด๋–ป๊ฒŒ ํ• ๊นŒ์š”~? Swift์—์„œ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๊ณ  ์„ฑ๋Šฅ์ €ํ•˜๋ฅผ ๋ง‰๊ธฐ์œ„ํ•ด ARC ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”๋ฐ์š”! ์ด ARC์— ๋Œ€ํ•ด์„œ ํ•œ๋ฒˆ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ด์š”! RC๋ž€ Reference Counting์˜ ์•ฝ์ž๋กœ ์• ํ”Œ์—์„œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๋ผ๋Š” ๊ธฐ๋ณธ์ ์ธ Rule์ด๋ผ๋Š” ์ „์ œ๋ฅผ ๋‘ก๋‹ˆ๋‹ค. MRC๋ž€ Manual Reference Counting์˜ ์•ฝ์ž๋กœ Object-C์—์„œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘! ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น/ํ•ด์ œ ํ•ด์ค˜์•ผ ํ• ๋•Œ ์“ฐ๋Š” ๋ฐฉ๋ฒ•์ด๋ผ๊ณ  ํ•˜๋Š”๋ฐ, ์ด ๋ถ€๋ถ„์€ ์ฟจํ•˜๊ฒŒ ์š”์ •๋„๋กœ ํŒจ์Šคํ•ฉ๋‹ˆ๋‹ค.ใ…Ž ์ด๋ฏธ Swift๊ฐ€ ๋ณดํŽธํ™” ๋˜์—ˆ๊ณ , ์ € ๋˜ํ•œ Object-C๋Š” 1๋„ ๋ชจ๋ฅด๊ณ  ํ˜„์žฌ ์‚ฌ์šฉ๋„ ์•ˆํ•˜๊ธฐ ๋•Œ๋ฌธ..ใ…‹๐Ÿ‘๐Ÿ‘ ์ž ์ด์ œ ๋ณธ๋ก ์œผ๋กœ ๋“ค์–ด๊ฐ€์„œ, ARC๋ž€ Automatic Reference Counting์˜..

[Swift] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฝ”๋”ฉ์‹œ ์œ ์šฉํ•œ Tip๋“ค!

์ด ํŽ˜์ด์ง€๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ํ’€๋•Œ ์ž์ฃผ(?) ์“ฐ์ด๋Š” ์Šคํ‚ฌ(?) ๊ฐ™์€ ๊ฒƒ๋“ค์„ ๊ฐ„๋žตํ•˜๊ฒŒ ์ •๋ฆฌํ•ด๋‘˜ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ ์Œ..? root๊ฐ’ ์–ด๋–ป๊ฒŒ ๊ตฌํ•˜์ง€.. ์ง„๋ฒ•๋ณ€ํ™˜ ์–ด๋–ป๊ฒŒ ํ•˜์ง€.. ๋“ฑ๋“ฑ! (๋งค๋ฒˆ ๊ตฌ๊ธ€๋งํ•˜๊ธฐ ๋„˜ ๊ท€์ฐฎ..๐Ÿ˜”) ์ •~๋ง ๊ฐ„๋‹จํ•˜๊ฒŒ ์‚ฌ์šฉ๋ฒ•๋งŒ ์ •๋ฆฌํ•  ์˜ˆ์ •์ด๋ž๋‹ˆ๋‹ค ๐Ÿ˜Ž ๋ฌธ์ œ ํ’€๋ฉด์„œ ๋˜ ์ž์ฃผ ๋ณด์ด๋Š” ๊ฒƒ์€ ์ด ํŽ˜์ด์ง€์— ์ถ”๊ฐ€ํ•ด๋‚˜๊ฐˆ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค ๐Ÿ‘๐Ÿ‘ - ๋ฐฐ์—ด ์ดˆ๊ธฐ๊ฐ’ ๋„ฃ์–ด์„œ ๋งŒ๋“ค๊ธฐ var array = Array(1...5) // [1,2,3,4,5] - ํฌ๊ธฐ๊ฐ€ ์ •ํ•ด์ง„ ๋ฐฐ์—ด ๋งŒ๋“ค๊ธฐ var arr = Array(repeating: 0, count: 3) // [0,0,0] - 2์ฐจ์› ๋ฐฐ์—ด ๋งŒ๋“ค๊ธฐ let array: [[Int]] = Array(repeating:Array(repeating:1, count: 4), c..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์นดํŽซ

์ผ๋‹จ ์นดํŽซ ํฌ๊ธฐ๋ฅผ ์ •ํ•˜๋Š” ๊ทœ์น™ ํ˜น์€, ์›๋ฆฌ๋ฅผ ์•Œ์•„๋‚ด์•ผ ํ•œ๋‹ค. ์ฒ˜์Œ ์‹œ๋„๋Š” brown ๊ธฐ์ค€์œผ๋กœ ํฌ๊ธฐ๋ฅผ ์ถ”์ •ํ•˜๋ ค๊ณ  ํ•ด๋ณผ๊นŒ ํ–ˆ๋Š”๋ฐ.. ์˜ˆ์‹œ 3๋ฒˆ ์ผ€์ด์Šค์—์„œ ์•„? ์ด๊ฑด์•ˆ๋˜๊ฒ ๊ตฌ๋‚˜ ํ•˜๊ณ  ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค ใ…‹ใ…‹ ์ฆ‰.. ์ด๋ฌธ์ œ๋Š” yellow ๋กœ๋ถ€ํ„ฐ ํฌ๊ธฐ๋ฅผ ์•Œ์•„๋‚ด์•ผํ•œ๋‹ค๋Š” ์˜๋ฏธ๋‹ค. ์ง์‚ฌ๊ฐํ˜•๊ณ  yellow์˜ ํฌ๊ธฐ๊ฐ€ ์ตœ์†Œ 1x1์€ ๋˜๋‹ˆ(์ž…์ถœ๋ ฅ ์ œํ•œ์‚ฌํ•ญ), yellow์˜ ํฌ๊ธฐ๋งŒ ์•Œ๋ฉด yellow์˜ (์œ„์•„๋ž˜๊ธธ์ด + ์ขŒ์šฐ๊ธธ์ด) x 2 + 4(๋์ชฝ๋ชจ์„œ๋ฆฌ) ๋งŒ ํ•ด์ฃผ๋ฉด brown์˜ ๊ฐฏ์ˆ˜๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. (brown์€ yellow๋ฅผ ๊ฐ์‹ธ๋Š” ํ…Œ๋‘๋ฆฌ๋‹ˆ๊นŒ) ๊ด€๊ฑด์€ yellow์˜ ํฌ๊ธฐ๋Š” ์–ด๋–ป๊ฒŒ ๊ตฌํ•˜์ง€? yellow์˜ ํฌ๊ธฐ๋Š” ๊ฐ€๋กœx์„ธ๋กœ๋กœ ๊ตฌํ•ด์งˆ ๊ฑด๋ฐ, ๊ฐ€๋Šฅํ•œ ์กฐํ•ฉ์˜ ๊ฐ€๋กœx์„ธ๋กœ (์•ฝ์ˆ˜์˜ ๊ณฑ) ์ค‘์— ์œ„์—์„œ ๋„์ถœํ•œ brown ๊ฐฏ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๊ณต์‹์— ๋„ฃ์—ˆ์„..

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๊ฐ€์žฅ ํฐ ์ˆ˜

"numbers๋ฅผ ์ญ‰ ์ด์–ด๋ถ™์—ฌ์„œ ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ๋งŒ๋“œ๋ ค๋ฉด, ์ œ์ผ ์•ž์ž๋ฆฌ์— ์ œ์ผ ํฐ ์ˆ˜๊ฐ€ ๋“ค์–ด์˜ค๋ฉด๋œ๋‹ค" ๋ผ๋Š” ์ „์ œ๋ฅผ ๊ฐ€์ง€๊ณ  ์‹œ์ž‘ํ•œ๋‹ค. ์Œ.. ๊ทผ๋ฐ ์˜ˆ์‹œ์˜ 2๋ฒˆ์ผ€์ด์Šค๋ฅผ ๋ณด๋ฉด 3, 30, 34 ์ด๋ ‡๊ฒŒ ํฌํ•จ๋˜์–ด ์žˆ๋Š”๋ฐ ์•ž์ž๋ฆฌ๊ฐ€ ๋ชจ๋‘ 3์ด๋ฉด ์–ด๋–ป๊ฒŒ ํ•˜์ง€? ์ด ๋ถ€๋ถ„์„ ๊ณ ๋ฏผํ•˜๋Š”๊ฒŒ ๊ฐ€์žฅ ํ•ต์‹ฌ์ด ๋˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค. 3์ด 34๋ณด๋‹ค๋Š” ๋’ค์—, 30๋ณด๋‹ค๋Š” ์•ž์— ์žˆ์–ด์•ผ ๊ฐ€์žฅ ํฐ ์ˆ˜๊ฐ€ ๋‚˜์˜ค๋Š”๋ฐ, (์ž๋ฆฟ์ˆ˜๊ฐ€ ๊ฐ™๋‹ค๋ฉด ๊ทธ๋ƒฅ ์ •๋ ฌํ•˜๋ฉด ๋˜๋Š”๋ฐ, ์ž๋ฆฟ์ˆ˜๊ฐ€ ๋‹ค๋ฅด๋ฉด ๋น„๊ต๊ฐ€ ์–ด๋ ต๋‹ค.) ์‹ค์ œ๋กœ ๋‚ด๊ฐ€ ๋น„๊ตํ•  ํ–‰๋™์€ 3์˜ 3๊ณผ, 30์˜ 0์ค‘ ์–ด๋–ค๊ฒŒ ๋” ํฐ๊ฐ€์š”? ๋ผ๊ณ  ์‹œ์ž‘ ๋  ๊ฒƒ ๊ฐ™๋‹ค. ๊ทผ๋ฐ ์ž๋ฆฟ์ˆ˜๊ฐ€ ๊ธธ๊ณ  ๋น„๊ตํ•ด์•ผ ํ• ๊ฒŒ ๋งŽ๋‹ค๋ฉด..??? ๊ทธ๋Ÿฐ ๊ฒฝ์šฐ๋Š”, ์ž…๋ ฅ๋ฐ›์€ ์ˆ˜๋ฅผ String์œผ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋น„๊ต๋ฅผ ํ•ด์•ผํ•˜๋Š”๋ฐ.. ๋ฌธ์ œ๋ฅผ ๋ณด๋ฉด ์›์†Œ๊ฐ€ ์ตœ๋Œ€ 1000 ์ดํ•˜๋กœ ์ฃผ์–ด์ง€๋‹ˆ..

Prev 1 2 3 4 5 6 7 8 9 Next