728x90 ๐ iOS61 [iOS] WKWebView - ์ฑ์์ ์น๋ทฐ๋ฅผ ๋์ฐ์ ๐ฑWKWebView Class WKWebView ๊ฐ์ฒด๋ ์ฑ ๋ด๋ถ์ ๋ธ๋ผ์ฐ์ ์์ ์น ์ฝํ ์ธ ๋ฅผ ๋ณด์ฌ์ค๋๋ค. WKWebView ๋ ๋ค์ดํฐ๋ธ ๋ทฐ์ HTML, CSS, JavaScript ๋ก ํํ๋๋ ์น ๋ธ๋ผ์ฐ์ง์ ์ ๊ณตํฉ๋๋ค. ์ฑ์ ์ฝํ ์ธ ๋ฅผ ๋น๋ฒํ๊ฒ ๋ณ๊ฒฝํด์ผํ ๊ฒฝ์ฐ, ์น์ฑ์ ์ฌ์ฉํ๊ฒ ๋ ๊ฒ์ด์์. ๋ค์ดํฐ๋ธ ์ฑ๋ณด๋ค๋ ์น์ฑ์ ์น ์ฝํ ์ธ ๋ง ๋ฐฐํฌํ๋ฉด ๋๋ ์ข๋ ์ ์ฐํ ๋์ฒ๊ฐ ๊ฐ๋ฅํ๊ฒ ์ฃ . ๐ WKWebView Delegate WKWebView ๋ delegate ๊ฐ์ฒด๋ฅผ ํตํด ์ ์ ์ ๊ฒฝํ๊ณผ ํ์์ ์ปจํธ๋กคํ ์ ์๋๋ก ์ ๊ณตํฉ๋๋ค. ์ฌ๊ธฐ์ ์ ์ ์ ๊ฒฝํ์ UI delegate, ํ์์ navigation delegate ๊ฐ ๋ด๋นํ๋ค๊ณ ์ดํดํ์ด์. ๐ค navigation delegate (WKNavigationDelegate) ๋ฅผ.. 2022. 4. 30. [iOS/SwiftUI] View, Stack ๊ธฐ๋ณธ ์ ๋ฆฌ SwiftUI ๋ UIKit ๊ณผ ๋น์ทํ๊ฒ iOS ์ฑ์ UI ๋ฅผ ๊ทธ๋ฆฌ๊ธฐ ์ํ ํ๋ ์์ํฌ์ ๋๋ค. iOS13 ๋ถํฐ ์ฌ์ฉ๊ฐ๋ฅํ์ง๋ง iOS14 ์ด์๋ถํฐ ๊ฐ๋ฅํ ๊ธฐ๋ฅ๋ค์ด ๋ง์, ๋ฏธ๋๋ฉ iOS14 ์์ ์ฃผ๋ก ์ฌ์ฉํ๋ ๊ฑธ๋ก ์๊ณ ์์ต๋๋ค! ๋ค์ ์ฌ์ด๋ํ๋ก์ ํธ๋ ํด๋ก ์ฝ๋ฉ์ SwiftUI ๋ก ๊ผญ ํด๋ด์ผ๊ฒ ์ด์!! ๊ทธ๋ฌ๊ธฐ ์ํ ์คํฐ๋ ์์~! ๐ช SwiftUI ์ ๋ํ ํน์ง - ์ ์ธ์ ๊ตฌ๋ฌธ์ ์ฌ์ฉํด ์ฌ์ฉ์ ์ธํฐํ์ด์ค์ ๊ธฐ๋ฅ์ ๋ช ์ํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. - ๋๋๊ทธ ์ค ๋๋กญ์ผ๋ก UI ๋ฅผ ๊ตฌ์ฑํ ์ ์๊ณ , ๋ฏธ๋ฆฌ๋ณด๊ธฐ๊ฐ ๊ฐ๋ฅํ ์ธํฐํ์ด์ค๊ฐ ์์ต๋๋ค. (๊ณผ์ฐ ์์ฃผ์ธ์ง ์๋ฌธ์ด์ง๋ง์) - ์ฌ์ฉ์ ์ธํฐํ์ด์ค์ ์์ฑ์ ๋ฉ์๋ ์ฒด์ด๋(Method Chaining) ๋ฌธ๋ฒ์ ์ด์ฉํด ์ค์ ํฉ๋๋ค. View ํ๋กํ ์ฝ์ Instance method ๋ฅผ ๋ณด๋ฉด.. 2022. 4. 29. [iOS/Swift] TextView - URL (ํ์ดํผ๋งํฌ)ํด๋ฆญํด ์น๋ทฐ ๋์์ฃผ๊ธฐ ์๋ ํ์ธ์. UITextView ์ ํ์ดํผ๋งํฌ๋ก URL ์ ๋ํ๋ด๊ธฐ ์ํด ๋ฐฉ๋ฒ์ ์ฐพ์๋ณธ ๋ด์ฉ์ ์ ๋ฆฌํ๋ฌ ์์ต๋๋ค! ์ฒ์์๋ UILabel ์์ ์ ์ฉํ๋ ค๊ณ ํ๋๋ฐ ๋ฐฉ๋ฒ์ด ๋ณต์กํด์ UITextView ๋ก ๋ฐ๊ฟจ์ต๋๋ค. - UILabel ์ ์ฌ์ฉํ๋ ค๋ฉด ํด๋น ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ๋ฉด ์ข์ ๊ฒ ๊ฐ์์. ๐ ๋ชฉ์ฐจ 1. TextView ์ dataDetectorTypes ์์ฑ ์ค์ ํ๊ธฐ 2. UITextViewDelegate ๋ฅผ ํตํด WKWebView ๋์์ฃผ๊ธฐ ์ด ๋๊ฐ์ง ๊ณผ์ ์ ํตํด TextView ์ ํ ์คํธ ์ค Http links ๋ฅผ ํด๋ฆญํด ์น๋ทฐ๋ฅผ ๋์์ค ์ ์์ต๋๋ค. 1. TextView ์ dataDetectorTypes ์์ฑ ์ค์ ํ๊ธฐ UITextView ์๋ dataDetectorTypes ์์ฑ์ด ์์ด, phone num.. 2022. 1. 25. [Swift] final ํค์๋๋ ์ธ์ ์ฌ์ฉํ ๊น? Swift ์์๋ ๋ค๋ฅธ ์ธ์ด์ ๋น์ทํ๊ฒ ํด๋์ค๋ฅผ ์์ํด ์๋ธํด๋์ค๋ฅผ ๊ตฌํํ ์ ์์ด์. ๋ง์ฝ, ํด๋น ํด๋์ค๊ฐ ๋์ด์ ์์์ด ํ์์๊ฑฐ๋ ํน์ ์์ฑ์ ์ค๋ฒ๋ผ์ด๋ํ์ง ์์์ผ ํ๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น์?! ๐ final ํค์๋๋ฅผ ํตํด ๋ ์ด์ ์์์ด ํ์์์์ ๋ช ์ํ ์ ์๊ณ , ์ค๋ฒ๋ผ์ด๋ ํ ์ ์ปดํ์ผ ์๋ฌ๋ฅผ ๋ฐ์์ํฌ ์ ์์ต๋๋ค! ๋ช ์์ ์ผ๋ก ์์๋์ง ์๋ ๊ฒ ์ธ์ ๋ฐํ์ ์ฑ๋ฅ์ด ํฅ์๋๋ค๋ ์ฅ์ ๋ ์๋ค๊ณ ํด์. ๐ Swift ๋ฌธ์์์๋ ๋ค์๊ณผ ๊ฐ์ด ์ค๋ช ํ๊ณ ์์ด์! ์๋ธํด๋์ค์์ ํน์ method, property, subscript ๊ฐ ์ค๋ฒ๋ผ์ด๋ ๋์ง ์๋๋ก ํ๊ธฐ์ํด์ final ํค์๋๋ฅผ ์ฌ์ฉํ๋ค. final ํค์๋๋ฅผ ๋ถ์ธ method, property, subscript ๋ฅผ ์๋ธํด๋์ค์์ ์ค๋ฒ๋ผ์ด๋ํ๋ฉด, ์ปดํ.. 2021. 12. 12. [iOS] SnapKit / Then ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํด ์ฝ๋๋ก UI ๊ตฌํํ๊ธฐ SnapKit iOS ์์ Autolayout ์ ์ฝ๋๋ก ๊ตฌํํ ๋ ์ฝ๊ณ ํธ๋ฆฌํ๊ฒ ๋์์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์์ฑํด์ผํ๋ ์ฝ๋์ ๊ธธ์ด๋ฅผ ์ค์ฌ์ฃผ๊ณ , ๊ฐ๋ ์ฑ์ ๋์ฌ์ฃผ๋ ์ฅ์ ์ด ์๋ค. ๋ทฐ ๊ณ์ธต์ depth ๊ฐ ๊น์ด์ง๋ฉด ๋ณต์กํด์ง ์ ์๋ค. pure autolayout ์ผ๋ก Autolayout ์ ์ ์ฉํ๋ ๋ฐฉ๋ฒ view.addSubview(label) label.translatesAutoresizingMaskIntoConstraints = false let leading = label.leadingAnchor.constraint(equalTo: view.leadingAnchor) let trailing = label.trailingAnchor.constraint(equalTo: view.trailingAnchor) le.. 2021. 11. 11. [iOS/RxSwift] RxDataSource - UITableView, UICollectionView RxSwift ์์ DataSource ๋ฅผ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํฉ๋๋ค! UIKit ์ UITableView, UICollectionView ๋ฅผ ์ด์ฉํ ๋์๋ ๊ฐ ๋ฆฌ์คํธ์ ๋ํ ๋ฐ์ดํฐ๋ฅผ ํํํ๊ธฐ ์ํด data source ๋ฅผ ์ง์ ํด์ค์ผ ํ๋๋ฐ์. ๊ธฐ๋ณธ์ ์ผ๋ก๋ data source ํ๋กํ ์ฝ์ ์ฑํํด, ๋ฉ์๋๋ฅผ ๊ตฌํํด ๋ฐ์ดํฐ๋ฅผ ํํํฉ๋๋ค. RxSwift ์ RxDataSource ์์๋ data source ๋ฉ์๋๋ฅผ ์ง์ ๊ตฌํํ์ง ์๊ณ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ์คํผ๋ ์ดํฐ๋ฅผ ์ ๊ณตํฉ๋๋ค. 1. UIKit ์์ data source ๋ฅผ ์ค์ ํ๋ ๋ฐฉ๋ฒ 2. RxSwift ์์ data source ๋ฅผ ์ค์ ํ๋ ๋ฐฉ๋ฒ 3. RxDataSource ๋ฅผ ์ด์ฉํด data source ๋ฅผ ์ค์ ํ๋ ๋ฐฉ๋ฒ 1. UIKit .. 2021. 10. 17. [iOS] iOS ์ฑ ๋ฐฐํฌ :: Certificates(์ธ์ฆ์)์ Provisioning profiles(ํ๋ก๋น์ ๋ ํ๋กํ์ผ) iOS ์ฑ์ ์ฑ ์คํ ์ด์ ๋ฐฐํฌํ๊ธฐ ์ํด ํ์ํ ๊ฐ๋ ์ค ์ธ์ฆ์์ ํ๋ก๋น์ ๋ ํ๋กํ์ผ์ ์์๋ณผ๊ฒ์ ๐ 1. Certificates (์ธ์ฆ์) 2. Provisioning Profiles (ํ๋ก๋น์ ๋ ํ๋กํ์ผ) ์ง๋๋ฒ ๊ฐ๋ฐํ Zerobin ์ฑ์ ์ ๋ฐ์ดํธ ํ๊ธฐ ์ํด ๋ค์ ์ธ์ฆ์์ ํ๋ก๋น์ ๋ ํ๋กํ์ผ์ ๋ฑ๋กํ์ง๋ง ๋ฌด์์ ์ํด ํ์ํ๊ฑด์ง ๋ชจ๋ฅด๊ฒ ์ด์ ์ ๋ฆฌ๋ฅผ ํฉ๋๋ค ๐ฅฒ 1. Certificates (์ธ์ฆ์) ์ธ์ฆ์๋ ์ ํ์ด ๊ฐ๋ฐ์๋ฅผ ์ ๋ขฐํ ์ ์๋ ๋ณด์ฆ์์ด๋ค. “์ ํ๋ง์ด ์์ ์ ํ๋์จ์ด์ ์ํํธ์จ์ด๋ฅผ ๋์์ํฌ ์ ์๋ค” -> ์ ํ์ธ์ฆ์๋ฅผ ๋ฐ๊ธ๋ฐ์์ผ๋ง ๊ฐ๋ฐ์๋ ์ ํ ํ๋์จ์ด์ ์ํํธ์จ์ด๋ฅผ ๋์์ํฌ ์ ์๋ค. ์ ํ์ ์ค์ ํ๋์จ์ด(์์ดํฐ, ์์ดํจ๋)์์ ์ฐ๋ฆฌ๊ฐ ๋ง๋ ์ํํธ์จ์ด๋ฅผ ๋์ํ๊ธฐ ์ํด ์ธ์ฆ์๊ฐ ํ์ํ๋ค. - iO.. 2021. 10. 15. [Swift] ์คํฐ๋ 7์ฃผ์ฐจ - ๊ทธ๋ํ ์๊ณ ๋ฆฌ์ฆ 6/1 ์งํํ๋ ์ค์ํํธ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ ์ฑ ์ 5์ฅ 'ํธ๋ฆฌ ๊ตฌ์กฐ ๊ธฐ๋ฐ์ ์๊ณ ๋ฆฌ์ฆ' ์คํฐ๋ ์ ๋ฆฌ์ ๋๋ค! 1. ๊ทธ๋ํ์ ๊ฐ๋ , ๊ทธ๋ํ์ ์ข ๋ฅ 2. ๊ทธ๋ํ์ ํํ ๋ฐฉ์ (์ฝ๋์ ์ผ๋ก) 3. ๊ทธ๋ํ ํ์ - DFS(๊น์ด์ฐ์ ํ์), BFS(๋๋น์ฐ์ ํ์) ๐ก ๊ทธ๋ํ(Graph) ๊ทธ๋ํ๋ ๋ ธ๋(Vertex; ๊ผญ์ง์ )์ ๋ ธ๋๋ฅผ ์ฐ๊ฒฐํ๋ ๊ฐ์ (Edge; ๋ชจ์๋ฆฌ)์ ์งํฉ์ผ๋ก ์ด๋ฃจ์ด์ง ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋๋ค. ๊ทธ๋ํ๋ฅผ ํตํด ์ฐ๊ฒฐ๋์ด ์๋ ๊ฐ์ฒด๋ค์ ๊ด๊ณ๋ฅผ ํํํ ์ ์์ต๋๋ค. ๊ทธ๋ํ์ ํ์ฉ ์์ : SNS ์์ ์ฐ๊ฒฐ๋ ์ฌ๋๋ค, ์ง๋, ์งํ์ฒ ๋ ธ์ ๋์ ์ต๋จ ๊ฒฝ๋ก, ์ ์ ๊ณผ๋ชฉ ๋ฑ .. โ๏ธ ๊ทธ๋ํ(Graph)์ ์ข ๋ฅ 1) ๋ฌด๋ฐฉํฅ ๊ทธ๋ํ(Undirected Graph) ๋ ธ๋๋ฅผ ์ฐ๊ฒฐํ๋ ๊ฐ์ ์ด ์๋ฐฉํฅ์ฑ์ธ ๊ทธ๋ํ์ ๋๋ค. ๋ฐฉํฅ์ด ์๋ค๋.. 2021. 7. 26. [Swift] ์คํฐ๋ 5์ฃผ์ฐจ - ํธ๋ฆฌ ๊ตฌ์กฐ ๊ธฐ๋ฐ์ ์๊ณ ๋ฆฌ์ฆ 5/18 ์งํํ๋ ์ค์ํํธ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ ์ฑ ์ 5์ฅ 'ํธ๋ฆฌ ๊ตฌ์กฐ ๊ธฐ๋ฐ์ ์๊ณ ๋ฆฌ์ฆ' ์คํฐ๋ ์ ๋ฆฌ์ ๋๋ค! ๐ 1. ํธ๋ฆฌ์ ํน์ง 2. ํธ๋ฆฌ vs ๊ทธ๋ํ 3. ์ด์ง ํธ๋ฆฌ, ์ด์ง ํธ๋ฆฌ์ ์ข ๋ฅ 4. ์ด์ง ํ์ ํธ๋ฆฌ(BST, Binary Search Tree) 5. ํธ๋ฆฌ ์ํ ๋ฐฉ์ 6. B ํธ๋ฆฌ์ ์คํ๋ ์ด ํธ๋ฆฌ ๐ ํธ๋ฆฌ(Tree) ํธ๋ฆฌ๋ ๋ ธ๋์ ์งํฉ์ผ๋ก, ๊ณ์ธต์ ์ด๋ฃจ๊ณ ์๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์๋ฏธํฉ๋๋ค. ํธ๋ฆฌ์ ์ต์์ ๋ ธ๋์ธ ๋ฃจํธ ๋ ธ๋, ๊ทธ ์๋๋ก ๋ป์ด๋๊ฐ๋ ์์ ๋ ธ๋๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ๊ฐ๊ฐ์ ๋ ธ๋๋ ํค ๊ฐ, ์์ ๋ ธ๋ ์งํฉ, ๋ถ๋ชจ ๋ ธ๋ ๋งํฌ ๋ฑ์ ํฌํจํ๊ณ ์๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ๋๋ค. ํธ๋ฆฌ์ ํน์ง ํธ๋ฆฌ๋ ๊ทธ๋ํ์ ํ ์ข ๋ฅ๋ก, ์ฌ์ดํด์ด ์๋ ํ๋์ ์ฐ๊ฒฐ ๊ทธ๋ํ์ ๋๋ค. ํธ๋ฆฌ๋ ์ด์ง ํธ๋ฆฌ, ์ด์ง ํ์ ํธ๋ฆฌ, ๊ท ํ ํธ๋ฆฌ(AV.. 2021. 7. 26. ์ด์ 1 2 3 4 5 6 7 ๋ค์ 728x90