[SwiftUI] LifeCycle
·
🍎 Dev/SwiftUI
UIKit과 SwiftUI는 생명주기가 다르다.SwiftUI로 뷰를 그리고 로직을 짜다보면 viewDidLoad처럼 onAppear를 사용하다가 기대한 대로 동작하지 않았던 경험이 있었다. 검색해보니 UIKit과 달라진 생명주기 delegate와 연관이 있었어서, 두 프레임워크 중 swiftUI의 생명 주기 api를 정리해보기로 했다. 전반적인 iOS 앱 생명주기에 대한 내용은 아래 포스트에 정리한 적이 있다. https://calliek.tistory.com/28 [UIKit] 앱의 생명주기✔︎ 생명주기 (Life Cycle) 생명주기란, 앱이 최초로 실행되는 시점부터 종료되는 시점까지의 상태를 의미한다.그렇다면 이런 앱의 상태가 무엇인가 하면, "the current state of your app ..
[SwiftUI] ObservableObject, ObservedObject, Published
·
🍎 Dev/SwiftUI
회사에서 SwiftUI로 작업을 하고 있지만, 회사 프로젝트 기반인 UIKit의 그늘에서 벗어나지 못 해서 언제나 반쪽짜리 SwiftUI로 작업하는 기분이 들었다. Property Wrapper를 작업 초기에 회사 컨플루언스에 정리하고, 그 글을 다시 이 블로그에 적기도 했는데 그땐 회사에서 검색해도 뭐가 뭔지 몰라서 정의보다도 뜻을 찾아본 느낌이 강했다. 실제로 회사 프로젝트에서 해당 wrapper들을 다 활용하지 못 하기도 했고. 그래서 다시 차근차근 하나씩 간단히 예제 코드를 짜보며 공부해보고 정리하고자 한다. 참고로, wrapper 정리했던 게시글을 아래 링크의 글이다. 거창한 총정리란 타이틀과 달리 정말 정의 의주로 정리된 글이다. https://calliek.tistory.com/54#%C2%..
[SwiftUI] Navigation 1
·
🍎 Dev/SwiftUI
참여중인 회사 프로젝트에선 UIKit과 SwiftUI 프레임워크를 함께 사용하고 있는데, 탭바 등 화면전환은 UIKit을 사용 중이어서 사실 SwiftUI의 Navigation 기능을 제대로 써본 적이 없었다. 대신 틈나는대로 직관로그를 SwiftUI로 리팩토링 하고 있어서  겸사겸사 화면전환 관련 로직을 손 대기 전 사전 공부를 할겸 Navigation을 조금 뜯어보기로 했다.   참고로, 이 글에서 다룰 Navigation은 iOS 16 이상을 기준으로 작성했다. iOS 16 이전엔 NavigationView를 사용하였으나, iOS 16에선 해당 API가 deprecated가 되었다. 해당글에선 iOS 16 이상을 기준으로 작성했기 때문에 NavigationView에 대한 내용은 다루지 않을 예정이다..
[직관로그] v.1.3.1 배포
·
🏟️ 직관로그 (출시앱)/업데이트
v.1.3.1에서의 변화 - 작성화면 UIUX 개선- 경기장 추가   날짜변경- 기존엔 날짜 변경이 안 되었는데, 문의사항에 빈도 높게 있던 부분이라 수정했다. 경기장- 경기장 추가는 이전 계획대로 user가 등록하도록 로직을 수정 했다가, 잠시 보류하고 요청 있던 경기장들을 추가하는 걸로 임시로 대체했다. 이건 아마 다음 업데이트에서 진행 되지 않을 까 싶다. 얼럿- 등록을 위한 최소한의 조건을 만족하지 않으면 그때마다 얼럿을 띄웠는데, 사용자 입장에서 성가시고 해당 부분에 대해 글자수를 늘려달라는 등의 문의요청에 고민했다. 얼럿은 경기장 선택 조건 불충족 시에만 띄우고, 나머지는 글자입력수를 텍스트필드에서 지정해놓고, 조건을 충족할 때까지 버튼 비활성화 하는 방식으로 변경했다.- 사실 텍스트필드 색 ..
[SwiftUI] Infinite Carousel 구현하기 2 (feat.Timer)
·
🍎 Dev/구현
https://calliek.tistory.com/62 [SwiftUI] TabView + DragGesture로 무한 스크롤 타이머 조절하기프로모션 팝업 화면을 담당해서 만들었는데, 무한 스크롤(이미지 배열 순환) + 타이머 작동이 가능토록 구현을 해야했다. - 내가 구현하고자 한 것: 1. 첫번째 인덱스 이미지에서 왼쪽으로 스와calliek.tistory.com 문제점: - 불과 일주일 전 같은 맥락의 게시글을 작성했었는데, 해당 방식대로 구현하면 타이머가 작동 될 때 index 변경 시 애니메이션 적용이 안 되는 문제가 있었다.- 그래서 해당 글에 추가해두었던 블로그글로 전면 수정을 해보았으나, 드래그를 할 때 해당 인덱스의 화면이 드래그 되는 모습이 보이지 않고 액션이 다 끝나고 슬라이드 애니메이..
[직관로그] v.1.3.0 배포
·
🏟️ 직관로그 (출시앱)/업데이트
2024년 8월 26일 약 4개월만에 직관로그의 1.3.0 버전이 배포 되었다.   v.1.3.0에서의 변화1. 탭 변화- 기존 탭 메뉴인 [캘린더, 기록, 날씨]에서 [캘린더, 기록, 통계, 설정]으로 변경 2. 설정 탭 메뉴 변화- 자주 묻는 질문 추가- 앱 버전 추가 -> 현재 버전이 아닐 시 업데이트 유도 버튼 및 화면전환 추가- 기존 문의하기는 이메일을 보내는 형식이었으나, 현재는 구글폼으로 유도 3. SwiftUI 리팩토링- 설정 탭메뉴 + 설정 뎁스 화면은 모두 SwiftUI로 리팩토링- 통계 탭의 요약하기 화면 (툴팁, 이미지옵션필터화면) SwiftUI로 리팩토링 4. 아이콘 변경- 무료 아이콘이 아닌 직관로그라는 앱에 맞게 외주 맡긴 커스텀 디자인 아이콘 5. 마이너 수정- 캘린더의 날짜..