๐ฑ iOS/Base
UserDefaults ๊ฐ ํ๋๋ก ์ฑ ์ง์ ์ 1ํ๋ง ๊ฒ์ฌํ๋ ๋ก์ง ๊ด๋ฆฌํ๊ธฐ
์ฑ์ ์๋น์คํ๋ค๋ณด๋ฉด ๋ฒ๊ทธ๊ฐ์ ๋๋ ์ ๋ฐ์ดํธ ์๋ด ๋ฑ์ ์ด์ ๋ก ๋จ 1ํ๋ง ๋์ํ๋ ์ฝ๋๊ฐ ํ์ํ ๋๊ฐ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, TiTi์์๋ ๋น์ด์๋ ๊ธฐ๋ก ๊ฐ์ฒด์ธ Daily๊ฐ ์ฌ๋ผ์ง์ง ์์์ Logํ๋ฉด์ ๊ธฐ๋ก์ด ์๋ ๊ฒ ์ฒ๋ผ ๋ณด์ด๋ ๋ฒ๊ทธ๊ฐ ์์๋๋ฐ์,๋ณด๋ค์ํผ ๊ธฐ๋ก์ด ๋น์ด ์๋๋ฐ๋ ๋ ์ง ์๋์ ์ ์ด ์ฐํ ์์ต๋๋ค (๊ธฐ๋ก์ด ์๋ ๊ฒฝ์ฐ์๋ง ์ ์ด ์ฐํ ์์ด์ผํจ) ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ ๋ ๊ฐ์ง ๋์์ด ํ์ ํ์ต๋๋ค. 1. ์ฌ์ฉ์๊ฐ ๊ธฐ๋ก์ ํธ์งํด์ ๊ทธ ๋ ์ ๊ธฐ๋ก์ ๋ชจ๋ ์ง์ฐ๋ ๊ฒฝ์ฐ Daily๊ฐ์ฒด๋ฅผ ์ญ์ ํ๋ค.2. ๋ฒ๊ทธ ๊ฐ์ ์ ์ ์กด์ฌํ๋ ๋น์ด์๋ Daily๊ฐ์ฒด๋ฅผ ๋ชจ๋ ์ญ์ ํ๋ค. ์ฌ๊ธฐ์ 2๋ฒ์ ์ฌ์ฉ์๊ฐ ์ฑ์ ์ง์ ํ ๋ 1ํ๋ง ์์ ํ๋ฉด ๋๋ ๋ด์ฉ์ ๋๋ค.์ฌ๋ฌ๋ฒ ๋์ํด๋ ๋ฌธ์ ๋ ์๊ฒ ์ง๋ง, ๋น์ด ์๋ Daily๊ฐ์ฒด๋ฅผ ์ฐพ๊ธฐ ..
[Swift] ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ NetworkManager๋ง๋ค๊ธฐ (feat. Generic)
์ง๋๋ฒ์ ์ด๋ฐ ๊ธ์ ์ผ์๋๋ฐ, https://990427.tistory.com/112 [Swift] json value type์ด ๋ฌ๋ผ์ง๋ response์ ๋์ํ์ฌ API Responder๋ง๋ค๊ธฐ ์์ฆ Set์ด ๋ ๋์ ๊ฐ๋ฐ ์คํ์ผ,, ์ค๋ณต์ ๋ค ์ ๊ฑฐํด๋ฒ๋ฆฌ์ ์ง๊ธ ํ๊ณ ์๋ ํ๋ก์ ํธ์์ API๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ๋ช ์ธํ์ต๋๋ค ๊ทธ๋์ ์ด๋ค api๋ฅผ ํธ์ถํ๋์ ๋ฐ๋ผ form์ ๋ณํ๋ ์์ง๋ง data์ ๊ฐ์ ํญ์ 990427.tistory.com ์ํ ์ฝ๋๋ฅผ ๋ฐ์ ์ ์๋ค๋ ๋ฌธ์ ์ ๋ ์์๊ณ , ๋ชจ๋๋ง๋ค ๋ค ๋ค๋ฅธ MoyaProvider๋ฅผ ์ฌ์ฉํ๋ค๋ณด๋๊น ์ ๋ฒ์ ๋ง๋ ํจ์์ ์ฐ์์ด ์ข.. ๋ณ๋ก๋๊น? ๊ทธ๋์ ๊ฐ์ ํด๋ณด์!๊ณ ์๊ฐํ๊ณ ์กฐ๊ธ๋ ์ ์ฐํ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก BaseNetworkManager๋ฅผ ๋ง๋ค๊ธฐ๋ก ํ์ต๋๋ค. Ba..
[Swift] ์๋ฒ์ iOS ์ด๋ฏธ์ง ๋ณด๋ผ ๋ ์ฉ๋ ์ด์ & ํด๊ฒฐ
์ด๋ฏธ์ง ์ ๋ก๋ ๊ตฌํ์ค์ ์๊ธด ์ด์ form-data๋ก ์์ดํฐ ์ฌ์ง์ฒฉ์ ์๋ ์ด๋ฏธ์ง๋ฅผ ์๋ฒ๋ก ๋ณด๋ด๋ ค๋ฉด JPEG๋ก ๋ณํํด์ผ ํฉ๋๋ค ์์ดํฐ์์ ๊ธฐ๋ณธ์ ์ผ๋ก HEIF ํ์ฅ์๋ก ์ฌ์ง์ ์ ์ฅํ๋๋ฐ, ์ด๋ ํธํ์ฑ์ด ๋จ์ด์ง๊ธฐ ๋๋ฌธ์ ๋๋ค ์ด์จ๋ ์ฐ๋ฆฌ๋ PHPicker๋ฅผ ํตํด์ ์ฌ์ง์ฒฉ์ ์๋ ์ฌ์ง์ ๊ฐ์ ธ์ฌ ์ ์๊ณ , ์ด๋ฅผ jpeg๋ก ๋ณํํ๊ธฐ ์ํด jpegData๋ฅผ ์ฌ์ฉํฉ๋๋ค image.jpegData(compressionQuality: 1.0) ์ฌ์ค ๋ค์ 1.0์ ๊ธฐ๋ณธ๊ฐ์ด๋ผ๊ณ ์๊ฐํ๊ณ ์๋ฌด ์๊ฐ์์ด ์ผ๋๋ฐ ์๋๋งค ์ด์๊ฐ ์๊ธธ์ค์ด์ผ... Moya๋ฅผ ํตํด API ํต์ ์ ํ๋๋ฐ, ๊ณ์ ์ด๋ฐ ์๋ฌ๊ฐ ๋จ๋ ๊ฒ.. Failed to map data to a Decodable object. postman์ผ๋ก ์์ดํฐ ์ฌ์ง์ฒฉ์ ์๋ ์ฌ์ง ..
[Swift] json value type์ด ๋ฌ๋ผ์ง๋ response์ ๋์ํ์ฌ API Responder๋ง๋ค๊ธฐ
์์ฆ Set์ด ๋ ๋์ ๊ฐ๋ฐ ์คํ์ผ,, ์ค๋ณต์ ๋ค ์ ๊ฑฐํด๋ฒ๋ฆฌ์ ์ง๊ธ ํ๊ณ ์๋ ํ๋ก์ ํธ์์ API๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ๋ช ์ธํ์ต๋๋ค ๊ทธ๋์ ์ด๋ค api๋ฅผ ํธ์ถํ๋์ ๋ฐ๋ผ form์ ๋ณํ๋ ์์ง๋ง data์ ๊ฐ์ ํญ์ ๋ฌ๋ผ์ง๋ค ์ผ๋จ json์ ํ์ฑํ struct๋ฅผ ๋ง๋ค์ด์ฃผ์ด์ผ ํ๋๋ฐ, ๋ชจ๋ api๋ง๋ค struct๋ฅผ ๋ง๋ค๊ฒ ๋๋ฉด ์ด๋ฐ์์ผ๋ก ๊ณ์ํด์ DTO struct์ ์ค๋ณต์ด ์ผ์ด๋๊ฒ ๋๋ค ์ค๋ณต์ด ๋๋ฌด ์ซ์ ๋.. ์ ๋ค๋ฆญ์ผ๋ก ๋ฌถ์! struct ResponseDTO : Decodable { var success : Bool var data : CommonDataDTO var error : ErrorDTO? } struct ErrorDTO : Decodable, Error { let code : Int let mes..
[RxSwift] ๊ฐ๋ ์ก๊ธฐ (Subscribe, Observable, Subject)
์ต๋ํ ๊ฐ๋จํ๊ฒ ์ค๋ช ํด๋ณด๋ RxSwift iOS ๊ณต๋ถํ๋ ์ฌ๋์ ๋ฌด์กฐ๊ฑด ๋ค์ด๋ดค์ RxSwift RxSwift๋ ReactiveX Swift์ธ๋ฐ์, reactiveX ? ๋์ถฉ ํด์ํ๋ฉด ์ต์ ๋ฒ๋ธ์ ์ฌ์ฉํด์ ๋น๋๊ธฐ๋ event-based๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒ์ด๋ค ์ต์ ๋ฒ๋ธ์ด ๋ญ๋ฐ ????? Observable ? ๋์ถฉ ํด์ํ๋ฉด - ์ต์ ๋ฒ๋ ์ต์ ๋ฒ๋ธ์ ๊ตฌ๋ ํ๋ค - ์ต์ ๋ฒ๋ ์ต์ ๋ฒ๋ธ์ด ๋ฐฉ์ถํ๋ items์ ๋ํด ๋ฐ์ํ๋ค - ์ต์ ๋ฒ๋ ๋๊ธฐํ์ง ์๊ณ , ๋ฐ์ํ ์ค๋น๋ฅผ ํ ์ด๋ ํ ํํ๋ก ๊ธฐ๋ค๋ฆฐ๋ค items์ด ์ด๋ค๊ฑด์ง๋ ๋ชฐ๋ผ๋ ์ผ๋จ ์ต์ ๋ฒ๋ ์ต์ ๋ฒ๋ธ์ด ๋ญ๊ฐ๋ฅผ ํ๋ฉด ๋ฐ์ํ๋!! ์ต์ ๋ฒ๊ฐ ๋ฌด์จ ํํ์ธ์ง๋ ๋ชฐ๋ผ๋ ์ผ๋จ ๋๊ธฐ ใดใด ์ฆ, sync ใดใด ๋ง์ ์ฉ์ด๋ค์ด ๋์ค๋๋ฐ Observer, Observable, Subscribe ๊ทผ๋ฐ ์ด..
[Swift] Custom Calendar ๋ฌ์ ๋ง์ง๋ง ๋ ๊ตฌํ๊ธฐ
์ด ๊ธ์ UI๋ฅผ ์ ์ธํ๊ณ ๋ ์ง ๊ณ์ฐ์ ํ๋ ๋ก์ง๋ง ๋ด๊ณ ์์ต๋๋ค Custom Calendar๋ฅผ ๋ง๋ค๋ค๋ณด๋ ํด๋นํ๋ ๋ฌ์ ๋ง์ง๋ง ๋ ์ด ์ธ์ ์ธ์ง ๊ณ์ฐํด์ผ ํ๋ค. ์๊ณ ๋ฆฌ์ฆ ์ฒ๋ผ ์ ๊ทผํ๋ฉด ์ค ๋ฌ๋ ๊ณ์ฐํด์ค์ผ ํ๊ณ ์๋ ์ธก๋ฉด์์๋ ๋นํจ์จ์ ์ด๋ผ๊ณ ์๊ฐํด์ foundation์์ ์๋ calendar๋ผ๋ ๊ตฌ์กฐ์ฒด๋ฅผ ์ฌ์ฉํด์ ๋ง๋ค์๋ค! ๋จผ์ ๋ ์ง ๊ณ์ฐ์ ํ์ํ Calendar์ DateFormatter๋ฅผ ๋ง๋ค์ด์ฃผ์ let calendar = Calendar(identifier: .gregorian) let dateFormatter = DateFormatter() dateFormatter.dateFormat = "yyyy-MM-dd" ์ฒซ ๋ ์ ๋ฌด์กฐ๊ฑด 1์ผ์ด๋๊น ์ง์ ์ ๋ ฅํด์ค๋ค let st = dateFormatter.da..
[Stanford iOS] ์ํคํ ์ฒ & MVC
[Stanford iOS]๋ ํ๊ธ๋ง์ด ๋ฒ์ญํ Stanford iOS๋ฅผ ์ ๋ฆฌํฉ๋๋ค. [๋ฌด๋ฃ] Stanford iOS ํ๊ธ์๋ง ๊ฐ์ - ์ธํ๋ฐ | ๊ฐ์ ํ๊ธ๋ง์ ์ฒซ๋ฒ์งธ ํ๋ก์ ํธ ์์ด์ค์์ค๋ ํ์ฌ iTunes์์ ๊ณต๊ฐ๋ Stanford - Developing iOS 9 Apps with Swift ๊ฐ์๋ฅผ ๋ฒ์ญํ์์ต๋๋ค., - ๊ฐ์ ์๊ฐ | ์ธํ๋ฐ... www.inflearn.com ์ํคํ ์ณ MVC ๋์์ธ ํจํด iOS ๊ธฐ๋ณธ ๋์์ธ ํจํด ๐ Model What ํ๋ก๊ทธ๋จ์ด ํ๋์ผ, ์ฆ ๋ชจ๋ ๊ณ์ฐ์ ๋ด๋นํ๋ค. UI์๋ ์๊ด ์๋ ์ผ์ ์ฒ๋ฆฌํจ ๐ View UI == Client์ ์ํธ์์ฉ์ ํ๋ ๋ถ๋ถ -> View ํผ์ ํ ์ ์๋ ๋ถ๋ถ ๐ Controller How Model๊ณผ View ์ฐ๊ฒฐ (View๋ฅผ ๋ฆฌ์ค๋ํ๊ณ ,..