본문 바로가기

Android65

[Android/Kotlin] Room의 3요소와 역할은 뭘까? ❓ RoomDB 란??SQLite 데이터베이스를 더 쉽게 사용할 수 있도록 도와주는 ORM(Object-Relational Mapping) 라이브러리다.RoomDB를 사용하면 DB와 앱 간의 데이터 작업을 간소화하면서도, SQLite의 강력한 기능까지 활용할 수 있다는 이점이 있다. 주요특징SQLite위에서 작동해서, 복잡한 SQL쿼리를 작성하지 않고 데이터 효율적으로 관리가능컴파일시점에 SQL문법검사를 수행해, 오류 줄여줌 (런타임 오류 감소)테이블과 객체간의 변환이 자동으로 처리됨 (데이터 매핑)Room은 LiveData, Flow같은 라이프사이클 인식컴포넌트와 잘 통합되어, 반응형 프로그래밍에 적합함백그라운드 작업최적화-> 데이터 작업은 기본적으로 백그라운드 스레드에서 수행하도록 되어있는데, 얘는 .. 2024. 6. 23.
[Android/Kotlin] 프래그먼트간 데이터를 공유하는 ViewModel 카카오맵에서 라벨(마커)를 눌렀을때 bottomSheet가 나오는데,마커를 눌렀을때 지역에 따라 bottomSheet의 데이터가 다르게 나왔으면 했다 마커를 눌렀을때 MapFragment에서 데이터를 받아오는것까지는 성공했다그런데 그 받아온 데이터를 뿌려줄곳이 MapFragment가 아니라 BottomSheetFragment였다.즉, 서로 다른 Fragment에서 같은 viewModel데이터를 공유해야되는 상황이였다 그럴땐 sharedViewModel을 사용해서 viewModel을 선언할때 activityViewModels()로 선언하면, 서로 다른 Fragment에서 같은 viewModel데이터를 공유해서 사용할 수 있다!!!(한쪽 프래그먼트에서는 Data를 Update하고, 다른 한 프래그먼트에서는 .. 2024. 6. 5.
[Android/Kotlin] Navigation Component 구현 ❓Navigation Component란???- 안드로이드 Jetpack의 일부로, 앱 내에서 화면전환(네비게이션)을 관리하는데 도움을 주는 라이브러리!!- 프래그먼트나 엑티비티 간의 이동, 인자(데이터)전달, 애니메이션, 앱바와의 통합을 간편하게 처리할 수 있도록 한다. 💻 구현하기이제 직접 구현해보면서 알아보자. 먼저 build.gradle에 아래 코드들을 추가해준다plugins { id 'kotlin-kapt'}dependencies { implementation("androidx.navigation:navigation-fragment-ktx:2.7.7") implementation("androidx.navigation:navigation-ui-ktx:2.7.7")}build.. 2024. 5. 28.
[Android/Kotlin] KakaoMap API Android v2 사용하기 💻 구현하기kakaomap api를 사용해서 지도를 띄워보는 것을 해볼것이다 kakaomap api v1은 2024년 6월달에 종료된다고해서 v2로 진행했다바뀐지 얼마안돼서 블로그 자료가 진짜 없다,, 정말 공식문서만 보고해야되는 상황,, 이참에 공식문서 보는법 제대로 배워야겠다 https://developers.kakao.com/ Kakao Developers카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.developers.kakao.com 먼저 위 링크에 들어가서 [내 애플리케이션]에 들어가서 "애플리케이션 추가하기"를 눌러서 앱을 추가해줘야한다 작성하고 저장을 눌러준뒤왼쪽바쪽에 있는 앱키를 누르면 네이티.. 2024. 5. 27.
[Android/Kotlin] [Flow] collect과 collectLatest의 차이점? collect는 flow에서 발행되는 모든 데이터를 순서대로 처리하는데 반해,collectLatest는 flow에 새로운 데이터가 들어오면 기존 suspend 작업을 버리고 새로운 suspend 작업을 수행한다 paging에서는 flow 데이터가 시간에 따라 계속 갱신되고 기존 데이터는 무효화되는 구조를 갖고 있으므로 구글은 UI에 expose하는 데이터에 대해서는 collect가 아닌 collectLatest를 쓰도록 권장하고 있다https://medium.com/androiddevelopers/fetching-data-and-binding-it-to-the-ui-in-the-mad-skills-series-cea89868b3e1 # collect과 collectLatest의 차이점은 무엇일까?F.. 2024. 5. 27.
[Android/Kotlin] Flow 란? (StateFlow, SharedFlow) Flow는 LiveData의 Android 플랫폼 종속적이고 UI가 없는 곳에서 LiveData를 사용하기가 어렵다언어 의존성(kotlin)만 지니는 domain layer 에서는 liveData를 쓰기 어렵다위의 두 문제를 해결하기위해 탄생함 즉, Flow를 사용하면클린아키텍처 관점에서 LiveData는 플랫폼 종속적이므로 Domain 계층에 사용할 수 없지만, Flow는 Domain 계층에 사용할 수 있다결과를 필터링하는 등의 다양한 기능을 하는 함수들을 사용할 수 있다크게 위와같은 장점이 있다 # Flowfun simple(): Flow = flow { // flow builder for (i in 1..3) { delay(100) // pretend we are doing.. 2024. 5. 26.