안드로이드에서 Custom Lint 활용하기

Lint란? Android 스튜디오에 있는 Lint라는 코드 스캔 도구를 사용하면 앱을 실행하거나 테스트 사례를 작성하지 않고도 코드의 구조적 문제를 식별하고 수정할 수 있습니다. 도구에서 탐지된 각 문제는 설명 메시지 및 심각도 수준과 함께 보고되므로 개선이 시급한 순서대로 신속히 우선순위를 결정할 수 있습니다. 또한 프로젝트와 관련이 없는 문제를 무시해서 문제의 심각도 수준을 더보기…

객체 지향 프로그래밍과 SOLID 원칙

SOLID란 2000년대 초반 로버트 마틴이 객체 지향 프로그래밍 및 설계에 대한 5가지 원칙을 소개 한 것인데, 유지보수와 확장이 쉬운 소프트웨어를 만들고자 할 때 이 원칙을 적용할 수 있다. 코드의 가독성을 높이고 확장이 쉬운 구조를 만들기 위한 지침이다. SOLID원칙은 5가지 원칙들에서 각 원칙의 두문자를 따와 만든 명칭이다. 각 원칙이 무엇인지 살펴보자. 더보기…

Dagger2를 알아보자 – Subcomponent

Dagger2를 알아보자 – 기본편 Dagger2를 알아보자 – Scope  Dagger2를 알아보자 – Injection의 종류  Dagger2를 알아보자 – Qualifier  Dagger2를 알아보자 – Binding  Dagger2를 알아보자 – Multibinding  Dagger2를 알아보자 – SubComponent (You’re here) Dagger2를 알아보자 – Android Dagger2를 알아보자 – Testing(준비중) Dagger2를 알아보자 – Dynamic Feature에 적용하기(준비중) Subcomponent 하위 컴포넌트(Subcomponent)는 상위 컴포넌트(Component)의 그래프를 더보기…

RecyclerView와 PagerSnapHelper로 ViewPager 만들기

ViewPager만들기 ViewPager2와 방식은 비슷하지만, 아직 정식 릴리즈가 나오지 않았습니다. 기존에 RecyclerView가 구현이 되어있다면 PagerSnapHelper만 추가하면 된다. MyAdapter adapter = … recyclerView.setAdapter(adapter); recyclerView.setLayoutManager(new LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false)); // PagerSnapHelper 추가 PagerSnapHelper snapHelper = new PagerSnapHelper(); snapHelper.attachToRecyclerView(recyclerView);   Indicator 추가하기 RecyclerView에는 ItemDecoration을 이용해서 Indicator를 그릴수 있습니다.  저는 LinePagerIndicatorDecoration 참고해서 그려보았습니다. recyclerView.addItemDecoration(new LinePagerIndicatorDecoration()); SnapPagerScrollListener 더보기…

Dagger2를 알아보자 – Multibinding

Dagger2를 알아보자 – 기본편 Dagger2를 알아보자 – Scope  Dagger2를 알아보자 – Injection의 종류  Dagger2를 알아보자 – Qualifier  Dagger2를 알아보자 – Binding  Dagger2를 알아보자 – Multibinding (You’re here) Dagger2를 알아보자 – SubComponent Dagger2를 알아보자 – Android Dagger2를 알아보자 – Testing(준비중) Dagger2를 알아보자 – Dynamic Feature에 적용하기(준비중) Dagger를 사용하면 Multibinding(다중 바인딩)을 사용하여 여러 더보기…

Dagger2를 알아보자 – Binding

Dagger2를 알아보자 – 기본편 Dagger2를 알아보자 – Scope  Dagger2를 알아보자 – Injection의 종류 Dagger2를 알아보자 – Qualifier  Dagger2를 알아보자 – Binding (You’re here) Dagger2를 알아보자 – Multibinding Dagger2를 알아보자 – SubComponent Dagger2를 알아보자 – Android Dagger2를 알아보자 – Testing(준비중) Dagger2를 알아보자 – Dynamic Feature에 적용하기(준비중) @Binds Module내에서 abstract 메소드 앞에 붙여 더보기…

Toast is not showing on Android Pie

I recently came across this fact: Some devices that running on Android Pie overwrite previous one. Toast toast1 = Toast.makeText(getApplicationContext(), “a”, Toast.LENGTH_SHORT); toast1.show(); Toast toast2 = Toast.makeText(getApplicationContext(), “b”, Toast.LENGTH_SHORT); toast2.show(); I don’t think Pie processes Toast message sequentially. It just shows last toast’s message only. (checked on my API 28 emulator) with RxJava2 더보기…

Dagger2를 알아보자 – Injection의 종류

Dagger2를 알아보자 – 기본편 Dagger2를 알아보자 – Scope  Dagger2를 알아보자 – Injection의 종류 (You’re here) Dagger2를 알아보자 – Qualifier  Dagger2를 알아보자 – Binding  Dagger2를 알아보자 – Multibinding Dagger2를 알아보자 – SubComponent Dagger2를 알아보자 – Android Dagger2를 알아보자 – Testing(준비중) Dagger2를 알아보자 – Dynamic Feature에 적용하기(준비중) 인젝션의 종류(Direct vs Lazy vs Provider) 더보기…

Dagger2를 알아보자 – Qualifier

Dagger2를 알아보자 – 기본편 Dagger2를 알아보자 – Scope  Dagger2를 알아보자 – Injection의 종류 Dagger2를 알아보자 – Qualifier (You’re here) Dagger2를 알아보자 – Binding Dagger2를 알아보자 – Multibinding Dagger2를 알아보자 – SubComponent Dagger2를 알아보자 – Android Dagger2를 알아보자 – Testing(준비중) Dagger2를 알아보자 – Dynamic Feature에 적용하기(준비중) Qualifier 때때로 자료형(Type)만으로는 의존성을 식별하기에는 충분하지 더보기…

Dagger2를 알아보자 – Scope

Dagger2를 알아보자 – 기본편 Dagger2를 알아보자 – Scope (You’re here) Dagger2를 알아보자 – Injection의 종류 Dagger2를 알아보자 – Qualifier Dagger2를 알아보자 – Binding Dagger2를 알아보자 – Multibinding Dagger2를 알아보자 – SubComponent Dagger2를 알아보자 – Android Dagger2를 알아보자 – Testing(준비중) Dagger2를 알아보자 – Dynamic Feature에 적용하기(준비중) Dagger의 Scope @Singleton Scope 애노테이션을 통해 더보기…