ํ๋ก์ธ์ค, ์ค๋ ๋, ๋์์ฑ, ๋ณ๋ ฌ์ฑ ๋ฑ์ iOS ๋ณด๋ค ๋ low-level๋ก ๋ค์ด๊ฐ ์ด์์ฒด์ ์ ๋ฐ์ ํ ๊ด๋ จ์ด ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด ๊ธ์ ๊ถ๊ทน์ ์ผ๋ก GCD์ Operation Queue๋ฅผ ๋ค๋ฃจ๊ณ ์ถ์ผ๋ iOS ๊ฐ๋ฐ ๊ด์ ์ ๋ง๊ฒ ๊ธ์ ํ์ด๋ณผ๊ฒ์~ Concurrency ๋์์ฑ์ ์ฌ๋ฌ ์์ ๋ค์ ๋์์ ์คํํ ์ ์๋ ์ฑ์ง์ ๋๋ค. ์๋ฐํ ๋งํ๋ฉด ์ฑ๊ธ ์ฝ์ด์์ ๋ฉํฐ ์ค๋ ๋๋ฅผ ๋์์ํฌ ์ ์๋ ๋ฐฉ์์ด๋ ๋์์ ์คํ๋๋ ๊ฒ '์ฒ๋ผ' ๋ณด์ด๋ ์ฑ์ง์ด์ฃ . ๋ฉํฐ ์ฝ์ด ํ๊ฒฝ์ด ํ์ํ ๋ณ๋ ฌ์ฑ(Parallelism)๊ณผ ์์ฃผ ๋น๊ต๋๋ ๊ฐ๋ ์ด์ง๋ง ์ด ๊ธ์์๋ ๋ค๋ฃจ์ง ์์๊ฒ์! ์์ ๋ค์ ์ค๋ ๋์์ ์คํ์ด ๋ฉ๋๋ค. ์๋ ๊ทธ๋ฆผ์ ๋น์ ํด๋ณด์๋ฉด ์ฐจ = ์์ , ์ฐจ์ = ์ค๋ ๋ ๋ผ๊ณ ๋ณผ ์ ์๊ฒ ๋ค์. ๋ณด์๋ค์ํผ ๋ฒ์ค์ ์ฉ์ฐจ๋ก๋ ๋ปฅ ๋ซ๋ ค์๋ ๋ฐ๋ฉด ์ผ..
Frame๊ณผ Bounds๋ UIView์ CGRect๋ก ํํ๋๋ instance property๋ค๋ก, ์์น์ ๊ด๋ จ ๋ ๊ฐ์ ์๊ณ ์ถ์ ๋ ์ฌ์ฉํฉ๋๋ค. ์ด๋ค์ ๊ฐ์ ์๋ ํ์ ๊ฐ์ด ์ ๋ฆฌํ ์ ์๋๋ฐ์, Frame Bounds ์ขํ superview์ ์ํด ์ขํ ๊ฒฐ์ ์๊ธฐ ์์ ๋ง์ ์ขํ๊ณ ์ฌ์ฉ ํฌ๊ธฐ(width, height) ์์ ๊ณผ ์ธ์ ํ๋ ์ต์ ์ฌ๊ฐํ์ width, height ์๊ธฐ ์์ ์ width, height ์ขํ ์ ํ์ ์ํ๋ฉด frame์ ์ขํ๋ superview์ ์ํด ๊ฒฐ์ ๋๊ณ bounds๋ ์์ ์ ์ขํ๊ณ๋ฅผ ์ฌ์ฉํ๋ค๊ณ ์ฐ์ฌ์์ต๋๋ค. ์ผ์ชฝ, ์ค๋ฅธ์ชฝ ๊ทธ๋ฆผ ๋ชจ๋ ๊ฐ์ ์์น์ ๊ฐ์ UIView๊ฐ ๊ทธ๋ ค์ ธ์๋๋ฐ์, Frame์ superview์ (70, 40) ๋จ์ด์ง ์์น์ ์๊ธฐ ๋๋ฌธ์ ์ขํ๊ฐ (70, ..
URLSession์ ๋คํธ์ํฌ ์์ฒญ์ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋๋ก Apple์์ ์ ๊ณตํ๋ networking API ์ ๋๋ค. HTTP-/HTTPS-๋ฅผ ๋ฒ ์ด์ค๋ก ํ ๋ช ๊ฐ์ง ํ๋กํ ์ฝ์ ์ง์ํ๋ฉฐ ์บ์ ๊ด๋ฆฌ, ์ธ์ฆ ๊ทธ๋ฆฌ๊ณ ์ฟ ํค ๊ด๋ฆฌ๋ฑ๋ ์ง์ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก URLSession์ ๋ค์๊ณผ ๊ฐ์ ์์๋ก ์งํ์ด ๋ฉ๋๋ค. 1. session configuration and create session 2. create task 3. decide usage of completion handler / delgeate method 4. execute/resume task 5. execute completion handler after task completion [Session Configuration & Creat..
์ ๋ ํ์์ ๋ฐ๋ผ prepareForReuse๋ฅผ ์ ์ฐ๊ณ ์๋๋ฐ์, ์ง๋ ๋ธ๋ก๊ทธ ํฌ์คํ ์์๋ ๋ช ๋ฒ ์ธ๊ธ์ ํ์์ด์. 1. [Rx] Resuable Cell์ ํ์ ์ด ๋จ๋๋ค [๋ฐ๋ก๊ฐ๊ธฐ] 2. [Toy] collectionview์ cell์ด ์ ๋ฐ์ดํธ๊ฐ ์ ์๋๋ค [๋ฐ๋ก๊ฐ๊ธฐ] ์ ๋ชฉ์์๋ ๋ ๊ธ์ ๊ณตํต์ ์ด ๋ณด์ด์ง ์๋์?ใ ใ ์ฒซ ๋ฒ์งธ๋ UIScrollView๋ฅผ ์์ํ๋ view๋ค์ cell๊ณผ ๊ด๋ จ ๋ ์ด์ผ๊ธฐ๋ผ๋ ๊ฒ(UITableView, UICollectionView)์ด๊ณ ๋ ๋ฒ์งธ๋ ๋ณํ์ ๋ํ ๋์์ด ๋ฌธ์ ๊ฐ ๋๋ ์๊ฐ๋ค์ด์ฃ . ์ฌ์ฌ์ฉ ๋๋ cell์ dequeue ํ ๋ ์ด์ ์ ์ฌ์ฉ ๋์๋ ํ์ ์ด ๋จ์ ๋ prepareForReuse๋ฅผ ํตํด ํด๊ฒฐ์ ํ๊ณค ํ๋๋ฐ์, ์ ํํ ์ด๋ ํ ์ด์ ๋ก, ์ด๋ค ๋ชฉ์ ์ ์ํด ๋ง..
๋๊ตฐ๊ฐ ์ ๊ฒ MVC, MVP, MVVM ๊ฐ๊ฐ์ ๋ํด ์ค๋ช ์ ํด๋ณด๋ผ๊ณ ํ๋ค๋ฉด ์ด๋ ดํ์ด ์ค๋ช ์ ํ ์ ์๋ค๊ณ ์๊ฐํด์. ๊ทธ๋ฐ๋ฐ ์๋ง ๊ฐ ๊ฐ์ฒด์ ์ญํ ๊ณผ ๊ด๊ณ ์ ๋๋ง ๊ฐ๋จํ๊ฒ ๋งํ ์ ์์ ๊ฒ ๊ฐ๋๋ผ๊ตฌ์. ๊ทธ๋์ ์ ๊ฐ ๋๋ฆ ์ ๋ขฐํ ์ ์๋ ์ฌ์ดํธ, ๊ฐ๋ฐ์ ๋ถ๋ค์ ๊ธ๊ณผ ์์์ ์์ฝํด์ MVC, MVP, MVVM์ ํน์ง์ ๋ํด ์์ฝํด ๋ณด๋ ค๊ณ ํฉ๋๋ค. MVC VIEW CONTROLLER MODEL ์ฌ์ฉ์์ ์ ๋ ฅ์ ๋ฐ์ view๊ฐ ๋ฐ์ ์ฌ์ฉ์ ์ ๋ ฅ์ผ๋ก model ์ ๋ฐ์ดํธ, ์ ๋ฐ์ดํธ ๋ ๋ชจ๋ธ๋ก view๋ฅผ ์ ๋ฐ์ดํธ data์ ๊ด๋ จ ์ด์์ ์ธ ๋ฐฉ์์ delegation pattern์ ์ฌ์ฉํ view์ model์ ์ค๊ฐ ๋ค๋ฆฌ ์ญํ (ex. UITableView์ UITableViewDataSource) [ex] persist..
์ฐ๋ฆฌ๊ฐ ๋ง๋๋ ์ฑ์ ํ๋ ์ด์์ UIViewController๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ๋ฌผ๋ก ๋จ์ผ ํ๋ฉด์ผ ์๋ ์์ง๋ง ๋๋ถ๋ถ์ Container View Controller๋ฅผ ํฌํจํ๊ณ ์์ด์ ํ๋ฉด ์ ํ์ด ๊ฐ๋ฅํ๊ฒ ์ฃ ? ํ๋ฉด๊ณผ ๊ธฐ๋ฅ์ด ๋ค์ํด์ง ์๋ก ์๋ก์ด ํ๋ฉด์ด ๋ํ๋๊ณ ์์ด์ง๋ ์์ ๋๋ ํน์ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ์์ ์ ์ฒ๋ฆฌํ๊ณ ์ถ์ ๊ฒ๋ค์ด ์์๊ฑฐ์์. ์๋ก ๋ณด์ฌ์ง ํ๋ฉด์ UI ์์๋ค์ ์ ๋ฐฐ์นํ๋ค๋์ง, ํ์ฌ ํ๋ฉด์์ ์ฌ์ฉํ๊ณ ์๋ ๋คํธ์ํฌ task๋ฅผ ๋๋๋ค๋์ง ๋ฑ. ๋๋ฌธ์ View Controller์ ์๋ช ์ฃผ๊ธฐ๋ฅผ ์ ์๊ณ ์์ผ๋ฉด ๋ ์ข์ ์ฝ๋๋ฅผ ์งค ์ ์์ต๋๋ค. ๊ณต์ ๋ฌธ์ ์์ ์ด ๊ทธ๋ฆผ์ Handling View-Related Notifications ์ ๋ชฉ ๋ฐ์ ์ํด์์ต๋๋ค. ์ ์์๋ ๊ฐ์ ์ํ(visibility)..
Auto layout์ ํตํด constraint๋ฅผ ์ก์ ๋ ๋ฐ๋์ ํด๋น view์ ์์น(position)์ ํฌ๊ธฐ(size) ์ ๋ณด๊ฐ ํ์ํฉ๋๋ค. ํ๋๋ผ๋ ๋ชจ๋ฅด๋ฉด ๋ทฐ๊ฐ ์ด๊ทธ๋ฌ์ง๊ฑฐ๋, ํ๋ฉด ์์ ๋ณด์ด์ง ์๋ ๋ฑ ์์ํ๋ ๊ฒ๊ณผ ๋ค๋ฅด๊ฒ ํํ์ด ๋๊ณคํ์ฃ ! ๊ทธ๋ฐ๋ฐ ๋ชจ๋ ๋ทฐ๊ฐ width/height ์ ๋ณด๋ฅผ ๋ช ์ํด ์ค ํ์๋ ์์ด์. ์๋ฅผ ๋ค์ด ๋ณผ๊น์? final class ViewController: UIViewController { private var label: UILabel = { let label = UILabel() label.text = "welcome back to my channel" label.translatesAutoresizingMaskIntoConstraints = false return lab..
Apple ๊ณต์ ๋ฌธ์์์ ๋ฐ๋ ค์จ ์บก์ณ๋ณธ์ผ๋ก, Apple์ ๊ณต์์ ์ผ๋ก left/right constraint ๋ณด๋ค leading/trailing์ ์ฌ์ฉ์ ๊ถ์ฅํ๊ณ ์์ฃ ! left/right constraint vs leading/trailing constraint ์ฐ์ left/right์ ์ฌ์ฉ์๊ฐ ๋ณด๋ ํ๋ฉด์์ ์ผ์ชฝ๊ณผ ์ค๋ฅธ์ชฝ ์์น ์์ฑ์ด์์. ๋ฐ๋ฉด์ leading/trailing์ reading direction์ ์์๊ณผ ๋์ ๋ํ๋ด๋ ์์น ์์ฑ์ด๋๋๋ค. reading direction? ์ฐ๋ฆฌ๊ฐ ์ฃผ๋ก ์ฌ์ฉํ ์ค ์๋ ์ธ์ด(ํ๊ตญ์ด, ์์ด)๋ ๊ธ์ ์ผ์ชฝ โ ์ค๋ฅธ์ชฝ ์์ผ๋ก ์ฝ์ฃ ? ์ด๋ ๊ฒ ์ฝ๋ ๋ฐฉํฅ์ 'reading direction'์ด๋ผ๊ณ ํ๋๋ฐ default reading direction์ ์ฌ์ฉ์๊ฐ ์ค์ ํ..
Auto Layout์ ์ฝ๋๋ก ์์ฑํ ์ ์๋ ๋ฐฉ๋ฒ์๋ 3๊ฐ์ง๊ฐ ์์ด์. [1] Layout Anchor๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ [2] NSLayoutConstraint class๋ฅผ ์ง์ ์ด์ฉํ๋ ๋ฐฉ๋ฒ [3] Visual Format Language๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ ๊ฐ๊ฐ์ ํ๋์ฉ ์ฅ๋จ์ ๊ณผ ํจ๊ป ์ดํด๋ณผ๊น์? Layout Anchor ์ ํํ ๊ฐ์ฅ ์ต์ํ ๋ฐฉ๋ฒ์ ์ ์ผ ์ฒซ๋ฒ์งธ์ธ layout anchor๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด์์. ์ ์ฝ์ ์ฃผ๊ณ ์ถ์ item์ anchor property์ ์ ๊ทผํด์ ์ ์ฝ์ ์ ์ํ๋ ๋ฐฉ์์ ๋๋ค. ์ฅ์ ์ผ๋ก๋, 1. ๊ฐ๊ฒฐํ ์์ฑ ๋ฐฉ์์ผ๋ก ์ธํ ๋ฐ์ด๋ ๊ฐ๋ ์ฑ 2. type safety๋ฅผ ์ง์ ์ด ์์ต๋๋ค. ๋๋ฒ์งธ ๋ฐฉ๋ฒ์ธ NSLayoutConstraint class๋ฅผ ์ฌ์ฉํ๋ฉด constraint in..
์ง๋จ ์ง์ฑ์ผ๋ก ๋ชจ์ธ ๋ค์ํ ๋ฉด์ ์ง๋ฌธ๋ค์ ๋ชจ์ ๊ณต๋ถํ๊ณ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํด์. ์ถ์ฒ๋ ๋ชจ๋ ์๋์ ๋ช ์ํด ๋์๊ณ , ์ต๋ํ ๋ง์ด ์ฑ์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค! iOS Frame๊ณผ Bounds์ ์ฐจ์ด [๋ฐ๋ก๊ฐ๊ธฐ] ViewController์ ์๋ช ์ฃผ๊ธฐ์ ๋ํด ์ค๋ช ํ์์ค. [๋ฐ๋ก๊ฐ๊ธฐ] setNeedsLayout์ setNeedsDisplay์ ์ฐจ์ด์ ๋ํด ์ค๋ช ํ์์ค. App์ Not running, Inactive, Active, Background, Suspended์ ๋ํด ์ค๋ช ํ์์ค. ์ฑ์ด In-Active ์ํ๊ฐ ๋๋ ์๋๋ฆฌ์ค๋ฅผ ์ค๋ช ํ์์ค. URLSession์ ๋ํด ์ค๋ช ํ์์ค. [๋ฐ๋ก๊ฐ๊ธฐ] prepareForReuse์ ๋ํด์ ์ค๋ช ํ์์ค. [๋ฐ๋ก๊ฐ๊ธฐ] Auto Layout AutoLayout์ ์ฝ๋๋ก ์์ฑํ๋ ๋ฐฉ๋ฒ..
- Total
- Today
- Yesterday
- ๋ถ์คํธ์บ ํ2020
- ์ผ์ฑ
- SWIFT
- ๋ณด์
- C++
- ์ธํด
- ์ผ์ฑ์ํํธ์จ์ด์์นด๋ฐ๋ฏธ
- TableView
- ์ํํธ์จ์ด์์นด๋ฐ๋ฏธ
- nosql
- swacademy
- ์ฝ๋ฉํ ์คํธ
- ios
- ์ปค๋ฅํธ์ฌ๋จ
- ์ปด๊ณต์กธ์
- ์๊ณ ๋ฆฌ์ฆ
- ์ปดํจํฐ๊ณตํ
- OS
- ๋ถ์บ
- RxSwift
- ๊ฐ๋ฐ์์ธํด
- ๋ฐ์ดํฐ๋ถ์
- ์กธ์ ์ํ
- ํ๋ก๊ทธ๋๋จธ์ค
- ์ปด๊ณผ์กธ์
- ๋ถ์คํธ์บ ํ
- ์ฝํ
- firebase
- ์ํํธ์จ์ด์ญ๋์ํ
- ์ด์์ฒด์
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |