2026/03/31

오늘의 이야기

Jetpack Compose에서 Jetpack Media3를 사용하여 미디어 플레이어 앱 구축

미디어 플레이어



• Jetpack Media3는 Android에서 미디어 플레이어 앱을 구축하기 위한 강력한 프레임워크를 제공하며, ExoPlayer는 플레이어 인터페이스의 기본 구현으로 사용됩니다.

• ExoPlayer는 플레이리스트 지원, 다양한 스트리밍 포맷, DRM 보호, 광고 삽입 등 비디오 및 오디오 재생을 위한 포괄적인 기능을 제공하여 개발 프로세스를 단순화합니다.

• 이 글은 Media3 ExoPlayer와 Jetpack Compose를 활용하여 알림 지원이 되는 기본 미디어 플레이어 앱을 만드는 과정을 안내해 드립니다.

• Media3는 다른 미디어나 미디어2 라이브러리와 어떻게 다른가요?

• Media3는 구성 요소 간의 커넥터가 필요하지 않기 때문에 다른 재생 라이브러리에서 눈에 띈다.

• Media3를 사용하면 미디어 세션 클래스는 ExoPlayer 및 MediaController와 같은 UI 구성 요소를 포함하여 플레이어 인터페이스를 구현하는 모든 클래스를 수락할 수 있다.

• 이 간소화된 접근 방식은 앱의 다른 부분 간의 상호 작용을 단순화하여 개발 프로세스를 훨씬 쉽게 만든다.

https://medium.com/@myofficework000/building-a-media-player-app-with-jetpack-media3-in-jetpack-compose-16ae8c35f955

Building a Media Player App with Jetpack Media3 in Jetpack compose

Jetpack Media3 offers a robust framework for building media player apps on Android, with ExoPlayer as the default implementation of the…

medium.com





오늘의 이야기

안드로이드: Hilt에서 Koin으로 마이그레이션

안드로이드



• 이 글에서는 의존성 주입(DI) 프레임워크를 훨씬 더 간단한 접근법으로 업그레이드하여 PokeAPI 프로젝트를 계속할 것입니다. 우리는 Hilt DI를 Koin으로 대체할 것입니다.

• Hilt는 코드 생성 및 주석을 통해 각 구성 요소에 종속성을 주입하여 큰 역할을 하지만, 개발자가 너무 많은 상용판과 코드 생성으로 인해 제어의 일부를 잃음에 따라 종속성을 해결하는 것은 매우 혼란스러운 프로세스가 됩니다.

• Koin은 코틀린 DSL(Domain-Specific-Language) 위에 구축되어 있으며 처리하기에 훨씬 간단한 프레임워크로 나타납니다.

• 또한 Dagger/Hilt와 달리 Koin은 빌드 타임 대신 실행 타임에서 종속성을 해결합니다.

• 이제 프레임워크를 변경하여 프로젝트를 변경하기 시작하겠습니다.

• 그래들 파일을 구성하는 것부터 시작하겠습니다.

• 먼저 모든 Hilt 종속성을 제거하고 이 종속성으로 대체하고 동기화합니다.

https://blog.stackademic.com/android-migrating-hilt-to-koin-0c1012104780

Android: Migrating Hilt to Koin

In this article we will continue our PokeAPI project by upgrading our Dependency Injection(DI) framework into a much simpler approach. We…

blog.stackademic.com





오늘의 이야기



#스치니1000프로젝트 #재미 #행운기원 #Compose #Firebase

🎯 야 너 토요일마다 로또 확인하냐?
나도 맨날 "혹시나~" 하면서 봤거든 ㅋㅋ

근데 이제는 그냥 안 해
AI한테 맡겼어 🤖✨

그것도 구글 Gemini로다가!

그래서 앱 하나 만들었지
👉 "로또 예상번호 by Gemini" 🎱

AI가 분석해서 번호 딱! 뽑아줌
그냥 보고 참고만 하면 됨

재미로 해도 좋고…
혹시 모르는 거잖아? 😏


https://play.google.com/store/apps/details?id=com.billcorea.gptlotto1127




오늘의 이야기

제트팩 구성의 상태 관리: ViewModel vs Remember function

안즈로이드



• 상태 관리는 동적이고 반응성이 좋은 사용자 인터페이스를 만들기 위해 제트팩 컴포즈에서 중요합니다. 뷰모델에 상태를 저장하는 것과 뷰 내에서 기억 함수를 사용하는 것 사이의 선택은 딜레마를 제시한다.

• 전통적으로 MVVM과 MVI 패턴은 뷰모델이 로직과 상태를 처리하는 반면 뷰 계층은 프레젠테이션과 사용자 상호 작용에 중점을 두는 별도의 문제를 처리한다.

• 제트팩 컴포즈의 반응형 UI 패러다임과 기억 기능은 스크롤 위치와 같은 일시적인 UI 상태를 관리하기 위한 대안을 제공하면서 이러한 분리에 도전한다.

• 스크롤 상태에 대한 기억을 사용하면 코드가 단순화되지만 뷰모델과 뷰 사이의 분리가 흐려져 MVI 아키텍처가 잠재적으로 복잡해질 수 있습니다.

• MVI 원칙을 엄격하게 준수하면 스크롤 위치를 포함한 모든 상태가 뷰모델에 의해 관리되어야 한다고 지시한다.

• 그러나 특정 UI 상태 유형에 대한 기억의 실용성과 효율성을 무시할 수 없다.

• 이 기사는 UI 상호 작용이 MVI 아키텍처 내에서 이 상태를 효과적으로 수정할 수 있는 방법을 설명하는 뷰모델이 하단 시트 상태를 유지하는 접근법을 탐구한다.

https://blog.stackademic.com/state-management-in-jetpack-compose-viewmodel-vs-remember-function-5fc78cdec92f

State Management in Jetpack Compose: ViewModel vs. Remember Function

Have you ever found yourself pondering the best practices for managing state in your applications? With the advent of Jetpack Compose, how…

blog.stackademic.com





오늘의 이야기


#스하리1000명프로젝트

스치니들!
내가 만든 이 앱은, 내 폰에 오는 알림 중에서 중요한 키워드가 있는 경우
등록해둔 친구에게 자동으로 전달해주는 앱이야 📲

예를 들어, 카드 결제 알림을 와이프나 자녀에게 보내주거나
이번 달 지출을 달력처럼 확인할 수도 있어!

앱을 함께 쓰려면 친구도 설치 & 로그인해줘야 해.
그래야 친구 목록에서 서로 선택할 수 있으니까~
서로 써보고 불편한 점 있으면 알려줘 🙏

👉 https://play.google.com/store/apps/details?id=com.nari.notify2kakao





오늘의 이야기

제트팩 컴포즈와 AES 암호화를 사용한 생체 인증 구현

생체인증



• 안드로이드용 최신 UI 툴킷인 제트팩 컴포즈와 AES 암호화를 사용하여 생체 인증을 구현하는 방법을 설명합니다.

• 생체 인증은 지문, 얼굴 특징 또는 홍채 패턴과 같은 고유한 생물학적 특성을 활용하여 신원을 검증하는 방법입니다.

• AES 암호화는 민감한 데이터를 보호하는 데 사용되는 강력한 암호화 알고리즘입니다.

• 생체 인증을 사용할 때 암호 솔루션이 필수적인 이유는 데이터 보호, 키 관리, 규정 준수 요건, 공격에 대한 방어 때문입니다.

• 본 블로그 게시물에서는 지문 인증을 구현하는 데 초점을 맞춥니다.

https://blog.canopas.com/how-to-implement-biometric-authentication-with-jetpack-compose-and-aes-encryption-1b72cfccf4d4

How to Implement Biometric Authentication with Jetpack Compose and AES Encryption

Exciting News! Our blog has a new Home! 🚀

blog.canopas.com





오늘의 이야기

@InstallIn(SingletonComponent::class)은 Dagger Hilt에서 사용되는 어노테이션입니다. 이 어노테이션은 의존성 주입(Dependency Injection) 모듈이 어떤 DI 컨테이너에 포함되어야 하는지를 지정합니다. 이는 의존성의 수명주기와 관련이 있습니다.


예를 들어, 다음과 같은 모듈이 있습니다:


Kotlin
 



@InstallIn(SingletonComponent::class)
object ApiModule {
@Provides
fun provideRetrofit(): Retrofit {
// ...
}
}


 

위 예시에서 ApiModule은 애플리케이션 클래스에 바인딩되어 있으므로 애플리케이션이 존재하는 동안 계속 존재합니다. 그러나 Hilt가 Retrofit 인스턴스를 제공할 때마다 새로운 객체를 생성합니다. 그러나 @Singleton을 추가하면 매번 동일한 Retrofit 인스턴스를 반환합니다:


Kotlin
 



@InstallIn(SingletonComponent::class)
object ApiModule {
@Provides
@Singleton
fun provideRetrofit(): Retrofit {
// ...
}
}


 


따라서 @InstallIn(SingletonComponent::class)은 모듈이 애플리케이션 수명주기 동안 존재하도록 하며, @Singleton은 동일한 인스턴스를 유지하도록 합니다123.


이 두 어노테이션은 서로 다른 목적을 가지고 있으며, 애플리케이션의 의존성 주입 구성에 중요한 역할을 합니다.


 


 


이상은 copilot을 통해 배워보는 자료입니다. 


 


이전 posting에서 사용했던 Dagger Hilt을 적용해 의존성 연결을 쉽게 해 보는 코드를 구혀해 보고 있는 중입니다.  아직 앱 project 을 체계적으로 만들어 보지 못하는 중이라... 조금은 더 정리된 모습의 코드을 구현해 보고자 하고 있습니다. 


 



Dagger Hilt가 무엇인지 설명해 주세요.

 


Dagger Hilt 안드로이드 애플리케이션에서 **의존성 주입(Dependency Injection)**을 간편하게 구현할 수 있도록 도와주는 라이브러리입니다. Hilt는 다음과 같은 목표를 가지고 있습니다:



  1. Dagger와 관련된 인프라를 단순화합니다.

  2. 표준적인 컴포넌트와 스코프를 제공하여 설정, 가독성, 앱 간 코드 공유를 용이하게 합니다 1.


Dagger Hilt는 Dagger2를 기반으로 하며, Android 프레임워크에서 자주 사용되는 DI 컴포넌트와 스코프를 기본적으로 제공하여 초기 DI 환경 구축 비용을 크게 줄입니다. 또한 Jetpack의 ViewModel에 대한 의존성 주입도 간단하게 구현할 수 있습니다. 아직은 알파 버전이지만, 앞으로 더 발전할 것으로 기대됩니다 23.


Hilt를 사용하면 Dagger 설정 코드를 생성하여 Android 클래스(예: 액티비티 및 프래그먼트)에 자동으로 삽입합니다. 이를 통해 보일러 플레이트를 줄이고 프로젝트의 가독성을 향상할 수 있습니다. Hilt를 프로젝트에 적용하려면 Gradle 설정을 추가하고 @HiltAndroidApp 어노테이션을 사용하여 Application 클래스를 초기화해야 합니다 4.


Dagger Hilt는 Android 애플리케이션 개발에서 DI를 간편하게 사용할 수 있도록 도와주는 강력한 도구입니다. 🚀


 


앱 기준의 gradle 파일에 추가해 보겠습니다.


    //Dagger - Hilt
implementation "com.google.dagger:hilt-android:2.51"
ksp "com.google.dagger:hilt-android-compiler:2.51"
ksp "androidx.hilt:hilt-compiler:1.2.0"
implementation "androidx.hilt:hilt-navigation-compose:1.2.0"

// Paper
implementation "io.github.pilgr:paperdb:2.7.2"

 


위 설명과 같이 먼저 Manifest에 Application class을 추가해 봅니다. 


    <application
android:name=".core.GlobalApplication"
android:allowBackup="true"

...

 


 


다음은 Application class에 의존성을 주입해 봅니다. 


 


@HiltAndroidApp
class GlobalApplication : Application() {
override fun onCreate() {
super.onCreate()
globalApplicationContext = this
init(this, getString(R.string.kakao_app_key))
val keyHash = getKeyHash(applicationContext)
Log.e("", "keyHash=$keyHash")

MobileAds.initialize(this) { }
Paper.init(this)
}

...

 


다음번에는  Paging을 구성하기 위한 준비를 해 보겠습니다. 


 


android hilt






오늘의 이야기


#스하리1000명프로젝트,
Иногда сложно разговаривать с иностранными работниками, правда?
Я сделал простое приложение, которое помогает! Вы пишете на своем языке, а другие видят это на своем.
Он автоматически переводит в зависимости от настроек.
Очень удобно для легкого общения. Посмотрите, когда будет возможность!
https://play.google.com/store/apps/details?id=com.billcoreatech.multichat416




오늘의 이야기

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://github.com/nari4169/paging_movie_app_jetpack_compose



 


GitHub - nari4169/paging_movie_app_jetpack_compose


Contribute to nari4169/paging_movie_app_jetpack_compose development by creating an account on GitHub.


github.com




이 예제는 paging 을 배우는 데, 도움이 되는 코드입니다. 물론 jetpack compose을 이해한다는 조건이 선행되기는 합니다. 예제 코드가 jetpack compose로 되어 있는 거라서, 그 구조는 아직도 이해가 잘 안 되기는 하지만... 따라 하기를 해 볼 수 있어서 도움이 되었습니다. 


 


 



스크롤 샘플


이 샘플을 보시면 이해가 되실 겁니다.  이 코드의 구조에 대한 이야기는 다음에 해 보겠습니다.  실제 적용된 앱은 다음 링크에서 받아 보세요.


 


https://play.google.com/store/apps/details?id=com.nari.notify2kakao&pli=1



 


알림수신기 (알림전달, 카톡메시지, 월간 지출 관리) - Google Play 앱


알림이 오면 글자를 확인해서 미리 등록한 카톡친구에서 전달해 드립니다. 매월 반복적인 지출관리 기능도 추가 됩니다.


play.google.com




이 앱은 내 폰에서 발생 되는 모든 알림에서 지정된 문자를 골라서 카톡 친구에게 알림을 전달해 줄 수 있는 앱입니다. 





오늘의 이야기

2024년 웹 개발을 위한 최고의 프론트 엔드 프레임워크


UI Design



• 프론트 엔드 프레임워크는 재사용 가능한 구조, 설계 패턴 및 코드 블록을 제공하여 웹 개발을 단순화합니다.

• 프론트 엔드 프레임워크를 선택할 때 고려해야 할 핵심 요소에는 프로젝트 요구 사항, 확장성, 성과, 커뮤니티 지원, 예산 및 유연성이 포함된다.

• 자바스크립트는 프론트 엔드 프레임워크에서 가장 널리 사용되는 언어 도구로 리액트, Vue.js 및 Svelte와 같은 인기 있는 프레임워크가 자바스크립트에 작성되었다.

• 프론트 엔드 프레임워크는 모듈성, 구조화된 웹 아키텍처, 응답성 및 커뮤니티 지원을 제공합니다.

• 확장성, 성능 최적화, 적극적인 커뮤니티 지원, 예산 및 자원 활용, 유연성은 프론트 엔드 프레임워크를 선택할 때 중요한 고려 사항이다.

https://javascript.plainenglish.io/best-frontend-frameworks-for-web-development-in-2024-bcec59055c00

Best Frontend Frameworks for Web Development in 2024

Quick Summary: Selecting the right front-end framework is, in fact, a significantly important part of web development. In the year 2024…

javascript.plainenglish.io





오늘의 이야기


#billcorea #운동동아리관리앱
🏸 Schneedle — незаменимое приложение для бадминтонных клубов!
👉 Матчевая игра: записывайте результаты и находите противников 🎉
Идеально подходит для любого места: в одиночку, с друзьями или в клубе! 🤝
Если вам нравится бадминтон, обязательно попробуйте

Зайди в приложение 👉 https://play.google.com/store/apps/details?id=com.billcorea.matchplay




오늘의 이야기

제트팩 구성에서 UI 이벤트 처리: 헌터 프리스의 깨끗한 접근법


안드로이드 UI




• 헌터 프리스의 제트팩 컴포즈에서 UI 이벤트를 처리하기 위한 깨끗한 접근 방식을 소개합니다.

• UI 이벤트는 UI 또는 ViewModel에 의해 UI 계층에서 처리되어야 하는 동작입니다.

• UI 이벤트를 처리하는 방법은 UiEvent 인터페이스, ViewModel, Composables를 사용하는 것입니다.

• 이 접근 방식은 레이어를 분리하고, 합성물을 단순화하며, 확장성과 유지성을 향상시킵니다.

• 실제 예제를 통해 이 접근 방식을 구현하는 방법을 설명합니다.

https://medium.com/@hunterfreas/handling-ui-events-in-jetpack-compose-a-clean-approach-c8fd1bfc6231

Handling UI Events in Jetpack Compose: A Clean Approach

Explore a simple method for managing UI events in Jetpack Compose for cleaner, scalable code.

medium.com





오늘의 이야기

KOIN을 이용한 MVVM 및 의존성 주입으로 제트팩 구성 탐색


내비게이션




• 이 기사에서는 KOIN을 사용한 MVVM과 의존성 주입을 사용한 제트팩 컴포즈 내비게이션을 소개한다.

• Navigation 구성 요소를 사용하는 이점과 Compose로 설정하는 방법을 설명합니다.

• 이 기사는 또한 구성 가능한 목적지 간의 통과 주장과 코인과 함께 종속성 주입을 사용하는 것을 다룬다.

• UI 상태 업데이트를 위해 StateFlow를 사용하는 ViewModel 클래스의 예를 제공한다.

• 마지막으로 Datasource, Retrofit, ViewModel에 정의된 모듈 목록을 포함한다.

https://proandroiddev.com/jetpack-compose-navigation-with-mvvm-dependency-injection-koin-ceee45658c86

Jetpack Compose Navigation with MVVM+Dependency Injection Koin

How it worked before

proandroiddev.com





오늘의 이야기


#스하리1000명프로젝트,
¿Perdido en Corea? Incluso si no hablas coreano, esta aplicación te ayuda a moverte fácilmente.
Simplemente hable su idioma: traduce, busca y muestra resultados en su idioma.
¡Genial para viajeros! Admite más de 10 idiomas, incluidos inglés, japonés, chino, vietnamita y más.
¡Pruébalo ahora!
https://play.google.com/store/apps/details?id=com.billcoreatech.opdgang1127




2026/03/30

오늘의 이야기

안드로이드 14의 새로운 기능


안드로이드 14




• 안드로이드 14는 이미 출시되었으며, 대부분의 애플리케이션 개발자에게 영향을 미칠 모든 중요한 변경 사항을 정리했습니다.

• 배경 모드에 대한 새로운 제한, 전경 서비스의 변경, 의도 및 방송 수신자의 작업에 대한 새로운 제한을 검토하겠습니다.

• 이번 출시에서는 많은 제한 사항이 있지만 새로운 기능도 있습니다.

• 안드로이드 14는 웹 콘텐츠 접근성 지침(WCAG)에 따라 새로운 텍스트 스케일링 시스템을 도입합니다.

• 안드로이드 14는 텍스트, 사진 또는 기타 콘텐츠를 공유할 때 볼 수 있는 체계적인 대화인 Share Sheet의 디자인과 기능을 업데이트했습니다.

https://proandroiddev.com/whats-new-in-android-14-1e5d7d8b3482

What's new in Android 14 for developers

Review of most important changes in API and new features in Android 14 that developers need to adopt

proandroiddev.com





오늘의 이야기

반반족발


맛나요.


[카카오맵] 여진족
대전 서구 문정로170번길 152 (둔산동)

https://kko.to/dhslHDkuFg

여진족

대전 서구 문정로170번길 152

map.kakao.com


대전 둔산동의 **여진족**은 맛있는 족발과 보쌈으로 유명한 맛집입니다. 여기서는 홀이 넓어서 단체로 방문하기에도 좋으며, 배달 서비스도 제공됩니다. 주변이 주택가라서 주차는 조금 어려울 수 있지만, 둔산3동 상인회 공영 주차장을 이용하시면 편리합니다. 식사 후 주차권을 요청하면 2시간 무료 주차권을 받을 수 있습니다.

**메뉴 추천**:
1. **보쌈**: 냄새가 안 나고 부드럽고 맛있는 보쌈입니다.
2. **족발**: 족발 특유의 냄새가 적고 부드러워요.
3. **매운 족발**: 굉장히 매워서 맵찔이들은 조심해야 합니다.

둔산동에서 맛있는 보쌈을 즐기고 싶다면 **여진족**을 추천드립니다! 🍽️👍.

출처: Bing과의 대화, 2024. 4. 7.
(1) 대전 서구 둔산동 맛집 '둔산 여진족' - 네이버 블로그. https://m.blog.naver.com/slowly_more/222926192029.
(2) 대전 둔산동 족발 맛집 회식장소 모임장소로 좋은 곳 족발 땡길 .... https://blog.naver.com/PostView.naver?blogId=hanidyou&logNo=222943694981.
(3) 여진족 둔산점 - 대전, 서구-둔산 탄방 | 맛집검색 식신. https://www.siksinhot.com/P/780719.
(4) 대전 둔산3동맛집 족발맛집 여진족 선짓국이 서비스 : 네이버 .... https://m.blog.naver.com/cmr6061/222544234843.
(5) [대전 족발/보쌈 맛집], 둔산동 여진족 : 네이버 블로그. https://m.blog.naver.com/jhdailylog/223084700202.
(6) ShutterStock. https://ak.picdn.net/shutterstock/photos/1700646535/watermark_1000/42b018746ba764f7382183adee82e37f/preview_1000-1700646535.jpg.





오늘의 이야기



#스치니1000프로젝트 #재미 #행운기원 #Compose #Firebase

🎯 야 너 토요일마다 로또 확인하냐?
나도 맨날 "혹시나~" 하면서 봤거든 ㅋㅋ

근데 이제는 그냥 안 해
AI한테 맡겼어 🤖✨

그것도 구글 Gemini로다가!

그래서 앱 하나 만들었지
👉 "로또 예상번호 by Gemini" 🎱

AI가 분석해서 번호 딱! 뽑아줌
그냥 보고 참고만 하면 됨

재미로 해도 좋고…
혹시 모르는 거잖아? 😏


https://play.google.com/store/apps/details?id=com.billcorea.gptlotto1127




오늘의 이야기

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

• 안드로이드 뷰모델을 사용하는 모범 사례를 다루는 기사 시리즈의 첫 번째 부분입니다.

• 뷰모델의 역할, 게으른 의존성 주입 전략, 반응형 프로그래밍의 중요성에 대해 설명합니다.

• 일반적인 피하기 위한 함정에 대해 논의하여 개발자에게 포괄적인 가이드를 제공합니다.

• init{} 블록에서 데이터 로딩을 시작하는 것은 몇 가지 단점이 있습니다.

• 데이터 로딩에 대한 보다 신중한 접근 방식을 사용하여 라이브데이터 또는 기타 라이프사이클 인식 구성 요소를 활용하여 안드로이드 라이프사이클을 존중하는 방식으로 데이터를 관리하는 것이 좋습니다.

https://proandroiddev.com/mastering-android-viewmodels-essential-dos-and-donts-part-1-%EF%B8%8F-bdf05287bca9

Mastering Android ViewModels: Essential Dos and Don'ts Part 1 🛠️

If you're using ViewModels keep these in mind for better code quality

proandroiddev.com

뷰모델 ?






오늘의 이야기


#스하리1000명프로젝트

스치니들!
내가 만든 이 앱은, 내 폰에 오는 알림 중에서 중요한 키워드가 있는 경우
등록해둔 친구에게 자동으로 전달해주는 앱이야 📲

예를 들어, 카드 결제 알림을 와이프나 자녀에게 보내주거나
이번 달 지출을 달력처럼 확인할 수도 있어!

앱을 함께 쓰려면 친구도 설치 & 로그인해줘야 해.
그래야 친구 목록에서 서로 선택할 수 있으니까~
서로 써보고 불편한 점 있으면 알려줘 🙏

👉 https://play.google.com/store/apps/details?id=com.nari.notify2kakao





오늘의 이야기

Retrofit interview 질문과 설명

• 레트로핏은 안드로이드 및 자바/코틀린용 타입 세이프 HTTP 클라이언트로 RESTful API 소비를 단순화합니다.

• 주석을 사용하여 API 엔드포인트와 요청/응답 유형을 정의하여 웹 서비스에서 더 쉽게 작업할 수 있습니다.

• Retrofit은 동적 URL 매개 변수, 파일 업로드 및 사용자 정의 오류 처리를 지원합니다.

• RxJava 및 Kotlin Coroutines와 통합하여 비동기 네트워크 요청을 수행할 수 있습니다.

• 레트로핏은 API 요청의 다양한 측면을 정의하기 위해 @GET, @POST, @PUT, @DELETE, @Path, @Query, @Body 및 @Headers과 같은 주석을 제공한다.

https://medium.com/@sujathamudadla1213/android-retrofit-interview-questions-eefdef6dc09c

Android Retrofit interview questions.

1.What is Retrofit, and how does it simplify the process of making network requests in Android applications?

medium.com

retrofit api






오늘의 이야기

제트팩 컴포즈의 LazyList 항목 애니메이션 미리보기

• LazyColumn과 LazyRow는 제트팩 컴포즈에서 가장 많이 사용되는 구성 요소 중 하나지만, 2020년에 처음 보고된 목록 항목의 애니메이션 문제는 오래되었습니다.

• 새로운 업데이트는 페이드 인 및 페이드 아웃 전환만 가능하게 하는 방법을 제공하지만 올바른 방향으로 가는 단계입니다.

• 컴포즈 파운데이션 라이브러리의 버전 1.7.0-alpha06을 시작으로 배치뿐만 아니라 외관 및 실종을 위해 항목을 애니메이션화할 수 있습니다.

https://medium.com/@gregkorossy/animating-lazylist-items-in-jetpack-compose-6b40f94aaa1a

Animating LazyList items in Jetpack Compose

LazyColumn and LazyRow items can finally be animated when being added to or removed from the list

medium.com

jetpack compose






오늘의 이야기


#스하리1000명프로젝트,
Às vezes é difícil conversar com trabalhadores estrangeiros, certo?
Fiz um aplicativo simples que ajuda! Você escreve na sua língua e os outros veem na deles.
Ele é traduzido automaticamente com base nas configurações.
Muito útil para bate-papos fáceis. Dê uma olhada quando tiver uma chance!
https://play.google.com/store/apps/details?id=com.billcoreatech.multichat416




오늘의 이야기

IntelliJ IDE에 ChatGPT 통합 플러그인 출시

• IntelliJ IDE용 ChatGPT 통합 플러그인이 출시되었습니다.

• 이 플러그인을 사용하면, IntelliJ IDE에서 바로 ChatGPT에 질문을 하고 답변을 코드에 붙여넣을 수 있습니다.

• 또한, 선택한 코드를 ChatGPT로 보내서 분석이나 개선을 요청할 수도 있습니다.

• 이 플러그인은 오픈 소스이며, GitHub에서 다운로드할 수 있습니다.

• 플러그인을 사용하려면, ChatGPT API 토큰을 생성해야 합니다.

https://proandroiddev.com/make-ai-write-code-for-you-before-ai-replaces-you-e455b8b95c29

Make AI write code for you before it replaces you

Maybe it will… Maybe it won't… Nobody knows. But now, it can help you be even more productive (or spend less time working 😉).

proandroiddev.com

hilt






오늘의 이야기

2024년 안드로이드 개발을 위한 궁극의 코틀린 가이드

• 코틀린은 2024년 안드로이드 개발을 위한 선호 언어로 자리 잡았습니다.

• 코틀린은 간결성, 널 안전, 현대적인 기능, 자바와의 상호 운용성으로 안드로이드 개발자에게 인기가 있습니다.

• 코틀린을 배우려면 안드로이드 스튜디오를 설정하고, 학습 자원을 활용하고, 연습을 통해 이해를 공고히 합니다.

• 코틀린 코딩 규약을 따르고, 표준 도서관을 사용하고, 코루틴의 장점을 취하고, 데이터 클래스를 사용합니다.

• 코드를 테스트하고, 의존성 주입을 사용하고, 기능 프로그래밍을 탐색하고, 멀티플랫폼 개발을 고려합니다.

https://melisarudenko.medium.com/the-ultimate-guide-to-kotlin-for-android-development-in-2024-sstech-system-52ccfda3e898











The Ultimate Kotlin Guide for Android Development in 2024

• Cotlin became the preferred language for Android development in 2024.

• Cotlin is popular with Android developers for its conciseness, null safety, modern features, and interoperability with Java.

• To learn Kotlin, set up Android studios, utilize learning resources, and solidify your understanding through practice.

• Follow the Cotlin Coding Code, use a standard library, take advantage of Corutin, and use data classes.

• Test code, use dependency injection, explore functional programming, and consider developing multi-platforms.

https://melisarudenko.medium.com/the-ultimate-guide-to-kotlin-for-android-development-in-2024-sstech-system-52ccfda3e898

The Ultimate Guide to Kotlin for Android Development in 2024 | SSTech System

The Android landscape has evolved significantly, and in 2024, Kotlin reigns supreme as the preferred language for building innovative and…

melisarudenko.medium.com

kotlin






오늘의 이야기


#billcorea #운동동아리관리앱
🏸 Schneedle, um aplicativo obrigatório para clubes de badminton!
👉 Match Play – Grave pontuações e encontre oponentes 🎉
Perfeito para qualquer lugar, sozinho, com amigos ou em um clube! 🤝
Se você gosta de badminton, definitivamente experimente

Acesse o aplicativo 👉 https://play.google.com/store/apps/details?id=com.billcorea.matchplay




오늘의 이야기

Hilt는 안드로이드 앱 개발을 위한 의존성 주입 라이브러리로, Dagger를 기반으로 하여 더 쉽고 편리하게 의존성 주입을 구현할 수 있도록 도와줍니다. Hilt는 Dagger의 강력한 기능을 활용하면서도, 안드로이드 생명주기와 잘 통합되고, 설정이 자동화되며, 보일러플레이트 코드를 줄여주는 등의 이점을 제공합니다. 이를 통해 개발자는 더 빠르고 쉽게 안드로이드 앱을 개발할 수 있습니다



 


Definition of HILT


a handle especially of a sword or dagger… See the full definition


www.merriam-webster.com




Hilt를 안드로이드 프로젝트에 사용하면 다음과 같은 장점이 있습니다:



  1. 코드 재사용성: Hilt를 사용하면 코드를 더 잘 재사용할 수 있습니다 .

  2. 리팩토링 용이성: Hilt는 의존성을 관리하는 표준 방법을 제공하여 리팩토링을 용이하게 합니다 .

  3. 테스트 용이성: Hilt를 사용하면 테스트가 더 쉬워집니다. 의존성 주입을 통해 모의 객체(mock)를 쉽게 주입할 수 있어 테스트가 간편해집니다 .

  4. 보일러플레이트 감소: Hilt는 수동으로 의존성 주입을 하는 번거로움을 줄여줍니다. 모든 클래스와 그 의존성을 수동으로 구성하는 대신, Hilt는 이를 자동으로 관리해 줍니다 .

  5. 자동화된 생명주기 관리: Hilt는 안드로이드 클래스의 컨테이너를 제공하고 자동으로 생명주기를 관리하여, 개발자가 이에 신경 쓸 필요가 없게 해 줍니다 .

  6. Dagger의 장점 활용: Hilt는 Dagger 위에 구축되어 있어, 컴파일 시간의 정확성, 런타임 성능, 확장성 및 안드로이드 스튜디오 지원과 같은 Dagger의 장점을 그대로 활용할 수 있습니다 .


Hilt는 안드로이드 개발에서 의존성 주입을 더 쉽고 효율적으로 만들어주는 강력한 도구입니다.


https://dagger.dev/



 


Dagger


Dagger is a fully static, compile-time dependency injection framework for Java, Kotlin, and Android. It is an adaptation of an earlier version created by Square and now maintained by Google. The latest Dagger release is: Dagger 2.51.1 Dagger aims to addres


dagger.dev




Dagger와 Hilt는 모두 안드로이드 앱 개발에 사용되는 의존성 주입(Dependency Injection) 라이브러리입니다. 그러나 두 라이브러리 사이에는 몇 가지 중요한 차이점이 있습니다:



  1. 설정의 자동화: Hilt는 Dagger의 설정 코드를 자동으로 생성하여, 개발자가 많은 보일러플레이트 코드를 작성할 필요가 없게 해 줍니다 .

  2. 컴포넌트 관리: Dagger에서는 @Component 어노테이션을 사용하여 의존성 그래프를 수동으로 생성해야 하지만, Hilt에서는 @HiltAndroidApp 어노테이션을 사용하여 이 과정을 자동화합니다 .

  3. 생명주기와 스코프: Dagger에서는 개발자가 직접 스코프 어노테이션을 생성해야 하지만, Hilt는 안드로이드의 주요 컴포넌트(애플리케이션, 액티비티, 프래그먼트 등)에 대한 기본 스코프를 제공합니다 .

  4. 통합 및 호환성: Hilt는 Dagger를 기반으로 구축되었으며, Dagger의 기능을 활용하면서도 안드로이드 앱 개발에 더 특화된 기능과 통합을 제공합니다 .


이러한 차이점들은 Hilt를 사용함으로써 개발자가 더 쉽고 빠르게 의존성 주입을 구현할 수 있게 해 주며, Dagger의 복잡성을 줄여줍니다. 그러나 Dagger 자체도 매우 강력하고 유연한 의존성 주입 라이브러리이며, 세밀한 제어가 필요한 경우에는 여전히 유용합니다.


 


Hilt 이미지



 


여기 까지는 coPilot와 알아본 Hilt 이야기입니다.





오늘의 이야기

제트팩 컴포즈의 핵심 개념과 효과 핸들러

• 제트팩 컴포즈의 핵심 개념과 효과 핸들러에 대해 설명합니다.

• 컴포저블은 데이터를 UI 요소로 변환하는 함수입니다.

• 구성은 컴포저블을 실행하여 UI의 청사진을 만드는 과정입니다.

• 레이아웃은 UI 요소를 배치하는 위치를 결정하는 과정입니다.

• 도면은 UI 요소를 캔버스/장치 화면에 렌더링하는 과정입니다.

https://blog.kotlin-academy.com/the-lesson-we-skipped-in-jetpack-compose-255d61db6f12

The Lesson we Skipped in Jetpack Compose ☄

Core concepts of Composables and its helping hands — Episode III

blog.kotlin-academy.com


Key Concepts and Effects Handlers of Jetpack Compose

• Describes the core concepts and effect handlers of Jetpack Compose.

• Composible is a function that converts data into UI elements.

• The configuration is the process of creating a blueprint for the UI by running the Composible.

• Layout is the process of determining where to place UI elements.

• The drawing shows the process of rendering UI elements on canvas/device screen.

https://blog.kotlin-academy.com/the-lesson-we-skipped-in-jetpack-compose-255d61db6f12

The Lesson we Skipped in Jetpack Compose ☄

Core concepts of Composables and its helping hands — Episode III

blog.kotlin-academy.com





오늘의 이야기


#스하리1000명프로젝트,
In Korea verloren? Auch wenn Sie kein Koreanisch sprechen, hilft Ihnen diese App dabei, sich problemlos fortzubewegen.
Sprechen Sie einfach Ihre Sprache – es übersetzt, sucht und zeigt Ergebnisse in Ihrer Sprache an.
Ideal für Reisende! Unterstützt mehr als 10 Sprachen, darunter Englisch, Japanisch, Chinesisch, Vietnamesisch und mehr.
Probieren Sie es jetzt aus!
https://play.google.com/store/apps/details?id=com.billcoreatech.opdgang1127




오늘의 이야기

제트팩 구성에서 더 나은 성능을 위해 재구성 최적화 Android jetpack compose ... by AI • 제트팩 컴포즈는 안드로이드의 네이티브 UI 구축을 위한 현대 툴킷으로, 더 적은 코드, 강력한...