2026/04/07
오늘의 이야기
#billcorea #운동동아리관리앱
🏸 Schneedle, ¡una aplicación imprescindible para los clubes de bádminton!
👉 Match Play: registra puntuaciones y encuentra oponentes 🎉
¡Perfecto para cualquier lugar, solo, con amigos o en un club! 🤝
Si te gusta el bádminton, definitivamente pruébalo.
Ir a la aplicación 👉 https://play.google.com/store/apps/details?id=com.billcorea.matchplay
오늘의 이야기
안드로이드 스튜디오: 컬러, 아이콘, 구성품 프리뷰용 다시마 플러그인으로 개발자 경험 강화
• 기사는 자동 완성 기능에 색상, 아이콘, 구성 요소의 미리보기를 제공하여 개발자 경험을 향상시키는 도구인 안드로이드 스튜디오용 켈프 플러그인을 소개한다.
• 플러그인의 주요 기능은 어둡고 밝은 색상 미리보기, 아이콘 미리보기, 구성 요소 기능을 위한 사용자 지정 가능 아이콘, Git에 저장 및 공유할 수 있는 라이브 템플릿, KDoc 이미지 렌더링 등이다.
• 셋업 프로세스는 켈프 깃허브 저장소로부터 최신 릴리스를 다운로드하고, 수동으로 설치하고, Configuration 파일을 생성하고, 선택적으로 externalDependencies.xml 파일을 생성하여 팀에 알리는 것을 포함한다.
• 플러그인은 색상 및 아이콘에 대한 코드 완료 및 거터 미리보기를 가능하게 하며 아이콘 관리에서 더 나은 성능을 위해 ImageVector를 사용할 수도 있도록 지원합니다.
• 추가 기능에는 설계 시스템 구성 요소에 대한 미리보기 아이콘, Git을 사용하여 공유할 수 있는 라이브 템플릿, 켈프 플러그인 안톤 포포프를 만든 사람 덕분에 특별한 기능이 포함됩니다.
https://engineering.teknasyon.com/android-studio-show-color-and-icon-previews-in-autocompletion-3feeb45747a5
Android Studio — Show Color and Icon Previews in Autocompletion
Using The Amazing Kelp Plugin…
engineering.teknasyon.com
오늘의 이야기
안드로이드 개발자 블로그: 구글 I/O에서 안드로이드 개발자가 알아야 할 15가지
• 구글 I/O 2024는 AI 통합, 교차 장치 경험 및 생산성 향상에 중점을 둔 안드로이드 개발자를 위한 여러 발전과 업데이트를 소개했다.
• AI 기반 코딩 컴패니언인 Gemini는 코드 제안, 앱 품질 인사이트, 멀티 모달 입력과 같은 새로운 기능으로 진화했습니다.
• 안드로이드는 Gemini Nano와 같은 클라우드 기반 모델과 온디바이스 모델에 대한 옵션과 함께 생성형 AI 앱 구축 솔루션을 제공합니다.
• 적응형 레이아웃 라이브러리와 스타일러스 지원은 전화기, 폴더블 및 태블릿을 포함한 다양한 폼 팩터에 걸쳐 앱 경험을 향상시킵니다.
• 제트팩 글랜스 1.1은 디자인 안내 및 안드로이드 UI 키트 업데이트와 함께 컴포즈 스킬을 사용하여 고품질 위젯을 만들 수 있습니다.
• 컴포즈는 6월 24일 출시로 베타, 적응형 레이아웃 라이브러리 등에서 TV용 컴포즈를 선보이며 개발자들이 다양한 기기 전반에 걸쳐 UI를 구축할 수 있게 되는 등 역량을 지속적으로 확장하고 있다.
• 웨어 OS 5는 개선된 배터리 수명, 워치 페이스 포맷의 향상, 웨어 OS의 헬스 커넥트 및 헬스 서비스 업데이트를 제공합니다.
https://android-developers.googleblog.com/2024/05/15-things-to-know-for-android-developers-google-io-2024.html?utm_source=email&utm_medium=newsletter&utm_campaign=gdev-june24&m=1
15 Things to know for Android developers at Google I/O
Take a peak at some of the ways Android is here to support you. Don’t forget to check out the Android track at Google I/O!
android-developers.googleblog.com
오늘의 이야기
코틀린 lazy vs lazyinit: 코틀린의 변수 초기화 이해
• 코틀린은 코드 효율성과 가독성을 단순화하고 개선하기 위해 게으름과 늦게 시작하는 두 가지 속성 이니셔티브를 제공한다. Lazy는 불변 Val 속성에 사용되며 처음 사용할 때 속성을 초기화하여 더 나은 자원 관리와 향상된 시작 시간을 보장합니다.
• Lazy는 Kotlin Delegates를 사용하여 구현되며 이니셜라이저의 스레드 안전 버전을 사용합니다. 모든 get()에서 초기화를 확인하고 직관적인 속성 초기화를 위해 람다 함수를 사용한다.
• 반면에 Lateinit은 가변 var 속성에 사용되며 시간이 지남에 따라 속성이 변경될 수 있다. 시작 시 초기화되지 않으며 첫 번째 읽기 전에 명시적인 초기화가 필요하며 그렇지 않으면 충돌이 발생합니다.
• 게으른 초기화와 달리, 늦은 초기화는 프로그램의 어느 곳에서나 일어날 수 있으므로 병목 최적화에 적합합니다. 그러나 테스트 목적으로만 사용되는 isInitialized()를 사용하여 초기화를 위해 신중하게 사용해야 하며 절대 확인하지 않아야 합니다.
• 원시 유형의 경우 코틀린의 백킹 필드 생성으로 인해 레이트니잇을 직접 사용할 수 없다. 대신 Delegates.notNull<T>()를 대안으로 사용할 수 있으며, 이는 유사하게 작동하지만 대리인을 통해 원시 유형을 상자에 넣습니다.
https://medium.com/@michalankiersztajn/kotlin-lazy-vs-lateinit-explained-3574d5ec7d15
Kotlin Lazy vs Lateinit Explained
Properties are the core of every program. There are many smart ways to initialize them. Take a look at lazy and lateinit initializations:
medium.com
2026/04/06
오늘의 이야기
제트팩 구성으로 견고한 MVI 아키텍처 구현
• 기사는 제트팩 컴포즈를 사용하는 강력한 모델 뷰 인텐트(MVI) 아키텍처 개발에 대해 논의하며 프로젝트 불진단 특성과 개발자 기여 용이성을 강조한다.
• UI와 ViewModel 간의 계약 역할을 하는 Reducer와 State, Event, Effect의 분리를 포함한 MVI 원칙에 대한 이해의 중요성을 강조한다.
• 저자는 ViewState, ViewEvent, ViewEffect를 정의하는 등 구현 과정에 대한 자세한 설명을 제공하고 뷰모델에서 Reducer를 사용하는 방법을 보여준다.
• 기사는 단일 출처 원칙을 준수하고 다양한 UI 사례의 처리를 단순화하는 것과 같은 MVI 아키텍처의 이점을 강조한다.
• 저자는 여러 프로젝트에 걸쳐 일관된 접근 방식이 필요하고 코드 검토 프로세스를 간소화하려는 욕구를 언급하면서 이러한 맞춤형 아키텍처를 만드는 동기를 설명한다.
• 전체 프로젝트는 깃허브에서 사용할 수 있으며 기사는 MVI에 대한 추가 리소스에 대한 권장 사항으로 마무리된다.
https://proandroiddev.com/a-robust-mvi-with-jetpack-compose-e08882d2c4ff
A robust MVI with Jetpack Compose
Implementing an MVI Architecture recognisable to all
proandroiddev.com
오늘의 이야기
#스치니1000프로젝트 #재미 #행운기원 #Compose #Firebase
🎯 야 너 토요일마다 로또 확인하냐?
나도 맨날 "혹시나~" 하면서 봤거든 ㅋㅋ
근데 이제는 그냥 안 해
AI한테 맡겼어 🤖✨
그것도 구글 Gemini로다가!
그래서 앱 하나 만들었지
👉 "로또 예상번호 by Gemini" 🎱
AI가 분석해서 번호 딱! 뽑아줌
그냥 보고 참고만 하면 됨
재미로 해도 좋고…
혹시 모르는 거잖아? 😏
https://play.google.com/store/apps/details?id=com.billcorea.gptlotto1127
오늘의 이야기
Firebase 웹 앱에 대한 TOTP 다중 인증 활성화

• 신원 플랫폼을 사용한 화재 기반 인증을 통해 추가 보안 조치로 시간 기반 일회성 비밀번호(TOTP) 다중 인증(MFA)을 앱에 추가할 수 있습니다.
• TOTP MFA를 가능하게 하려면 이메일, 전화 또는 구글 서명인과 같이 MFA를 지원하는 제공업체가 하나 이상 있어야 하며 사용자 이메일 주소가 확인되는지 확인해야 한다.
• Firebase Admin SDK 또는 REST API를 사용하여 TOTP MFA를 활성화하고 TOTP를 수락할 수 있는 인접한 시간 창 간격의 수를 구성할 수 있습니다.
• TOTP MFA를 활성화한 후 TOTP 비밀을 생성하여 사용자에게 표시하고 인증자 앱에 입력하도록 프롬프트하여 사용자를 등록하기 위해 클라이언트 측 로직을 구현한다.
• TOTP MFA로 사용자에게 서명하려면 auth/multi-factor-auth 요구 오류를 처리하고 사용자가 두 번째 요인을 선택하고 확인하도록 촉구합니다.
• 또한 Admin SDK로 멀티 팩터 사용자를 프로그램적으로 관리할 수 있습니다.
• 사용자가 TOTP MFA에서 등록을 해제하면 로그아웃되며 계정에 대한 액세스를 되찾기 위해 재인증해야 합니다.
https://firebase.google.com/docs/auth/web/totp-mfa
웹 앱에 TOTP 다중 인증(MFA)을 추가합니다. | Firebase Authentication
Google I/O 2023에서 Firebase의 주요 소식을 확인하세요. 자세히 알아보기 의견 보내기 웹 앱에 TOTP 다중 인증(MFA)을 추가합니다. 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하
firebase.google.com
오늘의 이야기
#스하리1000명프로젝트
스치니들!
내가 만든 이 앱은, 내 폰에 오는 알림 중에서 중요한 키워드가 있는 경우
등록해둔 친구에게 자동으로 전달해주는 앱이야 📲
예를 들어, 카드 결제 알림을 와이프나 자녀에게 보내주거나
이번 달 지출을 달력처럼 확인할 수도 있어!
앱을 함께 쓰려면 친구도 설치 & 로그인해줘야 해.
그래야 친구 목록에서 서로 선택할 수 있으니까~
서로 써보고 불편한 점 있으면 알려줘 🙏
👉 https://play.google.com/store/apps/details?id=com.nari.notify2kakao
오늘의 이야기
코틀린 뮤텍스: 공유 코드 액세스에 대한 상호 배제 이해

• 상호 배제를 줄인 코틀린 무텍스는 동시에 실행되어서는 안 되는 공유 코드 섹션에 액세스하는 문제를 해결합니다. 잠금 및 잠금 해제 메커니즘이 있는 잠금 장치와 같은 기능을 하여 중요한 섹션이 보호됩니다. 기존 잠금 장치와 달리 뮤텍스는 매달림 기능을 사용하여 스레드 차단을 방지합니다.
• 그 사용을 설명하기 위해 간단한 카운터 예가 제공되며, 여기서 두 작업이 동시에 카운터를 업데이트하여 종종 잘못된 최종 값을 초래합니다. Mutex를 통합함으로써, 특히 withLock 함수를 통해, 임계 섹션이 동기화되어, 정확한 업데이트 및 200의 최종 카운터 값을 보장한다.
• 또한 Mutex는 개별 Lock 참조를 통해 다양한 기능을 제공하여 코드의 다른 부분을 독립적으로 차단할 수 있습니다. ImageFactory의 예는 Mutex가 원하는 이미지가 캐시될 때까지 중복 호출을 방지하고 코루틴을 중단하여 이미지 캐시를 최적화하는 방법을 보여준다.
https://medium.com/@michalankiersztajn/kotlin-mutex-explained-d2b72281cc42
Kotlin Mutex Explained
Mutex stands for Mutual Exclusion and solves the problem of accessing critical code sections. Learn by example…
medium.com
오늘의 이야기
컴포즈용 유연한 구성을 갖는 고급 bottom sheet

• 투로의 소프트웨어 엔지니어인 파블로 스타비츠키는 원래 재료 3 구현에서 충족되지 않는 제약 조건을 해결하여 기능과 유연성을 향상시키는 컴포즈용 맞춤형 하단 시트를 소개합니다.
• 맞춤형 바닥 시트는 2개 이상의 확장된 상태, 동적 상태 변경, 바닥 시트 상태 및 높이들의 유연한 구성을 지원합니다.
• 기사는 앵커드래거블 및 서브컴포즈레이아웃의 사용과 중첩 스크롤을 가능하게 하는 방법을 포함하여 구현에 대한 자세한 설명을 제공한다.
• 또한 사용자 정의 하단 시트 이면의 동기, 투로에서의 사용 사례, 코드 구성 및 확장성을 위해 SubcomposeLayout을 사용하는 이점을 다룹니다.
• 맞춤형 하단 시트의 소스 코드와 사용을 보여주는 샘플 프로젝트는 깃허브에서 사용할 수 있습니다.
• 기사는 하단 시트 및 컴포즈에 대한 추가 학습을 위한 관련 리소스 목록으로 마무리됩니다.
https://medium.com/turo-engineering/customizable-bottom-sheet-with-flexible-configuration-for-compose-36953b10b758
Advanced Bottom Sheet With Flexible Configuration for Compose
Using AnchoredDraggable and SubcomposeLayout
medium.com
오늘의 이야기
#스하리1000명프로젝트,
Manchmal ist es schwierig, mit ausländischen Arbeitnehmern zu sprechen, oder?
Ich habe eine einfache App erstellt, die hilft! Sie schreiben in Ihrer Sprache und andere sehen es in ihrer.
Die Übersetzung erfolgt automatisch basierend auf den Einstellungen.
Super praktisch für einfache Chats. Schauen Sie bei Gelegenheit vorbei!
https://play.google.com/store/apps/details?id=com.billcoreatech.multichat416
오늘의 이야기
클라우드 기능 활용한 이메일 발송법, 파이어스토어&파이어베이스-메일 발송 자동 메일링 • 이 블로그 게시물은 클라우드 기술을 사용하여 이메일을 더 쉽게 보낼 수 있는 방법을 설명합니다. 특히 신규 가입자...
-
이전 글에서 정리할 것처럼 java에서 kotlin으로 이전을 했습니다. 그러고 나서 보기 시작했는 데, DefaultSharedPrefernces의 사용할 수 없는 환경으로 변경이 된 것을 알게 되었습니다. 이전 prefs = Prefere...