전체 글
-
[맵모] 중간 회고6 (240320)회고 2024. 3. 20. 21:08
# 😟 경험한 이슈 수정 기능에서 기록에 등록된 장소를 변경하는 작업을 구현하고 있었다. 먼저 구현 로직을 정리하고, 로직대로 구현하였다. 1. 기존에 등록되어 있던 records List에서 수정하려는 record를 삭제한다. 2. 새로운 장소의 records에 record를 추가한다. 하지만 이 로직에는 흠이 있었다. 기존에 등록되어있던 records에서 record가 삭제되지만, 만약 삭제 후 records의 개수가 0개라면, Realm에 그대로 남아있게 되고, 불필요한 데이터가 계속해서 쌓이는 문제가 발생하기 때문이다. 따라서 write transaction의 바깥에서 Realm 데이터를 변경하려고 한다. write transaction 안에서만 수정이 가능한데, 지금 write transacti..
-
[맵모] 중간회고4 (240318)회고 2024. 3. 18. 21:30
# 📖 오늘 학습한 내용 선택된 날짜에 해당하는 기록들을 조회하고자 캘린더를 사용하기 위해 FSCalendar를 학습하였다. let calendar = FSCalendar() // 요일을 나타내는 Weekday의 언어 설정 calendar.locale = Locale(identifier: "ko_KR") calendar.appearance.weekdayTextColor = ColorStyle.customBlack calendar.appearance.titleFont = .pretendard(size: 15, weight: .regular) calendar.appearance.eventSelectionColor = ColorStyle.mapmoColor // 헤더 설정 calendar.appearance...
-
[iOS] Moya를 사용한 NetworkingiOS 2024. 3. 17. 21:42
안녕하세요 코냥입니다:) 오늘 알아볼 것은 Moya라는 라이브러리 입니다! 제목에서 알 수 있듯이 Moya를 사용해서 네트워킹을 할 수 있습니다. 그렇다면 우리는 URLSession이나 Alamofire가 있는데 Moya는 뭐가 다르냐! 라고 궁금해하실 수 있는데욧!!.! iOS에서 네트워킹을 할 때 기본적으로 쓰이는 게 URLSession입니다. 하지만 이 URLSession을 추상화하여 더 간편하게 사용할 수 있도록 한 라이브러리인 Alamofire를 많이들 사용합니다. 여기서 Alamofire를 한번 더 추상화하여 구현된 라이브러리가 바로 Moya입니다! 기존 구조에서 존재하는 문제점은 크게 3가지입니다. 어디서 부터 시작할지 시작이 어렵다. 유지보수가 어렵다. 유닛 테스트 작성를 작성하기 어렵다...
-
[SwiftUI] @State, @Binding, @ObservedObject, @EnvironmentObjectSwiftUI 2024. 3. 17. 21:40
안녕하세요 코냥입니다! 이번 포스팅에서는 SwiftUI에서 데이터를 어떻게 보여주는지(데이터 바인딩)를 처리하는 핵심 요소를 알아보겠습니다. @State State | Apple Developer Documentation A property wrapper type that can read and write a value managed by SwiftUI. developer.apple.com 먼저 @State의 예제를 보겠습니다. struct ContentView: View { @State var text: String = "" var body: some View { VStack(alignment: .leading, spacing: 10) { //$가 붙으면 값을 수정가능한 Binding타입 참조합니다. ..
-
[Swift] 열거형(enumeration) (2/2) 열거형 배열로 사용, 열거형 항목 비교Swift 2024. 3. 17. 21:33
이번 포스팅에서는 열거형에서 연관 값과, 항목 순회(CaseIterable), 순환 열거형, 비교 가능한 열거형(Comparable)을 알아보도록 하겠습니다. 열거형에 처음 들어보신다면 밑에 포스팅을 읽어보고 오시면 됩니다! [Swift] 열거형(enumeration) (1/2) 열거형이란? 연관된 항목들을 묶어서 표현할 수 있는 타입 배열, 딕셔너리 같은 타입과는 다르게 프로그래머가 정의해준 항목 값 외에는 추가/수정이 불가능합니다. 그렇다면 열거형은 어떤 경 baboyuj.tistory.com 1. Associated Values(연관 값) 연관 값은 열거형 각 항목이 가지는 자신과 연관된 값을 말합니다. 말 그대로 항목과 관련된 값입니다. 연관 값은 각 항목 옆에 소괄호로 묶어 표현할 수 있습니다...
-
[Swift] 열거형(enumeration) (1/2)카테고리 없음 2024. 3. 17. 21:30
열거형이란? 연관된 항목들을 묶어서 표현할 수 있는 타입 배열, 딕셔너리 같은 타입과는 다르게 프로그래머가 정의해준 항목 값 외에는 추가/수정이 불가능합니다. 그렇다면 열거형은 어떤 경우에 사용하면 좋을까요? 제한된 선택지를 주고 싶을 때 정해진 값 외에는 입력받고 싶지 않을 때 예상된 입력 값이 한정되어 있을 때 enum Direction { case north case east case west case south } 스위프트의 열거형은 enum이라는 키워드로 선언할 수 있습니다. enum Direction { case north, east, west, south } 이렇게 case 하나에 , 를 연결하여 한 줄로 표현해줄 수 있습니다. var direction: Direction = .north ..
-
[맵모] 중간회고2 (240315)회고 2024. 3. 15. 00:34
# 😟 경험한 이슈 다른 화면으로 푸시될 때 탭바가 보이지않게 하기 위해서 TabBarController에 NavigationController를 감싼 상태로 만들었다. 하지만 TabBarController를 NavigationController의 rootViewController로 설정할 경우에, 1. 첫번째 탭인 지도 화면에서는 navigation 타이틀이 없어야 하지만 2. 두번째, 세번째 탭인 리스트 화면, 히스토리 화면에서는 navigation 타이틀이 있어야한다. -> 각 탭 화면마다 navigationController를 가져야 하지만 현재 하나의 NavigationController를 공유해서 쓰고 있기 때문에 하나의 타이틀로만 설정이 가능하다. 해결 방법 각 탭 화면마다 navigatio..
-
[iOS] 푸시 알림에서 받은 url을 웹뷰에 띄우기, postman 푸시 테스트iOS 2024. 3. 15. 00:15
앱에서 수신한 푸시 알림을 탭했을 때, 알림에서 받은 url을 웹뷰로 띄우는 방법입니다. xCode Project와 FCM Push Notification 연동은 여기를 참고해주시면 됩니다! iOS ) FCM으로 Push Notification 구현하기 ※ 원격 푸시를 구현하기 위해선 개발자 계정 멤버십이 필요합니다. 1. APNs Key 발급 1. Apple Developer Member Center > Keys에 들어갑니다. Keys 옆의 + 버튼을 눌러 키를 생성합니다. 2. Key 이름을 작성하고, baboyuj.tistory.com 테스트를 위해 푸시 서버에서 알림을 받는 대신 postman을 사용하겠습니다. 우선 postman 푸시 테스트 방법 먼저 설명드리겠습니다. 1. postman 푸시 ..