전체 글
-
[SwiftUI] .transition(.move(edge: Edge))) - 방향성있는 애니메이션을 구현해보자Swift/SwiftUI 2023. 1. 13. 23:15
구현해볼 화면 👇👇 마치 TabView Page 처럼 나타가는 화면을 직접 구현해보자 List 가 두개 있다 Bool 에 의해 촥촥 하나씩 사라지면서 하나가 나타난다 이때 어떻게 구현하면 될까? SwiftUI는 아주 쉽게 구현할수 있다 아래 코드 처럼 하나는 .leading, 하나는 .trailing 을 주면 하나는 왼쪽에서 들어오고 나가고, 하나는 오른쪽으로 들어오고 나간다 그러면 마친 TabView 의 Paging 같은 효과를 낼수 있다 ㅎ
-
[Combine] tryMap 말고 compactMap 으로 조져보자Swift 2023. 1. 13. 21:24
오늘 클론코딩을 하면서 아래와 같은 에러와 마주했다 👇👇 그리고 강제 언랩을 해주어도 사라지지 않네? 엥? 왤까.. 컴파일러가 이렇게 부정확한적이 없는데 뭐지 뭐지... 주변에 물어보니 간혹 생기는 컴바인 버그라고 하길래 일단 ㅇㅋ 하고 tryMap 을 열어보기 시작했습니다. 대충 읽어보면 Publisher 를 어레이로 받아서 하나씩 돌리는데 거기서 throw 가 발생하면 -> Subscribers.Completion.failure 로 리턴한다. 그러니까 만약 iterate 할때 throw 할일 없으면 map 쓰세요~ 라고 하네요. 그래서 map 으로 돌리면 또 에러가 납니다 참고로 UIImage in 이로 바꿔도 동일한 에러발생 그래서 나의 해결책은? compactMap 으로 조져~ 그러면 nil 이 ..
-
[TIL] 무례한 사람Life and Stuff 2023. 1. 10. 22:08
오늘 한 회사에 면접을 보러 갔다. CTO님과 이미 커피챗을 했던 터라 그분에 대한 신뢰와 유대감을 이미 갖고 있었기에 회사에 대한 기대감도 좀 있었다. 하지만 모바일팀 리드라고 하시는 분이 계셨는데 대단히 무례하다고 느꼈다.. 매우 공격적이며 나의 질문에 기분 나쁜 웃음으로 대답을 시작했다. 어떻게 저런 사람이 있나 싶었다. 클라이언트 개발자는 기술에 구분없이 많이 다양하게 알고 있어야 한다고 SwiftUI UIKit 모두 써보셨다고는 하셨지만 크로스플랫폼에 대해서는 아실지 모르겠지만 iOS 네이티브는 잘 모르신다고 느꼈다.. 더군다나 아카데미나 부트캠프 등의 이력에 대해서도 부정적인 본인의 의견을 말씀해주셨는데 다들 자기가 리드하고 주도적으로 했다고 말을 하더라 라며 못믿겠다는 식으로 내가 듣기 불쾌..
-
[Swift] GCD DispatchQueue 에 대해서Swift 2023. 1. 9. 21:58
GDC 부드럽고 원활한 앱 관리를 위해서는 Thread 와 메모리 관리가 필수적인데 그중에서 task 를 thread 에 분배하는 queue 에 대해서 알아보겠습니다. Swift 가 지원하는 Queue에는 3가지가 있습니다 👇👇 1. Main 2. Global 3. Private (Custom) 각각 어떤 특성이 있고 어떻게 언제 쓰면 좋은지 정리해보도록 하겠습니다 Main iOS 개발을 해보셨다면 적어도 한번쯤은 DispatchQueue.main.async { } 를 보셨을 겁니다. 이건 메인쓰레드에서 클로저안에 있는 코드를 실행해줘~ 입니다. 조금더 풀어쓰면 "메인쓰레드에서 실행하는 큐에 비동기적으로 코드를 실행해줘" 입니다. Queue 에는 두가지 종류가 있는데 Serial (직렬) 과 Concur..
-
[Swift] 안전하게 Array Index 하기 - subscript 직접 구현하기Swift 2023. 1. 8. 16:24
[Swift]안전하게 배열 조회하기 안전하게 배열 조회하기 배열에서 특정 위치의 값을 얻기 위해서는 배열의 크기를 체크해야하는 조건이 필요합니다. if index < array.count { // 작업 수행 } 범위를 확인하지 않고 값을 조회하면, 다 minsone.github.io Swift 의 Array 는 range 를 벗어나는 index 를 조회하려고 하면 에러가 발생하고 앱이 죽어버립니다. 이럴때 안전하게 out of range 라면 nil 을 뱉어주어서 분기처리를 해준다면 보다 안전하게 앱을 관리할수 있겠죠? subcript 란 array 에서 index 를 조회하거나, dictionary 에서 key 로 value 를 찾고자 할때 사용하는 함수입니다. 기존 👇👇 let array = [1,2..
-
[Swift] Higher Order FunctionsSwift 2023. 1. 7. 23:10
고차함수란? 다른 함수를 전달인자로 받거나 함수실해의 결과를 함수로 반환하는 함수이다. Swift 의 고차함수는 아래와 같습니다. 1. map 2. filter 3. compactMap 4. flatMap 5. reduce 하나씩 알아보도록 하겠슴다 Map 요소를 하나씩 빼와서 클로저에서 처리 후 값을 할당하고 새로운 배열 반환합니다. 아래는 요소를 2 곱한 경우입니다 let numbers: [Int] = [2, 8, 15, 9, 10] let result = numbers.map { $0 * 2 } print(result) //[4, 16, 30, 18, 20] Filter 요소를 하나씩 가지고와 비교연산하여 true 인 값만 남깁니다 비교연산하여 2로 나눠지는 짝수만 남기는 경우입니다 let nu..