728x90 iOS15 [iOS] SwiftUI 약관 동의 화면, 전체 동의 Checkbox 만들기 [iOS] SwiftUI 약관 동의 화면, 전체 동의 Checkbox 만들기 회원가입이 있는 서비스나 뭔가 전체 선택을 하게 하는 체크박스가 있는 경우, 위와 같은 동작을 생각하고 코드를 구현해야 한다. 처음엔 쉬울 줄 알았는데, 만들다 보니 난도가 있는 것 같아 정리하기 위해 포스팅을 한다. /// TODO:/// - 모두 선택되어 있지 않을 때, 전체 동의를 누를 때 모든 체크박스가 on 상태가 된다/// - 모두 선택되어 있을 때, 전체 동의를 누르면 모든 체크박스가 off 상태가 된다./// - 모두 선택되어 있을 때, 전체 동의하기 체크박스는 on 상태이다./// - 모두 선택되어 있을 때, 전체 동의를 제외한 체크박스 하나를 누르면 전체 동의하기 체크박스는 해제된다. 네 가지 요건을 만족시키.. 2024. 8. 9. [iOS] SwiftUI Navigation BackButton 일괄 변경하기 [iOS] SwiftUI Navigation BackButton 일괄 변경하기 네비게이션 백버튼을 일괄적으로 변경해야 했다. 일반적으로 블로그에는 백버튼을 이전 뷰에서 navigationItem을 설정해주는 방식으로 적용을 해주지만, 뷰가 수십개라면...? 물론 복사하기 붙여넣기 열심히 하면 되지만, 적용이 안되는 뷰가 있을 수도 있으며, 그거 일일이 다 찾아서하는 것은 너어어어무 귀찮은 일이라는 생각이 들었다. 그래서 어딘가에서 백버튼을 일괄적으로 설정해줄 수 있지 않을까?라는 한낱 희망을 붙잡고 일괄 변경하는 코드를 만들어 보았다. 1. AppDelegate 준비 SwiftUI의 경우 AppDelegate가 없다. 그래서 만들어주어야 한다. 뭐 다른 API를 쓴다고 하면 분명히 이전에 만들어둔 것.. 2024. 8. 8. [iOS] 앱 버전 체크 기능 만들기(강제종료) [iOS] 앱 버전 체크 기능 만들기(강제종료) 개발자가 앱을 업데이트했는데, 기존과는 완전히 다른 데이터 구조로 변경하였거나, 사람들이 써야만 하는 기능을 추가한 경우에는 업데이트를 강제할 필요가 있다. 출근 전 상태를 점검하는 것처럼 앱도 앱스토어의 앱버전과 비교해서 중요 업데이트가 올라와 있으면 앱을 실행시키지 않고 앱을 강제로 업데이트하게 할 수 있는 방법을 구현해 보았다. 아래에서는 소프트웨어 버전 관리 "major.minor.patch" 중 minor 버전이 올라갔을 때, 앱 스토어 버전과 비교하여 업데이트 경고창을 띄우는 방법을 알아보겠다. 0. 사전 준비사항 : 앱 스토어에 등록이 되어 있어야 한다.: 물론 앱은 존재해야 한다. -> 앱 스토어의 앱 버전과 현재 빌드하려는 앱의 버전을 .. 2024. 8. 7. [iOS] Firebase만 가지고 리더보드 만들어보기 [iOS] Firebase만 가지고 리더보드 만들어보기 사용자의 점수를 가지고 랭킹을 구성해야 되는 메인화면을 만들어야 했다. 유저들이 쌓는 출석 누적점수에 따라 순위가 변동되는 뷰를 만들어야 했는데, 어떻게 만들지 고민이었다. 순위를 보여줄 수는 있는데 그러면 동점자를 어떻게 해야 할 것이며, 매번 users를 전부 쿼리로 줄을 세워서 가지고 올 수도 있는데 이러면 근처의 랭킹은 어떻게 가져올 것이며, 누군가 조회를 하는 도중에 점수를 올렸다면 어떻게 대응할 것이며... 이런 여러 가지 것들의 문제상황을 생각했었다. 이 부분들을 해결하기 위해 리더보드 구현하는 방법을 서칭 하다가 Redis로 리더보드를 구현하는 방법을 보았는데, Firebase로도 비슷하게 따라 할 수 있을 것 같아서 진행시켜 보았다.. 2024. 7. 29. [iOS] Naver Search API로 지역 검색 구현하기 [iOS] Naver Search API로 지역 검색 구현하기 이전에 MapKit을 활용하여 장소를 검색하는 기능을 만들어본 적이 있었다.2024.01.07 - [iOS] - [iOS] MapKit 주소 자동검색 구현하기 [iOS] MapKit 주소 자동검색 구현하기[iOS] MapKit 주소 자동검색 구현하기 카뮤 프로젝트에서 iOS 앱으로 주소검색을 하고, 검색된 주소를 탭 하면 다음화면으로 넘어가서 그 위치를 맵에 찍어주는 기능을 개발해야 했다. 카뮤는 네이masterpiece-programming.tistory.com이번에는 MapKit이 아니라, Naver Search API를 활용하여, 체육 시설만을 검색하여, 화면에 나타내보는 것을 해보려고 한다. 이 기능을 구현하기 위해서는 Naver S.. 2024. 7. 22. [iOS] 커스텀 버튼 컴포넌트 하이라이트 처리 [iOS] 커스텀 버튼 컴포넌트 하이라이트 처리 이 화면의 버튼을 구현해야 했다. 이 버튼이 이 화면에 한정해서 나오지 않기 때문에, 버튼 컴포넌트를 만들어서 구현해보았다. final class LargeSelectButton: UIButton { private let iconImageView: UIImageView = { let imageView = UIImageView() imageView.contentMode = .scaleAspectFit return imageView }() let topTitleLabel: UILabel = { let label = UILabel() label.font = UIFont.carmuFont.headline1 label.textColor = UIColor.semant.. 2024. 1. 8. 이전 1 2 3 다음 728x90