๐ฑ Mobile (31) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ [iOS - UIKit] ScrollView์์ Button ํด๋ฆญ ์ ํ๋ฉด์ ์ต์๋จ, ์ตํ๋จ ์ด๋ ์ค๋์ ScrollView๋ฅผ ์ฌ์ฉํ ๋์ ํ์ด์ง์ ๋ด์ฉ์ด ๋ง์ ์คํฌ๋กค์ด ๊ธธ์ด์ง๊ฒ ๋๋ฉด ์ดํ ์์ ๋ฒํผ์ ํฐ์นํจ์ผ๋ก์จ ์ต์๋จ ๋๋ ์ตํ๋จ์ผ๋ก ๊ฐ๋ ๊ตฌํ ๋ฐฉ๋ฒ์ ์์๋ณด๋ ค๊ณ ํ๋ค. ๊ตฌํ ๋ฐฉ๋ฒ ViewController์์ UIScrollViewDelegate ์ฑํ ScrollView๋ฅผ ์คํฌ๋กคํ๊ฒ ๋๋ฉด x, y์ถ์ด ๋ณํ๊ฒ ๋๋ค. button์ ํด๋ฆญํ์๋ event๋ฅผ x, y์ถ์ด (0, 0)์ด ๋๋๋ก ํ๋ค. ์ฝ๋ class ViewController: UIViewController,UIScrollViewDelegate { // code } ๋ฐฉ๋ฒ 1 - ์ต์๋จ ์ด๋ @objc func scrollToTop(_ sender: UIButton) { collectionView.scrollToItem(at: IndexPa.. [iOS - UIKit] Compositional Layout - CollectionView Compositional Layout CollectionView์์ ์ฌ์ฉํ๋ค. ๊ณตํต์ ์ธ cell์ ํํ๋ณด๋ค๋ ๋ค์ํ ์ฌ์ด์ฆ์ cell๋ค์ ํํํ ๋ ์ฌ์ฉํ๊ธฐ ์ข๋ค. Compositional Layout์ CollectionView Layout ์ค ํ๋์ด๋ค. (FlowLayout ๊ณผ ๋น์ทํ๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค.) ์์ ๊ฐ์ด item, group, section์ ์ง์ ํด์ ๋ค์ํ ํํ์ cell๋ค์ ์ฝ๊ฒ ๋ํ๋ผ ์ ์๋ค. Section ์์ Group, Group ์์ Item, Item์ Cell ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ํธํ๋ค ๊ธฐ๋ณธ์ ์ธ Compositional Layout ์ฝ๋ func createBasicListLayout() -> UICollectionViewLayout { let itemSize = NSCol.. iOS - ์์ ๋ก๊ทธ์ธ, Kakao ๋ก๊ทธ์ธ, ์นด์นด์ค ์์ ๋ก๊ทธ์ธ ์ฐ๋, ์นด์นด์ค ๋ก๊ทธ์ธ SDK ์ฐ๋ํ๊ธฐ ๊ตฌํ ๋ฐฉ๋ฒ ์ ํ 1. ์นด์นด์คํก์ผ๋ก ๋ก๊ทธ์ธ loginWithKakaoTalk() ๋ฉ์๋ ์ฌ์ฉ lanuchMethod ํ๋ผ๋ฏธํฐ๋ฅผ ์ฌ์ฉํด .CustomScheme ๋๋ .UniversalLink ์ค ํ๋๋ก ์ฑ ์ ํ ๋ฐฉ์ ์ค์ ๊ฐ๋ฅ 2. ์นด์นด์ค๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธ loginWithKakaoAccount() ๋ฉ์๋ ์ฌ์ฉ ๊ธฐ๋ณธ ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ์นด์นด์ค๊ณ์ ์ ๋ณด๋ฅผ ์ ๋ ฅํ๊ณ ๋ก๊ทธ์ธ ๋ชจ๋ ์ค์ ์นด์นด์ค ๋ก๊ทธ์ธ API๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์นด์นด์ค ๋ก๊ทธ์ธ ๋ชจ๋์ธ KakaoSDKUser, ์ฌ์ฉ์ ์ธ์ฆ ๋ฐ ํ ํฐ ๊ด๋ฆฌ์ ๋ชจ๋์ธ KakaoSDKAuth๋ฅผ ์ค์นํด์ผ ํ๋ค. import KakaoSDKCommon import KakaoSDKAuth import KakaoSDKUser ์ค์ต https://developers.kakao.com/ Kaka.. [iOS - Swift] ๋์์ฑ ํ๋ก๊ทธ๋๋ฐ, ๋น๋๊ธฐ์ฑ ํ๋ก๊ทธ๋๋ฐ, ๋ณ๋ ฌ์ฑ ํ๋ก๊ทธ๋๋ฐ ๋์์ฑ ํ๋ก๊ทธ๋๋ฐ๊ณผ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ์ ๋ํด ์๊ธฐ ์ ์ …….. ์๊ณ ๊ฐ์ผ ํ ๊ฒ๋ค์ด ์๋ค์ ํ๋ก์ธ์ ํ๋ก์ธ์๋ ์ปดํจํฐ ๋ด์์ ํ๋ก๊ทธ๋จ์ ์ํํ๋ ํ๋์จ์ด ์ ๋์ด๋ค. ๊ฐ์ฅ ๋ํ์ ์ผ๋ก ์ค์์ฒ๋ฆฌ์ฅ์น(CPU)๊ฐ ์ด์ ์ํ๊ณ ์๋ค. ๐ป - ๐พ๐พ๐พ๐พ๐พ ⇒ ํ ์ปดํจํฐ๊ฐ ์ฌ๋ฌ ๊ฐ์ ํ๋ก์ธ์ ๊ฐ์ง ⇒ ๋ฉํฐ ํ๋ก์ธ์ ๐ป - ๐พ๐พ ⇒ ํ ์ปดํจํฐ์ ๋ ๊ฐ์ ํ๋ก์ธ์ ⇒ ๋์ผ ํ๋ก์ธ์ ์ฝ์ด ์ฐ์ฐํ๋ก ํ๋ก๊ทธ๋จ๊ณผ ํ๋ก์ธ์ค ํ๋ก๊ทธ๋จ์ ์ผ๋ฐ์ ์ผ๋ก ๋ณด์กฐ๊ธฐ์ต์ฅ์น์ ์ ์ฅ๋ ์คํ์ฝ๋๋ฅผ ๋งํ๋ค. ํ๋ก์ธ์ค๋ ํ๋ก๊ทธ๋จ์ ๊ตฌ๋ํ์ฌ ํ๋ก๊ทธ๋จ ์์ฒด์ ํ๋ก๊ทธ๋จ์ ์ํ๊ฐ ๋ฉ๋ชจ๋ฆฌ์์ ์คํ๋๋ ์์ ๋จ์๋ฅผ ๋งํ๋ค. ์ค๋ ๋ ์ค๋ ๋๋ ํ๋์ ํ๋ก์ธ์ค ๋ด์์ ์คํ๋๋ ์์ ํ๋ฆ์ ๋จ์๋ฅผ ๋งํ๋ค. ๋ณดํต ํ ํ๋ก์ธ์ค๋ ํ๋์ ์ค๋ ๋๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ํ์ง๋ง!! ํ๋ก์ธ์ค.. [iOS - Swift] Final ํค์๋ Swift์์๋ ํด๋์ค์ ์์์ ์ง์ํ๋ค. ์์ Swift๋ ๊ฐ์ฒด์งํฅํ ํ๋ก๊ทธ๋๋ฐ์ ๋ค๋ฃฐ ์ ์๋ ์ธ์ด์ด๋ค. ๊ฐ์ฒด์งํฅํ๋ก๊ทธ๋๋ฐ์ ํน์ง์ ์ถ์ํ, ์บก์ํ, ์๋ํ, ์์์ฑ, ๋คํ์ฑ์ด ์๋๋ฐ ๊ทธ ์ค์์ ์์์ฑ์ ์์ ๊ฐ๋ ์ ํน์ง์ ํ์ ๊ฐ๋ ์ด ๋ฌผ๋ ค ๋ฐ์์ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค. ์ฆ, ๋ถ๋ชจ-์์ ๊ฐ์ ๊ฐ๋ ์ ์๊ฐํ๋ฉด ๋๋ค. final ์ธ์ ์ฌ์ฉํจ??๐ง ๋ ์ด์ ํด๋น ํด๋์ค์์ ํ์ ํด๋์ค๋ก์ ์ ์ฒด ํด๋์ค ๋๋ ์ผ๋ถ๊ฐ ์์ ๋๋ ์์์ ๋ฐ๋ฅธ ์ฌ์ ์๊ฐ ๋ ํ์๊ฐ ์๋ค๊ณ ํ๋จํ ๊ฒฝ์ฐ final ํค์๋๋ฅผ ์์ ์์ ์ถ๊ฐํจ์ผ๋ก์จ ์์์ ๋ฐฉ์งํ๋ค. final์ ‘๋ง์ง๋ง’, ‘์ ์ผํ’ ์ด๋ผ๋ ์๋ฏธ๋ฅผ ๊ฐ์ง๋ค. ์ฆ, ํด๋์ค ์์ final์ ๋ถ์ด๋ฉด ํด๋น ํด๋์ค๋ ‘์์ํ ์ ์๋ ํด๋์ค’ ๋ผ๋ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ฒ ๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก, ํจ.. [iOS - Swift] ์ ๊ทผ ์ ์ด์(open, public, internal, fileprivate, private), setter ๐ ์ ๊ทผ ์ ์ด์ ์ ๊ทผ ์ ์ด์๋ ํ๋์ ํ์ผ์์ ๋ค๋ฅธ ํ์ผ์ ์๋ ์ฝ๋์ ๋ํ ์ ๊ทผ์ ๊ด๋ฆฌํ๋ ๊ฒ์ด๋ค. ์ ๊ทผ ์ ์ด์๋ฅผ ํตํด ํน์ ์ฝ๋์ ์ธ๋ถ์ ์ธ ๊ตฌํ์ ์จ๊ธฐ๊ณ , ํ์ฉ๋ ๊ธฐ๋ฅ๋ง ์ฌ์ฉํ๋ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ ์ ์๋ค. module๊ณผ source file์ ๋ฐ๋ผ ๋ค๋ฅธ ์ ๊ทผ์ ํ ์ ์๋ค. module : ํ๋์ ํ๋ ์์ํฌ๋ฅผ ์๋ฏธํ๋ค. import ๋ก ์ถ๊ฐ๋๋ ๊ฒ๋ค์ด๋ค. (UIKit, Foundation ๋ฑ) source file : module ์์ ์๋ ํ์ผ๋ค์ด๋ค. (data.swift, example.swift ๋ฑ) ์ ๊ทผ ์ ์ด์๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋? ์ธ๋ถ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ๋ณดํธํ๊ธฐ ์ํด์ ์ธ๋ถ์๋ ๋ถํ์ํ๊ณ ๋ด๋ถ์ ์ผ๋ก๋ง ์ฌ์ฉ๋๋ ๋ถ๋ถ์ ์จ๊ธฐ๊ธฐ ์ํด์ ๐ Swift์ 5๊ฐ์ง ์ ๊ทผ ์ ์ด์ 1. open (๊ฐ๋ฐฉ ์ ๊ทผ์.. ์ด์ 1 2 3 4 5 6 ๋ค์