반응형

Platform 173

[Error] Room - cannot find implementation for 패키지명.

Caused by: java.lang.RuntimeException: cannot find implementation for com.jikyunghee.mobile.android.myapplication.learn.mvvm.db.ContactDatabase. ContactDatabase_Impl does not exist Error! //room implementation 'androidx.room:room-runtime:2.2.5' 해결! - annotationProcessor을 추가해준다! //room implementation 'androidx.room:room-runtime:2.2.5' annotationProcessor 'androidx.room:room-compiler:2.2.5' annota..

Platform/Android 2020.04.14

[Error] lombok과 Room을 같이 쓸 때-Cannot fine getter for field

분명히 lombok의 @Data 어노테이션으로 getter&setter 자동 설정을 해 줬는데도, 위와 같은 에러가 떳을 때! Error! //room implementation 'androidx.room:room-runtime:2.2.5' annotationProcessor 'androidx.room:room-compiler:2.2.5' //lombok compileOnly "org.projectlombok:lombok:1.18.12" annotationProcessor "org.projectlombok:lombok:1.18.12" 해결! - app.gradle에 lombok을 room 보다 먼저 적어주면 된다! //lombok compileOnly "org.projectlombok:lombok:1.1..

Platform/Android 2020.04.14

[Jetpack] 0. 개요

Jetpack JetPack전체 JetPack 아키텍처 ViewModel UI controller의 데이터를 캡슐화하여 구성이 변경되어도 데이터를 유지하게 하기 위해 ViewModel이 나타난 이유 데이터가 Activity에 종속적이여서 데이터 관리의 힘듦 ex) configuration change가 일어났을 때 데이터 사라짐 -> simple data의 onSaveInstanceState()를 써서 bundle에 저장한 후, onCreate()에서 불러다 쓴다. 한계) 적은 양의 데이터에만 적합(serialized 되는): 많은 양의 UserList나 BitmapList에 적합 X 역할분리: Activity/Fragment는 UI데이터를 보여주고, 사용자애션에 반응하고, OS communication..

Platform/Android 2020.04.03

개발문서

개발산출물 1. 분석 1-1. 개발표준정의서 개발환경, 주석작성방법, Java 코딩 규칙 등 공통의 코딩 rule 등을 정함 1-2. 요구사항정의서 상세 기능 정의 test Case 정의할 때 사용 가능 나중에 문제 생겼을 때, 이거 보고 1-3. 프로세스정의서 중요 1-4. 아키텍쳐정의서 직접적인 opensource 언급 X 전체적인 구조 정의 1-5. 화면정의서 기획서(화면UI 및 기본 Flow 등) 1-6. 메뉴구조도 기능? 화면?에 따른 업무분담 2. 설계 2-1.프로그램목록 2-2.인터페이스 설계서 3. 개발 4. 테스트 5. 종료 관리산출물 1. 착수 1-1. PM(프로젝트 관리) WBS 문서명명규칙 1-2. PP(프로젝트 계획) 산출물리스트 기술적용계획표 착수보고 2. 수행 및 통제 2-1...

Platform/Etc 2020.03.31

[AAC] ViewModel | LiveData

ViewModel 왜 사용해 ? Activity, Fragment 생명주기에 따른 데이터 손실? 관리가 어려워서, 개발자들이 힘들었었다.(= 액티비티에 종속된 UI데이터를 유지하는 것이 힘듦) EX. 가로 ↔ 세로 화면 전환, 앱이 background에 있을 때, 메모리관리/부족 등으로 액티비티를 종료하고 다시 시작하는 경우가 있기 때문에 데이터 관리가 어려웠다. Ex. 여러 Fragment에서 데이터를 공유하려면, 공유하는 하나의 Activity에 데이터를 종속시키고 관리해야 했다. -> Activity의 생명주기에 데이터가 종속됨! 그 이전의 해결책 onSaveInstanceState() -> 직렬화할 수 없는 객체는 저장 X (많은 데이터를 저장하기 위해 디자인 되지 X) Retained Fragm..

Platform/Android 2020.03.18

[Class]

Paraclable 직렬화 interface Serializable보다 Andriod에서 훨씬 빠른 속도를 보여줌 Parcelable.Creator non-null static 필드(필수) Parcel로 부터 값을 읽어 오기 위해서는 Parcelable.Creator Interface 가 필요 public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { @Override public WorkConfig createFromParcel(Parcel source) { return new WorkConfig(source); } @Override public WorkConfig[] newArray(int size) { return new ..

Platform/Android 2020.03.17

[aab] Android App Bundle

aab가 왜 필요해? Android 64bit 지원 정책으로 인해 64bit용 native library를 build하여 package에 추가해야 했기 때문에, 앱 패키지용량은 증가할수 밖에 없는 상황이 되어 버렸다. ---> aab가 해결! aab가 왜 좋은데? - 사용자가 앱을 다운 받을 때, 앱 다운로드 크기 & 디스크 할당 크기 save - Android 6.0 이상: 다운로드 크기, 디스크 할당 크기, 설치 시간 save (how? apk대신 저장되는 압축X 기본 라이브러리 사용) - 사용자에게 필요한 기능 및 설정을 사용자가 요청할 때 제공 - 효율적인 빌드 및 출시 관리: 여러 개의 apk를 빌드하고 게시할 필요 X aab로 어떻게 테스트해? 1.google play beta test에 등록..

Platform/Android 2020.03.06
반응형