https://developer.apple.com/documentation/uikit/uiimage/orientation UIImage.Orientation | Apple Developer Documentation Constants that specify the intended display orientation for an image. developer.apple.com ์ด๋ฏธ์ง๋ฅผ ํ์ ํ๊ณ ํฌ๋กญํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ฉด์ orientation์ด๋ผ๋ ๊ธฐ๋ฅ์ ์๊ฒ ๋์๋ค. orientation์ ํตํด ์ด๋ฏธ์ง๊ฐ ๋ํ๋๋ ์์ ์ ํ์ ๋ฐฉํฅ์ ๊ฒฐ์ ํ์ฌ ํ๋ฉด์ ๋ํ๋๋ค. ๋ด๊ฐ ์ํ๋ ์ด๋ฏธ์ง๋ฅผ ๋ถ๋ฌ์ orientation๊ฐ์ ์ฐ์ด๋ณด์๋ค. print("[orientation] \(image.imageOrientation)"..
iOS
์ด์ ์ ๋ก์ปฌ์์ ๋ณด๋ด๋ ํธ์๋ ๊ตฌํํ ๊ฒฝํ์ด ์์์ง๋ง FCM์ด๋ APNS๋ฅผ ์ฌ์ฉํ ๊ฒฝํ์ด ์์ด ์กฐ๊ธ ์์ํ๊ฒ ๋ค๊ฐ์๋ค. FCM์ ์ฌ์ฉํด๋ ์ ํ ๊ฐ๋ฐ์ ๊ณ์ ์์ APN์ ์ค์ ํด์ ์ธ์ฆ์๋ ํ ํฐ์ ๋ฑ๋กํด์ผํ๋๋ฐ ์ด ๊ณผ์ ์ ํ์ตํด๋ณด๊ณ ์ ํ๋ค. ํธ์ ์ข
๋ฅ 1. ๋ก์ปฌ์์ ์ง์ ๋ณด๋ด๋ ์๋ฆผ 2. ์๋ฒ์์ ๋ณด๋ด๋ ์๋ฆผ ๋ด๊ฐ ์ฌ์ฉํ FCM์ 2๋ฒ์ ์ํ๋ค. APNS๋? Apple Push Notification Service๋ก iOS์์ ํธ์ ์๋ฆผ์ ๋ณด๋ด๊ธฐ ์ํด APNS๋ฅผ ์ฌ์ฉํด์ผํ๋ค. ์๋ฒ์์ ๋ณด๋ด๋ ์๋ฆผ์ ๊ฒฝ์ฐ ๊ผญ ์ด APNS๋ฅผ ๊ฑฐ์ณ์ผํ๋ค. FCM์ ์ฌ์ฉํ ๋ ํ์ด์ด๋ฒ ์ด์ค์์ ์๋ฆผ์ ๋ณด๋ธ๋ค๊ณ ์ฐฉ๊ฐํ ์ ์๋๋ฐ ์ฌ์ค APNS๋ก ์๋ฆผ์ ๋ณด๋ด๋๊ฑฐ๊ณ ์ค์ ์๋ฆผ์ APNS๋ก๋ถํฐ ์ค๊ฒ๋๋ค. ์ฑ์ ์์ํ ๋ ์๋ ์ฝ๋๋ฅผ ํตํด ..
๋๋ฐ์ด์ค์ ๊ณ ์ ํ ๊ฐ์ ํตํด ๋ฌด์ธ๊ฐ๋ฅผ ์๋ณํ๊ธฐ์ํ ๊ณ ์ ํ ๊ฐ์ด ํ์ํ ์ ์๋ค. ์ด๋ ์ฌ์ฉ๋๋ ๊ฐ๋
์ผ๋ก UUID์ UDID๊ฐ ์๋ค. 1. UDID (Unique Device Identifier) ๊ฐ ๊ธฐ๊ธฐ์ ๋ถ์ฌ๋๋ ๊ณ ์ ํ ๋๋ฐ์ด์ค ์๋ณ๊ฐ์ด๋ค. ์ด๋ค ์ฑ์ ์ฌ์ฉํ๋๋ผ๋ ์ด ๊ฐ์ ๋์ผํ ๊ฐ์ ๊ฐ์ง๋ค. iOS5 ์ด์ ์๋ ์ฝ๋๋ก ํ์ธํ ์ ์์์ง๋ง ์ฌ์ฉ์ ๊ฐ์ธ ์ ๋ณด ๋ณดํธ ๋ชฉ์ ์ผ๋ก ์ธํด deprecated ๋์๋ค. ์ง๊ธ์ ์ฝ๋๋ก ํ์ธ์ ๋ถ๊ฐ๋ฅํ๋ฉฐ iTunes๋ฅผ ํตํด ํ์ธํ ์ ์๋ค. UDID๊ฐ deprecated ๋๋ฉด์ ์ด๋ฅผ ๋์ฒดํ๊ธฐ ์ํด UDID๋ฅผ ์ฌ์ฉํ ์ ์๋ค. 2. UUID (Universally Unique Identifier) deprecated๋ UDID๋ฅผ ๋์ฒดํ๊ธฐ์ํด UUID๋ฅผ ์ฌ์ฉํ ์ ์๋ค. UI..
์๋ก์ด ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ์น๋ทฐ๋ฅผ ์ฌ์ฉํ๊ฒ ๋์๋ค. ๊ธฐ์กด์ ๋ด๊ฐ ๊ฒฝํํด ๋ดค๋ ์น๋ทฐ๋ ๊ฐ๋จํ๊ฒ ํ๋ฉด์ ๋์์ฃผ๋ ๊ฒ๊ณผ ์น๋ทฐ๋ฅผ ์ด์ฉํ ํจ์ค ์ธ์ฆ๋ง ํด๋ณธ ๊ฒฝํ์ด ์์ด์ ์์ํ ๊ฐ๋
์ผ๋ก ๋ค๊ฐ์๋ค. ํ๋ก์ ํธ๊ฐ ๋๋ถ๋ถ ์น๋ทฐ๋ก ๋์ด์์ด์ ๊ผญ ๋ค์ดํฐ๋ธ๊ฐ ํ์ํ ์์
๋ค(์นด๋ฉ๋ผ, ์๋ฆผ ๋ฑ..)์ ์ ์ธํ๊ณค ๋ชจ๋ ์น๋ทฐ๋ก ๋์ด์์๊ธฐ ๋๋ฌธ์ ํด์ผ ํ ์์
์ด ์ ์์์๋ ํ์คํ์ง๋ง ๊ฐ๋จํ์ง๋ง ์ฒ์ ๊ฒฝํํด ๋ณด๋ ์น๋ทฐ ์ฐ๋์ ๋ง์ ์ํ์ฐฉ์ค๊ฐ ์์๋ค. ๋จผ์ ์ ๋ชฉ์ผ๋ก ์ธ๊ธํ WKWebView ๋ง๊ณ UIWebView, SFSafariView์ ๊ฐ์ ์ข
๋ฅ์ ์น๋ทฐ๊ฐ ์๋ค. 1. UIWebView iOS 2.0์ ์ถ์๋ ๊ต์ฅํ ์ค๋๋ ์น๋ทฐ์ด๋ค. ํ์ฌ deprecate ๋์์ผ๋ฏ๋ก UIWebView๋ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ๋์ฒดํ์ฌ ์ฌ์ฉํ๋ค. 2. WKWeb..
๋ค์ดํฐ๋ธ์ ์น๋ทฐ๋ฅผ ์ฐ๋ํ์ฌ ๊ฐ๋ฐ ์ค ํฌ๋กฌ๊ณผ ์ฌํ๋ฆฌ์ ๊ฐ์ ๋ธ๋ผ์ฐ์ ์์๋ ๋ณ๋ค๋ฅธ ์ค์ ์์ด๋ ์๋๋ก๊ทธ์ธ์ด ๊ฐ๋ฅํ์ง๋ง ๋ค์ดํฐ๋ธ๋ก ์ฐ๊ฒฐ๋ WKWebView์์๋ ์๋๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์๋ค. ์ด์ ๋ WKWebView์์๋ ์ฟ ํค ๊ฐ์ ๋ฐ๋ก ์ค์ ํด์ฃผ์ด์ผ๋ง ์๋๋ก๊ทธ์ธ์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ด์๊ณ , ์๋๋ก์ด๋์ ๋์ผํ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๊ธฐ ์ํด์ ์๋๋ก๊ทธ์ธ์ ์ํด ์ฟ ํค ๊ฐ์ ์ง์ ์ค์ ํด์ฃผ์๋ค. ๋ํ ์ฟ ํค value๊ฐ ๊ธฐ์กด ๊ฐ์ ์ ์งํ์ง ์๊ณ ์๋ก ๋ง๋ค์ด์ฃผ๋ ์ํฉ์ด์๊ธฐ ๋๋ฌธ์ ์๋๋ก๊ทธ์ธ์ด ์ ์์ ์ผ๋ก ์๋ํ์ง ์๋ ๊ฒ ๊ฐ์๋ค. ์ฌํ๋ฆฌ ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํด ํด๋ํฐ ๋ชจ๋ฐ์ผ ์น ํ์ด์ง๋ฅผ ๊ฐ๋ฐ์ ๋๊ตฌ๋ก ๋๋ฒ๊น
ํ์๋ค. (ํฌ๋กฌ๋ ๋์ผํ๊ฒ ์ฌ์ฉ ๊ฐ๋ฅํ์ง๋ง ๊ทธ๋ฅ ์ฌํ๋ฆฌ ์จ๋ณธ์ ์ด ์์ด์ ์ฌ์ฉํด๋ณด์๋ค! ์จ๋ณด๋๊น ์ฌํ๋ฆฌ๊ฐ ์ข ๋ ํธํ๊ฒ ..
PageViewController ์ฌ์ฉํด๋ณด๊ธฐ..!! ํ์ด์ง ๋๊ธฐ๋ฏ์ด ๋ด๊ฐ ์ํ๋ ๋ทฐ ์ปจํธ๋กค๋ฌ๋ฅผ ์ ์ดํ ์ ์๋ค. extension PageVC: UIPageViewControllerDelegate, UIPageViewControllerDataSource { // ํ์ด์ง ์ด๋ํ ๋๋ง๋ค ํธ์ถ func pageViewController(_ pageViewController: UIPageViewController,didFinishAnimating finished: Bool,previousViewControllers: [UIViewController],transitionCompleted completed: Bool){ guard completed else { return } currentIndex = pageVie..
1๋
์ rx๋ฅผ ์ฌ์ฉํด์ผ๋ง ํ๋ ํ๋ก์ ํธ๊ฐ ์์ด์ ๊ทธ๋ ์ ๊น ๊ณต๋ถํ๊ณ , ์๋
7์์ฏค ํ๋ฒ ๋ ๊ณต๋ถํ์ง๋ง ๊ทธ๋๋ rx๋ฅผ ์ ์ฌ์ฉํด์ผํ๋์ง, ์ฅ์ ์ ์ฐพ์๋ด๋ ์ดํด๋ ๋์ง๋ง ํฌ๊ฒ ์๋ฟ์ง ์์์ ์กฐ๊ธ ๊ณต๋ถํ๋ค๊ฐ ์์ฐ์ค๋ฝ๊ฒ ์ฌ์ฉํ์ง ์๊ฒ ๋์๋ค. ์ทจ์
์ค๋น๋ฅผ ํ๋ฉด์ ๊ธฐ์กด์ ๋ง๋ค์ด ๋ฐฐํฌํ๋ ๋ค์ด์ด๋ฆฌ ์ฑ ์ฝ๋์ ์ฌ๊ฐ์ฑ์ ๋๊ปด ๋ฆฌํฉํ ๋ง๊ณผ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ๋จ๊ณ์์ ์ฐ์ต์ฉ ํ๋ก์ ํธ๋ก ํ๋๊ฒ ๋ณด๋ค ์ข ๋ ๋ณต์กํ ๋น๋๊ธฐ์ฒ๋ฆฌ๋ฅผ ํด์ผํ ์ผ์ด ์๊ฒผ๋๋ฐ @escaping์ผ๋ก ๋ฒ์ด๋๊ณ ์ค๊ดํธ ์์ผ๋ก ํ๊ณ ํ๊ณ ๋ค์ด๊ฐ๋ ์ฝ๋๋ฅผ ๋ณด๋ ๋ญ๊ฐ ๋ง์์ ๋ค์ง ์์ ์ข ๋ ์ฐพ์๋ณด๋ ์ด๋ฐ ๋ถ๋ถ์ rx๋ก ํด๊ฒฐํ ์ ์๋ค๋ ๊ฒ์ ์๊ฒ ๋์๋ค. ๊ทธ๋๋ถํฐ rx๋ฅผ ๋ฐฐ์์ผ๊ฒ ๋ค๊ณ ์๊ฐํ๊ณ ์ทจ์
์ ํ ํ ํ์ฌ ์ฝ๋๋ฅผ ๋ณด๋ค๋ณด๋ ๋ณต์กํ ๋น๋๊ธฐ ์์๋๋ฌธ์ @escaping..
์ด๊ธฐํ ์ธ์คํด์ค๋ฅผ ์์ฑํด์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ ๋น๋ฐ๋ ๊ฒ. ๋ชจ๋ ์ ์ฅ ์์ฑ๋ค์ ์ด๊ธฐํ๊ฐ ๋์ด์ผ ์ธ์คํด์ค ์ฌ์ฉ์ด ๊ฐ๋ฅ (์ด๊ธฐ๊ฐ์ด ์ง์ ๋์ด ์์ด์ผ ํจ) ํด๋์ค ๊ตฌ์กฐ์ฒด ์ง์ ์ด๊ธฐ๊ฐ ๋ฃ๊ธฐ O O ์์ฑ์ ์ฌ์ฉ O O ๋ฉค๋ฒ์์ด์ฆ ์ด๋์
๋ผ์ด์ X O Convenience init ์ถ๊ฐ์ ์ธ ์์
์ ํ ์ ์๋๋ก ํด์ฃผ๋ ๋ณด์กฐ ์ด๋์
๋ผ์ด์ ์๊ธฐ ๋จ๊ณ์ ์๋ ์ง์ ์์ฑ์ ๋๋ ์๊ธฐ ๋จ๊ณ์ ์๋ ๋ค๋ฅธ ํธ์ ์์ฑ์ ํธ์ถ ๊ฐ๋ฅ ์ง์ ์์ฑ์๋ ์์ ์ง์ ์์ฑ์๋ฅผ ํธ์ถํด์ผํจ ํด๋์ค์๋ง ํด๋นํ๋ ๊ธฐ๋ฅ (์์๊ณผ ๊ด๋ จ) ์ง์ ์์ฑ์๋ณด๋ค ์ ์ ๊ฐฏ์์ ํ๋ผ๋ฏธํฐ๋ก ๋ณด๋ค ํธ๋ฆฌํ๊ฒ ์์ฑํ๊ธฐ ์ํ ์๋ธ(Sub)๊ฐ๋
์ ์์ฑ์ ํธ์ ์์ฑ์๋ ์ง์ ์์ฑ์์ ์์กด ๋ฐ ํธ์ถ(์ง์ ์์ฑ์๊ฐ ์ ์ฅ ์์ฑ ์ด๊ธฐํ) ์ด๊ธฐํ ๊ณผ์ ์ ๊ฐํธํ๊ฒ ์ ๊ณตํ๊ธฐ ์ํจ ์ค์ง์ ์ผ๋ก ๊ฐ๋ฅํ ..