Android 공부/Android UI

    Material Design - Motion - 1

    0. 서론 앱 개발을 하면서 꾸준하게 관심을 갖고 있던 부분이 있다. 그것은 바로, 레이아웃을 내가 원하는대로 자유롭게 그리는 것과 레이아웃을 내가 원하는대로 자유롭게 움직이는 것이다. 2019/03/25 - [Android 공부/Android UI] - Android Motionlayout 삽질기 2018/10/24 - [Android 공부/Android UI] - 안드로이드 ConstraintLayout 사용법 2019/04/10 - [Android 공부/Android UI] - [안드로이드 UI 공부] Android Shared-Element Transitions - 1 2019/04/12 - [Android 공부/Android UI] - [안드로이드 UI 공부] Android Shared-Elem..

    Android DarkTheme 도입기

    1. 서론 - Dagger2 구조 변경 - Jetpack Navigation - ViewModel 전면 도입 - 다크테마 도입 레퍼런스를 듣다보면, 다크테마에 대한 발표를 꽤나 들은 경험이 있습니다. 그리고 특히 최근에는 많은 앱에서 다크테마를 도입해서 좋은 UI/UX를 제공하는 사례가 많아졌고, '담다' 앱에도 도입해야겠다고 생각이 들었습니다. 그래서 다크테마를 도입하게 되었습니다. 작지만, 다크테마 도입을 하면서 누구나 쉽게 다크테마를 도입할 수 있다는 이야기를 해보려고 합니다. 2. 다크테마는 무엇인가? 우선, 다크테마는 developer에 이렇게 명시되어 있습니다. - 기기에 따라 전력량을 아낄 수 있습니다. - 가시성을 개선합니다. - 어두운 환경에서 쉽게 기기를 사용할 수 있습니다. 특히, 저..

    안드로이드 - Jetpack Navigation 사용 [코드 리팩토링]

    0. 사용하는 이유 '담다' 앱은 2년 전에 레이아웃의 구조나, 액티비티의 계층 구조에 대해서 전무할 때부터 만들고 관리한 앱이다. 메인화면은 바텀 네비게이션 구조에, 5개의 주제로 앱의 서비스를 제공하고 있다. 그런데, 기존의 구조는 main.xml에서 visible과 gone을 통해서 2000여줄의 레이아웃을 관리하는 구조였고, 최근 들어서 느린 렌더링으로 앱이 사용자에게 서비스를 제공한다는 것을 알았고, 구조를 바꾸기 시작했다. 1. 생각한 구조 기존의 구조는 바텀 네비게이션을 클릭하면 코드에 의해서, 모든 레이아웃을 visible과 gone을 통해서 직접 관리를 해주었습니다. 해당 앱을 계속해서 유지보수하고, 만든 경험덕에 사실 큰 불편함은 느끼지 못 했지만, 느린 렌더링을 해결하기 위해서 전면으..

    RecyclerView in SwipeRefreshLayout with CoordinatorLayout

    1. 고민 고민- NestedScrollView가 싫다.- 그래서, Coordinator Layout을 통해서 다양한 뷰와 리사이클러 뷰의 성능상 이점을 갖는 구조를 만들었다.- 새로 고침 기능이 필요해졌다.- SwipeRefreshLayout이 필요하다. - SwipeRefreshLayout은 CoordinatorLayout에서는 어떻게 사용할까?- RecyclerView의 behavior는 어떻게 해야할까? 지난 글과 같이, NestedScrollView를 사용하지 않고, 리사이클러뷰에 다양한 뷰홀더를 만들어서 뷰 구조를 잡았다.그 과정에서, CoordinatorLayout을 이용해서 리사이클러뷰의 재활용과 백드롭 등, 다양한 이점을 가져오고 있었다. 그리고, 새로 고침 기능이 필요해졌다. 그러면 어..

    NestedScrollView 없이 RecyclerView를 사용해보자.

    0. 요약- 최근 고민은 리사이클러뷰의 재활용과 함께, NestedScrollView를 사용하지 않고, 뷰 구조를 잡기 위해서 고민을 했다.- 고민 끝에, Coordinator Layout 내부에 각종 View를 셋팅하게 되면, 리사이클러뷰의 구조를 살린채, 레이아웃 구조를 잡을 수 있을 것이라고 생각을 했다.- 하지만, Coordinator Layout에서 자유롭게 사용되어지는 뷰는 behavior를 받는 뷰 뿐만이 자유롭게 움직일 수 있다는 것을 알았다.- 그래서, 리사이클러뷰를 만들고, 어댑터에 여러 개의 뷰홀더를 만들어야만 해결이 된다는 것을 알게 되었다.1. NestedScrollView & RecyclerView- 리사이클러뷰의 장점은 뷰홀더를 통해서 뷰를 재활용해서, 앱의 퍼포먼스를 향상시키..

    [안드로이드 UI 공부] Android Shared-Element Transitions - 2

    -1. 이전 글 2019/04/10 - [Android 공부/Android UI] - [안드로이드 UI 공부] Android Shared-Element Transitions - 1 0. 서론 Activity To Activity 와 Fragment To Fragment로 되어있는 예제를 다뤄봤습니다. 우리가 흔하게 Android Shared Element Transition의 Best Example은 PlayStore라고 할 수 있겠습니다. 즉, RecyclerView To Activity로 사용할 때 좋은 효율을 낸다는 것을 의미합니다.그래서, 우리는 이번 글에서 RecyclerView의 아이템을 누를 경우 애니메이션이 만들어지는 Android Shared Element Transtion을 구현하겠습니..

    [안드로이드 UI 공부] Android Shared-Element Transitions - 1

    0. 서론 플루터의 엄청난 애니메이션이 너무 부러웠다.그래서 안드로이드의 Shared Element Transtions에 대해서 공부를 하기 시작한다. 정말 좋은 글을 정독하는 것이 이번 블로그의 목표이다. https://mikescamell.com/shared-element-transitions-part-1/https://mikescamell.com/shared-element-transitions-part-2/https://mikescamell.com/shared-element-transitions-part-4-recyclerview/ 해당 블로그를 보고, 코드를 정리해서 예제를 만들었다. https://github.com/hakzzang/TestSharedElementTransition Shared ..

    Android Motionlayout 삽질기

    0. 서론 모션레이아웃은 앱을 상당히 유연하게 하는 매력적인 기능이라고 생각합니다. 드래그나 클릭에 의해서 ConstraintLayout의 ConstraintSet, TransitionManager등과 같은 기능들을 잘 녹였다고 생각합니다. 물론, 구현을 하기까지 어려움을 많이 겪을 수 있겠지만, 어느 순간 자신의 기술이 되어있을 때, UI를 제공해주는 큰 무기를 얻을 수 있다고 생각합니다. 1. 목표 Lottie와 MotionLayout을 함께 결합해 애니메이션을 구현하면 최고의 효율을 낼 수 있다는 것을 목표로 프로젝트가 진행되겠습니다. 저는 프로젝트내에서 사용자들의 주목을 받기 위해서 MotionLayout을 사용하고 있습니다. 2. MotionLayout 구조 MotionLayout은 Constr..