HOME > android > jetpack

Android Jetpack - Paging 소개 및 구현 방법

안드로이드 Paging 라이브러리는 RecyclerView에 데이터를 페이지 단위로 효율적으로 데이터를 로드하고 화면에 출력하도록 도와줍니다. 페이징은 구현하기 귀찮은 리스트뷰를 쉽게 구현할 수 있도록 도와줍니다. DataSource, PagedList, PagedListAdapter, PositionalDataSource 등과 함께 사용됩니다.

30 Dec 2018

안드로이드 ViewModel, LiveData, Room을 사용하는 좋은 예제

Android Architecture Component인 ViewModel, LiveData, Room을 함께 사용하는 샘플을 소개하려고 합니다. Paging을 소개하는 튜토리얼에서 다양한 AAC의 컴포넌트를 사용합니다. 이 샘플은 GitHub의 API를 이용하여 검색하는 키워드의 결과를 화면에 출력해줍니다.

29 Dec 2018

Android Jetpack - WorkManager 소개 및 구현 방법

안드로이드 WorkManager는 background task 구현, 스케쥴 등을 쉽게 처리할 수 있도록 만든 기능입니다. WorkManager는 내부적으로 JobScheduler를 사용하며 JobScheduler를 지원하지 않는 단말은 AlarmManager 또는 BroadcastReceiver를 사용하도록 구현되었습니다.

22 Dec 2018

Android Jetpack - Room 소개 및 구현 방법

안드로이드 Room은 SQLite를 추상화한 객체이며, ORM(Object Relational Mapping)입니다. 룸은 3개의 주요 Component(Entity, Database, DAO)로 구성되어 있습니다. Room은 RecyclerView, ViewModel, LiveData 등과 함께 사용될 수 있습니다.

17 Dec 2018

Android Jetpack - LiveData 소개 및 구현 방법

안드로이드 LiveData는 데이터를 저장하고 변화를 관찰 할 수 있는 객체입니다. LiveData에 옵저버를 등록할 수 있으며 데이터가 변경될 때 알려줍니다. RxJava의 Observable과 유사합니다. LiveData는 ViewModel과 함께 사용됩니다.

15 Dec 2018

Android Jetpack - ViewModel 소개 및 구현 방법

안드로이드 ViewModel는 View에서 사용되는 데이터를 우리가 쉽게 관리하는데 도와줍니다. Jetpack ViewModel은 MVVM 패턴에서 우리가 알고있는 ViewModel과 좀 다릅니다. ViewModel에서 Context를 사용하려면 AndroidViewModel를 사용해야 합니다.

13 Dec 2018

Android Jetpack - Lifecycle 코드 및 구조 분석

안드로이드 Lifecycle 및 LifecycleOwner와 LifecycleRegistry의 구조에 대해서 알아봅니다. 프레임워크 코드를 분석하여 내부적으로 어떻게 동작되는지 간단히 설명하였습니다. 이 글은 AndroidX 코드를 기반으로 분석하였습니다.

11 Dec 2018

Android Jetpack - Lifecycle 소개 및 구현 방법

안드로이드 Lifecycle은 액티비티의 상태에 따라 처리되는 코드를 쉽게 관리할 수 있게 도와주는 라이브러리입니다. Lifecycle을 사용하면 기존 코드를 더 읽기 쉽고, 관리하기 쉬운 코드로 만들 수 있습니다. Lifecycle은 LifecycleOwner, LifecycleObserver의 객체와 함께 사용됩니다.

10 Dec 2018

Android Jetpack - DataBinding 구현 방법

안드로이드 DataBinding은 코틀린에서 레이아웃을, 레이아웃에서 코틀린의 데이터를 직접 참조하는 라이브러리입니다. MVVM 등의 패턴과 함께 사용됩니다. One-way Binding와 Two-way Binding으로 구현할 수 있습니다. 예제와 함께 데이터 바인딩을 구현하는 방법에 대해서 설명하였습니다.

24 Nov 2018

Android Jetpack - Navigation으로 Drawer 구현

네비게이션은 Drawer를 지원하는데요. Navigation을 이용하여 Drawer를 구현하는 방법을 알아보겠습니다. 간단히 샘플앱을 만들어보죠. 먼저 프로젝트를 생성하고 의존성 라이브러리를 모두 추가합니다. 이 글은 AndroidX를 사용하기 때문에 그렇지 않다면 마이그레이션이 필요합니다.

21 Nov 2018

Android Jetpack - Navigation 사용 방법, 튜토리얼로 알아보기

안드로이드 네비게이션은 UI 전환을 쉽게 구현하는데 도와주는 라이브러리입니다. 개발자가 정의한 UI Graph를 기반으로 화면을 쉽게 전환하고, 유지보수가 매우 쉬워집니다. Navigation을 사용한 간단한 앱을 만들어 봄으로 써, Navigation의 기본적인 사용 방법을 설명합니다.

19 Nov 2018

Android Espresso의 Custom Matcher 구현 방법

지난 글에서 Matcher가 어떻게 동작하는지 코드 분석을 했었습니다. 이번에는 Custom Matcher를 직접 구현해보겠습니다. 이해를 돕기 위해 TextView의 text를 비교하는 Custom Matcher를 구현해보겠습니다. 에스프레소의 내부 구조를 이해하는데 도움이 되었으면 좋겠습니다.

18 Nov 2018

Android Espresso의 Matcher의 역할 및 동작 원리 분석

Matcher는 에스프레소에서 UI의 요소가 의도된 대로 출력되었는지 확인하는데 사용되는 객체입니다. ViewAssertions.matches(...)는 인자로 주어진 Matcher에 정의된 기준으로 View의 요소가 의도된대로 설정되었는지 판단할 수 있습니다. 어떻게 동작하는지 Espresso 코드를 분석해보겠습니다.

17 Nov 2018

Android Espresso를 사용하여 UI를 테스트하는 방법 (3)

안드로이드 Espresso는 안드로이드 UI를 테스트하는데 도움을 주는 라이브러리입니다. 이번 글에서는 에스프레소를 이용하여 EditText를 테스트하는 코드에 대해서 알아보겠습니다.

16 Nov 2018

Android Espresso를 사용하여 UI를 테스트하는 방법 (2)

안드로이드 Espresso는 안드로이드 UI를 테스트하는데 도움을 주는 라이브러리입니다. 이 글에서는 Intents.intending과 Intents.intended에 대한 내용을 소개합니다. 그리고 Espresso로 EditText를 테스트하는 방법을 다룹니다.

15 Nov 2018

Android Espresso를 사용하여 UI를 테스트하는 방법 (1)

안드로이드 Espresso는 안드로이드 UI를 테스트하는데 도움을 주는 라이브러리입니다. 에스프레소를 이용하여 어떻게 UI를 테스트하는지 간단히 알아보겠습니다. 샘플 코드는 Kotlin으로 작성되었으며 AndroidX를 사용하였습니다.

14 Nov 2018