개발을 파헤치다/Android(29)
-
[Android] Expandable List View 사용하기
Expandable List Adapter구현 class CategoryListAdapter( private val context: Context, private val viewModel: RecyclerViewModel ): BaseExpandableListAdapter() { private var parentList = emptyList() private var childList = mutableListOf() override fun getGroupCount(): Int { return parentList.size } override fun getChildrenCount(groupPosition: Int): Int { return childList[groupPosition].size } overrid..
2022.01.21 -
[Android] Data Binding 기본 활용법 총정리
Data Binding은 XML 레이아웃에서 데이터를 사용할 수 있게 해 주는 라이브러리입니다. MVC, MVP, MVVM에서 V는 View를 의미하는데요. 단순히 XML 레이아웃뿐 아니라 Activity, Fragment 등과 같이 레이아웃에 관련된 부분을 모두 View로 통칭하고 있습니다. Data Binding을 사용하면 기존에 View 레벨에서 코드로 작성하던 것을 대부분 XML 레이아웃에서 처리할 수 있는데요. 이를 통해 View 레벨 코드가 굉장히 깔끔해지고 유지보수 측면에도 꽤 편리하게 개발을 할 수 있습니다. gradle 설정 먼저 Data Binding 설정부터 활성화시켜줘야 합니다. App 레벨의 build.gradle에서 아래와 같이 수정해줍니다. android { compileSdk..
2022.01.20 -
[Android] Paging 라이브러리와 SwipeRefreshLayout 적용 가이드(feat. MVV)
안드로이드 앱을 개발할 때 RecyclerView는 정말 많이 쓰이는 요소인데요. 이걸 쓴다고 하면 보통 세트처럼 같이 쓰이는 게 바로 Paging과 SwipeRefreshLayout(당겨서 새로고침 기능)입니다. 이 세 가지를 한꺼번에 적용하려고 하면 조금 머리가 아파지는데요. 이번 아티클에서는 MVVM 아키텍처에서 Paging과 SwipeRefreshLayout을 어떻게 한 번에 적용할 수 있는지 상세한 가이드를 해드리겠습니다. Paging Library 적용하기 Marko Milos의 Paginate 라이브러리는 매우 간단하고 사용하기 편해서 가볍게 적용하기 좋습니다. 설치하기 // App Level build.gradle dependencies{ ... implementation "com.gith..
2022.01.19 -
[Android] MVVM 아키텍어 View Model을 설계하는 꿀팁 (feat. 현업 풀스택 개발자)
애플리케이션을 개발할 때 View와 비즈니스 로직을 분리하는 게 좋은데요. 그 이유는 아래와 같습니다. 비즈니스 로직 단위 테스트하기 훨씬 편해진다. View와 비즈니스 로직이 얽혀있는 경우 테스트하기 매우 까다로워질 수 있다. 유지보수가 편리하다. 새로운 기능 추가나 UI 변경에도 유연하게 대처할 수 있다. 코드의 재사용성이 높아진다. UI가 달라도 로직은 똑같을 수 있는데 분리된 경우 재사용이 가능하다. 팀이 함께 작업하기 편리하다. 개발자와 디자이너가 협업하기에도 편리하고 여러 명의 개발자가 동시에 작업하기에도 편리하다. MVVM 아키텍처에서 View Model을 어떻게 설계하느냐에 따라 3번째 이유는 코드 재사용성이 높아질 수도, 아닐 수도 있습니다. Live Data 덕분에 비즈니스 로직과 Vi..
2022.01.18 -
[Android] WebView 활용하기 - 고급편
WebView는 말 그대로 웹 페이지를 안드로이드에서 보여주기 위한 View입니다. 주로 하이브리드 앱이나 웹상의 특정 페이지를 보여주기 위해 사용하는데요. 잘만 활용한다면 웹 페이지를 앱에 최적화시켜 보여줄 수 있는 아주 유용한 도구입니다만 사용하기가 좀 까다롭습니다. 왜냐하면 실제 서비스 운영 시에는 똑같은 페이지라도 웹에서는 보여도 되지만 앱에서는 보이면 안 되는 요소들이 있거든요. 또, 링크 클릭 시 다른 웹 페이지가 아닌 앱의 특정 화면(Activity)을 보여줘야 할 때도 있습니다. 이런 이유로 사용하기가 까다롭지만 잘만 쓴다면 웹에 구현된 페이지를 그대로 가져다가 앱에 최적화된 콘텐츠를 보여줄 수 있습니다. 이번에는 아래 작업들을 해볼 겁니다. 이 정도만 마스터해도 웹뷰로 꽤 많은 페이지들을..
2022.01.13 -
[Android] MVVM 아키텍처에서 Live Data와 Data Binding을 활용해서 Recycler View 구현하기
MVVM패턴은 Model, View, View Model로 구성되는 아키텍처 패턴입니다. 근래 가장 많이 쓰이는 패턴이라고도 생각이 드는데요. 확실히 이 아키텍처 패턴을 사용하면 코드 양이 조금 늘 수는 있지만 유지보수 측면이나 코드 재사 용성면에서는 확실히 장점이 있다고 생각합니다. 개념을 확실히 이해하고 MVVM을 구현하기 위해 사용되는 Live Data와 Data Binding을 적용해야 하는데요. 이번에는 Recycler View를 MVVM 패턴에 맞게 구현하는 방법을 알아봅니다. MVVM 구조 이해 MVVM 아키텍처에서는 위와 같은 구조로 앱이 실행됩니다. Live Data를 사용하면 좋은 점은 View Model에서 View에 보여줄 데이터를 가져왔을 때 View단에 알아서 알려준다는 것입니다..
2022.01.11