Android

    오류 수정 방법 : Android Gradle plugin requires java 11 to run. you are currently using java 1.8

    이번에 안드로이드 스튜디오를 Artic Fox로 올리면서 다음과 같은 오류가 생겼다. Build file '/Users/james.c/AndroidStudioProjects/MyApplication7/app/build.gradle' line: 2 An exception occurred applying plugin request [id: 'com.android.application'] > Failed to apply plugin 'com.android.internal.application'. > Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8. You can try some of the following opti..

    R8을 이용해 안드로이드 앱을 최적화하고 코드 유출 방지하기 : minifyEnabled, shrinkResource, proguard

    안드로이드 앱의 보안은 왜 중요할까? 우리가 안드로이드 앱을 빌드하면 aab파일 혹은 apk파일로 만들어진다. 뭔가 aab나 apk하면 보안이 강할거 같다는 생각이 들지만 이 방식들은 단순히 우리가 짠 코드들을 압축한 것에 불과하다. 따라서 apk의 압축을 풀면 우리가 짠 코드의 내부가 모두 보인다. 우리가 안드로이드 앱을 빌드하면 윈도우 상에는 그림1과 같은 apk파일이 생긴다. 더블 클릭해도 열리지는 않지만 이를 안드로이드 스튜디오에서 보면 내부의 파일이 아래와 같이 모두 보이는 것을 알 수 있다. 만약 이 상태로 앱을 출시한다면 앱의 리버스 엔지니어링이 가능하다는 뜻이며, 누군가 우리의 코드를 베껴 새로운 앱을 낼 수도 있다는 이야기이다. 따라서 우리는 우리 앱의 구조를 파악하지 못하게 할 장치가 ..

    [Koin] 5. single과 factory를 이용한 의존성 주입 비교

    예제 링크 : https://github.com/seyoungcho2/KoinExample 예제 브랜치명 : example/example5 *브랜치 필수 확인 의존성 제공 메서드 single과 factory single은 한 번만 객체를 생성하고 factory는 호출 될때마다 객체를 생성한다. 다음과 같은 Student("student-kim")은 single로 제공되고 Student("student-cho")는 factory로 제공되는 상황을 가정해보자. module { single(named("kim")) { Student("student-kim") } factory(named("cho")) { Student("student-cho") } } 이때 다음과 같이 각각에 대한 의존성을 두 번씩 주입했다고..

    [Koin] 4. get()을 이용하여 생성자에 주입하기

    생성자 주입이 달라야 하는 이유 제공된 객체가 다른 객체의 생성자에 주입되어야 한다고 해보자. class Student(val name: String) class Teacher(val name: String, val teachingStudent: Student) 이럴 경우 Teacher은 Student를 주입받아야 한다. 이때 우리는 다음과 같이 get()을 이용해 제공된 객체를 주입받을 수 있다. single { Student("student-kim") } single { Teacher("teacher-cho", get()) } get()의 역할 예제 링크 : https://github.com/seyoungcho2/KoinExample 예제 브랜치명 : example/example3 *브랜치 필수 확인..

    [Koin] 3. named 메서드를 이용해 같은 Type 객체 구분하기

    예제 링크 : https://github.com/seyoungcho2/KoinExample 예제 브랜치명 : example/example2 *브랜치 필수 확인 seyoungcho2/KoinExample Koin Usage Example. Contribute to seyoungcho2/KoinExample development by creating an account on GitHub. github.com 같은 Type의 객체 여러개 주입 시 문제점 같은 타입의 객체가 두개이 이상이면 어떤 객체를 주입해야 할지 구분하는데 문제가 생긴다. 예를 들어 아래와 같은 주입을 한다고 해보자 class MainActivity : AppCompatActivity() { override fun onCreate(saved..