728x90

Programming/Android 20

[Android/Kotlin] Image URL을 Bitmap으로 변환해서 보여주는 방법

라이브러리를 사용하지 않고 API에서 URL로 받은 이미지를 화면에 보여주려고 시도하다가 결국 라이브러리를 사용하게 된 사건을 기록하려고 한다,,, 처음에는 라이브러리를 사용하지 않기 위해 BitmapFactory로 이미지를 로드하는 코드를 구현했다. [ util module > ImageLoader ]import android.graphics.Bitmapimport android.graphics.BitmapFactoryobject ImageLoader { fun byteArrayToBitmap(byteArray: ByteArray): Bitmap { return BitmapFactory.decodeByteArray(byteArray, 0, byteArray.size) }} [ d..

Programming/Android 2024.06.28

[Android] minifyEnabled란?

android { ... buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } } ... } ✅ 위 코드에서 minifyEnabled는 뭘까?minifyEnabled는 코드의 난독화(최적화)를 설정하는 데에 사용된다.프로젝트를 생성하면 기본적으로 위 코드처럼 false 상태로, 난독화가 비활성화 되어있다.proguardFiles에서 proguard-rules.pro 파일은 난독화 과정에서 제..

Programming/Android 2024.06.08

[Android] gradle > buildType에서 release와 debug 버전을 분리하는 경우

android { ... buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } ...} 보통 안드로이드 프로젝트를 생성해서 개발하면 build.gradle (:app) 파일에 위처럼 release 버전만 있게 된다. 그런데 운영앱과 개발앱이 따로 필요한 경우가 있기 때문에 debug 버전을 따로 두는 경우가 있다고 한다.✅ release와 debug 버전 분리하는 이유운영앱과 개발앱을 분리해서 사용해야 할 경우 ..

Programming/Android 2024.06.07

[Android] DI(종속성 주입) Hilt 공부

DI(Dependency Injection)에 대해 공부하면서 Hilt, NetworkModule을 세팅해봤는데 그 과정에서 찾아본 참고 자료와 내가 이해한 내용을 기록해보려 한다... ✅ HiltDI란? Dependency Injection(종속성 주입)객체가 의존성을 직접 생성하지 않고, 외부로부터 받아서 사용DI를 구현하면 아래와 같은 장점이 있다.코드 재사용 가능(코드 결합도를 낮춤), 리팩토링 편의, 테스트 편의Hilt는 DI를 쉽고 효율적으로 사용할 수 있게 해주는 도구.Hilt는 애플리케이션의 다양한 수명 주기를 고려해서 의존성을 관리하기 때문에 메무리 누수 등의 문제를 방지하는 데에도 도움이 된다.Android 앱에서 Hilt를 사용하려면?Hilt 플러그인과 종속 항목을 추가@HiltAnd..

Programming/Android 2024.05.25

[Android] Toast 나타나는 위치 변경 / setGravity() / API30 이상

Android 개발을 할 때 Toast 위치는 보통 하단 가운데에 나타나게 된다. 이를 setGravity() 메서드를 이용해서 위치를 변경하는 방법이 있다는 사실을 알게 되었는데, 관련해서 정리해보려고 한다! API 29 이하일 때와 30 이상일 때 적용 가능한 방법을 각각 기록해두었다. 💡 Toast setGravity() - API 29 이하// Kotlin 코드Toast.setGravity(int gravity, int xOffset, int yOffset) 위와 같은 방식으로 위치를 지정할 수 있다. gravity는 화면의 상단, 중앙, 하단 등을 지정하고, xOffset, yOffset으로 떨어진 거리를 나타내준다. // Kotlin 코드binding.buttonToast.setOnClick..

Programming/Android 2024.05.09

[Android] 안드로이드 프로젝트 minSDK 버전

안드로이드 프로젝트를 생성할 때마다 minSDK를 별생각없이 설정했는데, 각 버전마다 점유율이 다르고 지원하는 기능도 다르기 때문에 좀 더 고민을 해야 할 것 같다고 생각했다. 최근에는 프로젝트 생성하면 디폴트 버전이 33이길래 그걸로 생성하고, compileSDK는 34로 올렸었다. (33으로 해두면 에러가 나서...)지금 사용 중인 모바일 기기는 안드로이드 버전이 14라서 SDK 34버전까지 케어 가능하기 때문에 SDK 버전을 예민하게 고민하지 않았던 거 같기도 하다. 프로젝트 생성할 때 SDK 버전을 선택하면 점유율?이 퍼센트로 나오긴 하지만, 좀 더 정리된 글을 찾아보았다. https://no-dev-nk.tistory.com/110 안드로이드 버전별 점유율 2024.2이 글의 주제는 안드로이드 ..

Programming/Android 2024.04.29

[Android Studio] Paging

Android Developer 사이트를 구경하다가 Paging이라는 걸 발견했다. Recyclerview에서 데이터를 페이지로 끊어서 가져올 수 있는 것 같다. 표시해야 할 데이터가 많아서 스크롤이 작아지고 화면이 길어지면 그 데이터를 다 불러올 동안 로딩 시간이 너무 많이 걸리게 된다. 이전에 참여한 앱 프로젝트에서 이런 경우가 있었는데 당시에는 다른 기능을 빨리 마무리해야 해서 해결을 못하고 넘어갔지만 이 방법을 적용하면 될 것 같다. 지금 졸업작품으로 만들고 있는 앱에도 이게 도움이 될 것 같다. 해당 부분에 적용해봐야겠다. https://developer.android.com/jetpack/androidx/releases/paging Paging | Android 개발자 | Android Dev..

Programming/Android 2023.03.14

[안드로이드 스튜디오] sdk 33에서는 xml 파일 자동 완성 안 됨

⚠ issue 정리 sdk 33에서는 레이아웃 자동 완성 안 됨 Android Studio SDK 33 업데이트 이후 xml 속성 자동 완성 기능이 작동하지 않는 경우 sdk 32를 사용하면 androidx.appcompat:appcompat 의존성 문제 발생 androidx.appcompat:appcompat 버전 변경 1.6.1 -> 1.5.1 결론 androidx.appcompat:appcompat 1.6.1은 sdk 33에서만 지원. 그러나 sdk 33 사용 시 xml 자동 완성 불가 sdk 32 사용을 위해 androidx.appcompat:appcompat 1.5.1로 버전 낮춤 +) 내가 작성한 issue layout xml 파일 자동완성이 안 되는 문제 · Issue #5 · jung011..

Programming/Android 2023.03.10

[Android Roadmap] Part4: Design Patterns and Architecture (2/2)

📌 Part4: Design Patterns and Architecture Design Patterns and Architecture: The Android Developer Roadmap - Part 4 In this post, you’ll learn about design patterns, architecture, and essential solutions for Android and how they have evolved over Android’s long history. getstream.io 4️⃣ Network - 자체 네트워크 솔루션을 구축하려면 connection pooling, 응답 캐싱, HTTP(Hypertext Transfer Protocol)과 같은 저수준 기능, 예를들어 인터셉터..

Programming/Android 2023.02.27

[Android Roadmap] Part4: Design Patterns and Architecture (1/2)

📌 Part4: Design Patterns and Architecture Design Patterns and Architecture: The Android Developer Roadmap - Part 4 In this post, you’ll learn about design patterns, architecture, and essential solutions for Android and how they have evolved over Android’s long history. getstream.io 1️⃣ Design Patterns - 반복되고 일반적인 소프트웨어 문제를 해결하기 위한 재사용 가능한 솔루션 - 디자인 패턴은 어떤 문제를 해결하느냐에 따라 Creational 패턴, Behavioral ..

Programming/Android 2023.02.21
728x90