Today's

길을 나서지 않으면 그 길에서 만날 수 있는 사람을 만날 수 없다

반응형

모바일 앱(안드로이드) 244

Jetpack compose spin wheel 만들기 ... 요약

Compose에서 스핀 휠 만들기 • 블리츠위에서 빙고, 솔리테어, 매치3, 풀 등의 클래식 게임을 플레이할 수 있는 애플리케이션을 개발하고 있습니다. 또한 무작위 보너스 금액과 같은 무작위 아이템이 있으므로 사용자에게 일종의 행운의 바퀴를 표시하고 싶었습니다. • 안드로이드 앱은 전체 구성으로 되어 있습니다. 바퀴를 재창조하기 위해 라이브러리를 찾았지만 디자인이나 기술적인 측면에서 나에게 맞는 라이브러리는 없었습니다. • https://github.com/commandiron/SpinWheelCompose에서 약간의 영감을 얻었지만 거의 모든 것을 다시 작업했습니다. 내 물레바퀴는 매개변수로 섹션 목록을 받아들여야 합니다. 각 섹션에는 브러시 배경이 있으며 섹션에는 컴포저블 그림이 있습니다. 이 구성 ..

Jetpack compose Media3 사용 ... 요약

Jetpack Compose에서 Jetpack Media3를 사용하여 미디어 플레이어 앱 구축 • Jetpack Media3는 Android에서 미디어 플레이어 앱을 구축하기 위한 강력한 프레임워크를 제공하며, ExoPlayer는 플레이어 인터페이스의 기본 구현으로 사용됩니다. • ExoPlayer는 플레이리스트 지원, 다양한 스트리밍 포맷, DRM 보호, 광고 삽입 등 비디오 및 오디오 재생을 위한 포괄적인 기능을 제공하여 개발 프로세스를 단순화합니다. • 이 글은 Media3 ExoPlayer와 Jetpack Compose를 활용하여 알림 지원이 되는 기본 미디어 플레이어 앱을 만드는 과정을 안내해 드립니다. • Media3는 다른 미디어나 미디어2 라이브러리와 어떻게 다른가요? • Media3는 구..

안드로이드 Hilt에서 Koin으로 마이그레이션.... 요약

안드로이드: Hilt에서 Koin으로 마이그레이션 • 이 글에서는 의존성 주입(DI) 프레임워크를 훨씬 더 간단한 접근법으로 업그레이드하여 PokeAPI 프로젝트를 계속할 것입니다. 우리는 Hilt DI를 Koin으로 대체할 것입니다. • Hilt는 코드 생성 및 주석을 통해 각 구성 요소에 종속성을 주입하여 큰 역할을 하지만, 개발자가 너무 많은 상용판과 코드 생성으로 인해 제어의 일부를 잃음에 따라 종속성을 해결하는 것은 매우 혼란스러운 프로세스가 됩니다. • Koin은 코틀린 DSL(Domain-Specific-Language) 위에 구축되어 있으며 처리하기에 훨씬 간단한 프레임워크로 나타납니다. • 또한 Dagger/Hilt와 달리 Koin은 빌드 타임 대신 실행 타임에서 종속성을 해결합니다. •..

안드로이드 앱 만들기 ViewModel vs Remember function ... 요약

제트팩 구성의 상태 관리: ViewModel vs Remember function • 상태 관리는 동적이고 반응성이 좋은 사용자 인터페이스를 만들기 위해 제트팩 컴포즈에서 중요합니다. 뷰모델에 상태를 저장하는 것과 뷰 내에서 기억 함수를 사용하는 것 사이의 선택은 딜레마를 제시한다. • 전통적으로 MVVM과 MVI 패턴은 뷰모델이 로직과 상태를 처리하는 반면 뷰 계층은 프레젠테이션과 사용자 상호 작용에 중점을 두는 별도의 문제를 처리한다. • 제트팩 컴포즈의 반응형 UI 패러다임과 기억 기능은 스크롤 위치와 같은 일시적인 UI 상태를 관리하기 위한 대안을 제공하면서 이러한 분리에 도전한다. • 스크롤 상태에 대한 기억을 사용하면 코드가 단순화되지만 뷰모델과 뷰 사이의 분리가 흐려져 MVI 아키텍처가 잠재..

안드로이드 jetpack 생체인증 ... 요약

제트팩 컴포즈와 AES 암호화를 사용한 생체 인증 구현 • 안드로이드용 최신 UI 툴킷인 제트팩 컴포즈와 AES 암호화를 사용하여 생체 인증을 구현하는 방법을 설명합니다. • 생체 인증은 지문, 얼굴 특징 또는 홍채 패턴과 같은 고유한 생물학적 특성을 활용하여 신원을 검증하는 방법입니다. • AES 암호화는 민감한 데이터를 보호하는 데 사용되는 강력한 암호화 알고리즘입니다. • 생체 인증을 사용할 때 암호 솔루션이 필수적인 이유는 데이터 보호, 키 관리, 규정 준수 요건, 공격에 대한 방어 때문입니다. • 본 블로그 게시물에서는 지문 인증을 구현하는 데 초점을 맞춥니다. https://blog.canopas.com/how-to-implement-biometric-authentication-with-jet..

안드로이드 앱 만들기 Hilt 에 대해서 배워 보겠습니다.

@InstallIn(SingletonComponent::class)은 Dagger Hilt에서 사용되는 어노테이션입니다. 이 어노테이션은 의존성 주입(Dependency Injection) 모듈이 어떤 DI 컨테이너에 포함되어야 하는지를 지정합니다. 이는 의존성의 수명주기와 관련이 있습니다. 예를 들어, 다음과 같은 모듈이 있습니다: Kotlin @InstallIn(SingletonComponent::class) object ApiModule { @Provides fun provideRetrofit(): Retrofit { // ... } } 위 예시에서 ApiModule은 애플리케이션 클래스에 바인딩되어 있으므로 애플리케이션이 존재하는 동안 계속 존재합니다. 그러나 Hilt가 Retrofit 인스턴스를..

안드로이드 앱 만들기 Paging 처리의 개선

https://billcorea.tistory.com/418 안드로이드 앱 만들기 : Paging 처리의 오해(?) https://billcorea.tistory.com/381 안드로이드 앱 만들기 : Sqlite 로 구현해 보는 Paging (feat Jetpack compose, 대량 데이터 조회) 오늘 적어 두고자 하는 주제는 Paging입니다. 웹 개발을 하는 경우에는 각종 framewor billcorea.tistory.com 이전 포스팅에서는 Paging 이 될 거라는 야심 찬(?) 의욕으로 만들었던 페이징 처리가 ㅋ~ 1페이지만 로딩되고 그 뒤 페이지는 절대로 loading 되지 않는다는 것을 알아내는 데 시간이 오래 걸리기는 했습니다. 어느 날 발견한 예제 코드 덕분에 말입니다. https..

Jetpack compose UI 이벤트 처리 ... 요약

제트팩 구성에서 UI 이벤트 처리: 헌터 프리스의 깨끗한 접근법 • 헌터 프리스의 제트팩 컴포즈에서 UI 이벤트를 처리하기 위한 깨끗한 접근 방식을 소개합니다. • UI 이벤트는 UI 또는 ViewModel에 의해 UI 계층에서 처리되어야 하는 동작입니다. • UI 이벤트를 처리하는 방법은 UiEvent 인터페이스, ViewModel, Composables를 사용하는 것입니다. • 이 접근 방식은 레이어를 분리하고, 합성물을 단순화하며, 확장성과 유지성을 향상시킵니다. • 실제 예제를 통해 이 접근 방식을 구현하는 방법을 설명합니다. https://medium.com/@hunterfreas/handling-ui-events-in-jetpack-compose-a-clean-approach-c8fd1bfc6..

Koin을 이용한 내비게이션 구성 ... 요약

KOIN을 이용한 MVVM 및 의존성 주입으로 제트팩 구성 탐색 • 이 기사에서는 KOIN을 사용한 MVVM과 의존성 주입을 사용한 제트팩 컴포즈 내비게이션을 소개한다. • Navigation 구성 요소를 사용하는 이점과 Compose로 설정하는 방법을 설명합니다. • 이 기사는 또한 구성 가능한 목적지 간의 통과 주장과 코인과 함께 종속성 주입을 사용하는 것을 다룬다. • UI 상태 업데이트를 위해 StateFlow를 사용하는 ViewModel 클래스의 예를 제공한다. • 마지막으로 Datasource, Retrofit, ViewModel에 정의된 모듈 목록을 포함한다. https://proandroiddev.com/jetpack-compose-navigation-with-mvvm-dependency-..

안드로이드 뷰모델: 필수적인 해야 할 일과 하지 말아야 할 일 #1

안드로이드 뷰모델: 필수적인 해야 할 일과 하지 말아야 할 일 • 안드로이드 뷰모델을 사용하는 모범 사례를 다루는 기사 시리즈의 첫 번째 부분입니다. • 뷰모델의 역할, 게으른 의존성 주입 전략, 반응형 프로그래밍의 중요성에 대해 설명합니다. • 일반적인 피하기 위한 함정에 대해 논의하여 개발자에게 포괄적인 가이드를 제공합니다. • init{} 블록에서 데이터 로딩을 시작하는 것은 몇 가지 단점이 있습니다. • 데이터 로딩에 대한 보다 신중한 접근 방식을 사용하여 라이브데이터 또는 기타 라이프사이클 인식 구성 요소를 활용하여 안드로이드 라이프사이클을 존중하는 방식으로 데이터를 관리하는 것이 좋습니다. https://proandroiddev.com/mastering-android-viewmodels-ess..

반응형