๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
RxSwift Operator : Map, FlatMap Map transform the items emitted by an Observable by applying a function to each item map์€ ์ด๋ฒคํŠธ๋ฅผ ๋ฐ”๊พผ๋‹ค. E Type์ด๋ฒคํŠธ๋ฅผ R Type์ด๋ฒคํŠธ๋กœ ๋ฐ”๊พผ๋‹ค map์€ ํด๋กœ์ €์— ์—ฐ์‚ฐ ๊ฐ’์„ ๋ฆฌํ„ด์‹œํ‚จ๋‹ค observable๋กœ ๋ถ€ํ„ฐ emit๋˜๋Š” item์„ ๋‹ค๋ฅธ ํƒ€์ž…์œผ๋กœ ๋ฐ”๊พธ๊ณ  ์‹ถ์„๋•Œ map์ด ์‚ฌ์šฉ๋œ๋‹ค FlatMap transform the items emitted by an Observable into Observables, then flatten the emissions from those into a single Observable ์ด๋ฒคํŠธ๋‹น ํ•œ ๊ฐœ์˜ ์ƒˆ๋กœ์šด Observable ์‹œํ€€์Šค๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ์ƒ์„ฑ๋œ ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ƒˆ๋กœ์šด ์‹œํ€€์Šค๋ฅผ ํ•˜๋‚˜์˜ .. 2022. 4. 18.
typealias, associatedtype typealias typealias๋ž€ ํƒ€์ž…์— ๋ถ™์ผ ์ˆ˜ ์žˆ๋Š” ๋ณ„์นญ associatedtype associatedType ์€ Protocol์„ ์œ„ํ•œ Generic An associated type gives a placeholder name to a type that’s used as part of the protocol. ์ฐธ๊ณ ์ž๋ฃŒ https://docs.swift.org/swift-book/LanguageGuide/Generics.html https://woongsios.tistory.com/97 2022. 4. 15.
Xcode 13, No StoryBoard Settings with SceneDelegate 1. ํŒŒ์ผ์ง€์šฐ๊ธฐ Main.storyboard ์‚ญ์ œ 2. info.plist ์ˆ˜์ • 2-1. UIKit Main StoryBoard File Base name ํ‚ค์˜ ๊ฐ’ ์‚ญ์ œ 2-2. info.plist์˜ Storyboard Name ์‚ญ์ œ 3. SceneDelegate ์ˆ˜์ • guard let windowScene = (scene as? UIWindowScene) else { return } window = UIWindow(windowScene: windowScene) // SceneDelegate์˜ ํ”„๋กœํผํ‹ฐ์— ์„ค์ •ํ•ด์คŒ let mainViewController = ViewController() // ๋งจ ์ฒ˜์Œ ๋ณด์—ฌ์ค„ ViewController window?.rootViewController = mainViewCo.. 2022. 4. 12.
Debugging 1 : dSYM, DWARF DWARF ? DWARF๋Š” ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ํ‘œ์ค€ํ™”๋œ ๋””๋ฒ„๊น… ์ž๋ฃŒ ํ˜•์‹. ์•ฑ์ด ํฌ๋ž˜์‹œ๊ฐ€ ๋‚˜๊ฒŒ๋˜๋ฉด ์‹œ์Šคํ…œ์€ ํฌ๋ž˜์‹œ ๋ฆฌํฌํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ด๋ฅผ ๋””๋ฐ”์ด์Šค ๋‚ด๋ถ€์— ์ €์žฅํ•˜๊ณ  ํฌ๋ž˜์‹œ ๋ฆฌํฌํŠธ๋Š” ํฌ๋ž˜์‹œ๊ฐ€ ๋ฐœ์ƒํ•œ ์‹œ์ ์— ๋Œ€ํ•œ ํ™˜๊ฒฝ ์ •๋ณด๋‚˜ ๊ธฐํƒ€ ํฌ๋ž˜์‹œ ๋ถ„์„์— ์œ ์šฉํ•œ ์ •๋ณด๋“ค์„ ๋‹ด๊ณ ์žˆ๋Š”๋ฐ, ์ด๋ ‡๊ฒŒ ์ƒ๊ธฐ๋Š” ํฌ๋ž˜์‹œ ๋ฆฌํฌํŠธ DWARF ํ˜•์‹์œผ๋กœ ์“ฐ์—ฌ์žˆ๋‹ค Symbol, Symbolication? Symbol : ์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž… Symbolication : ํฌ๋ž˜์‹œ ๋ฆฌํฌํŠธ์—์„œ ๋‚˜ํƒ€๋‚˜๋Š” BackTrace์˜ ์ฃผ์†Œ๊ฐ’์„ Symbol๋กœ ์ „ํ™˜ํ•˜๋Š” ๊ณผ์ • dSYM? dSYM : debug symbol file Debug Symbol(dSYM)์€ symbol ์ค‘์—์„œ ๋””๋ฒ„๊น…์„ ์œ„ํ•ด ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ข€ ๋” ๋งŽ์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” symbol Debug .. 2022. 3. 29.
iOS FireBase Crashlytics ์ ์šฉ : CocoaPods, SPM CocoaPods์œผ๋กœ ์ ์šฉ 1. Firebase ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ => https://firebase.google.com/docs/ios/setup#create-firebase-project 2. Firebase์— ์•ฑ ๋“ฑ๋ก => https://firebase.google.com/docs/ios/setup#register-app 3. GoogleService-Info.plist ํ”„๋กœ์ ํŠธ์— ์ถ”๊ฐ€ => https://firebase.google.com/docs/ios/setup#add-config-file 4. PodFile์— pod 'firebase/crashlytics' ์ถ”๊ฐ€ 5. AppDelegate์— Firebase์— ์—ฐ๋™ํ•˜๋Š” ์ฝ”๋“œ ์ถ”๊ฐ€ => https://firebase.google.com/docs/i.. 2022. 3. 29.
SPM, Swift Package Manager SPM์ด๋ž€? Swift Package Manager๋Š” ์• ํ”Œ์—์„œ ์ œ๊ณตํ•˜๋Š” dependency manager ํŒจํ‚ค์ง€์ถ”๊ฐ€ํ•˜๋Š”๋ฒ• 1. Xcode > ํ”„๋กœ์ ํŠธ Target > Package Dependencies๋กœ ์ด๋™ 2. + ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ํŒจํ‚ค์ง€๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ํ™”๋ฉด์ด ๋‚˜์˜ค๋ฉด ์ถ”๊ฐ€ํ•  ํŒจํ‚ค์ง€์˜ repo URL์„ ์ž…๋ ฅํ•˜๊ณ  Add Package ๋ฒ„ํŠผ ํด๋ฆญ ํŒจํ‚ค์ง€ ์ €์žฅ์œ„์น˜ ํŒจํ‚ค์ง€๋Š” Xcode ํ”„๋กœ์ ํŠธ ๋‚ด๋ถ€๊ฐ€ ์•„๋‹Œ DerivedData ๋””๋ ‰ํ† ๋ฆฌ์— ์ €์žฅ /Users/{user}/Library/Developer/Xcode/DerivedData/ ํŒจํ‚ค์ง€๊ด€๋ฆฌ Xcode์—์„œ๋Š” ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ์ด 3๊ฐ€์ง€ ๋™์ž‘์„ ์ง€์› Reset Package Caches : DerivedData์— ์žˆ๋Š” ํ”ผํ‚ค์ง€ ์บ์‹œ๋ฅผ ์‚ญ์ œํ•˜๊ณ  ํŒจํ‚ค์ง€๋ฅผ ๋‹ค์‹œ.. 2022. 3. 29.