ios
-
Early ExitSwift 2021. 4. 13. 10:55
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ ๋ฒ ํฌ์คํ ์ธ ์ต์ ๋ ์ฒด์ด๋์ ์ด์ด ๊ด๋ จ๋ Early Exit, ๋น ๋ฅธ์ข ๋ฃ์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ง๐ป๐ป ์ต์ ๋ ์ฒด์ด๋๊ณผ ์ต์ ๋ ๋ฐ์ธ๋ฉ์ ์ดํด๊ฐ ๋ ์ํ์์ ๋น ๋ฅธ ์ข ๋ฃ์ ํค์๋์ธ guard์ ๋ํด ์์๋ณด๊ณ if์๋ ์ด๋ค ์ต์ ๋ ๋ฐ์ธ๋ฉ์์ ์ฐจ์ด๊ฐ ์์์ง์ ๋ํด ๋ฐฐ์๋ณด๊ฒ ์ต๋๋ค๐ Early Exit : ๋น ๋ฅธ์ข ๋ฃ๋ก if๋ฌธ์์๋ else ๊ตฌ๋ฌธ์ด ์์ด๋ ๋๋ฉฐ ๋ง์ฝ else ๊ตฌ๋ฌธ์ด ์์๋๋ if์ else ๊ตฌ๋ฌธ ๋ชจ๋ ๊ตฌํ์ ํด์ฃผ๋ฉฐ ๋ถ๊ธฐ๋ฅผ ํด์ค๋๋ค. ๊ทธ๋ฌ๋ guard ๊ตฌ๋ฌธ์ ๊ผญ else ๊ตฌ๋ฌธ์ด ์์ด์ผ ๋ฉ๋๋ค. else ๊ตฌ๋ฌธ์์๋ ๋ฌด์กฐ๊ฑด ์์์ ์ฝ๋๋ธ๋ญ์ ์ข ๋ฃ์ํค๋ ์ ์ด๋ฌธ ์ ํ ๋ช ๋ น ํน์ ๊ทธ ๊ตฌ๋ฌธ์ ํ์ถ์ํฌ ์ ์๋ ๋น๋ฐํ ํจ์ / ๋ฉ์๋ ํธ์ถ์ด ์์ด์ผ ํฉ๋๋ค. ์ ์ด๋ฌธ ์ ํ ๋ช ๋ น์ด : return..
-
Optional ChainingSwift 2021. 4. 12. 19:33
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ Optional Chaining ์ต์ ๋ ์ฒด์ด๋์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค. ์ต์ ๋ ์ฒด์ด๋ (Optional Chaining) : ์ต์ ๋ ์ฒด์ด๋์ด๋ ์ต์ ๋์ ์ฌ๋ฌ๋ฒ ์ฒด์ธ ์ฒ๋ผ ์ฌ์ฉํ๋ ๊ธฐ์ -> ์ต์ ๋ ์ฒด์ด๋์ ๋ ๋ถ๋ถ์์ ๊ฐ์ด ํ๋๋ผ๋ nil์ด๋ฉด nil์ ๋ฐํ ์ต์ ๋ ์ฒด์ด๋์ ์ฌ์ฉ import Foundation class Camper { var nickName: String var description: Description? init(nickName: String) { self.nickName = nickName } } struct Description { var gender: Gender? var age: Int } class Gender { var gende..
-
GCD & OperationSwift 2021. 4. 9. 15:02
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ ์ผ์ ์ ๋ค๋ฃฌ๋ฐ ์๋ ๋์์ฑ ํ๋ก๊ทธ๋๋ฐ์์ GCD & Operation์ ํ์ตํด๋ณด๊ฒ ์ต๋๋ค. ์ด์ ๋ณด๋ค ์ ์ฒด์ ์ธ ๊ฐ๋ ์ ๋ํ ํ์ต์ ๊ฐ์ง๋ง ์กฐ๊ธ ๋ ์ฌํ๋ ๋ด์ฉ์ด๋ผ๊ณ ๋ณด๋ฉด ๋ ๊ฒ ๊ฐ์ต๋๋คโบ๏ธ ์ฐ์ ๋์์ฑ ํ๋ก๊ทธ๋๋ฐ์์ ์ค์ํ ๋น๋๊ธฐ์ ๋ํด ์กฐ๊ธ ์ง๊ณ ๋์ด๊ฐ๋ณด๊ฒ ์ต๋๋ค. ๋์์ฑ ํ๋ก๊ทธ๋๋ฐ์ ํ ๋ ๊ฐ์ฅ ์ค์ํ ๋ถ๋ถ์ด ๊ฐ ์ค๋ ๋๋ณ๋ก ๋น๋๊ธฐ์ ์ผ๋ก ์ผ์ ์ฒ๋ฆฌํ๊ฒ ํด์ฃผ๋ ๋ถ๋ถ์ ๋๋ค. ๊ทธ๋์ ๊ฐ ์ผ์ ๊ธฐ๋ค๋ ธ๋ค ํ์ง ์๊ณ ๋์์ ์ฒ๋ฆฌํ๋๋ก ๋ง๋ค์ด์ค๋๋ค. ์ ์์ ์ ๋น๋๊ธฐ๋ก ์ฒ๋ฆฌํด์ผ๋ ๊น? : ๋น๋๊ธฐ๋ก ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ๋ ๊ฒฝ์ฐ๋ ๊ต์ฅํ ๋ง์ต๋๋ค. ์๋ฅผ๋ค์ด ๋คํธ์ํฌ ์์ ๋ค์ ๋ํดํธ๊ฐ ๋น๋๊ธฐ์ ๋๋ค. ํํ ๋ณด๋ ํ ์ด๋ธ ๋ฐ ์ปฌ๋ ์ ๋ทฐ์์ ์ด๋ฏธ์ง๋ฅผ ์๋ฒ์์ ๋ฐ์ ๋ฟ๋ ค์ฃผ๋ ์ธ์คํ๊ทธ๋จ๋ค์ ๊ฒฝ์ฐ๋ ๋ง์ฝ ๋น๋๊ธฐ..
-
Core AnimationiOS 2021. 4. 1. 18:44
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ ์ ๋ฒ Core Graphics์ ์ด์ด Core Animation์ ๋ํด ํ์ตํ๊ฒ ์ต๋๋ค๐ง๐ป๐ป Core Animation? : ์๊ฐ์ ์์์ ๋ํด ๊ทธ๋ํฝ ๋๋๋ง ๋ฐ ๊ตฌ์ฑ์ ํตํด ์ ๋๋ฉ์ด์ ์ ๋ง๋๋ ํ๋ ์์ํฌ : ์์ ๋ฐ ๋ ํฌ์ธํธ์ ๋งค๊ฐ๋ณ์๋ฅผ ๊ตฌ์ฑํ๊ณ ์ ๋๋ฉ์ด์ ์ ๊ตฌํํ๋ฉด Task๊ฐ ์๋์ผ๋ก ์ผ์ ์ํํจ! : ๋๋ก์ ์์ ์ ๊ทธ๋ํฝ ํ๋์จ์ด๋ก ์ ๋ฌํ์ฌ ๋ ์ด์ด ๊ฐ์ฒด๊ฐ ์กฐ์ํ ์ ์๋๋ก ๋ ๋๋ง ์์ ์ ๊ฐ์ํํด ์ฑ ์๋ ๋ฐ ํ์ง์ ๋ค์ด์์ด ๋์ ํ๋ ์๊ณผ ์์ฐ์ค๋ฌ์ด ์ ๋๋ฉ์ด์ ์ ๋ณด์ฌ์ค๋๋ค๐ -> UIKit์ AppKit์ ๋ฐ์ ํ ๊ด๊ณ!! : ๋๋ก์ ์์คํ ์์ฒด๊ฐ ์๋ ์ฑ์ ์ฝํ ์ธ ๋ฅผ Layer๋ฅผ ๊ฐ์ง๊ณ ๊ด๋ฆฌํ๋ค๋ ์ ์์ ์ฝ์ด ๊ทธ๋ํฝ์ค์์ ์ฐจ์ด๐ : ์ฝ์ด ์ ๋๋ฉ์ด์ ์ ๋ทฐ๊ฐ ์..
-
Homebrew & Vapor ToolboxiOS 2021. 3. 30. 14:30
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ด๋ฒ ํฌ์คํ ์์๋ Homebrew์ Vapor Toolbox์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ Homebrew? : ํ๋ธ๋ฃจ(Homebrew)๋ ์คํ์์ค ์ํํธ์จ์ด ํจํค์ง ๊ด๋ฆฌ ์์คํ ์ ์ผ์ข ์ผ๋ก macOS์ ์ํํธ์จ์ด ์ค์น๋ฅผ ์ง์ํด์ค๋ค. ์ฆ, macOS์ฉ ํจํค์ง ๊ด๋ฆฌ์๋ก ์ํํธ์จ์ด์ ์ฌ์ด ์ค์น์ ์ ๋ฐ์ดํธ ๋ฐ ์ญ์ ๋ฑ์ ๊ด๋ฆฌํด์ค๋ค. Homebrew ์ค์น ๋ฐ ํจํค์ง ๊ด๋ฆฌ 1) Xcode Command Line Tool ์ค์น $ xcode-select --install 2) Homebrew ์ค์น $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" : ํฐ๋ฏธ๋์ ํด๋น ์ปค๋งจ..
-
Core GraphicsiOS 2021. 3. 29. 16:41
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ข ์ค๋ ํฌ์คํ ์ Core Graphics(์ฝ์ด ๊ทธ๋ํฝ์ค)์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค๐ค Core Graphics๋? : Quarts(์ฟผ์ธ )๋ผ๋ ๊ทธ๋ํฝ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ ๋ค์ด์๋ ๊ธฐ์ ์ ํ์ฉํ์ฌ 2D ๋ ๋๋ง, ์ํ ๊ฒฝ๋ก ๊ธฐ๋ฐ ๋๋ก์, ์ํฐ ์ผ๋ฆฌ์ด์ฑ ๋ ๋๋ง, ๊ทธ๋ผ๋์ธํธ, ์ด๋ฏธ์ง, ์์, PDF ๋ฌธ์ ๋ฑ๋ฑ์ ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ!! : ์ฝ์ด ๊ทธ๋ํฝ์ค ํ๋ ์ ์ํฌ๋ ์ฟผ์ธ ๋๋ก์ ์์ง ๊ธฐ๋ฐ์ผ๋กํ 2D ์์ (CG๊ฐ ์์ ๋ถ์๊ฒ๋ค..!) -> 2์ฐจ์ ๊ทธ๋ํฝ์ ๊ทธ๋ฆด ์ ์๋ ๊ทธ๋ํฝ ๋ผ์ด๋ธ๋ฌ๋ฆฌ Quarts? : ์ฝ์ด ๊ทธ๋ํฝ์ค + ์ฝ์ด ์ ๋๋ฉ์ด์ ์ผ๋ก ๊ตฌ์ฑ (ํ๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋) drawRect : ๊ทธ๋ฆฌ๊ธฐ๋ฅผ ํด์ค ์ /์ขํ/ํฝ์ : CGFloat ํํ๋ก ์ผ์ชฝ ์๋จ 0,0 ๋ถํฐ ์์น๋ฅผ ๋ํ๋ด์ค CGSi..
-
LocalizationiOS 2021. 3. 25. 16:57
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค! ์ด๋ฒ ํฌ์คํ ์์๋ Localization, ์ง์ญํ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.๐ ์ง์ญํ๋? : ์ง์ญํ๋ ํ์งํํ๋ค๋ ๋ป์ ๊ฐ์ก์ต๋๋ค. ์ฆ, ํด๋น ์ธ์ด์ ๋๋ผ ์ง์ญ์ ๋ง๊ฒ ์ฑ์ ์ค์ ํด์ฃผ๋๊ฑธ ๋ปํฉ๋๋ค. ++ ๊ตญ์ ํ(internationalization)๋ฅผ I18N or i18n์ผ๋ก, ์ง์ญํ(localization)๋ฅผ L10N์ด๋ l10n์ผ๋ก ํ๊ธฐํฉ๋๋ค! ์ง์ญํ์ ์ ์ ์กฐ๊ฑด : ํด๋น ์ฑ์ด ์ง์ญํ๊ฐ ๋๋ ค๋ฉด ์ฌ๋ฌ ๊ตญ๊ฐ์ ๋ฐฐํฌ๋์ด ๊ตญ์ ํ ๋์ด์๋ ์ฑ์ด๋ผ๋ ์กฐ๊ฑด์ด ์์ด์ผ๋ฉ๋๋ค. ํด๋น ์ฑ์ด ํ๊ตญ์์๋ง ์ฌ์ฉ๋๋ ์ฑ์ด๋ผ๋ฉด ์ง์ญํ๊ฐ ์๋ฏธ ์์๊ฒ๋๋ค. ์ง์ญํ ๊ฐ๋ฅํ ์์ : RTL, LTR (๋ฌธํ๊ถ์ ๋ฐ๋ฅธ ์ฝ๊ธฐ/์ฐ๊ธฐ ๋ฐฉ์), ์ธ์ด, ์๊ฐ, ๋ ์ง, ์ฃผ์, ํํ๋จ์ ๋ฐ ํตํ, ์ด๋ฏธ์ง ๋ฑ๋ฑ... ์ง์ญํ์ ์ ๊ทผ์ฑ์..
-
User Notification (2)iOS 2021. 3. 23. 17:48
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค! ์ด๋ฒ ํฌ์คํ ์์๋ ์ ๋ฒ์ ๋ค๋ฃฌ User Notification์ ์ง์ ์ฌ์ฉํด๋ณด๋ฉด์ ์ถ๊ฐ๋ก ์๊ฒ๋ ์ ๋ณด์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค๐ฅณ Trigger : ๋ ธํฐํผ์ผ์ด์ ์ ์๋์ํค๋ ํธ๋ฆฌ๊ฑฐ์๋ ๋ช๊ฐ์ง ์ข ๋ฅ๊ฐ ์์ต๋๋ค. UNTimeIntervalNotificationTrigger(timeInterval: TimeInterval, repeats: Bool) UNLocationNotificationTrigger(region: CLRegion, repeats: Bool) UNCalendarNotificationTrigger(dateMatching: DateComponents, repeats: Bool) ์ฌ๊ธฐ์ Time์ ์ ํํ๊ฒ ์ด๋ ์๊ฐ ์ดํ ๋ณด๋ด๋ ๊ฒ์ ๋ํด ์ค์ ํด์ค ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ Cale..