๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

study iOS๐ŸŽ

CS139P Course4 - class note M-V-VM 1. Model notices that itself has changed to ViewModel (swift struct acts on Copy On Write, so Swift can easily detect that the struct has changed when a memory copy happens for a struct) 2. ViewModel Publishes that Model has changed to View 3. View updates the member Views whose body depends on the @Published-keywored struct Concepts used ObservableObject protocol : ViewModel conform to t.. ๋”๋ณด๊ธฐ
[์ฃผ์ ‘ iOS] YPImagePicker : ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์˜์ƒ๊ณผ ์‚ฌ์ง„์„ ์ž์œ  ์ž์žฌ๋กœ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ( ft. ์ฝ”์ฝ”์•„ํŒŸ ์„ค์น˜ ์—๋Ÿฌ ํ•ด๊ฒฐ ) 0. ์จ๋“œ ํŒŒํ‹ฐ - ์˜คํ”ˆ ์†Œ์Šค github.com/Yummypets/YPImagePicker Yummypets/YPImagePicker ๐Ÿ“ธ Instagram-like image picker & filters for iOS. Contribute to Yummypets/YPImagePicker development by creating an account on GitHub. github.com ์ด๋ฒˆ์— ์‚ฌ์šฉํ•ด๋ณผ ์จ๋“œ ํŒŒํ‹ฐ API๋Š” "YPImagePicker" ์ž…๋‹ˆ๋‹ค. ๊ทธ์ „์—, ๊ท€์ฐฎ์„ ์ผ์ด ๋˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์• ํ”Œ์—์„œ ๊ณต์‹์ ์œผ๋กœ ์ œ์ž‘ํ•œ API๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋ฐ”๋กœ importํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์จ๋“œ ํŒŒํ‹ฐ API๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด, cocoa pod ์ด๋ผ๋Š” ํˆด์„ ์‚ฌ์šฉํ•ด์„œ ํ•  ์ˆ˜ ์žˆ์–ด์š” !! 1. ์ฝ”์ฝ”์•„ํŒŸ์„ ์ด์šฉํ•ด ์จ๋“œ ํŒŒ.. ๋”๋ณด๊ธฐ
[์ฃผ์ ‘ iOS] UIImagePickerController ( ์‰ฌ์šด ์„ค๋ช…, easy-explained ft. cocoapods ) 1. UI Image Picker Controller 1. ์ด ๋†ˆ์˜ ๋Šฅ๋ ฅ ์ด ๊ฐ์ฒด๋Š” ๋ญ˜ ํ•  ์ˆ˜ ์žˆ๋Š” ๋†ˆ์ผ๊นŒ์š”? ๊ณต์‹ ๋ฌธ์„œ์— ๋‹ต์ด ์žˆ์ฃ  ํ•ญ์ƒ ... 1. ์‚ฌ์ง„์„ ์ง์ ‘ ์ฐ์–ด์„œ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ 2. ๋™์˜์ƒ์„ ์ง์ ‘ ์ฐ์–ด์„œ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ 3. ์‚ฌ์ง„ ๋˜๋Š” ์˜์ƒ์„ ์•จ๋ฒ”์—์„œ ๊ฐ€์ ธ์˜ค๊ธฐ ํฌ๊ฒŒ ์ด ์„ธ ๊ฐ€์ง€๋ฅผ ํ•˜๋Š” ๋†ˆ์ž…๋‹ˆ๋‹ค. 2. ์‚ฌ๋žŒ๋“ค์ด ๋ณดํ†ตํ•˜๊ณ  ์‹ถ์–ดํ•˜๋Š” ๊ฒƒ๋“ค ๊ทธ๋Ÿผ ๋ณดํ†ต ์ €ํฌ๊ฐ€ ์ €๋†ˆ์˜ ์ € ๋Šฅ๋ ฅ์„ ์–ด๋–ป๊ฒŒ ์ด์šฉํ•˜๋ ค๊ณ  ํ•˜์ฃ ? ๋ณดํ†ต์˜ ๊ฒฝ์šฐ : 1. ์œ ์ €๊ฐ€ ์›ํ•˜๋Š” ์‚ฌ์ง„ ๋˜๋Š” ์˜์ƒ์„ ์ฐ์–ด์„œ ์—…๋กœ๋“œ ํ•˜๊ธฐ 2. ์‚ฌ์ง„, ์˜์ƒ์ด ์žˆ๋Š” ๊ฐค๋Ÿฌ๋ฆฌ์—์„œ ์ž์œ  ์ž์žฌ๋กœ ๊ณจ๋ผ์„œ ํ•˜๋‚˜ ๋˜๋Š” ์—ฌ๋Ÿฌ๊ฐœ๋ฅผ ์—…๋กœ๋“œ ํ•˜๊ธฐ๊ฐ€ ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ์œ„ ๋‘ ๊ฐ€์ง€ ๊ฒฝ์šฐ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๊ฒ ๋„ค์š” !! ๊ทธ๋ ‡์ฅฌ? 1์— ๋„์ „ํ•ด ๋ด…์‹œ๋‹ค ๊ทธ๋Ÿฌ๋ฉด. ์ด๊ฑฐ ํ•˜๋ฉด ๋ฐ˜์€ ์ •๋ณตํ•˜๋Š” ๊ฑฐ์—์š”. ๋งค์šฐ ๊ฐ„๋‹จํ•˜๋‹ˆ ๋ ˆ์ธ ๊ณ ~ ํ•ญ์ƒ .. ๋”๋ณด๊ธฐ
[๊พธ์ค€i-OS] alignment rectangle( ์‰ฌ์šด ์„ค๋ช…, easy-explained ) 0. ์„ค๋ช… ์ „ ํŒ๊น”๊ธฐ ์šฐ์„  ์˜คํ† ๋ ˆ์ด์•„์›ƒ์„ ์“ฐ๋Š” ์ด์œ ๊ฐ€ ๋ญ์˜€์ฃ ? ์ ˆ๋Œ€์ ์ธ ์ขŒํ‘œ๊ณ„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€, ๋งˆ์น˜ ์Šคํฌ๋ฆฐ์˜ ์‚ฌ์ด์ฆˆ๋ฅผ ๋ฏธ๋ฆฌ ์•Œ๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ์“ฐ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋งŒ์•ฝ, ์•„์ดํฐ7์˜ ์ขŒํ‘œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋งŒ๋“  ์•ฑ์ด ์•„์ดํฐ 11ํ”„๋กœ ๋˜๋Š” ๋žœ๋“œ์Šค์ผ€์ดํ”„ ๋ชจ๋“œ์˜ ์•„์ดํŒจ๋“œ์—์„œ ์‚ฌ์šฉ๋œ๋‹ค๋ฉด, ๋‹น์—ฐํžˆ ๋งค์šฐ ์ž‘๊ฒŒ ๋ณด์ผ ๊ฑฐ๊ณ , ํ™”๋ฉด์— ๋ ˆ์ด์•„์›ƒ์ด ์ด์ƒํ•˜๊ฒŒ ์žกํžˆ๊ฒ ์ฃ . ์ €๋Ÿฐ ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด, UIView์˜ frame์ด ๋Ÿฐํƒ€์ž„ ๋™์•ˆ์— ๊ณ„์‚ฐ๋˜๋ฉด์„œ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋Š” ์Šคํฌ๋ฆฐ ์‚ฌ์ด์ฆˆ๋ฅผ ๊ณ ๋ คํ•ด์„œ ๊ฒฐ์ •๋  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด autolayout์ž…๋‹ˆ๋‹ค. ๋œฌ๊ธŠ์—†์ด ์˜คํ† ๋ ˆ์ด์•„์›ƒ์ด ์™œ ๋‚˜์˜ค๋ƒ๊ตฌ์š”? ์˜คํ† ๋ ˆ์ด์•„์›ƒ์ด ๋ฐ”๋กœ ์˜ค๋Š˜ ๋‹ค๋ฃฐ ์ฃผ์ œ์ธ Alignment Rectangle์„ ๊ธฐ์ค€์œผ๋กœ ์ž‘๋™ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. 1. ๋„๋Œ€์ฒด Alignment R.. ๋”๋ณด๊ธฐ
[๊พธ์ค€i-OS] unwind segue (์‰ฌ์šด ์„ค๋ช…, easy-explained) # ๋‹จ์–ด ๋œป ์˜์–ด ๋‹จ์–ด์˜ ๋œป์„ ๋จผ์ € ์‚ดํŽด๋ณด๋‹ˆ, 'ํ’€๋‹ค'๋„ค์š”. ๋˜ํ•œ, ์ด ๋‹จ์–ด๋Š”, ๋น„๋””์˜ค์— ๋Œ€ํ•œ ๋งฅ๋ฝ์—์„œ ๋ณด๋ฉด, ๋˜๊ฐ๋‹ค์˜ ์˜๋ฏธ๋„ ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์„ธ๊ทธ์›จ์ด๋ฅผ ํ†ตํ•ด, ํ•˜์œ„ ์Šคํฌ๋ฆฐ์œผ๋กœ ์ด๋™ํ•œ ๊ฒƒ์„ "๋˜๊ฐ๋Š”", "๋Œ์•„๊ฐ€๋Š”" ์„ธ๊ทธ์›จ์ด ์ž…๋‹ˆ๋‹ค. # ์Šคํฌ๋ฆฐ ๋˜๊ฐ๊ธฐ์˜ ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ• 1. delegate๊ฐ€ ๋˜์–ด, ์ƒ์œ„ ์Šคํฌ๋ฆฐ์„ ๋„ค๋น„๊ฒŒ์ด์…˜ ์ปจํŠธ๋กค๋Ÿฌ ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ์ด์šฉํ•ด popํ•˜๊ธฐ. * ์ด ๋ฐฉ๋ฒ• ๋งŽ์ด ์“ฐ์ฃ . * delegate protocol์„ ์ •์˜ํ•˜๊ณ , * ์ƒ์œ„ ์Šคํฌ๋ฆฐ์€ ๊ทธ ํ”„๋กœํ† ์ฝœ์„ ์ฑ„ํƒํ•˜๊ณ , * ๋ธ๋ฆฌ๊ฒŒ์ดํŠธ ๋ฉ”์†Œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ , * ์„ธ๊ทธ์›จ์ด prepareํ•  ๋•Œ ๋‹ค์Œ ์Šคํฌ๋ฆฐ์˜ ๋ธ๋ฆฌ๊ฒŒ์ดํŠธ๊ฐ€ ๋˜๊ณ  * ๊ทธ ๋‹ค์Œ ์Šคํฌ๋ฆฐ์—์„œ '์™„๋ฃŒ' ๋ฒ„ํŠผ์— ๋Œ€ํ•œ ์•ก์…˜ ๋ฉ”์†Œ๋“œ๋กœ์„œ, delegate์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. * ์ด ์‹œ์ ์—, ๊ทธ ๋‹ค์Œ ์Šคํฌ๋ฆฐ์—์„œ ์ƒ์„ฑ.. ๋”๋ณด๊ธฐ
Handling low-memory situations ํ•œ ์•ฑ์— ๋ฐฐ์ •๋œ ๋ฉ”๋ชจ๋ฆฌ ์–‘์ด ์–ผ๋งˆ ๋‚จ์ง€ ์•Š์•˜์„ ๋•Œ, UIKIT๋Š” "LOW MEMORY WARNING"์„ ๋ณด๋‚ธ๋‹ค. ๊ทธ ๋•Œ๋Š”, ๋ฉ”๋ชจ๋ฆฌ์—์„œ, ํ˜„์žฌ ๋“ค๊ณ ์žˆ์ง€ ์•Š์•„๋„ ๋˜๋Š” ๊ฒƒ๋“ค์„ ํ•ด์ œ์‹œํ‚ฌ ํ•„์š”๊ฐ€ ์žˆ๋‹ค. > ํŠนํžˆ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ƒํ™ฉ์— ๊ฒฝ๊ณ ๋ฅผ ๋ฐ›๊ธฐ ์‰ฝ๋‹ค : 1. ๋‹ค๋ฅธ ์•ฑ๋“ค์ด ๋ฐฑ๊ทธ๋ผ์šด๋“œ์— ์žˆ๋Š” ์ƒํ™ฉ. 2. ์ด๋ฏธ์ง€ ํ”ฝ์ปค๋ฅผ ํ†ตํ•ด, ๊ฐค๋Ÿฌ๋ฆฌ์—์„œ ์‚ฌ์ง„์„ ๊ฐ€์ ธ์˜ค๊ณ  ์žˆ๋Š” ์ƒํ™ฉ. > Action : ๋‹ค์Œ์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋“œ ํ•˜์—ฌ, ํ˜„์žฌ ํ•„์š”์—†๋Š” ๊ฒƒ ๋–จ๊ตฌ๊ธฐ : override didReceiveMemoryWarning( ) { } * ์—ฌ๊ธฐ์„œ, ํ˜„์žฌ ๋‹น์žฅ ํ•„์š”์—†๊ฑฐ๋‚˜, ์‰ฝ๊ฒŒ ๋‹ค์‹œ ๋งŒ๋“ค๊ณ  ๋‹ค์‹œ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๋“ค์„ ํ•ด์ œํ•œ๋‹ค. * ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๋ถ€์กฑํ•˜๋‹ค๋ฉด, thumb-nail๋“ค์„ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ํ•ด์ œํ•ด๋„ ๋˜๊ณ , ์บ์‹œ๋œ ๊ฐ์ฒด๋“ค์„ ํ•ด์ œํ•ด๋„ .. ๋”๋ณด๊ธฐ
[๊พธ์ค€i-os] ios extension : ํƒ€์ž…์„ ์ •์˜๋ฅผ ํ™•์žฅํ•˜๊ธฐ ์ฃผ์š” ์‚ฌ์šฉ ๋ชฉ์  1. ๊ด€๋ จ๋œ ๊ธฐ๋Šฅ๋“ค์„ ๊ทธ๋ฃนํ™” 2. ํด๋ž˜์Šค, ์ŠคํŠธ๋ŸญํŠธ, ์ด๋‰ด๋จธ๋ ˆ์ด์…˜์— ํฌ๋งํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ != ์ƒ์†๊ณผ๋Š” ๋‹ค๋ฅธ ์  ์ถ”๊ฐ€ ๊ฐ€๋Šฅํ•œ ๊ฒƒ > ๋ฉ”์„œ๋“œ > computed property > ๋‹ค๋ฅธ ์†์„ฑ๊ณผ ๋ฉ”์„œ๋“œ๋ฅผ ๊ฒฐํ•ฉํ•œ ์ƒˆ๋กœ์šด ํŽธ์˜ ์†์„ฑ ๋งŒ๋“ค๊ธฐ ๊ฐ€๋Šฅ ์ถ”๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•œ ๊ฒƒ > instance variable > ๊ฐ์ฒด์˜ ํ…œํ”Œ๋ฆฟ ์ž์ฒด๋ฅผ ์žฌ์ •์˜ํ•  ์ˆ˜๋Š” ์—†๋‹ค. ๋”๋ณด๊ธฐ
[Too Swfit] ์‹œ์ฆŒ1 4ํšŒ. ์Šค์œ„ํ”„ํŠธ์˜ ์บ๋ฆญํ„ฐ๋ฅผ ์•Œ๊ณ ์‹ถ์–ด. Want to know Swift's character 1. 'Character' type ๋ฌธ์ž representation ์ฒด๊ณ„ ์ค‘์—๋Š” ASCII๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„์Šคํ‚ค๋Š” ๋ฌธ์ž๋ฅผ 7๋น„ํŠธ๋กœ ํ‘œํ˜„ํ•˜๋Š” ์ตœ๋Œ€ 128๊ฐœ์˜ ๋ฌธ์ž๋ฅผ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ๋Š” ์ฒด๊ณ„์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์— ๋Œ€ํ•œ super (char) set์œผ๋กœ ๋‚˜์˜จ UTF-8์€ ์ด ์•„์Šคํ‚ค ํ‘œํ˜„ ๊ด€๊ณ„๋ฅผ ๊ทธ๋Œ€๋กœ ์ƒ์†ํ•œ์ฑ„๋กœ, ๋ฌธ์ž ์ŠคํŽ™ํŠธ๋Ÿผ์„ ๋„“ํžŒ ์บ๋ฆญํ„ฐ ์„ธํŠธ์ž…๋‹ˆ๋‹ค. 2. Operation on Character // ์ด๊ฑฐ ๊ณต๋ฐฑ๋ฌธ์ž ๋งž๋‹ˆ? let space: Character = " " space.isWhitespace -> true or false // ์ด ์บ๋ฆญํ„ฐ๋Š” ์•„์Šคํ‚ค ์ฒด๊ณ„์— ์žˆ๋Š” ๊ฑฐ๋‹ˆ? let aChar = "a" aChar.isASCII // ์ด๊ฑฐ 16์ง„๋ฒ• ํ‘œํ˜„ํ•˜๋Š” ์ฒด๊ณ„ ์ค‘ ํ•˜๋‚˜๋‹ˆ( 0-9, a.. ๋”๋ณด๊ธฐ