Notification.Name ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณต๋๋ Notification์ด ๋ง๋ค. awakeFromNib, init ํน์ฑ์ ๋ง๊ฒ ์ด๋ ๊ฒ์ด ํธ์ถ๋๋ ๊ฒ์ด ๋ ์ ์ ํ์ง ํ์ธํด๋ณธ๋ค. SB, CB ๋ ๋ค ํธ์ถ์ด ๋๋์ง ํ์ธํด๋ณธ๋ค. ์ด๋ค ๊ฒ์ด ๋จผ์ ํธ์ถ๋๋์ง ํ์ธํด๋ณธ๋ค. (Break Point ํ์ธ) ํ๋ฉด์ ๋์ธ ๋ viewDidLoad()์์ Alert์ ๋์ธ ์ ์๋ค. (viewDidLoad๋ ํ๋ฉด์ ๋์ฐ๊ธฐ ์ง์ ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋จ, viewDidAppear์์ ํธ์ถํ๊ธฐ) ํ๋ฉด์ ํญ์ ํ์ฌ ํ๋ฉด์์ present, push ํ๋ ๊ฒ์ ์๋๋ค. ํ์ฌ window์ rootViewController์์ ๋์ฐ๋ ๊ฒฝ์ฐ๋ ๋ง๋ค. SnapKit Layout Method make remake update ์
๋ ์ด์์(C..
IOS
๋ค์ด๊ฐ๋ฉฐ ์ง๋์ฃผ์๋ 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..
๋ค์ด๊ฐ๋ฉฐ Notification์ ๊ฐ, ๋ฐ์ดํฐ ์ ๋ฌํ ๋ ์ ๋ง ์ ์ฉํ ๋
์์ด๋ค. ์ด๋ป๊ฒ ๋ณด๋ฉด ์ฌ์ฉ ๋ฐฉ๋ฒ๋ ๋๊ฒ ๋จ์ํ๋ฐ ์จ์ผ ํ ์ฝ๋๊ฐ ๊ณณ๊ณณ์ ํผ์ ธ์๊ณ , ๋ง์ด ์ฐ๋ค๋ณด๋ฉด ๊ด๋ฆฌ๊ฐ ์ด๋ ค์์ง๋ค. ์ ์ ํ ๋ ์ฐ๋ฉด ์ฐธ ์ข์ ์น๊ตฌ... (ํนํ ๊ณ์ธต์ด ๋ณต์กํ ๋ ์ฐ๋ฉด ๊ฟ์ด๋ค ๐ฏ) ์ค๋ ๊ทธ๋์ ๋จ์ํ๊ฒ ์ฅ์ ์ค๋ช
ํ๋ ค๊ณ ๊ธ์ ์ฐ๊ฒ ๋ ๊ฒ์ ์๋๊ณ , ๋ถํธํ๋ ์ ์ ๊ฐ์ ํด ๋ณธ ๊ฒ์ ๊ธฐ๋กํ๊ณ ์ ํ๋ค. (์ ๊ทธ๋ฆฌ๊ณ ๊ธ ์ฐ๋ค ๋ณด๋ฉด ๋งํฌ๊ฐ ์ ๋ง ์ค๋ฝ๊ฐ๋ฝ ํ๋ฐ ์ดํดํด์ฃผ์๊ธธ ... ๊ธ ์ข ๋ ์จ๋ณด๊ณ ํ ๊ฐ์ง๋ก ์ ์ฐฉํด์ผ๊ฒ ๋ค.) ๋ถํธํ๋ ์ ๋ถํธํ๋ ์ ์ Notification.Name ์์ ๋ค์ด๊ฐ๋ ๋ฌธ์์ด์ post ํ๋ ์ชฝ๊ณผ addObserving ํ๋ ์ชฝ์ ์ ํํ ๋ง์ถฐ์ฃผ์ด์ผ ํ๋ค๋ ์ ์ด๋ค. ํด๋จผ์๋ฌ๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ๋๊ณ , ์ฝ๋๊ฐ ๊ณณ..