๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“ฑ Mobile/iOS

(24)
[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 (๊ฐœ๋ฐฉ ์ ‘๊ทผ์ˆ˜..

728x90