전체 글

개발기록 / 공부한 내용을 정리하는 블로그
JetBrains에서 만들어진 Kotlin을 사용하여 연결된 시스템에서 비동기 서버 및 클라이언트를 구축하기 위한 오픈 소스 프레임 워크 설치, 사용이 간편하여 실행 파이프 라인에 단계를 추가하려는 경우 확장 가능하다. Coroutine의 비동기 속성으로 인해 여러 요청 수신이 가능하고 MultiPlatform이기도 하다. 즉 서버뿐 아니라 Ktor Client를 써서 Android, iOS, JS에서 마이크로서비스를 사용할 수도 있다. Ktor Client를 쓰면 요청 생성, 응답 처리 및 인증, Json 직렬화 등과 같은 기능으로 기능을 확장할 수 있다. Creating a client application | Ktor ktor.io 구현할 Android는 Client이기 때문에 Client만 알아보..
· Develop
협업을 할 때 다른 개발자의 해당 메서드가 무슨 역할을 하는지 모르기 때문에 누군가 작성해 놓은 코드를 디버깅하면서 분석을 하게 된다. 이는 곧 리소스의 낭비이다. 그래서 협업 환경에서 코드 네이밍과 자세한 주석, 이해하기 쉬운 구조는 곧 동료 작업자에 대한 배려이자 실력의 척도가 된다. Architecture Pattern 구조를 만들고 같은 역할을 하는 class를 묶어, 이해하기 쉽게 적응할 수 있도록 하자는 유명 개발자들의 생각으로 소프트웨어 아키텍처는 공식화되었고, 해당 아키텍처를 아는 사람은 조금 더 수월하게 프로젝트를 이해할 수 되었다. 사전적 정의로 아키텍처 패턴은 공통적으로 자주 발생하는 문제를 해결하는 재사용 가능한 해결방법이다. 실제로 아키텍처 패턴은 반복적으로 발견되고 재사용할 수 ..
Room을 사용 중 빌드 창 warning 문구 warning: Schema export directory is not provided to the annotation processor so we cannot export the schema. You can either provide `room.schemaLocation` annotation processor argument OR set exportSchema to false. Room 라이브러리를 사용해서 Database 스키마를 생성할 때 exportSchema 설정에 의해 위의 경고가 뜬다. exportSchema는 Boolean 타입으로 Database Schema를 폴더로 내보낼지 정할 수 있다. default 값이 true로 되어있어 경로를 지..
· 기초
gitignore.io Create useful .gitignore files for your project www.toptal.com gitignore 자동 설정 사이트 # Created by https://www.toptal.com/developers/gitignore/api/android,androidstudio,windows,kotlin,java # Edit at https://www.toptal.com/developers/gitignore?templates=android,androidstudio,windows,kotlin,java ### Android ### # Gradle files .gradle/ build/ # Local configuration file (sdk path, etc) loc..
Android Studio Dolphin 버전에서 새로 나온 LogCat의 필터 쿼리 내 앱에서 발생하는 내용만 보기 (PIDs for the local app project) package:mine 내 앱에서 발생하는 내용에서 필터링 (ex) ViewModel 또는 UiState라는 문자가 포함된 내용만 필터링 package:mine ViewModel | UiState 패키지, 태그, 레벨 조합 package:my-package-ID, tag:my-tag, level:ERROR -를 붙여 특정 태그 제외 -tag:exclude-this-tag 정규 표현식 (~을 키값 뒤에 붙여준다) tag~:regex-tag Logcat https://brownsoo.medium.com/새로운-로그캣-필터-쿼리-a77..
SDK 버전을 높이기 위해 변경된 사항과 수정해야 할 사항들 중 중요하다 판단되는 것들을 알아보고 정리 Performance and battery Foreground Services (FGS) 작업 관리자 Android 13(API 33)에서는 타겟 SDK 버전과 관계없이 사용자가 "알림 창"에서 "포그라운드 서비스"를 중지할 수 있다. FGS 작업 관리자라고 하는 새로운 기능에는 현재 포그라운드 서비스를 실행 중인 앱 목록이 표시된다. 이 목록에는 활성 앱이라는 라벨이 적용되어 있다. 각 앱의 옆에는 중지 버튼이 있다. 아래 그림은 Android 13을 실행하는 기기에서 FGS 작업 관리자 워크플로를 보여준다. JobScheduler를 사용한 작업 미리 가져오기 처리 개선 JobScheduler는 앱이..
어느 순간 잘 뜨던 구글맵이 뜨지 않아 Logcat을 보았다. Authorization failure과 Ensure that the "Google Maps Android API v2" is enabled. 인증키 오류의 Log들이 찍힌 걸 확인 관련 검색을 해보면 Api가 활성화되어있나 확인해 보고 제한사항을 줄 때 패키지 이름을 제대로 주라는 말들이 대부분이다. 하지만 API도 다 활성화되어있고 제한사항의 패키지 이름과 Api 제한사항도 다 맞춰서 해놓았는데도 같은 오류가 반복되었다.. Properties properties = new Properties() properties.load(project.rootProject.file('local.properties').newDataInputStream()..
프로젝트를 진행하다 아래 사진처럼 하단에 존재하면서 스크롤을 하거나 터치할 때 올라오는 뷰가 필요해 BottomSheet를 찾아보았다. Bottom Sheet BottomSheet의 종류로는 Persistent BottomSheet와 Modal BottomSheet 이 있다. Persistent는 특정 화면의 레이아웃에 속해있고, Behavior를 설정해 주면 동작시킬 수 있다. 즉, 특정한 컨텐츠에 속해있는 또 다른 화면. Modal은 안드로이드의 Toast처럼 어디에서나 띄울 수 있다. 프래그먼트(BottomSheetDialogFragment) 이용 Persistent BottomSheet 프로젝트에 사용한 구현 방법으로는 Persistent BottomSheet이다. CoordinatorLayout..
프로젝트 중 리스트가 처음 항목들이 나타날 때 우측에서 차례대로 등장하는 모션을 구현해야 해서 layoutAnimation을 이용해 RecyclerView의 Item에 동작 모션을 주었다. 각 Item들에 지정할 Animation 생성 res/anim/anim_list_slide_in_right.xml //위치 //투명도 //크기 RecyclerView에 지정할 LayoutAnimation 생성 res/anim/anim_slide.xml RecyclerView에 LayoutAnimation 지정 Programmatically val anim = AnimationUtils.loadLayoutAnimation(requireContext(), R.anim.anim_quiz_slide) recentRecycle..
bumjae
Android Technote