본문 바로가기

Kotlin

(26)
[배달의 민족] 따라만들기 8-2편 (Repository, ViewModel, MVVM) 안녕하세요 허접샴푸입니다~! 오랜만에 배달의 민족 따라 만들기 8편입니다! 이번 시간에 구현할 것은 안드로이드 앱 아키텍처 패턴의 일부인 Repository와 ViewModel을 작성해보겠습니다. Guide to app architecture https://developer.android.com/jetpack/docs/guide#common-principles 불러오는 중입니다... 위 문서를 보다 보면 제일 중요하게 봐야 할 것이 아래 그림입니다. Activity나 Fragment는 ViewModel에 의존하고 ViewModel은 Repository에 의존하고 Repository는 Room(Sqlite database library)이나 Retrofit 클래스와 같은 여러 다른 클래스에 의존합니다. 이..
[배달의 민족] 따라만들기 8-1편 (Navigation, BottomNavigationView) 안녕하세요 허접샴푸입니다~! 오랜만에 배달의 민족 따라 만들기 8편입니다! 이번 시간에 구현할 것은 Fragment + BottomNavigationView입니다. 이전까지는 아래 그림과 같이 Drawer을 구현하였었죠? 그런데 최신 "배달의 민족" 앱은 Drawer 대신 아래 오른쪽 그림과 같이 Bottom navigation View를 사용하더라고요? 제 개인적인 생각은 - 엄밀히 따지면, Bottom Navigation View가 아닌 커스텀 Layout으로 Bottom Tab을 만든 것 같습니다. 그런데 저희는 100% 따라 할 것이 아니고 느낌만 가져갈 것이기 때문에 일일이 모두 커스터마이징 하기보다는 이미 잘 만들어져 있는 view를 사용할 것입니다. 그것이 바로 BottomNavigation..
[Navigation] Android Jetpack Navigation + BottomNavigationView (2 / 2) 안녕하세요 허접샴푸입니다! Navigation 관련 2편입니다. 이번 편에서는 NavigationExtensions에 대해서 알아보고 MainActivity.kt 코드를 작성하도록 하겠습니다. 긴 말 없이 바로 이어나가도록 하겠습니다. [START] 일단 먼저 1편에서도 말씀드렸지만, Google Sample을 참고한 것이기 때문에, 자세한 구현은 저도 모르는 부분들이 있습니다. 그러나 설명할 수 있는 부분까지 설명하도록 하겠습니다. 참고 : https://github.com/android/architecture-components-samples/tree/master/NavigationAdvancedSample (1) NavigationExtensions.kt 복사 붙이기 위에 있는 NavigationE..
[Navigation] Android Jetpack Navigation + BottomNavigationView (1 / 2) 안녕하세요 허접샴푸입니다! Android Jetpack 라이브러리 중 하나인 Navigation에 대해서 알아보도록 하겠습니다. 최근 들어 안드로이드 앱들을 보면 모두 화면 하단에 메뉴가 있으며 중간 화면이 스위치 되는 Fragment + BottomNavigationView 형태를 하고 있습니다. (물론 옛날부터 그랬겠지만, 예전에는 정형화된 라이브러리가 없어서 Fragment 전환을 코드로 구현하는 것이 쉬운 일이 아니었습니다.) Google에서 2017년 Jetpack 및 Android Architecture Components를 출시하며 Navigation Component가 생겨났으며, Fragment 전환의 어려움을 조금이나마 덜 수 있게 되었습니다. 위 App을 보아도 모두 하단에 Botto..
[Android Core] Snackbar 파해치기 3편 안녕하세요! 허접샴푸입니다~! Snackbar에 대해 알아보겠습니다. 대망의 마지막편인 3편입니다. 이번 3편에서는 - SnackBar 과 Coorindatorlayout관의 관계 에 대해서 알아보도록 하겠습니다. 왜 CoordinatorLayout? Material Design 공식 사이트에서 아래와 같이 기술해 놓았습니다. NOTE: Snackbars work best if they are displayed inside of a CoordinatorLayout. CoordinatorLayout allows the snackbar to enable behavior like swipe-to-dismiss, as well as automatically moving widgets like FloatingAc..
[배달의 민족] 따라만들기 6편 (Android Animation, NestedScrollView SmoothScrollTo, Kotlin Extension Function) 안녕하세요 허접샴푸입니다~! 배달의 민족 따라만들기 6편입니다! 이번 6편에서는 전체 Main 레이아웃을 완성시켰습니다. 이번 시간에 알아볼 것은 바로 아래와 같습니다. - ScrollView Animation [자료(구현할 것)] 1. 5편 이후로 나머지 Layout을 완성시킨 다음, 아래 GIF 보면, "자세히보기"를 눌렀을 때 여러 글이 적혀져 있는 Layout이 Animation을 이용하여 스르륵 나타났다가, "닫기"를 누르면 다시 스르륵하고 사라집니다. 이 부분을 구현해보도록 하겠습니다. [참고] 절대 실제 배달의 민족 App과 똑같이 구현하는 것이 아닌 최대한 비슷하게 구현하는 것이 목표입니다. 제가 고수였으면 100프로 똑같이 구현할텐데... 너그럽게 봐주십시오... LETS GO! [시작]..
[Android Core] Snackbar 파해치기 2편 안녕하세요! 허접샴푸입니다~! Snackbar에 대해 알아보겠습니다. 2 편입니다. 이번 2편에서는 (1) 메세지에 작업 추가하기 (2) Snackbar 커스터마이징 하기 (3) 나머지 프로퍼티 [알아보자] (1) 메세지에 작업 추가하기 위 그림을 보면 "RETRY"라는 보라색의 글자를 확인할 수 있습니다. Snackbar에 작업을 추가하면 저렇게 메시지 텍스트 옆에 버튼이 생깁니다. 버튼을 누르면 작업 또한 트리거할 수 있습니다. 출처: https://developer.android.com/training/snackbar/action - setAction()을 통해 버튼에 원하는 문구와, 버튼을 눌렀을 때 트리거를 적용할 수 있습니다. 저는 단순히 버튼을 "눌러"라고 표시하게 해놓았으며, 그 "눌러" ..
[배달의 민족] UI 따라만들기 5편 (ObjectAnimator, Layout Animation, CoroutineScope) 안녕하세요 허접샴푸입니다~! 배달의 민족 따라만들기 5편입니다! 이번 5편에서는 잠시 쉬어가기 느낌으로 Animation을 구현하도록 하겠습니다. (얻어갈 수 있는 것 - 제 마음대로 끄적인...) - ObjectAnimator - LayoutAnimation - CoroutineScope [자료(구현할 것)] 1. 아이콘들이 Animation에 따라 화면에 나타납니다. (아래에서 위로, RecyclerView에 Animation을 적용하고자 합니다. 이미지 배너 아래에서 위로 Animation은 다루지 않습니다.) 2. ImageView Animation(덜컹덜컹 Animation) [참고] 절대 실제 배달의 민족 App과 똑같이 구현하는 것이 아닌 최대한 비슷하게 구현하는 것이 목표입니다. 제가 고수..