๐ iOS122 [RealmSwift] Migration Primary Key Realm์ ์ฌ์ฉํด์ ์ฑ์ ๋ง๋ค๋ค ๋ณด๋ฉด ํ๋ก์ ํธ ์งํ ์ค์ ์๋ก์ด ํ๋กํผํฐ ๊ฐ์ ์ถ๊ฐ, ์ญ์ , ์ ๋ฐ์ดํธ ํ๊ฑฐ๋ ํ๋ผ์ด๋จธ๋ฆฌํค๋ฅผ ๋ณ๊ฒฝํด์ผ ํ๋ ์๊ฐ์ด ์์ ์ ์๋ค. ํนํ ์ฑ์ ์ด๋ฏธ ๋ฐฐํฌํ ์ํ์์ ๊ผญ ํ์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌ์กฐ ๋ณ๊ฒฝ์ด ์ผ์ด๋์ผ ํ๋ค๋ฉด ์๋ ๊ธ์ ์ฐธ๊ณ ํด์ Configuration ์ ํด์ฃผ์ด์ผ ํ๋ค. [RealmSwift] Migration, ์ด์ ์ค์ธ ์ฑ์ ํ๋ ์ถ๊ฐํ ํ ๋ง์ด๊ทธ๋ ์ด์ ํด์ฃผ๊ธฐ class Customer: Object { @objc dynamic var idx = 0 @objc private dynamic var privateType: Int = CustomerType.active.rawValue let products = List() } ์ด๋ฏธ ์ด์ ์ค์ธ ์ฑ์(ํน์ ์ฝ๋๋ฅผ ์์ฑ .. 2023. 5. 22. [Xcode/iOS] Simulator์์ UIViewController ๊ฝ ์ฐจ๊ฒ ์๋์ค๋ ๊ฒฝ์ฐ ์๋ฌ.. ๊น์ง๋ ์๋์ง๋ง UIViewController๊ฐ ํ๋ฉด์ ๊ฝ ์์ฐจ์ ๋์จ๋ค๋ฉด Targets > Info plist ๋ก ๊ฐ์ Key์ Value ์ถ๊ฐํด์ค๋๋ค. Launch screen interface file base name ์ถ๊ฐํ์๊ณ LaunchScreen ์ผ๋ก ์ง์ ํ๋ฉด ๋ฉ๋๋ค! 2023. 5. 12. [iOS/Swift] Configuration ๋ณ๋ก Firebase plist ํ์ผ ์ค์ ๋น๋์ Build Phases๋ฅผ ๋ฐ์ํจ. ์ฌ๊ธฐ์ ๊ฐ๋ฐ์๊ฐ ๋น๋์ ์ค์ ๋์ด์ผ ํ ์ฝ๋๋ฅผ ์ถ๊ฐํ ์ ์์ Firebase์ ํธ์ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ๋ ์ ๋ณด๊ฐ ๋ด๊ธด Info.plist ํ์ผ์ ํ์๋ก ํ๊ฒ ๋จ. ์ด ํ์ผ์ด ์ฌ๋ฌ๊ฐ์ธ ๊ฒฝ์ฐ ํ์ผ ์ด๋ฆ์ ๊ฐ๊ฐ ๋ณ๊ฒฝํ๊ณ AppDelegate์์ Bundle๋ก ๋ถํฐ ํ์ผ์ ์ฐพ์ ๋ฐ์ํ ์ ์์ง๋ง Firebase Crashlytics๋ฅผ ์ค์นํ๊ฒ ๋๋ฉด info.plist ์ด๋ฆ์ด ๋ฐ๋๋ ๊ฒฝ์ฐ ์๋ฌ๊ฐ ๋ฐ์ํจ Firebase info Script๊ฐ ์๋ ๊ฒฝ์ฐ ์ด๋ฅผ ์ฌ์ฉํ๋ฉด ๋๊ณ ์๋ค๋ฉด Target ์ ํ > Build Phases ํญ ์ ํ > New Run Script Phase ์ ํ # Type a script or drag a script file from your workspac.. 2023. 4. 26. [Xcode/Swift] Multiple Target 1. duplicate Target ํน์ ํ๋จ์ ์๋ + ๋ฒํผ์ ๋๋ฌ์ ์ถ๊ฐํด ์ค๋ ๋จ. ์ฌ์ฉ์ ์ ์ property list๊ฐ ๋ด๊ธด info.plist ํ์ผ๋ ํจ๊ป ๋ณต์ฌ๋จ 2. ๋๋ธ ํด๋ฆญํ์ฌ Target ์ด๋ฆ ๋ณ๊ฒฝ, ์คํด ์ด๋ฆ ๋ณ๊ฒฝํ๊ธฐ ์ํด ์๋จ ๋น๋ ์ํ๋ฐ์์ Manage Schemes ์ ํ 3. ์คํด ์ ํ ํ ํญ ๋๋ฅด๋ฉด ์ด๋ฆ ๋ณ๊ฒฝ ๊ฐ๋ฅ 4. ๊ฐ Configuration์์ ์ฌ์ฉํ Custom Flag์ค์ ๊ฐ๋ฅ Swift Compiler์์ Custom Flags ์ค์ ๊ฐ๋ฅํจ 2023. 4. 26. [Xcode/Swift] User-Defined Build Settings Build Settings์์ Configuration ๋ณ๋ก ๊ฐ์ ์ง์ ํ์ฌ ์ฌ์ฉํ ์ ์์ Configuration์ด ๊ฐ๊ฐ ๋ค๋ฅธ ๊ฐ์ ๊ฐ์ง๋ ๊ฒฝ์ฐ ์ฌ์ฉํ ์ ์์ ex) host url 1. Build Settings ์์ Add User-Defined Setting ์ ๋๋ฌ ์ฌ์ฉ์ ์ ์ ์ธํ ์ ์ถ๊ฐ 2. ์ฌ์ฉํ ํ์ดํ์ ์ ๋ ฅํด ์ฃผ๋ฉด Configuration ๋ณ๋ก ๊ฐ์ ์ง์ ํ ์ ์์ 3. Info.plist์์ BASE_URL๋ก ์ ๊ทผ์ Build settings ์์ ์ ์ํด ์ค BASE_URL ๊ฐ์ ์ธ ์ ์๋๋ก $(BASE_URL) ๋ก ์ค์ ํด ์ค Info.plist๋ key/value ์์ผ๋ก ๋น๋ ํ์ ๋์ ์ ๋ฐ์ดํธ ๋๋ ๊ฐ. xCode๋ ๋น๋ ๋๋ ๋์ Build setting์ ์ดํด๋ณด๊ฒ ๋๋๋ฐ .. 2023. 4. 26. [Xcode/Swift] Configuration ๊ด๋ฆฌํ๊ธฐ Intro Dev -> QA -> Release์ ๊ณผ์ ์ ๊ฑฐ์น๋ฉฐ ๊ฐ ๋จ๊ณ์์ ์๊ตฌํ๋ ๋น๋ ์ธํ ์ด๋ ์์์ ์ ์๊ฐ ๋ค๋ฅผ ์ ์์ ex) URL host for Networking, Firebase info.plist etc.. Configuration์ ์ฌ์ฉํ๋ฉด ๊ฐ Configuration์ ํ์ํ ๋น๋ ์ธํ ์ ์ง์ ํด ์ค ์ ์์ Multiple targets์ ํตํด์๋ ํ๋ก์ ํธ์ ์ฌ์ฉํ๋ ๊ฐ์ ๋ถ๊ธฐ ํ ์ ์์ง๋ง Target์ MacOS, iOS ๋ฑ์ ๊ธฐ๊ธฑ ํ๊ฒ, ๊ฐ์ ์ฝ๋๋ฅผ ๊ณต์ ํ๋ฉด์ ์ผ๋ถ ๋ก์ง์ด ๋ฌ๋ผ ๋ค๋ฅธ ์ฑ์ผ๋ก ๋ฐฐํฌ๋๋ ์ฑ ๋ฑ์์ ์ฌ์ฉ Configuation์ ๋ณ๊ฒฝํ๋ ๊ฒ์ ์ผ์ข ์ ์์ ํ๊ฒฝ์ ๋ณ๊ฒฝํด ์ฃผ๋ ๊ฒ ํ๋์ ์ฑ์์ ๋ค๋ฅธ ํ๊ฒฝ์ผ๋ก ํ ์คํธ ํ๊ฑฐ๋ ์คํํด์ผ ํ ๋ ์ ์ฉ ๋ฐฐํฌ์์๋ Configu.. 2023. 4. 26. [iOS/Swift] ์ฑ ๋ฑ์ง ๊ฐฏ์ ๋ณ๊ฒฝ UIApplication.shared.applicationIconBadgeNumber = 90 ์๋ฎฌ๋ ์ดํฐ์์๋ ํ์ ๋์ง ์์ ํน์ ๋์์ ๋ฑ์ง์ ๊ฐฏ์๋ฅผ ๋ณ๊ฒฝํ๊ณ ์ ํ๋ค๋ฉด ์ ์ฝ๋๋ฅผ ์ฌ์ฉํด์ ์ง์ ๋ณ๊ฒฝํด ์ค์ผ ํจ ๋ฑ์ง๋ฅผ ์ ๊ฑฐ ํ๊ณ ์ถ์ ๊ฒฝ์ฐ 0์ ์ ๋ ฅํ๋ฉด ๋ฑ์ง๊ฐ ๋ ธ์ถ๋์ง ์์ 2023. 4. 26. [iOS/Swift] Alamofire ํ๋ก์ ํธ๋ฅผ ์ํ UnitTest URLSession์ dataTask๋ฅผ ํ๋กํ ์ฝ๋ก ๋ง๋ URLSessionProtocol์ URLSession๊ณผ NetworkManager์ session์ ํ์ ์ผ๋ก ์ง์ ํด์, ์ค ์ฌ์ฉ ์ฑ์์๋ ๊ธฐ๋ณธ URLSession ๋์์ ๊ทธ๋๋ก ์ ์งํ๊ณ ํ ์คํธ ์์๋ Mock URLSession์ ์ฌ์ฉํ์ฌ ํ ์คํธ ํ๋ ๊ฒ์ด ์์๋ก ๋ง์ด ๋์๋ค. ๋ง์ฝ ์ด๋ฏธ Alamofire์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ด๋ฅผ ํ ๋ฒ ๋ ์ถ์ํ ํ Moya๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ๋ ์๊ฒ ์ง๋ง ์ฐ์ ์ ๊ธฐ์กด ํ๋ก์ ํธ์ ์์ ์ด ์ต๋ํ ์ ์ ์ชฝ์ผ๋ก Alamofire๋ก Unit Test๋ฅผ ์๋ํด ๋ณด์! Session ๊ธฐ์กด์ ์ฌ์ฉํ NetworkManager๋ Singleton ํจํด์ผ๋ก ๋์ด ์๋ค. ์ธ๋ถ์์ ์ง์ Session์ ์ฃผ์ ํด์ฃผ๋ ๊ฒ์ด ์๋๋ผ ๋ด๋ถ์์ req.. 2023. 4. 21. [Unit Test] Test Double Unit Test๋ฅผ ์งํํ๋ ๋์ request๊ฐ ๋ฐ์ํ๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํฅ์ ๋ฐ๊ฒ ๋จ. ์ํํด์ผ ํ๋ ๊ธฐ๋ฅ์ ๊ฐ์ง ๋ก์ง์ ์์ฑํ๋ค ํ๋๋ผ๋ ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ์ํ์ ๋ฐ๋ผ ํ ์คํธ ๊ฒฐ๊ณผ๊ฐ ๋ค๋ฅด๊ฒ ๋์ฌ ๊ฐ๋ฅ์ฑ์ด ์์ Unit Test๋ ๋น ๋ฅด๊ณ ์์ ์ ์ผ๋ก ์งํ๋์ด์ผ ํจ ์์ ์ฑ ์ธ์๋ ์ค์ ์๋ฒ์ ํต์ ํ๊ฒ ๋๋ฉด ๋จ์ ํ ์คํธ ์๋๊ฐ ๋๋ ค์ง ํ ์คํธํ๋ ค๋ ๊ฐ์ฒด๊ฐ ์ง์ ์ ์ผ๋ก ๋คํธ์ํน ํ์ง ์๊ณ ํ ์คํธ ํ ๋ ๋์ ์ฌ์ฉํ ์ ์๋ ๊ฐ์ฒด๋ฅผ ํ ์คํธ ๋๋ธ์ด๋ผ๊ณ ํจ Dummy ์ธ์คํด์ค ๊ฐ์ฒด๊ฐ ํ์ํ์ง๋ง ๊ธฐ๋ฅ์ ํ์๋ก ํ์ง ์๋ ๊ฐ์ฒด => ์ ๋ฌ์ ๋์ง๋ง ์ฌ์ฉ๋์ง ์์ ์๋ฌด๋ฐ ๋์์ ํ์ง ์์๋ ํ ์คํธ์ ์ํฅ์ ๋ฏธ์น์ง ์๋ ๊ฐ์ฒด Fake ๊ฐ์ฒด ๋ด๋ถ์์ ํ์๋ก ํ๋ ๋ค๋ฅธ ์ธ๋ถ ๊ฐ์ฒด์ ๋์์ ๋จ์ํ ํด์ ๊ตฌํํ ๊ฐ์ฒด์ด์ง๋ง ์ค์ ํ๋ก๋.. 2023. 4. 14. [iOS/Swift] ๋น๋๊ธฐ(async) ํ ์คํธ ์ฐธ๊ณ ์ฌ์ดํธ ๋ฐ ์ถ์ฒ ์๋ฌธ Kodeco์ iOS Unit Testing and UI Testing Tutorial์ ๋ฒ์ญํ yoonbumatae์ ๊ธ์ ์ ๋ฆฌํ ํฌ์คํ ์ ๋๋ค. ๋ ์์ธํ ๋ด์ฉ์ ์ฐธ๊ณ ํ์๋ ค๋ฉด ์๋ ๋ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ์ธ์! https://www.kodeco.com/21020457-ios-unit-testing-and-ui-testing-tutorial iOS Unit Testing and UI Testing Tutorial Learn how to add unit tests and UI tests to your iOS apps, and how you can check on your code coverage. www.kodeco.com http://yoonbumtae.com/?p=4020 Swift.. 2023. 4. 14. [iOS/Swift] ๋๊ธฐ(sync) ํ ์คํธ ์ฐธ๊ณ ์ฌ์ดํธ ๋ฐ ์ถ์ฒ ์๋ฌธ Kodeco์ iOS Unit Testing and UI Testing Tutorial์ ๋ฒ์ญํ yoonbumatae์ ๊ธ์ ์ ๋ฆฌํ ํฌ์คํ ์ ๋๋ค. ๋ ์์ธํ ๋ด์ฉ์ ์ฐธ๊ณ ํ์๋ ค๋ฉด ์๋ ๋ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ์ธ์! https://www.kodeco.com/21020457-ios-unit-testing-and-ui-testing-tutorial iOS Unit Testing and UI Testing Tutorial Learn how to add unit tests and UI tests to your iOS apps, and how you can check on your code coverage. www.kodeco.com http://yoonbumtae.com/?p=4020 Swift.. 2023. 4. 13. [iOS/Swift] XCTestCase ์์ฑํ๊ธฐ ์ฐธ๊ณ ์ฌ์ดํธ ๋ฐ ์ถ์ฒ ์๋ฌธ Kodeco์ iOS Unit Testing and UI Testing Tutorial์ ๋ฒ์ญํ yoonbumatae์ ๊ธ์ ์ ๋ฆฌํ ํฌ์คํ ์ ๋๋ค. ๋ ์์ธํ ๋ด์ฉ์ ์ฐธ๊ณ ํ์๋ ค๋ฉด ์๋ ๋ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ์ธ์! https://www.kodeco.com/21020457-ios-unit-testing-and-ui-testing-tutorial iOS Unit Testing and UI Testing Tutorial Learn how to add unit tests and UI tests to your iOS apps, and how you can check on your code coverage. www.kodeco.com http://yoonbumtae.com/?p=4020 Swift.. 2023. 4. 13. ์ด์ 1 2 3 4 ยทยทยท 11 ๋ค์