일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 로그인
- 파이어베이스
- 뷰
- coroutine
- NavController
- 코딩테스트
- 컴포즈
- sharedFlow
- Android
- 회원가입
- Kotlin
- 플레이스토어
- Authentication
- XML
- Jetpack
- MVVM
- Build variants
- 리사이클러뷰
- Compose
- 알고리즘
- 커스텀뷰
- DiffUtil
- 안드로이드
- NavHost
- ListAdapter
- Flow
- 코틀린
- cleanarchitecture
- UiState
- 클린아키텍처
- Today
- Total
목록Compose (6)
Grusie 안드로이드 개발 기술 블로그
지난 시간까지 파이어베이스 인증(Auth)을 활용하여, 이메일 회원가입/로그인을 구현하였다.이번 시간부터 파이어스토어에 유저 정보를 저장하고, 가져와 화면에 뿌려주는 것을 해보려고 한다.이전 게시글2024.03.21 - [안드로이드 개발] - [Android] 파이어베이스 이메일 회원가입 - 3 (인증 및 자동 로그인) [Android] 파이어베이스 이메일 회원가입 - 3 (인증 및 자동 로그인)이전 게시글까지 이메일 인증을 구현하였고, 이제는 온전한 회원가입을 진행하기 위해, 이메일과 비밀번호로 진짜 회원가입을 진행하고 자동로그인을 처리하는 것까지 진행해보자. 이 전 게시grusie.tistory.com 파이어스토어 데이터베이스 생성위치를 설정해주어야 하는데, 기본 값으로 하기로 했다. 자세한 위치설정..
안드로이드 상태를 관리하는 것은 Ui와 Event로 나눌 수 있다.필자는 기존에 UiState로만 상태 관리를 하였으나, StateFlow나 LiveData 같은 경우 동일한 State를 방출했을 때, 변화를 감지하지 않기 때문에 문제가 발생하게 되었다.(같은 이벤트 처리)어떻게 해결하면 좋을지 찾아보던 중, Shared Flow를 사용해 EventState를 분리하여 관리하게 되면 문제가 해결 된다는 것을 알게 되었다. 기존 처리 방식- LiveData 혹은 SateFlow사용하여 데이터가 변경되는 값을 감지하고 그에 맞게 뷰를 변경해준다. LiveData를 사용하지 않는 이유- LiveData는 안드로이드 라이프사이클에 맞게 상태를 관찰 할 수 있다는 장점이 있으나, 클린아키텍처 구조와 같이 라이프사..
JetPack의 Compose를 활용하여 UI 개발을 하던 중 사용하는 사이드 이펙트들이 궁금해서 공부 해보려고 한다. 사이드 이펙트란? - 사이드 이펙드는 UI에서 발생하는 Effect들을 효율적으로 관리 할 수 있는 함수이다. - JetPack Compose에서 사이드 이펙트의 목적은 제어되고 예측 가능한 방식으로 컴포저블 함수 밖에서 앱의 상태를 변경하는 non-UI 관련 작업을 실행 할 수 있도록 하는 것이다. - 데이터를 업데이트 하거나, 네트워크 요청을 하는 등의 효과들은 UI 랜더링과 별도로 유지하여 코드의 성능과 유지보수성을 향상시켜야 한다. JetPack Compose는 UI 랜더링 로직에서 사이드이펙트를 분리하고 별도의 코루틴 스코프에서 실행함으로써 개발자가 효과적으로 부수효과를 관리 ..
이전에 잘못 된 판단으로 인한 플로우 변경을 시도한다.이메일 인증을 지원하는 것 같기에 그걸 사용해 보려고 한다. 이메일 인증을 요청하기 이전 내용들을 동일하기에 이전 글과 이어서 작성한다. 파이어베이스 설정, 동적링크생성, 도메인 적용 등은 이전 글을 참고하도록 하자.2024.03.15 - [안드로이드 개발] - [Android] 파이어베이스 이메일 회원가입 - 1 (이메일 링크 인증) [Android] 파이어베이스 이메일 회원가입 - 1 (이메일 링크 인증)파이어베이스 설정을 완료 하였으니, 이제 회원가입과 로그인을 다뤄야 할 차례이다. 제일 먼저 이메일로 인증을 하는 방법을 먼저 알아보자. 만약 파이어베이스 설정을 아직 완료하지 않았다grusie.tistory.com sendEmailVerifica..
지난 번에 JetPack 네비게이션에 대해서 익히고 실제로 사용도 해보았으나, 데이터 전송에 대한 부분은 다루지 않았었다.이번엔 네비게이션을 사용할 때 데이터를 전송하는 법에 대해서 알아보도록 하자. composable( route = Screen.Second.name) { SecondScreen( modifier = Modifier .fillMaxSize() .padding(8.dp), items = testItems, onItemClicked = { item -> navController.navigate("${Screen.Third.name}/$item") })} 우선 데이터를 전송할 SecondScreen에서 아..
JetPack:Compose를 사용해 개발을 하던 도중, 화면 이동을 위해서 네비게이션 라이브러리가 사용되는 것을 알았다.예시를 보고 구현을 하였으나, 완벽히 이해를 한 것이 아니어서 공식문서를 보며 정리 해두려고 한다. 이론적인 부분보다, 구현 부분이 많아 예시코드를 분리하지 않고 코드랩을 따라가면서 정리할 예정이다. 의존성dependencies { val nav_version = "2.7.7" implementation("androidx.navigation:navigation-compose:$nav_version")} Navigation의 주요 구성요소NavController : 대상(즉, 앱의 화면) 간 이동을 담당한다.NavGraph : 이동할 컴포저블 대상을 매핑한다.NavHost :..