SWIFT
-
ArraySliceSwift 2023. 1. 12. 15:20
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐์ด๋ฒ ํฌ์คํ ์ ArraySlice์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ ์ด์ ์ Swift์์ ๋ฌธ์์ด ์ฒ๋ฆฌ์ ๋ํด ํ์ตํด๋ณธ์ ์ด ์์ต๋๋ค.split ๋ฉ์๋๋ก ๋ฌธ์์ด์ ๋ถ๋ฆฌํ ๋ ๋ฐํ๋๋ ํ์ ์ด SubSequence Array ํ์ ์ด์์ด์.์ฆ ์ฌ๊ธฐ์ ๋ค์ ํฌ์คํ ์์ ์ง๊ณ ๋์ด๊ฐ์๊ณ ํ SubSequence๋ผ๋๊ฒ์ ArraySlice์ ๋ณ์นญ์ด๊ธฐ์ ArraySlice์ ๋ํด ๊ฐ๋จํ ์์๋ณด๊ฒ ์ต๋๋ค๐ฅธํน์ ๋ฌธ์์ด ์ฒ๋ฆฌ๋ฅผ ๋จผ์ ๋ณด๊ณ ์ค๊ณ ์ถ์ผ์๋ฉด ์๋ ํฌ์คํ ์ ์ฐธ๊ณ ํด์ฃผ์ธ์!https://green1229.tistory.com/318 Swift์ ๋ฌธ์์ด ์ฒ๋ฆฌ (split vs components)์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ Swift์์์ ๋ฌธ์์ด ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ๋ ๋ ๋ฉ์๋ split๊ณผ compo..
-
Opaque TypesSwift 2023. 1. 9. 11:48
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ Swift์ Opaque Types์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ ์ฐ์ SwiftUI์์ ๊ฐ์ฅ ๋ง์ด ์ ํด๋ณผ ์ ์๋ ํค์๋๊ฐ ์์ต๋๋ค. ๋ฐ๋ก some์ด๋ผ๋ ํค์๋์ธ๋ฐ์. struct CustomView: View { var body: some View { // CustomView ๊ตฌํ } } ์ฌ๊ธฐ์ View ํ๋กํ ์ฝ ์์ some์ด๋ผ๋ ํค์๋ ๋ณด์ด์์ฃ ? ์ด๊ฒ ์ค๋ ๋ฐฐ์๋ณผ opaque type์ ๋๋ค. Swift 5.1์์ ์๋กญ๊ฒ ๋์จ Swift์ ๊ธฐ๋ฅ์ด๊ณ iOS 13๋ถํฐ ์ ์ฉ๋์ฃ . ์ ๊ทธ๋ผ ์๋ก ์ ์ฌ๊ธฐ๊น์ง๊ณ Opaque Types์ด ๋ญ์ง ์ด์ ์์๋ณด๊ฒ ์ต๋๋ค๐บ๐ป Opaque Types? opque์ ์ฌ์ ์ ์ธ ์๋ฏธ๋ ๋ถํฌ๋ช ํ๋ค๋ ๋ป์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๊ทธ๋์ ์ค๋ ํ์ตํด๋ณผ..
-
Swift์ ๋ฌธ์์ด ์ฒ๋ฆฌ (split vs components)Swift 2023. 1. 6. 09:08
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ Swift์์์ ๋ฌธ์์ด ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ๋ ๋ ๋ฉ์๋ split๊ณผ components์ ๋ํด ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ Swift ์ธ์ด์ ํน์ฑ์ ๋ฌธ์์ด์ ํ ์ธ์ด๋ณด๋ค ๋ค๋ฃจ๊ธฐ๊ฐ ์กฐ๊ธ ๊น๋ค๋ก์์๐ฅฒ ์ฝ๊ฒ Subscript๋ฅผ ํตํด Int ์ธ๋ฑ์ค ์ฐธ์กฐ๊ฐ ๋ถ๊ฐ๋ฅํ์ฌ ์ฝ๊ฒ ๋ฌธ์์ด์์์ ๋ฌธ์๋ฅผ ๋นผ์ฌ ์ ๋ ์๊ณ index๋ฅผ ํตํด์ ๊ฐ๋ฅํ๊ฒ ํด์ฃผ์ฃ . ์ด์ ๊ด๋ จํด์ Swift์์๋ ๋๋์ฒด ์ ๊ทธ๋ฐ์ง ๊ถ๊ธํ์๋ค๋ฉด ์๋ ํฌ์คํ ์ ๋จผ์ ๋ณด๊ณ ์ค์ ๋ ์ข์ต๋๋ค! https://green1229.tistory.com/286 Subscript์ ๋ํด ์์๋ณด๊ธฐ (feat.String) ์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ค๋ ํฌ์คํ ์ Subscript์ ๋ํด ์์๋ณด๋ฉฐ Swift ์ธ์ด์์๋ง ์ String์ ๋ค๋ฃฐ๋ Su..
-
addingPercentEncoding(withAllowedCharacters:)Swift 2023. 1. 2. 21:27
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ addingPercentEncoding(withAllowedCharacters:)์ด๋ผ๋ ๋ฉ์๋์ ๋ํด์ ํ์ตํด๋ณด๊ฒ ์ต๋๋ค๐ ์ ํ์ํ ๊น์? ๋คํธ์ํฌ ํต์ ์ URL ํค๋ ํ๋ผ๋ฏธํฐ๋ก ํ๊ธ์ด ํฌํจ๋ key ๊ฐ์ ๋๊ฒจ์ค๋๊ฐ ์์๊ฑฐ์์. ๊ทธ๋ด๋ ์ธ์ฝ๋ฉ์ ์๋ํ๊ณ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ํด์ง ํ์ ์ ๋ฐ๋ผ ์ธ์ฝ๋ฉ์ด ๋ฉ๋๋ค. ์ฌ๊ธฐ์๋ ํ๊ธ์ด๋ ํน์๋ฌธ์ ๋ฐ ๊ณต๋ฐฑ ๋ฑ์ด ํฌํจ๋์ง ์์๊ธฐ์ ์ ํจํ์ง ์์ URL์ ์์ฒญํ๊ฒ ๋๊ณ ์ ์์ ์ธ ๋์์ ํ์ง ์์ต๋๋ค๐ญ ์๋ฅผ๋ค์ด ์๋์ ๊ฐ์ด URL์ ๋ณด๋ด๋ฉด ๋ฌธ์ ๋ฅผ ์ผ์ผ์ผ์! let url = URL("https://itunes.apple.com/search?term=๋ชฝ์ค&entity=software"!) // ๋คํธ์ํฌ ํต์ ๋ชฝ์ค์ด๋ผ๋ key๊ฐ ๋ค์ด๊ฐ์ ๊ทธ..
-
Nib & Xib (feat. storyboard)iOS 2022. 12. 29. 10:20
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ Nib์ Xib์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค๐ UI ๊ตฌํ ์ข ๋ฅ ์ฐ๋ฆฌ๊ฐ iOS ๊ฐ๋ฐ์ ํ๋ค๋ณด๋ฉด UI ์ฆ, ํ๋ฉด์ ๊ทธ๋ฆฌ๋๊ฒ์ ๋นผ๋์ ์๊ฐ ์์ต๋๋ค. iOS์์๋ ์ด UI๋ฅผ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ํด 3๊ฐ์ง๋ฅผ ์ด์ฉํ ์ ์์ต๋๋ค. 1. ์คํ ๋ฆฌ๋ณด๋๋ก ๊ตฌํํ๊ธฐ 2. ์ฝ๋๋ก ๊ตฌํํ๊ธฐ 3. Nib, Xib๋ก ๊ตฌํํ๊ธฐ ์ฌ๊ธฐ์ ์ค๋ ์์๋ณผ ๊ฒ์ด ์ธ๋ฒ์งธ Nib, Xib๋ก ๊ตฌํํ๋๊ฒ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค๐บ๐ป ์ฐ์ ๊ทธ๋ผ Nib์ Xib์ ์ ์๋ถํฐ ์์๋ณด์์ฃ ! Nib Nib๋ Nextstep Interface Builder์ ์ฝ์์ ๋๋ค. iOS / MacOS์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ์ ์ธํฐํ์ด์ค๋ฅผ ์ ์ฅํ๋ ํ์ผ์ด์ฃ . Nib๋ UI๋ฅผ ๊ทธ๋ฆฌ๋๊ฒ์ ์์ด์ ๋ฐ์ด๋๋ฆฌ ํ์์ ์์ถ ํ์ผ์ ์ด์ฉํด ํ์ํ ํด๋์ค๋ค..
-
RxSwift๋ก ์๋ฒ ํต์ ํ๊ธฐRxSwift 2022. 12. 19. 10:51
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ RxSwift๋ฅผ ์ฐ๋ ํ๊ฒฝ์์ ์๋ฒ ํต์ ์ ํ๋ ํ์ ๋ง๋ค์ด๋ณด๊ฒ ์ต๋๋ค๐๐ป ์ฐ์ ์๋ฒ ํต์ ์ด ํ์ํ ํ๊ฒฝ์ด ์ ๋ง ํ์์ ์ด๊ณ ๋ง์๋ถ๋ค์ด RxSwift๋ฅผ ์ฌ์ฉํ๊ณ ์์๊ฑฐ์์. ๊ทธ๋ ๊ธฐ์ ์ ๋ ๋๋ฆ์ ๋ฐฉ์์ผ๋ก RxSwift๋ฅผ ์ฌ์ฉํ๋ฉด์ ์์ง์ฌ์ง ์๋ฒ ํต์ ํ ํ๋ฆฟ์ ๋ง๋ค๊ณ ์ฝ๊ฒ ์ฌ์ฉํด๋ณด๋ คํฉ๋๋ค! ๋จผ์ ๋ค์ด๊ฐ๊ธฐ์ ์ฌ์ฉ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋๊ฐ์ง์ ๋๋ค. Alamofire์ RxSwift Alamofire๋ฅผ ํตํด ์กฐ๊ธ ๋ ๊ฐํธํ๊ฒ ์๋ฒ ํต์ ์ ์ํต๋๋ค. Moya๋ฅผ ํ์ฉํ์ง ์์ ์ด์ ๋ ๋คํธ์ํฌ ๋ ์ด์ด๋ฅผ ์ถ์ํํ๊ฒ๋ฟ์ด๋ผ ์ด ๋ถ๋ถ์ ์ง์ ๊ตฌํํ๋ฉด์ ์กฐ๊ธ ๋ ์ฅ์ ์ ๊ฐ์ ธ๊ฐ์ต๋๋ค. ๊ทธ๋ผ ํ๋ฒ ๋ณด์์ฃ ๐ฅธ ์ฐ์ ๊ฐ์ฅ ๋จผ์ ๋ง๋ค์ด๋ณผ๊ฒ์ธ ์๋ฒ ํต์ ๊ท์ฝ์ ์ ํด๋ณด๋ Router ํ๋กํ ์ฝ๊ณผ ํด๋น ํ๋กํ ..
-
ํ๋ก๊ทธ๋๋จธ์ค - ๋ ํ ํฉ ๊ฐ๊ฒ ๋ง๋ค๊ธฐAlgorithm 2022. 12. 9. 14:13
์๋ ๋ฌธ์ ๋ ํ๋ก๊ทธ๋๋จธ์ค์์ ์ ๊ณตํ๋ ๋ ํ ํฉ ๊ฐ๊ฒ ๋ง๋ค๊ธฐ์ ๋ฌธ์ ์ ๋๋ค๐ง๐ป๐ป ๋ฌธ์ ์ ์ ๋๋ณด๊ธฐ ์์ ์ ์ n์ด ์ฃผ์ด์ง๋๋ค. ์ด ์ซ์๋ฅผ k์ง์๋ก ๋ฐ๊ฟจ์ ๋, ๋ณํ๋ ์ ์์ ์๋ ์กฐ๊ฑด์ ๋ง๋ ์์(Prime number)๊ฐ ๋ช ๊ฐ์ธ์ง ์์๋ณด๋ ค ํฉ๋๋ค. 0P0์ฒ๋ผ ์์ ์์ชฝ์ 0์ด ์๋ ๊ฒฝ์ฐ P0์ฒ๋ผ ์์ ์ค๋ฅธ์ชฝ์๋ง 0์ด ์๊ณ ์ผ์ชฝ์๋ ์๋ฌด๊ฒ๋ ์๋ ๊ฒฝ์ฐ 0P์ฒ๋ผ ์์ ์ผ์ชฝ์๋ง 0์ด ์๊ณ ์ค๋ฅธ์ชฝ์๋ ์๋ฌด๊ฒ๋ ์๋ ๊ฒฝ์ฐ P์ฒ๋ผ ์์ ์์ชฝ์ ์๋ฌด๊ฒ๋ ์๋ ๊ฒฝ์ฐ ๋จ, P๋ ๊ฐ ์๋ฆฟ์์ 0์ ํฌํจํ์ง ์๋ ์์์ ๋๋ค. ์๋ฅผ ๋ค์ด, 101์ P๊ฐ ๋ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, 437674์ 3์ง์๋ก ๋ฐ๊พธ๋ฉด 211020101011์ ๋๋ค. ์ฌ๊ธฐ์ ์ฐพ์ ์ ์๋ ์กฐ๊ฑด์ ๋ง๋ ์์๋ ์ผ์ชฝ๋ถํฐ ์์๋๋ก 211, 2, 11..
-
SwiftUI - refreshableSwiftUI 2022. 12. 8. 10:16
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค๐ ์ด๋ฒ ํฌ์คํ ์์๋ SwiftUI์ List์์ ์ฌ์ฉ ๊ฐ๋ฅํ refreshable์ด๋ผ๋ ์๋ก ๊ณ ์นจ ๊ธฐ๋ฅ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค๐ ์ฐ์ ํด๋น ๊ธฐ๋ฅ์ iOS 15 ๋ถํฐ ์ฌ์ฉ์ด ๊ฐ๋ฅํด์! ์ฐธ๊ณ ๋ก WWDC2021์์ ์๊ฐ๋์์ต๋๋ค. ๋น๊ต์ ์ด๋ป๊ฒ ๋ณด๋ฉด ์ต์ ๋ฉ์๋์ด๊ธฐ์ ํ์ ์์ 13, 14๋ถํฐ ์ง์์ ํ๋ค๋ฉด ์ฌ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ ์ง๋ง ์์ผ๋ก ๋ฏธ๋๋ฉ ํ๊ฒ์ ์ ์ฐจ ์ฌ๋ ค๊ฐ๊ฒ์ด๊ณ ๋ฐฐ์๋๋ฉด ์ข๊ธฐ์ ์ด์ฐธ์ ํ๋ฒ ํธ๋ผ์ด ํด๋ด ๋๋ค๐ ์ฌ๋ฌ๋ถ ๋ชจ๋ ํ ์ด๋ธ๋ทฐ ํน์ ์ปฌ๋ ์ ๋ทฐ๋ก ๋ ์ฆ, ๋ฆฌ์คํธ๋ก ๋ฐ์ดํฐ๊ฐ ๋ฟ๋ ค์ง ๋ทฐ์ ๊ฒฝ์ฐ ์ต์๋จ์์ ์๋๋ก ๋๋๊น ์ ์๋ก ๊ณ ์นจ์ด ๋๋ฉด์ ๋ฐ์ดํฐ๋ฅผ ์ต์ ์ผ๋ก ๊ฐฑ์ ํ๋ ๊ทธ๋ฐ ๊ธฐ๋ฅ์ ๊ฐ์ง ์ฑ์ ์์ฃผ ๋ง์ด ๋ณด์ จ๊ณ ์ต์ํ์ค๊ฑฐ๋ผ ์๊ฐํฉ๋๋ค. ๋ชจ๋์๊ฒ ์ฌ์ค์ ์น์ํ ๊ธฐ๋ฅ์ด๊ธดํ๋ฐ SwiftUI..