본문 바로가기

Android16

GitHub Actions로 Flutter 앱 빌드하기 이번에 서버와 CI/CD 목적으로 사용할 맥 미니를 한 대 들였다. 먼저 간단하게 GitHub Actions를 사용해서 Flutter 앱 프로젝트를 빌드하고 잘 빌드가 되는지 정도만 테스트를 해본 내용을 남긴다. Self-hosted Runner 먼저, GitHub에서 제공해주는 Actions Runner를 사용할 수도 있는데 무료 버전의 경우 사용량 제한도 있고 맥 미니를 들였으니 다양하게 활용해보기 위해서 맥 미니로 GitHub Actions를 실행할 것이다. 이를 위해 GitHub Repository에서 Self-hosted Runner를 등록해줘야 한다. GitHub Actions를 사용할 Repository에 들어가서 Settings - Actions - Runners로 들어간다. 예전에 사용했.. 2022. 4. 3.
LiveData와 Kotlin의 Flow LiveData와 Flow가 뭔지 정리해보고 어떻게 사용하는 지에 대해 알아본다. 추가로, 두 가지가 유사하면서도 다른 점들이 있기에 주요한 차이점과 적절한 사용법도 알아보자. LiveData & Flow LiveData는 안드로이드 앱 개발에서 일반적인 작업인 데이터 전송의 한 방법이다. Kotlin Flow도 데이터를 전송하는 것이며 비동기로 전송할 수 있는 기능이 있다. 두 가지 방법 모두 기존의 전통적인 문제를 극복하기 위해 설계되었으며, 장점과 더불어 한계점도 있다. LiveData 관찰 가능한 데이터 홀더 클래스, 다른 안드로이드 컴포넌트들(activity, fragment, service)에 의해 관찰될 수 있는 데이터들의 집합이라고 생각하면 된다. 관찰 가능한 다른 일반 클래스들과 다른 점.. 2021. 11. 14.
DataStore of Android Jetpack DataStore란? Data Storage Solution이다. Kotlin으로 만들어졌으며, Coroutines와 Flow를 정식 지원하여 async한 작업이 가능 SharedPreferences의 새 버전이라고 생각해도 된다. Why DataStore? Kotlin, Coroutines, Flow 정식 지원 SharedPreferences는 sync API를 지원하며, Main-thread-safe하지 않다. DataStore는 Dispatchers.IO를 사용하기 때문에 Main-thread에서 사용하기에 안전하다. runtime exception들로부터 안전하다. SharedPreferences로부터의 migration을 제공 Type Safety 제공 Implementation DataStor.. 2021. 10. 24.
Android LiveData setValue vs postValue LiveData(MutableLiveData)에서 setValue()와 postValue()를 사용하는 경우를 종종 헷갈려하는 사람들이 있어서 간단하게 정리해두려 한다. LiveData는 일반적으로 DataBinding, ViewModel과 함께 사용한다. 값을 변경하는 두 방법의 차이점과 자신이 개발하고 있는 구조를 제대로 파악하지 못하면 필요할 때 UI 변경이 제대로 발생하지 않을 수 있다. 복잡하거나 어렵지는 않으니 간단하게 확인해두면 된다. setValue() 값을 바로 설정한다. 활성화된 observer가 있는 경우 해당 값이 observer로 dispatch된다. 사용에 있어 주의해야 할 점이 있는데 setValue는 반드시 Main Thread(UI Thread)에서 호출해야 한다. back.. 2021. 10. 21.
Android Custom Lint Checks Lint란? 먼저 Lint가 무엇인지를 정리해본다. Android Lint는 앱을 구성하는 코드(소스, 리소스, manifest를 포함)들을 정적 분석하는 도구이다. Test Code의 작성 없이 코드의 구조적 품질 문제를 식별하고 수정할 수 있다. Lint 검사 도구에서 감지된 각 문제는 설명 메시지 및 심각도 수준과 함께 보고되므로 개선이 시급한 순서대로 우선순위를 정할 수 있다. lint.xml 파일은 제외하려는 린트 검사를 지정하고 문제 심각도 수준 등을 변경하여 맞춤 설정하는 데에 사용할 수 있는 구성 파일이다. Lint의 결과는 Android Studio의 Inspection Results 창에서 린트 결과를 확인하거나 커맨드를 통한 수동 검사를 실행하여 결과를 확인할 수 있다. 물론 CI/C.. 2021. 8. 22.
Android Shortcuts (안드로이드 앱 숏컷) - 3. 관리하기 Shortcut을 만들고 나서, 앱이 업데이트 되는 동안 만들었던 Shortcut들을 관리해줘야 하는 경우가 생길 수 있다. 한 가지 경우를 예로 들면, 앱이 업데이트 되면서 더 이상 제공하지 않는 기능이 pinned shortcut으로 있다면 이를 비활성화 시킬 수 있다. 이번 포스팅을 통해 Shortcut을 관리하는 방법과 Shortcut에 대한 잡다한 정보들에 대해 정리해본다. Shortcut 동작 LauncherApps 클래스의 API를 통해 런처 앱은 shortcut들에 접근할 수 있다. Pinned Shortcuts는 런처 자체에 보이기 때문에 항상 표시되는데 다음과 같은 경우에만 런처에서 제거된다. 사용자가 제거 Shortcut과 연결된 앱이 제거 App Data를 지울 경우 Shortcut.. 2020. 8. 31.