본문 바로가기

SwiftUI6

SwiftUI) Preview 크래시 발생 사례 (EnvironmentObject) 스유를 사용하다보면 Preview에서 크래시가 종종 일어난다. 사실 이전에 Preview 크래시 관련 글을 작성했었는데, 그땐 일반적인 문제보다 특수 경우였고 xcode 버그로 판명났다. 근데 그 글이 구글에 Preview 크래시 관련해서 검색하면 제일 상단에 떠서 사람들 유입이 계속 있었다. 그래서 개발하던 도중 많이 봐왔던 사례에 관해 글을 쓰려고 한다. 일반적으로 코드에 문제가 있는 경우 xcode 자체에서 오류를 발생시켜서 개발자가 인지하게 해준다. 하지만 Preview 크래시의 경우 xcode가 안잡아주는 경우가 있고 그래서 뭐가 문젠지 모를 때가 많다. 글 이해에 도움을 줌 - 사례를 순서대로 읽으시는 것을 권장 - 코드를 긁어다가 주석을 해제해서 비교하기 Data binding, Enviro.. 2024. 1. 17.
SwiftUI)토스 주식 탭 애니메이션 구현하기 구현환경 iOS 16.4 +, iPhone 14 Pro Max 기준으로 SwiftUI를 사용하였다. 다크모드 대응은 따로 안했다. 내 폰이 12프맥이라서 실제 토스 앱과 사이즈를 비슷하게 하기 위해 이번에도 14프맥을 기준으로 구현했다. 목표 애니메이션 구현 + 애니메이션이 포함된 뷰를 구현하기 1. 목표 애니메이션: 토스증권 옆 종합지수가 번갈아가면서 보여지는 애니메이션 2. 네비게이션 바 부분: 스크롤이 올라가면서 서서히 드러나는 1번과 동일한 애니메이션 3. 내 주식 & 오늘의 발견 버튼 부분 - 스크롤이 올라가면 네비게이션바 부분까지만 올라갔다가 이후엔 고정되어 네비게이션바의 역할을 함 - 버튼을 누르면 탭이 바뀌고, 버튼 밑의 라인이 옆으로 매끄럽게 이동함 과정 및 고민 1. 애니메이션 구현부 .. 2023. 6. 6.
SwiftUI) 토스 애니메이션 구현해보기 앱에 필요한 것은 사용자가 원하는 서비스를 제공하는 것, 사용성이 있다. 토스 앱을 사용해보면 상큼발랄한 애니메이션이 여기저기 보이고 이로 인해 앱에서 젊은 바이브와 간편하다는 느낌을 받을 수 있다. 토스 앱에 들어간 애니메이션 중 하나를 구현해보았다. 구현환경 iOS 16.0 +, iPhone 14 Pro Max 기준으로 SwiftUI를 사용하였고 사용된 라이브러리는 로티(Lottie)이다. 내 폰이 12프맥이라서 실제 토스 앱과 사이즈를 비슷하게 하기 위해 14프맥으로 설정했다. 목표 애니메이션 구현 + 애니메이션이 포함된 뷰를 구현하기 과정 및 고민 1. 셀모양을 Rectangle()로 할지 VStack에 백그라운드를 줄지 고민이 됐다. Rectangle로 하면 오버레이나 ZStack으로 UI들을 .. 2023. 5. 23.
API호출 후 데이터 가공해서 서버에 저장하기(2) (SwiftUI) 앞글에서 API를 이용하여 1️⃣데이터 호출에 대해 다뤘다. 이번 글에선 2️⃣먼저 호출한 데이터로 다른 데이터를 호출하는 것부터 이후 3️⃣,4️⃣까지 마무리할 것이다. 1️⃣✅ 데이터 호출 -> 2️⃣호출한 데이터를 가지고 한번 더 호출 -> 3️⃣데이터 파싱 -> 4️⃣Firebase 올리기 앞글 링크: https://yahoth.tistory.com/6 API호출 후 데이터 가공해서 서버에 저장하기(1) (SwiftUI) 향수 관련 앱을 만들기 위해 향수의 정보 데이터가 필요했다. 팀 프로젝트 때 Sephora에서 제공해주는 향수 데이터를 가져다 썼었다. 그 과정에서 우리 팀은 '데이터호출 / 데이터가공' 로 역할을 yahoth.tistory.com 2️⃣호출한 데이터를 가지고 한번 더 호출 앞의.. 2023. 4. 3.
API호출 후 데이터 가공해서 서버에 저장하기(1) (SwiftUI) 향수 관련 앱을 만들기 위해 향수의 정보 데이터가 필요했다. 팀 프로젝트 때 Sephora에서 제공해주는 향수 데이터를 가져다 썼었다. 그 과정에서 우리 팀은 '데이터호출 / 데이터가공' 으로 역할을 나누었다. 호출을 계속 시도하던 중 데이터가 형태가 일치하지 않는 것을 알고 가공으로 넘어가게 됐다. 호출을 하다말아서 아쉬움이 남았고 내껄로 만들자 해서! 그 과정을 공부해보았고 기록하고자 한다. API: RapidAPI 데이터: Sephora 가공: Xcode, Swift 서버: Firebase Firestore 과정 이번 글에선 1️⃣데이터 호출에 대해 다뤄볼 것이다. 1️⃣데이터 호출 -> 2️⃣호출한 데이터를 가지고 한번 더 호출 -> 3️⃣데이터 파싱 -> 4️⃣Firebase 올리기 본론에 들어.. 2023. 3. 31.
[이해하기 어려웠던 개념] filter (feat. 연산프로퍼티, Toggle) SwiftUI tutorial을 따라하며 공부 중 이해가 어려웠던 개념이 있다. 데이터에 대한 간단한 설명을 하자면 아래의 json파일은 하나의 landmark 이고, 각지의 Landmark들을 모아서 파싱한 배열이 landmarks 이다. 그리고 이해가 안됐던 문제의 코드를 보여드립니다. //toggle에 바인딩 되는 bool 값 @State private var showFavoritesOnly = false //List에 뿌려지는 배열(조건에 따라 다른 항목을 반환하는 연산프로퍼티) var filteredLandmarks: [Landmark] { landmarks.filter { landmark in (!showFavoritesOnly || landmark.isFavorite) } } List { T.. 2022. 12. 8.

TOP

Designed by 티스토리