2026/04/11

오늘의 이야기

뷰모델로 안드로이드 오토에서 코드 재사용

view ???



• 이 기사는 구성 변경 및 사망 시에도 생존하는 핵심 제트팩 라이브러리인 ViewModels를 사용하여 Android Auto에서 코드를 재사용하는 방법을 탐구합니다.

• 뷰모델은 안드로이드 오토 및 카 앱 라이브러리에서 사용할 수 있어 개발자가 MVVM 패턴을 유지하고 안드로이드 오토의 일반 앱에서 기능을 재사용할 수 있다.

• 안드로이드 오토는 CarService, Session 및 Screen을 포함하는 특정 설정을 가지고 있으며 화면은 수명 주기를 인식하지만 ViewModelStoreOwner가 아닙니다.

• 이를 해결하기 위해 저자는 화면용 ViewModelStoreOwner를 만들고 수명 주기가 파괴된 상태에 도달하면 이를 제거하여 적절한 ViewModel 관리를 보장합니다.

• 저자는 의존성 주입을 위해 Koin을 사용하여 ViewModel을 주입하는 방법을 보여주므로 루트 Koin 범위에서 ViewModel을 쉽게 검색할 수 있습니다.

• 기사는 뷰모델에서 데이터가 변경될 때마다 화면을 무효화하는 것의 중요성을 강조하여 화면이 그에 따라 업데이트되도록 보장합니다.

https://proandroiddev.com/android-auto-and-viewmodel-reuse-your-code-in-your-car-f883437b7ea3

Android Auto and ViewModel: Reuse your code in your car!

See how we can leverage ViewModelStoreOwner and Koin to use ViewModels in Android Auto.

proandroiddev.com





오늘의 이야기

제트팩 구성으로 실시간 줌 클론 구축

화상회의



• 이 기사는 Compose용 Stream Video SDK를 사용하여 실시간 Zoom 클론 앱을 구축하는 방법을 보여주며, 마이크 토글링, 카메라 뒤집기, 이모지 리액션 전송, 통화 남기와 같은 필수 영상 통화 기능을 구현하는 데 중점을 둔다.

• 저자는 API 키를 획득하고 응용 프로그램 클래스에서 SDK를 초기화하는 것을 포함하여 스트림 비디오 SDK 설정에 대한 자세한 지침을 제공한다.

• 구현은 Call 객체를 생성하고, MeetingRoomViewModel에서 미팅 호출을 처리하고, SDK에서 제공하는 사용자 정의 가능한 구성 요소로 미팅 룸을 설계하는 것을 포함한다.

• 비디오테임 구성 요소는 모든 구성 요소의 기본 래퍼 역할을 하여 앱의 외관을 사용자 정의할 수 있습니다.

• SDK는 CallAppBar 및 ControlActions와 같은 구성 요소에 영상 통화 기능을 쉽게 통합하여 카메라를 뒤집고 통화를 남기는 것과 같은 작업을 가능하게 합니다.

• 회의에서 이모지 반응을 보내는 것은 Call 객체에 반응 데이터를 보내는 것으로 이루어진다.

• 저자는 투명한 문서화, 엔지니어와의 직접적인 커뮤니케이션, 구현을 특정 요구에 이해하고 적응하는 능력을 포함하여 오픈 소스 SDK를 사용하는 이점을 강조한다.

https://proandroiddev.com/build-a-real-time-zoom-clone-with-jetpack-compose-a18047101496

Build a Real-Time Zoom Clone with Jetpack Compose

After regularly using and enjoying video conferencing solutions at work, I felt inspired to create a Zoom clone app using Jetpack Compose…

proandroiddev.com





오늘의 이야기

수정자 로컬: 제트팩 구성에서 분석 처리를 위한 강력한 도구


이미지 feer Dale3




• 컴포지션 로컬의 덜 알려진 형제자매인 모디파이어 로컬은 제트팩 컴포즈 애플리케이션에서 분석을 처리하는 편리한 방법을 제공합니다.

• 일반 분석 이벤트 이름과 함께 재사용 가능한 구성 요소를 생성할 수 있으므로 화면을 지정하는 추가 매개변수가 필요하지 않습니다.

• ModifierLocal을 사용하여 분석을 구현하기 위해 ModifierScreenName이라는 사용자 정의 수정자가 생성되어 분석 목적으로 화면 이름을 선언합니다.

• 이 수정제는 모든 화면에 쉽게 추가할 수 있으며 화면이 표시되면 분석 이벤트를 자동으로 종료합니다.

• 버튼 누름을 캡처하기 위해 onTapAnalyticsEvent라는 보다 정교한 수정어가 도입되어 동일한 요소에 여러 탭 검출기가 있는 문제를 해결합니다.

• 클릭 가능한 요소에 이 수정자를 추가하면 화면 이름과 콘텐츠 유형으로 분석 이벤트를 기록할 수 있습니다.

• 이 접근법은 분석의 구현을 단순화하고 코드 재사용성을 촉진한다.

https://proandroiddev.com/add-powerful-analytics-modifiers-in-jetpack-compose-with-modifierlocal-399e3f8b7914

Add powerful analytics modifiers in Jetpack Compose with ModifierLocal!

Did you ever hear about CompositionLocal’s smaller brother: the ModifierLocal? Check how to utilize it and make analytics handling a…

proandroiddev.com





오늘의 이야기

DevExtreme dxChart와 dxDataGrid 설정 방법


dxDataChart



 


안녕하세요! 오늘은 DevExtreme의 dxChart와 dxDataGrid를 설정하는 방법에 대해 알아보겠습니다. 이 글에서는 차트와 그리드의 축 범위, 간격, 색상 등을 설정하는 방법을 다룹니다.


dxChart 설정 방법


x축과 y축의 범위 및 간격 지정


dxChart에서 x축과 y축의 범위와 간격을 지정하려면 다음과 같이 설정할 수 있습니다:


JavaScript
 



$("#chartContainer").dxChart({
dataSource: dataSource,
argumentAxis: {
min: 0,
max: 100,
tickInterval: 10,
visualRange: {
startValue: 0,
endValue: 100
},
wholeRange: {
startValue: 0,
endValue: 100
}
},
valueAxis: {
min: 0,
max: 100,
tickInterval: 10
},
// 기타 설정
});


AI가 생성한 코드입니다. 신중하게 검토하고 사용하세요. FAQ의 자세한 정보.

이 코드를 사용하면 x축과 y축의 최소값, 최대값, 그리고 눈금 간격을 설정할 수 있습니다. visualRange와 wholeRange 속성을 사용하여 범위를 고정할 수 있습니다.


포인트 색상 지정


각 포인트의 색상을 지정하려면 customizePoint 콜백 함수를 사용할 수 있습니다:


JavaScript
 



$("#chartContainer").dxChart({
dataSource: dataSource,
series: {
type: "line",
customizePoint: function(pointInfo) {
if (pointInfo.value > 50) {
return { color: "#ff3333" }; // 빨간색
} else {
return { color: "#33ff33" }; // 초록색
}
}
},
// 기타 설정
});


AI가 생성한 코드입니다. 신중하게 검토하고 사용하세요. FAQ의 자세한 정보.

이 코드는 value 값이 50보다 큰 포인트는 빨간색으로, 그렇지 않은 포인트는 초록색으로 설정합니다.


dxDataGrid 설정 방법


특정 셀의 배경색 변경


dxDataGrid에서 특정 셀의 배경색을 변경하려면 onCellPrepared 이벤트를 사용합니다:


JavaScript
 



$("#gridContainer").dxDataGrid({
dataSource: dataSource,
columns: [
{ dataField: "field1" },
{ dataField: "field2" },
// 기타 열 설정
],
onCellPrepared: function(e) {
if (e.rowType === "data" && e.column.dataField === "field1") {
if (e.data.field1 === "특정값") {
e.cellElement.css("background-color", "yellow");
}
}
}
});


AI가 생성한 코드입니다. 신중하게 검토하고 사용하세요. FAQ의 자세한 정보.

이 코드는 field1 열의 값이 "특정값"인 경우 해당 셀의 배경색을 노란색으로 변경합니다.


색상 코드


마지막으로, 몇 가지 색상 코드를 소개합니다:



  • #ff3333: 밝은 빨간색

  • #ffcc00: 탠저린 옐로우

  • #99ff66: 인치웜

  • #00FF00: 초록색


이 색상 코드를 사용하여 차트와 그리드의 시각적 요소를 더욱 풍부하게 만들 수 있습니다.




이 글이 도움이 되셨길 바랍니다! 추가로 궁금한 점이 있으면 언제든지 댓글로 남겨주세요. 😊





오늘의 이야기

안드로이드 프로세스 라이프사이클 및 코루틴: 라이프사이클-어웨어 작업을 위한 완벽한 매치

Android life cycle



• 안드로이드 프로세스 라이프사이클과 코루틴은 원활하게 함께 작동하여 안드로이드 애플리케이션에서 라이프사이클 인식 작업을 관리하는 강력한 방법을 제공한다.

• 이 기사는 예상치 못한 문제를 방지하기 위해 금붕어를 돌보는 것과 유사하게 안드로이드 개발에서 구성 요소의 수명 주기를 관리하는 것의 중요성을 강조한다.

• 코로나와 안드로이드 수명 주기는 공통 특성을 공유합니다. 둘 다 상태를 명시적으로 나타내므로 코로나 범위를 안드로이드 수명 주기 이벤트와 정렬할 수 있다.

• 구글의 라이프사이클 라이브러리는 안드로이드 구성 요소의 라이프사이클을 기반으로 코루틴 스코프 생성 및 취소를 자동으로 처리함으로써 이 프로세스를 단순화한다.

• 이 기사는 애플리케이션 시작 시 캐시를 새로고침하고 앱이 배경으로 갈 때 민감한 데이터를 지우는 등 다양한 시나리오에 라이프사이클 인식 코루틴을 사용하는 방법에 대한 실제 예를 제공한다.

• 코드베이스 전반에 걸쳐 흩어져 있는 논리에 의존하는 것이 아니라 특정 이벤트가 발생할 때마다 특정 행동이 수행되도록 하여 라이프사이클 인식 작업을 한 곳에 집중화하는 이점을 강조한다.

• 저자는 개발자들이 응용 프로그램을 보다 반응적이고 독립적으로 만들기 위해 이 접근 방식을 탐색하도록 권장하여 개념에 대한 피드백과 감사를 초대한다.

https://proandroiddev.com/android-process-lifecycle-coroutines-7a8128470dd4

Android Process Lifecycle + Coroutines == ❤

Kotlin Coroutines and Android Lifecycle are a match made in heaven! I will show why they work so well together and cool stuff you can do.

proandroiddev.com





오늘의 이야기

미디어3 1.4.0: 프리로딩, HDR, 자막, 이미지 등

미디어 플레이어



• Media3 1.4.0은 더 빠른 재생을 위한 새로운 프리로드 유틸리티, 더 정확한 텍스트 오버레이 및 울트라HDR 이미지 변환을 위한 개선된 HDR 지원, 더 나은 클리핑 및 더 빠른 로딩을 위한 개편된 자막 파이프라인, UI 모듈의 상자 밖 이미지 지원, 미디어 세션의 더 유연한 오류 처리를 포함한 여러 개선 사항을 소개합니다.

• 새로운 프리로드 매니저는 특히 짧은 형식의 비디오 또는 대화형 UI 시나리오에서 더 부드러운 재생을 위해 여러 미디어 항목의 효율적인 프리로드를 허용합니다.

• HDR 지원은 조절 가능한 텍스트 밝기와 HDR 비디오로의 UltraHDR 이미지 변환으로 강화되어 하이라이트 디테일과 색상 강도를 보존합니다.

• 업데이트된 자막 파이프라인은 자막 클리핑을 개선하고 중복되는 문제를 해결하며 큰 자막 파일로 더 빠른 재생을 가능하게 합니다.

https://medium.com/google-exoplayer/media3-1-4-0-whats-new-ba1c9c17ee1a

Media3 1.4.0 — what’s new?

Media3 1.4.0 is released with new preload utilities, better HDR support in Transformer and images in PlayerView

medium.com





오늘의 이야기


#스하리1000명프로젝트,
Perso in Corea? Anche se non parli coreano, questa app ti aiuta a muoverti facilmente.
Basta parlare la tua lingua: traduce, cerca e mostra i risultati nella tua lingua.
Ottimo per i viaggiatori! Supporta oltre 10 lingue tra cui inglese, giapponese, cinese, vietnamita e altre.
Provalo adesso!
https://play.google.com/store/apps/details?id=com.billcoreatech.opdgang1127




2026/04/10

오늘의 이야기

제트팩 구성에서 더 나은 성능을 위해 재구성 최적화

Android jetpack compose ... by AI



• 제트팩 컴포즈는 안드로이드의 네이티브 UI 구축을 위한 현대 툴킷으로, 더 적은 코드, 강력한 도구, 직관적인 코틀린 API로 단순화되고 가속화된 개발을 제공한다.

• 불필요한 재구성은 UI 부진, CPU 높은 사용 및 배터리 소비 증가로 이어질 수 있으므로 성능을 위해 재구성을 최적화하는 것이 중요합니다.

• 재구성은 구성 가능한 변경, 매개변수 또는 람다 함수의 상태가 변경될 때 발생하며 안드로이드 스튜디오 프로파일러, 디버그 로그 및 재구성 하이라이터를 사용하여 모니터링할 수 있다.

• UI를 너무 많은 작은 합성물로 분해하면 과도한 재구성을 유발할 수 있으므로 관련 UI 요소를 함께 그룹화하고 'remember'와 'rememberUpdatedState'를 사용하여 효율적으로 재구성을 관리하는 것이 중요합니다.

• 상태를 오용하면 원치 않는 재구성을 유발할 수 있으므로 불필요한 업데이트를 최소화하기 위해 상태 의존적 부분을 분리해야 한다.

• 변경 가능한 상태는 필요한 경우에만 신중하게 사용하고 업데이트해야 하며, 변경 불가능한 상태와 'rememberUpdatedState'를 사용하여 상태 변경을 효율적으로 관리할 수 있습니다.

https://medium.com/@dobri.kostadinov/mastering-jetpack-compose-optimizing-recomposition-for-better-performance-bbc7390900f5

Mastering Jetpack Compose: Optimizing Recomposition for Better Performance

Unlock the secrets to enhancing your Jetpack Compose applications by minimizing unnecessary recompositions for smoother and faster UI…

medium.com





오늘의 이야기


#billcorea #운동동아리관리앱
🏸 Schneedle, un'app indispensabile per i club di badminton!
👉 Match Play: registra punteggi e trova avversari 🎉
Perfetto ovunque, da solo, con gli amici o in un club! 🤝
Se ti piace il badminton, provalo sicuramente

Vai all'app 👉 https://play.google.com/store/apps/details?id=com.billcorea.matchplay




오늘의 이야기

안드로이드 정적 앱 바로가기: 빠른 액세스로 사용자 경험 향상

안드로이드



• 안드로이드 정적 앱 바로가기는 사용자에게 앱의 자주 사용되는 기능에 빠르고 편리하게 액세스할 수 있도록 제공합니다. 이러한 바로가기는 앱 아이콘을 길게 누르면 액세스할 수 있으며 사용자 경험과 참여를 향상시키도록 설계되었습니다.

• 정적 바로가기를 만들기 위해 개발자들은 res/xml 디렉토리에 바로가기.xml 파일을 배치하고 바로가기 ID, 레이블 및 바로가기 클릭 시 트리거될 의도와 같은 바로가기 세부 정보를 지정할 수 있다.

• 각 단축키는 긴 레이블(최대 25자)과 짧은 레이블(최대 10자)을 가질 수 있으며, 단축키를 길게 누르면 사용 가능한 공간에 따라 표시된다.

• 바로가기를 활성화하려면 개발자가 바로가기 리소스를 참조하여 AndroidManifest.xml 파일에 메타 데이터를 추가해야 합니다.

https://medium.com/@michalankiersztajn/android-static-app-shortcuts-explained-7609777aa9be

Android Static App Shortcuts Explained

Statically set your apps shortcuts with ease

medium.com





오늘의 이야기

미디어3 엑소플레이어·젯팩 내 HLS 스트림 통합 안드로이드 앱용 구성

미디어 플레이어



• 이 블로그 게시물은 안드로이드 애플리케이션용 제트팩 컴포즈에서 미디어3 엑소플레이어와 HLS(HTTP 라이브 스트리밍) 지원의 통합을 탐구합니다

• ExoPlayer는 비디오 재생 애플리케이션을 구축하기 위한 고급 맞춤화 옵션을 제공하는 강력한 오픈 소스 미디어 플레이어 라이브러리입니다.

• HLS는 비디오 콘텐츠를 작은 덩어리로 분해하여 HTTP를 통해 전달함으로써 원활하고 중단 없는 재생을 보장하는 널리 채택된 스트리밍 프로토콜입니다.

• 가이드에는 필요한 종속성 설정, 역할 이해, 비디오 콘텐츠로 동적 릴 화면 구축을 위한 주요 구성 요소 구현 등이 포함됩니다

• 릴비디오플레이어 기능은 비디오 재생, 라이프사이클 관리, 사용자 상호작용 제스처, 자원 정리 등을 처리합니다

• 모듈식 코드 구조화는 유지보수성과 확장성을 위해 강조됩니다.

• 블로그는 또한 추가 탐색 및 학습을 위해 공식 문서, 지침 및 샘플 코드에 대한 귀중한 참조를 제공합니다.

https://inside.caratlane.com/reels-with-media3-exoplayer-and-hls-stream-using-jetpack-compose-android-4c28b2dd13e3

Reels with Media3 ExoPlayer and HLS Stream using Jetpack Compose Android

This blog simplifies the Integration of Video with ExoPlayer and HLS Stream

inside.caratlane.com





오늘의 이야기

Visual SVN에서 변경 이력 및 내역 확인하기 svn 동기화 CMD 창에서 변경 이력 확인 Visual SVN의 변경 이력을 CMD 창에서 확인하려면   svn log   명령어를 사용합니다. 예를 ...