JSON "JSON์ ํํ์ ๋ถ๊ฐํ๋ค." ์๋ก ๋ค๋ฅธ ํ๋ซํผ(์๋ฒ, ํด๋ผ ...)์ฌ์ด์์ ์ด๋ป๊ฒ ํต์ ํ ์ ์์๊น๋ผ๋ ์๊ฐ์์ ๋ฐ์ดํฐ ํ์์ ํต์ผ์ฑ์ด ํ์ํ๋ค๋ ๊ด์ ์ด ๋์จ๋ค. ์ค์ ๋ก ๋ณด์ฌ์ง๋ ๋ฐ์ดํฐ๋ String์ ์งํฉ์ด๋ค. Realm Local DB ์์ฒด์์ ์กฐํ ์์ฒด๋ ํฌ๊ฒ ์๋์ ์ฑ๋ฅ์ ๊ฑฑ์ ํ์ง ์์๋ ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์์ฑํ ์์๋๋ก ์ ๋ ฌ์ด ๋๋ค. Filter(ํํฐ) ๊ธฐ๋ฅ ๊ตฌํ ๋ค์ 2๊ฐ์ง ๋ฐฉ์์ ์ฌ์ฉํ ์ ์๋ค. Realm filter query ๊ธฐ๋ฐ NSPredicate ๊ธฐ๋ฐ (Apple) Lazy var ์ฌ์ฉ์ ๋์ ๋ฐ๋์ ๋ณด์ด๋ ๋ทฐ์ ๊ฒฝ์ฐ ๊ตณ์ด lazy var๋ฅผ ์ด์ฉํด์ ์ง์ฐ ์ ์ฅํ๋ ๊ฒ์ ๊ทธ ๋ชฉ์ ์ ๋ถํฉํ์ง ์๋ค. ์คํ๋ ค ์ฝ๋๋ฅผ ํด์ํ ๋ ์๋ชป๋ ํด์์ ์ ๋ํ ์ ์๋ค. UIBu..
swift
Notification.Name ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณต๋๋ Notification์ด ๋ง๋ค. awakeFromNib, init ํน์ฑ์ ๋ง๊ฒ ์ด๋ ๊ฒ์ด ํธ์ถ๋๋ ๊ฒ์ด ๋ ์ ์ ํ์ง ํ์ธํด๋ณธ๋ค. SB, CB ๋ ๋ค ํธ์ถ์ด ๋๋์ง ํ์ธํด๋ณธ๋ค. ์ด๋ค ๊ฒ์ด ๋จผ์ ํธ์ถ๋๋์ง ํ์ธํด๋ณธ๋ค. (Break Point ํ์ธ) ํ๋ฉด์ ๋์ธ ๋ viewDidLoad()์์ Alert์ ๋์ธ ์ ์๋ค. (viewDidLoad๋ ํ๋ฉด์ ๋์ฐ๊ธฐ ์ง์ ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋จ, viewDidAppear์์ ํธ์ถํ๊ธฐ) ํ๋ฉด์ ํญ์ ํ์ฌ ํ๋ฉด์์ present, push ํ๋ ๊ฒ์ ์๋๋ค. ํ์ฌ window์ rootViewController์์ ๋์ฐ๋ ๊ฒฝ์ฐ๋ ๋ง๋ค. SnapKit Layout Method make remake update ์
๋ ์ด์์(C..
๋ค์ด๊ฐ๋ฉฐ ์ง๋์ฃผ์๋ Realm์ ์ด์ฉํด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํ์ฉํ๋ ๊ฒ์ ๊ณต๋ถํ๊ณ , ๊ทธ๊ฒ์ ์ด์ฉํด์ ๋ค์ด์ด๋ฆฌ ์ฑ์ ๋ง๋๋ ๊ฒ์ ํ๋ค. ๋ฐ๋ก ์ด์ ๊ธ์์๋ ์ฌ์ง ๊ฒ์ ๋ทฐ๋ฅผ ๋ง๋ ๊ฒ๊น์ง ๋ณด์ฌ์คฌ๋ ๊ฒ ๊ฐ์๋ฐ, ์ง๊ธ ์์ ์์๋ ์ด๋ ์ ๋ ๋ ์ด์์์ด ์๋ฆฌ๋ฅผ ์ก์๋ค. ์ด๋ค ์์
์ ํ๋์ง ๊ฐ๋จํ ์์ฝ๋ง ํด๋ณด๊ฒ ๋ค. ๊ฐ๋จํ ๊ตฌํํ ๋ด์ฉ ๊ธฐ๋ก์ ํ๊ณ ๋๋ฉด ๊ธฐ๋ก์ ๋ฆฌ์คํธ ํํ๋ก ๋ณด์ฌ์ฃผ๊ฒ ๋๋๋ฐ ์ฒ์์ ํ๋ ์
๋์์ธ์ด ํด๋๊ณ ๋ณด๋๊น ๋๋ฌด ๋ณ๋ก์ฌ์ ๋ฐ๊ฟจ๋ค. ์ฌํํ๊ฒ ์ต๊ณ ์ธ ๊ฒ ๊ฐ๋ค. ๐ฃ Realm์ ์ด์ฉํด์ CRUD ๊ธฐ๋ฅ์ ๊ตฌํํด๋ณด์๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ฉด์ ๊ฐ์ฅ ํฌ๊ฒ ๋๊ผ๋ ๊ฒ์ ๋๊ธฐํ, ๊ฐฑ์ ์ ์ ์์ผ์ฃผ์ด์ผ ํ๋ค๋ ๊ฒ์ด์๋ค. ๋๊ธฐํ๊ฐ ์ ๋์ง ์์ผ๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํ๋ ์ฃผ์ํ์. ๐ฃ Repository Pattern์ ์ด์ฉํด..
๋ค์ด๊ฐ๋ฉฐ ์ฌ์ค ๋๋ํ๊ฒ ์ฌ์ฉํ๋ ๊ฑด์ง ์๋์ง ํ์ธ์ด ๋ถ๊ฐ๋ฅํ๋ฏ๋ก ๋ชจ์์ด ์์ง๋ง, ๊ทธ๋๋ ๋๋ฆ ์ฝ๋ ๊ฐ์ ์ ํด๋ณด๋ ค๊ณ ๋
ธ๋ ฅํ์ผ๋ ๊ธฐ๋ก์ ๋จ๊ฒจ๋ณด๊ฒ ๋ค.... (๊ณ ๋ฏผ์ ํ์ )... Realm์ ์ฌ์ฉํ๋ค๋ณด๋ฉด ์ฌ์ฉ๋๋ ์ฝ๋๊ฐ ํ์ ์ ์ด๊ณ ๊ฑฐ์ ์ ์ฌํ๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ํ ๊ณณ์ ๋ชจ์์ ์ฌ์ฉํ๋ฉด ์ข์ ๊ฒ ๊ฐ๋ค๊ณ ์๊ฐํด์ Manager ํ์ผ์ ํ๋ ๋ง๋ค์ด์ ์ฌ์ฉํด๋ณด๊ธฐ๋ก ํ๋ค. ์ ๋ง๋ ๊ฑด์ง๋ ๋ชจ๋ฅด๊ฒ ๋ค. ๊ทธ๋๋ ํ์คํ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ธฐ๋ ํธํด์ก๋ค๋ ๊ฒ์ ๋๊ผ๋ค. ๋ฐ๋ก ํ ๋ฒ ์ฝ๋๋ฅผ ์ดํด๋ณด์! ์ฝ๋ ์ดํด๋ณด๊ธฐ 1. ๊ตฌํ๋ถ // ๊ตฌํ๋ถ import UIKit import RealmSwift protocol DataBase { func read(_ object: T.Type) -> Results func write(_ object: ..
์
์ ๋ณด๋ฉด ํฐ์ ์ ์ ์ด ๋ณด์ผ ๊ฒ์ด๋ค. ์
์์ ์ ์ ์ ๊ทธ๋ ค์ ๋ฃ์ด์ฃผ๊ณ ์ถ์ด ๊ณต์ ๋ฌธ์๋ฅผ ์ฐพ์๋ดค๋๋ฐ ์๋๋ผ.. ๊ทธ๋์ ์ผ๋ฌด์ง๊ฒ ์ด์ฉํด์ฃผ์๋ค. ํน๋ณํ ๋ด์ฉ์ ์๋ค. ๋ฌธ์์ ์์ ์ฝ๋๊ฐ ์ ๋์์์ด์ ๊ฐ์ ธ๋ค๊ฐ ์ ์ ํ๊ฒ ์ฌ์ฉํด์ฃผ๋ฉด ๋๋ค. ํ ๊ฐ์ง ํฌ์ธํธ๋ ๊ณ์ธต ๊ตฌ์กฐ๊ฐ ๋ค์๊ณผ ๊ฐ๋ค๋ ๊ฒ์ด๋ค. Core Animation > CAShapeLayer > lineDashPattern CAShapeLayer ์๋์ ์๋ ์ธ์คํด์ค ํ๋กํผํฐ์ด๋ค. CAShapeLayer ์ธ์คํด์ค๋ฅผ ๋ง๋ค๊ณ lineDashPattern์ ์ซ์ ๋ฐฐ์ด์ ๋์
ํด์ฃผ๋ฉด ์
๋ง์ ๋ง๊ฒ ์ ์ ์ ๊ทธ๋ ค์ค ์ ์๋ค. ๊ธฐ๋ณธ์ nil์ด๊ธฐ ๋๋ฌธ์ ์ผ๋ฐ์ ์ผ๋ก๋ ์ค์ ์ผ๋ก ๋ณด์ธ๋ค. ์ ์ ํ๊ฒ ์ธ์คํด์ค๋ฅผ ๋ง๋ค์์ผ๋ฉด ์ฐ๋ฆฌ๊ฐ ๊ทธ๋ฆฌ๋ ค๋ view์ ํ์ ๋ทฐ๋ก ๋ฃ์ด์ฃผ๋ฉด ์์ฑ์ด๋ค. dash..
๋ค์ด๊ฐ๋ฉฐ ๋ค์ด์ด๋ฆฌ ์ฑ์ ๋ง๋ค๊ธฐ ์์ํ๋ค. ๋งค๋ฒ TIL๋ง ์ ์์๋๋ฐ ๊ฐ๋ฐ์ด๋ ๊ธฐ๋ก์ ๋๋ฌด ์ํํ ํ๋ ๊ฒ ๊ฐ์์ ๊ฐ๋จํ๊ฒ ๊ฐ๋ฐํ๋ ์ํฉ์ด๋ ํธ๋ฌ๋ธ ์ํ
, ๊ธฐํ ๋ฑ๋ฑ์ ๊ฐ๋ณ๊ฒ ๊ธฐ๋กํ๋ ค๊ณ ํ๋ค. ์ผ๋จ ์ง๊ธ์ ๋๋ฌด ์กธ๋ฆฌ๋๊น ์ค๋ ์์
ํ ๋ด์ฉ์ ๊ฐ๋จํ๊ฒ๋ง ๊ธฐ๋กํ๋๋ก ํ๊ฒ ๋ค... (์๋ ๋ฏธ๋ฆฌ ํ์์ด์ผ ํ๋๋ฐ ๋ฐ์ฑ ์ค๐ต) ์ด๋ฒ์ฃผ๋ Realm Local Database๋ฅผ ์ด์ฉํด์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅ, ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๊ณต๋ถํ๊ณ ์๋ค. ๊ทธ๊ฒ์ ์ด์ฉํด์ ๊ฐ๋จํ ์ผ๊ธฐ, ๋ฉ๋ชจ, ๊ธฐ๋ก ์ ํ๋ฆฌ์ผ์ด์
์ ๋ง๋ค ์ ์์ํ
๋ฐ ์ง๊ธ์ ๊ฐ๋จํ๊ฒ ๋ฏธ๋ ํ๋ก์ ํธ๋ก ์ผ๊ธฐ(๋ค์ด์ด๋ฆฌ)์ฑ์ ๋ง๋๋ ์ค์ด๋ค. ์์ฌ์ด ์ฝ๊ฐ ๋์ ๋์์ธ๋ ์ ๊ฒฝ์จ๋ณด๋ ค๊ณ ํ๋๋ฐ ์ญ์๋ ์๊ฐ์ด ์ข ๊ฑธ๋ฆฐ๋ค... ์ผ๋จ ๊ธฐ๋ฅ ๊ตฌํ์ด ๋ ์ค์ํ๊ธฐ ๋๋ฌธ์ UI๋ ๊ทธ ์ดํ์ ์ ๊ฒฝ์จ๋ณด๋๋ก ํ..
์์ ๋ค์ ์ฝ๋ ๋ฒ ์ด์ค๋ก UI๋ฅผ ์ง๊ณ , ํ๋ก๊ทธ๋๋ฐ์ ํ๊ณ ์๋ค. ์ํธ ์ธ๋ฏธ๋ ํ ๋ ์คํ ๋ฆฌ๋ณด๋๋ฅผ ๋๋ฌด ๋ง์ด ๋ดค๋์ง ์ ์ ๋ฉ๋ฆฌ ํ ๋๊ฐ ๋ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ ์ค์ค๋ก ํ๋ค... ์ถฉ๋ถํ ๋ง์ด ๋ดค์ด...๐ ์ฌ์ค ์ฝ๋ ๋ฒ ์ด์ค๋ก UI๋ฅผ ์งค ๋ ํญ์ ๊ณ ๋ฏผ์ ํ๋ ๋ถ๋ถ์ ์ฝ๋๊ฐ ๋๋ฌด ๊ธธ์ด์ง๊ณ ๊ฐ๋
์ฑ์ด ์ข์ง ์๋ค๋ ๊ฒ์ด์๋ค. ์์น ๊ณผ์ ์ธ Diary ์ฑ์ ๋ง๋ค๋ฉด์ ๋ฌธ๋ ๋ ์๊ฐ์ด ๋ค์ด์ ์คํ์ผ์ ์ข ๋ฐ๊พธ๋ ค๊ณ ์๋ํด๋ณด์๋ค. Then (Syntax Sugar Library)๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฐ์ ํ์ UI ์ง๋ ์คํ์ผ์ ํ ๋ฒ ์ดํด๋ณด์. 1. ์ธ์คํด์ค ์์ฑ ์์ ํด๋ก์ ๋ก ์์ฑ๊น์ง ์ง์ ํด์ฃผ๋ ๋ฐฉ๋ฒ UI ๊ฐ์ฒด๊ฐ ๋ช ๊ฐ ์๋ค๋ฉด ์คํ๋ ค ๊น๋ํ๊ณ ๊ฐ๋
์ฑ๋ ์ข์ ๊ฒ ๊ฐ๋ค. let blackView = UIView().then { $0.ba..
๋ชจ๋์ ๋ง๋ค์ด์ ์ฌ์ฉํ๋ค๊ฐ ๋ค์๊ณผ ๊ฐ์ ์๋ฌ ๋ฉ์์ง๋ฅผ ๋ง๋ฌ๋ค. overriding non-open instance method outside of its defining module import UIKit open class BaseView: UIView { public override init(frame: CGRect) { super.init(frame: frame) configureAttributes() configureLayout() } @available(*, unavailable) public required init?(coder: NSCoder) { super.init(coder: coder) } public func configureAttributes() {} public func confi..