Android

https://gradle.org/whats-new/gradle-9/ Gradle | What's new in Gradle 9.0.0Gradle 9.0.0 is a new major release which incorporates many features since the version 8.0. It makes Gradle configuration cache the preferred execution mode, provides more clean and actionable error reporting, and also updates Gradle to Kotlin 2 and Groovygradle.org- Gradle 9.0.0이 출시되었길래 간단히 몇 가지 내용들을 정리해 본다.Gradle 9.0.0은 ..
- 디바이스를 재부팅했을 때, 특정 동작을 필요로 할 때가 있다. 데이터 동기화라던지 위젯 갱신이라던지.. - 이때 안드로이드에서 재부팅 시, android.intent.action.BOOT_COMPLETED를 브로드캐스트 한다. - 리시버는 아래와 같이 Manifest.xml에 등록한다. - 또한 권한도 추가해 준다. - BootReceiver를 구성해 준다.class BootReceiver : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { if (Intent.ACTION_BOOT_COMPLETED == intent.action) { //재부팅 ..
- 안드로이드에는 위젯 인스턴스 하나마다 고유한 ID를 가진다. 이게 AppWidgetId이다. - 바탕화면에 똑같은 위젯 두 개를 생성해도 개별 ID는 다르다. 이를 통해 서로 바라보는 데이터를 달리할 수 있다. - 예를 들어 A-1 위젯에서는 Key + A-1-AppWidgetId로 1번 데이터를, A-2 위젯에서는 Key + A-2-AppWidgetId로 2번 데이터를 저장하고 렌더링 할 수도 있는 것이다. - 기존 XML RemoteViews 방식 위젯에서는 아래와 같이 AppWidgetId 조회가 가능하다.override fun onUpdate( context: Context, appWidgetManager: AppWidgetManager, appWidgetIds: IntAr..
- 요즘 바이브 코딩이라는 말이 정말 많이 들린다. - 바이브 코딩(Vibe Coding)이란 개발자가 생성형 AI의 도움을 받아 코드를 작성하는 행위를 일컫는 신조어로 프로그래밍을 할 때 사전에 엄밀한 논리나 설계를 바탕으로 하지 않고 직감과 느낌에 의존한다는 의미로 ‘바이브’ 코딩이라는 이름이 붙었다. - Cursor, Windsurf 등등 종류가 많은데 안드로이드 스튜디오에서 실행하기 쉬운 WindSurf로 진행해 봤다.https://windsurf.com/editor Windsurf Editor | Windsurf (formerly Codeium)Tomorrow's editor, today. Windsurf Editor is the first AI agent-powered IDE that keep..
- 단색이 아닌 특정 이미지를 활용하여 View의 테두리를 붙여서 그려줘야 하는 경우가 있었다. - 이미 그려야하는 라인의 각 지점에 대한 좌표 값들이 프로젝트에 구성되어 있었기 때문에 그에 따라 비트맵을 붙여주기만 하면 되었다.val measure = PathMeasure(path, false)val length = measure.length - PathMeasure(path, forceClosed: Boolean)는 Android에서 Path의 길이와 경로 상의 점, 방향 등을 측정할 수 있게 해주는 클래스다. 이를 통해 그려야 하는 라인 상의 정확한 위치와 방향을 찾을 수 있다. - 그리기 전에 경로 길이를 측정해놓고, 이후 일정 거리마다 지점에 비트맵을 붙일 것이다. - forceClosed: B..
- Glance에서 Image 컴포저블 자체에 Alpha 값을 적용할 수는 없다. 그래서 애초에 ImageProvider에 리소스를 넘길 때 알파 값이 적용된 리소스여야 한다. - 알파값 적용된 비트맵은 아래 확장함수를 구현하여 기존 비트맵에서 알파를 적용한 비트맵을 다시 그리도록 했다.fun Bitmap.withAlpha(alpha: Float): Bitmap { val result = createBitmap(width, height) val canvas = Canvas(result) val paint = Paint().apply { this.alpha = (alpha * 255).toInt() } canvas.drawBitmap(this, 0f, 0f, paint) retu..
- 구글 플레이 스토어 업로드 심사 중에 아래와 같은 이슈 발생으로 거절당했다.Exception java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState at androidx.fragment.app.FragmentManager.checkStateLoss (FragmentManager.java:1852) at androidx.fragment.app.FragmentManager.enqueueAction (FragmentManager.java:1892) at androidx.fragment.app.BackStackRecord.commitInternal (BackStackRecord.java:341) at ..
- 결제 모듈 라이브러리를 업데이트하라는 알림이 와서 업데이트했더니 코틀린 버전도 2.0으로 업그레이드해야 호환이 된다고 한다. - 그래서 프로젝트 수준 Gradle에 선언해 둔 코틀린 버전을 일단 2.0.0으로 업그레이드했다.buildscript { ext.kotlin_version = '2.0.0' ... - 코틀린 버전 업그레이드에 따라 Compose 컴파일러 버전에 대해서도 변경해주어야 한다.- Compose 컴파일러가 Gradle plugin 방식으로 변경되었다. - 원래는 버전 카탈로그를 통해 다음 링크에 나온 것처럼 업데이트를 할 수 있는데, 현재 프로젝트 상태가 많이 상이하여 임시 대응했다.https://developer.android.com/develop/ui/compose/c..
- ShortCut 기능은 원터치 바로 가기 기능이라고 볼 수 있다.- 이렇게 바탕화면에서 특정 앱 아이콘을 롱클릭하면 몇 가지 옵션이 표시되는 것이다. 그리고 클릭 시, 해당 화면으로 바로 이동할 수 있다. - 이를 정적 바로가기 라고 명칭하는데, 동적 바로가기도 존재한다. 다음 문서를 참고.https://developer.android.com/develop/ui/views/launch/shortcuts/creating-shortcuts?hl=ko#dynamic 바로가기 만들기 | Views | Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. 바로가기 만들기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. ..
- 정규 표현식 같은 경우에는 스키마에 대한 커스터마이징 또는 링크 효과에 대한 커스터마이징이 필요하다면 사용할 수 있는데 단순히 링크 활성화만 되어야한다면 authLink 기능을 사용할 수 있다.descriptionView.autoLinkMask = Linkify.WEB_URLSdescriptionView.movementMethod = LinkMovementMethod.getInstance() - WEB_URLS 말고 PHONE_NUMBERS 등 몇가지 형식이 존재한다. - Compose Text에는 autoLink는 없는 것 같다. SpannableString 개념이 필요할듯
SeungYong.Lee
'Android' 태그의 글 목록 (2 Page)