1. KMP, NoClassDefFoundError: Failed resolution of
·
어플 개발일기
애러 발생 과정- Android Room DB 객체 DI를 Koin으로 진행 애러 발생 원인- KMP는 CommonModule과 각 플랫폼 모듈을 코틀린으로 작성하여 공유함- A)CommonModule의 특정 경로 A/B/C/RoomDatabase.kt에 RoomDatabase 관련한 생성 로직 작성- B) 플랫폼 모듈의 같은 경오 A/B/C/RoomDatabase.kt에 RoomDatabase 관련한 Util 로직 작성(확장 함수 등) 위와 같이 같은 경로에 같은 명칭의 파일을 생성하게되면, KMP 그래들 Plugin에 설정된 빌드 Task에 의해 B)파일이 A)파일을 덮어 인식하게 된다.(KMP 빌드는 Common -> 플랫폼 Main 순으로 진행되므로, 같은 파일이 있으면 덮어씀) 같은 파일명은 쓰..
MutableStateFlow(Kotlin) -> CurrentValueSubject(swift)
·
어플 개발일기
안드로이드 앱에서 MutableStateFlow를 사용하고 이 stateFlow를 Observing하여 항상 최신의 데이터로 view를 뿌려주고 있었음 이와 같은 동작을 하는 Observable객체가 있는지 알아 봄 바로 Combine에 포함된 객체가 이와같은 동작을 함 https://developer.apple.com/documentation/combine Combine | Apple Developer DocumentationCustomize handling of asynchronous events by combining event-processing operators.developer.apple.com 모든 걸 지금 알아볼 수는 없고 필요한 내용만 정리하겠음 Observe 할 수 있는 객체가 Swif..
코루틴에 대해서 공부
·
어플 개발일기
1. 코루틴이란 "경량 쓰레드?" "루틴?" "코틀린 코루틴?""비동기 처리를 하기 위한 하나의 방법론, 그 방법은 중단, 재개임"다양한 언어에서 Coroutine을 지원함"Kotlin, GoRoutine, C++20~.."---------------------------------------------------------------------------------------------------2. 페이지코루틴을 이해하기 하기 위한 그림을 하나 보겠음"(일반적인 길(fun)) 화살표 표시"일반적인 함수는 루틴이라고 하여 호출과 return까지의 길은 하나임 (일반적인 길(표지 suspend))  (중간에 구멍) -> (표기) -> 다른터널코루틴은 이런 루틴한 길을 가다가 잠시 멈춰야 하면 출구가 나오..
24.7.31. 네트워크 중복 호출과 Flow오류 수정
·
어플 개발일기
이번에 Reposiory에 데이터를 저장하고, ViewModel을 통해 노출 시킨 뒤 해당 데이터를 Composable에서 사용하는 로직으로 변경했더니 뷰에 표현이 안되는 오류가 발생했다. //Repositoryprivate val _gatheringData = MutableStateFlow>(emptyList())val gatheringData: StateFlow> get() = _gatheringData//ViewModel데이터 노출val gatheringPostingData get() = gatheringRepository.gatheringData//UI에서 데이터 이용val gatheringFlow by plazaViewModel.gatheringPostingData.collectAs..
24.7.29. AGP 8.5.1 업데이트와 환경설정(SDK, JVM 등)
·
어플 개발일기
23.11월 출시되었던 AGP 8.2.0을 사용하고 있다가이번에 8.5.1로 업데이트하였다. AGP(Android Gradle Plugin) API중 CommonExtension의 인자가 5개였는데 이번에 6개로 증가하면서 빌드에 문제가 생긴 김에 한번 더 알아보려고 한다. 안그래도 이번 '모'기업 면접에서 Gradle 질문이 나왔었는데.. 생각치 못한 질문이 들어와서 어버버 했던 기억도 있으니 한번 업데이트하면서 잊어먹은 내용을 앱개발에 필요한 부분만 간단히 찍먹해보려고 한다. 면접질문은 이거였다.... "Gradle을 전공자가 아닌 사람에게 간단히 설명한다면 어떤것인가" 내 대답은 토목공학과 답게 "건축물을 올리는데 목재라던지 다른 재료들이 있는데, 이런 재료를 가지고 하나의 건물을 지을때 도움을 ..
24.7.28-29. 앱 내에서 게시글 동기화 문제 해결
·
어플 개발일기
내가 만든 앱에는 모임을 보고 참여, 탈퇴 등을 할 수 있는데이러한 기능은 다음과 같은 뷰에서 제공한다. 1. 모든 모임 글을 보여주는 화면2. 모임 글 상세 화면3. 내가 만든 모임글4. 내가 참여한 모임글5. 참여한 모임에 대한 채팅방 리스트6. 해당 모임의 채팅방등등 모임글과 관련된 다양한 화면이 존재한다. 뷰마다 다른 ViewModel을 사용하는 뷰도 존재하여.각 화면에서의 동작을 동기화 시켜주는 부분에서 어려움이 있었다.(내가 Repository를 API처럼 사용하고 받은 데이터 관리(DB저장을 제외)는 ViewModel에서 직접 관리하는 방식을 사용해서 생긴 문제) 예를 들어, "특정 모임의 채팅방 내부(6)"에서 탈퇴를 하더라도다른 ViewModel을 사용하고 있는 "내가 참여한 모임글(4)..
리워크
'어플 개발일기' 카테고리의 글 목록