반응형 Android28 [Flutter] Flutter LifeCycle Event와 Android LifeCycle Event 비교하기 오늘은 Flutter에서 LifeCycle Event와 Android Activity에서 LifeCycle Event가 어떻게 연관되어 있는지 확인해보려고 합니다. 이는 Flutter 내에서 플랫폼 별 코드를 작성할 때 알아두면 유용할 수 있습니다. 본 코드들은 Android Studio에서 실행하였습니다. Flutter에서 LifeCycle Event를 수신받기 위해서는 WidgetsBindingObserver를 State에 mixin 합니다. 코드는 아래와 같습니다. class GetScreenStateState extends State with WidgetsBindingObserver{ @override void initState() { //앱 상태 변경 이벤트 등록 WidgetsBinding.in.. 2022. 12. 23. [Android] MVVM 패턴 및 Clean Architecture, Android Jetpack 적용 예제 개요 이번 포스팅에서는 Android에서 많이 애용하는 설계 패턴인 MVVM과 Clean Architectrue, Android Jetpack을 사용하여 만든 프로젝트를 소개하려고 합니다. Open API의 한 종류인 omdbapi를 사용하여 만들었습니다. 로그인 시 하루에 1,000건까지 무료로 사용할 수 있습니다. https://www.omdbapi.com/ OMDb API - The Open Movie Database www.omdbapi.com 해당 프로젝트의 이름은 MovieBrowser이고 간단한 영화 검색 기능과 즐겨찾기 기능을 사용할 수 있습니다. 프로젝트에 Clean Architecture를 적용하였고 각 Layer는 다음과 같은 종속성을 가지고 있습니다. Data와 Domain Laye.. 2022. 11. 2. [Android] 여러 개의 LiveData를 한번에 핸들링하는 MediatorLiveData MediatorLiveData란? LiveData의 하위 클래스로 다른 LiveData 객체를 Observe하고 해당 객체의 OnChanged 이벤트를 받습니다. 즉, 하나의 MediatorLiveData에 여러 개의 LiveData를 등록하고 한 번에 핸들링할 수 있습니다. 주요 함수로는 addSource() : observe할 LiveData와 수행할 로직을 추가 removeSource() : 추가된 LiveData 삭제 MediatorLiveData.java 파일을 살펴보면 public class MediatorLiveData extends MutableLiveData { private SafeIterableMap> mSources = new SafeIterableMap(); MediatorLive.. 2022. 10. 13. [Android] 두 개의 RecyclerView 사이에서 Drag and Drop 구현하기 개요 일반적으로 ReyclerView에서 Drag and Drop을 구현할 때는 ItemTouchHelper를 사용해서 구현합니다. 하지만 두 개 RecyclerView 사이에서 Drag and Drop을 구현하기에 어려움이 있어 DragListener를 통해 구현해 보았습니다. 해당 Drag and Drop을 구현하기 위해 ListAdpater, ViewModel, Databinding을 사용하였습니다. 다음은 실제로 구현한 화면입니다. 설명 우선 Drag and Drop을 구현하기 위해 크게 2개가 필요합니다. DragListener : RcyclerView와 ViewHolder에 DragListenr를 등록하기 위한 abstarct class입니다. ItemModifyListener : Reycle.. 2022. 9. 17. [Android] The emulator process for AVD has terminated 오류 해결 문제 발생 이번에 Android Studio를 업데이트하면서 앱 테스트를 위해 Emulator를 사용했는데 계속 업데이트가 필요하다고 하였습니다. 그래서 최신 버전으로 업데이트를 했는데도 문제가 해결되지 않았습니다. 그래서 Device Manager에서 직접 Emulator를 켰는데 다음과 같은 에러 문구가 떴습니다. The emulator process for AVD has terminated 그리고 해결방법을 찾아보았는데 생각보다 간단하였습니다. 해결 방법 근본적인 문제는 AVD를 실행하기 위한 SDK Tool이 부족해서였습니다. 해결방법은 맥을 기준으로 Tool > SDK Manger를 들어가서 다음 3개의 SDK tools을 다운받아야 합니다. Android Emulator Android SDK.. 2022. 7. 9. [Android] 백그라운드 작업을 위한 Service (1) - 기본 개념 🔴 개요 백그라운드에서 오래 실행되는 작업을 위한 애플리케이션 컴포넌트 서비스는 크게 3가지 특징이 있습니다. 일반적으로 서비스는 보이지 않는 화면에서 동작합니다. 다른 애플리케이션 구성 요소가 서비스를 시작할 수 있으며 이는 사용자가 다른 애플리케이션으로 전환하더라도 백그라운드에서 동작할 수 있습니다. 구성 요소를 서비스에 바인딩하여 서비스와 상호작용할 수 있다. 우리는 서비스를 통해서 다음과 같은 기능을 백그라운드에서 구현할 수 있습니다. 음악 재생 프로세스 간 통신(IPC) 파일 입출력 네트워크 트랜잭션 크게 서비스는 3가지 유형이 있습니다. (포그라운드, 백그라운드, 바인드) 각 유형의 자세한 내용은 다음 포스팅에서 하나하나 알아봅시다. 🔴 서비스 vs 스레드 (Service, IntentSer.. 2022. 7. 5. 이전 1 2 3 4 5 다음 반응형