로그인 UI 먼저 로그인 화면부터 구현할 것이다. 로그인 Flow1. 로그인 진행2. 로그인 시 유저 이메일과 자동 로그인 여부를 로컬 저장소에 저장3. 저장된 값을 기반으로 초기 화면 라우팅 진행, 유저정보 가져오기로그인 진행 시 이메일 값을 기반으로 유저 정보를 가져오도록 한다.이메일을 키로 선택한 이유는 이메일은 계정의 고유한 값이기 때문이다. 의존성 추가plugins { ... id("com.google.gms.google-services") version "4.3.8" apply false}프로젝트 수준의 그래들 파일에 위와 같은 의존성을 추가한다. plugins { ... id("com.google.gms.google-services")}dependencies { ....
기존 방식app/src/main/java/com/hamond/escapeanchovy/constants/Secret.kt기존에는 .gitIgnore 파일에 깃허브에 업로드 하지 않을 상수 파일을 설정하고 object Secret { const val API_KEY = "asdfasdfasdf"}여기다가 Api 키를 작성한 뒤 사용하는 방식이었다. 문제 발생카카오 로그인을 구현할 때 매니패스트 파일에서Api키를 활용해야되는 문제가 발생했다. BuildConfig 활용local.properties에 키값을 저장한다.해당 파일은 기본적으로 gitIgnore 설정이 되어있다. android { ... val properties = Properties() properties.load(Fi..
커스텀 위젯을 만드는 이유UI를 구성하기 전에 커스텀 위젯을 만드는 것은 반필수적이라고 볼 수 있다.정의한 커스텀 위젯은 재사용이 가능하기에 UI의 일관성을 유지할 수 있다.또한 screen을 구성하는 코드가 확연하게 줄어들어 가독성이 향상된다. 커스텀 위젯 디자인 방식컴포저블 함수를 선언한 뒤 그 안에 기본위젯을 넣고 그 위젯의프로퍼티를 활용해 피그마 디자인과 동일하게 UI를 구성한 다음컴포저블 함수의 프로퍼티로 위젯의 디자인이나 동작을 제어하도록 한다. (버튼 활성화/비활성화 상태라던지, 텍스트필드 입력 모드라던지 등등..) 커스텀 위젯 네이밍커스텀 위젯의 이름은 컴포즈에서 기본적으로 제공하는 위젯과동일한 이름으로 해도 되지만 사용 시 커스텀 위젯이 아닌 기본 위젯이 import되는번거로운 문제..
기본 화면 전환 애니메이션 기본 화면 전환 애니메이션이 부자연스러워 이걸 없애려고 했다. 화면 전환 애니메이션 비활성화NavHost( navController = navController, enterTransition = { EnterTransition.None } exitTransition = { ExitTransition.None } ) { ... }}NavHost의 transition 값을 전부 none으로 설정하면 된다. enterTransition에는 화면에 진입할 때의 애니메이션이 들어가고,exitTransition에는 컴포저블이 화면에서 사라질 때의 애니메이션이 들어간다. 자연스러운 화면 전환exitTransition = { ..
문제 상황 Hilt를 사용한 종속 항목 삽입 | Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. Hilt를 사용한 종속 항목 삽입 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Hilt는 프로젝트에서 종속developer.android.com공식 문서를 보고 Hilt 설정을 그대로 진행했는데 해당 빌드 에러가 발생했다. 에러 로그 분석A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction무슨 오류 인지 찾아보니까 Kotlin 버전과 Gradle 플러그인..
레파지토리 전략main: 프로젝트의 최신 안정 버전을 유지하는 브랜치dev: 프로젝트의 개발이 이루어지는 브랜치dev 브랜치에서 기능 구현, 버그 수정, UX 개선 등의 작업을 진행하고,기능 개발이 완료 되었다면 dev 브랜치를 main 브랜치에 병합한다. main 브랜치는 프로젝트 백업 및 앱 배포를 진행하는데 사용되는 브랜치이다. 폴더 구조com.hamond.escapeanchovy/ (패키지명)│ ├── constants/: 전역적으로 사용할 상수들 모음│ ├── data/: 애플리케이션의 데이터 로직 및 API 호출 처리│ ├── model/: 데이터 모델│ ├── repository/: 데이터 관련 로직 │ │ └── ex/ (예시)│ │ ..
현재 상황국비는 수료했는데 최종 프로젝트에서 개발한 기능이회원가입이랑 비밀번호 재설정 밖에 없어서 이력서에 작성할 다른 기능들을 개발해야겠다는 생각이 들었다. 최종 프로젝트는 다른 팀원들이 이미 필요한 기능은 다 구현해놨고계정 관련 기능을 다른 방식으로도 구현해보고 싶었지만 그러면계정 정보를 업데이트 하는 다른 로직도 일괄적으로 수정해야 한다고 그래서 결국 새로운 프로젝트를 하나 하기로 했는데그 때 옛날에 현장실습 끝나고 하다가 만 프로젝트가 떠올랐다. 그 프로젝트 '멸치탈출 (플러터)' 카테고리의 글 목록앱 개발 & 코테 정리해서 올리는 블로그tsi0511.tistory.com 그 프로젝트는 바로 내 옛날 운동루틴을 기반으로 한 운동일지인데이걸 안드로이드 앱으로 만들어보면 좋은 개발 경험이 될 것 같..