일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 깃헙
- 안드로이드 스튜디오
- 스튜디오
- ADB
- Kotlin
- coroutine
- 코틀린
- 의존성주입
- RecyclerView
- WebView
- 웹뷰
- image
- GIT
- studio
- 에러
- Github
- 유튜브
- 코루틴
- error
- 안스
- Gradle
- 레트로핏
- viewpager
- 안드로이드
- 안드로이드스튜디오
- Retrofit
- Android
- dart
- build
- MVVM
- Today
- Total
목록안드로이드 (25)
코딩하는 일용직 노동자
프로젝트를 빌드해서 실행한 후 다시 한번 빌드 후 실행할때부터 java.lang.SecurityException: Writable dex file 오류가 발생했습니다.java.lang.SecurityException: Writable dex file '/data/data/com.amazon.styledictionaryexample/code_cache/.overlay/base.apk/classes2.dex' is not allowed. 이럴땐 당황하지 말고 아래처럼 Application onCreate()에 코드를 추가해주면 됩니다.import android.app.Applicationimport java.io.Fileclass App: Application() { override fun onCreat..
안드로이드 기기의 해상도와 dpi 정보를 얻고 수정하고 초기화하는 명령어.기기의 해상도와 dpi 정보를 얻어오는 명령어adb shell wm size // 해상도adb shell wm density // dpi기기 해상도와 dpi값 변경 명령어adb shell wm size 1152x930 // 해상도 변경adb shell wm density 180 // dpi 변경기기 해상도와 dpi값 초기화adb shell wm size resetadb shell wm density reset
안드로이드 앱을 설치하거나 작업할때 adb 명령어를 사용할 경우가 많습니다.맥북을 새로 구입했거나 초기화를 한 후 안드로이드 개발툴을 설치하고 adb 명령어를 입력하니zsh: command not found: adb 이렇게 표시되었습니다.안드로이드 환경변수가 제대로 설정되지 않은것입니다.adb 명령어를 사용할 수 있도록 안드로이드 sdk 경로 설정이 필요합니다.당황하지 않고 아래처럼 입력해줍니다. zshrc에서 안드로이드 adb명령어가 안될 때의 예시입니다.만약 bash인 경우 zshrc -> bash_profile 로 변경하시면 됩니다.1. 우선 터미널에서vi ~/.zshrc 입력합니다. 2. vi 모드에서 아래 내용을 입력합니다.우선 편집을 하기 위해 i 를 눌러줍니다.그리고 방향키를 이용해 가장..
안드로이드와 iOS를 함께 개발할 수 있는 새로운 플랫폼이 등장합니다. React Native 와 Flutter 가 두 OS의 앱을 모두 만들 수 있는 플랫폼으로 많이 쓰이고 있는데 이제 새로운 선택지가 생기는 것입니다. 새로운 플랫폼의 이름은 Kotlin Multiplatform Mobile(https://blog.jetbrains.com/ko/kotlin/2022/09/join-the-kotlin-multiplatform-mobile-content-creators/) 입니다. IntelliJ 를 만든 IDE전문 기업 젯브레인(JetBrains)에서 만드는 플랫폼입니다. Flutter의 경우 Dart라는 생소한 언어를 새로 배워서 작업해야 한다는 단점이 있었는데 KMM은 Kotlin 을 개발언어로 사용..
안드로이드 네이버 아이디 로그인을 구현해보겠습니다. 우선 네이버 개발자센터에서 앱을 추가해줍니다. 앱의 이름과 패키지명, URL등을 등록하면 아래의 정보들을 이용할 수 있습니다. OAUTH_CLIENT_ID: 애플리케이션 등록 후 발급받은 클라이언트 아이디 OAUTH_CLIENT_SECRET: 애플리케이션 등록 후 발급받은 클라이언트 시크릿 OAUTH_CLIENT_NAME: 네이버 앱의 로그인 화면에 표시할 애플리케이션 이름. 모바일 웹의 로그인 화면을 사용할 때는 서버에 저장된 애플리케이션 이름이 표시됩니다. 적용할 안드로이드 프로젝트의 gradle에 네이버 아이디 로그인 라이브러리를 추가해줍니다. implementation 'com.navercorp.nid:oauth:5.1.1' // jdk 11 i..
#의존성과 의존성주입(Dependency Injection, DI)이란? class Animal 이 있고, class Cat이 있습니다. 그리고 Cat 에서 Animal 객체를 생성했습니다. class Animal { ... } class Cat { val animal = Animal() } 코드에서처럼 Cat 이 Animal을 멤버로 갖고 있으므로 Cat 은 Animal에 강한 의존성을 가진 관계가 됩니다. class Cat(private val animal: Animal) { ... } fun main() { val animal = Animal() val cat = Cat(animal) } 이번에는 생성자를 통해 Animal객체를 주입해주었습니다. 이로써 클래스간의 관계를 더 약하게 만들 수 있습니다..
운영중인 앱의 이벤트 상세화면에서 로드하는 이미지의 해상도가 1440x14300 에 용량이 5.8M 나 되는 어마무시한 넘이었다. 때문에 저사양폰에서는 이미지가 표시되지 못하고 검정색 화면으로 표시되었다. Glide의 캐싱옵션을 바꿔보고, 원본 이미지의 품질을 줄여서 용량을 800kb로 만들어도 여전히 표시되지 않았다. 아마도 해상도 자체가 워낙 상식을 벗어나다보니 이미지뷰가 처리해주지 못하는듯 하다. 이것을 웹뷰방식으로 처리해주는 Nasca 이미지로더를 사용해서 해결했다. 아래는 문제 해결에 결정적인 도움을 준 블로그이다. https://medium.com/myrealtrip-product/android-webview%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%9C-%ED%9A%A8%..
깃헙에서 clone 받은 오래된 프로젝트에 최신 라이브러리를 추가해서 빌드하려고 하니 아래와 같은 빌드오류가 발생했습니다. Invoke-customs are only supported starting with Android O (--min-api 26) clone 받은 프로젝트가 오래된 것이다보니 발생한 오류입니다. gradle 셋팅에 아래 내용을 추가해서 오류를 해결했습니다. android { ... compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } }
안드로이드에서 주로 Retrofit2 를 이용해 네트워크를 구현하게 됩니다. 이때, API의 호출결과로 정상적이라면 200이 내려올것이고, 정상적이지 않다면 400, 404, 406, 500 등 다양한 Response가 올 수 있습니다. Response 처리를 도와주는 라이브러리가 있어서 소개합니다. Sandwich는 Retrofit Response를 모델링하고 예외를 처리하기 위한 API 라이브러리입니다. https://github.com/skydoves/sandwich GitHub - skydoves/sandwich: 🥪 A lightweight sealed API library for modeling Retrofit responses and handling exceptions. 🥪 A lightwe..
자신이 만든 안드로이드 라이브러리를 Github에 올리고 jitpack을 이용해서 배포하는 방법을 배워보도록 하겠습니다. 몇몇 유명한 분들의 블로그를 보면서 따라했는데 안드로이드 스튜디오 Arctic Fox 버전부터는 기존 gradle 셋팅과는 살짝 달라졌습니다. #1. 프로젝트 생성 우선 안드로이드 스튜디오에서 라이브러리를 만들도록 합니다. 이때 배포할 라이브러리는 별도의 모듈을 생성해서 만들도록 합니다. #2. gradle 셋팅 프로젝트와 라이브러리 모듈을 다 완성했을때의 화면입니다. 여기서 중요한 gradle 파일에 빨간색 표시를 해놨습니다. 라이브러리를 다 완성했다면 이제 gradle에 셋팅을 해줘야 합니다. 우선 Project레벨의 build.gradle 파일에 아래내용을 추가해줍니다. buil..