본문 바로가기

Kotlin

(26)
[배달의 민족] 따라만들기 11-1편(주문내역 화면) 안녕하세요 허접샴푸입니다! 항상 오랜만입니다... 오늘은 주문내역 화면을 간단하게 만들어보고자 합니다. (ViewPager2, TabLayout, Fragments) [배민 화면] 1. fragment_order.xml에 ViewPager2, TabLayout 및 레이아웃 수정 위와 같이 코드를 작성할 경우, Design Tab을 보시면 위 그림과 같이, tab_layout, pager이 생성된 것을 확인할 수 있습니다. 참고로 기존 TabLayout의 경우, TabIndicator의 폭이 해당 탭의 가로 최대 크기로 정해져 있습니다. 그래서 이것을 해제하기 위해 app:tabIndicatorFullWidth="false"로 설정하였으며, 인디케이터는 해당 탭의 각 탭 아이템 문자열 길이만큼의 폭을 가지..
[배달의 민족] 따라만들기 10-3편 (Dagger-Hilt) 안녕하세요! 허접 샴푸입니다. 오늘은 Dagger-Hilt 3편입니다! 지난 포스트 (2편)에서 이어 나가겠습니다. 가장 먼저 기본적인 세팅을 끝났으니, 이제는 무엇을 모듈로 만들지를 정해야 합니다. 가장 먼저 저희는 Repository를 모듈로 만들고자 합니다. 1) RepositoryModule 생성 먼저 "di"라는 package를 생성 후 RepositoryModule 코틀린 파일을 만듭니다. (Object) 2) Dagger-Hilt 속성 작성 위와 같이 작성을 해줍니다. Module은 단순히 Dagger 그래프를 위해 @Module이라고 Annotation 작업을 한 클래스입니다. 모듈 안에서 의존성들을 @Provides Annotation과 함께 정의할 수 있습니다. Repository Pa..
[Jetpack Compose] 카운트 다운 타이머 안녕하세요. 얼마 전인 2021년 2월 24일, Android Jetpack Compose beta버전이 출시되었습니다. (v1.0.0-beta01) developer.android.com/jetpack/androidx/versions/all-channel 최근 출시 노트 | Android 개발자 | Android Developers Content and code samples on this page are subject to the licenses described in the Content License. Java is a registered trademark of Oracle and/or its affiliates. Last updated 2021-02-25 UTC. developer.android..
[Jetpack Compose] 강아지 입양 애플리케이션 안녕하세요. 얼마 전인 2021년 2월 24일, Android Jetpack Compose beta버전이 출시되었습니다. (v1.0.0-beta01) developer.android.com/jetpack/androidx/versions/all-channel 최근 출시 노트 | Android 개발자 | Android Developers Content and code samples on this page are subject to the licenses described in the Content License. Java is a registered trademark of Oracle and/or its affiliates. Last updated 2021-02-25 UTC. developer.android..
[배달의 민족] 따라만들기 10-2편 (Dagger-Hilt) 안녕하세요! 이번 편에서는 코드를 수정하도록 하겠습니다. Dagger-Hilt에 관해서는 아래 링크인 공식문서를 참고해보시기 바랍니다. dagger.dev/hilt/quick-start Quick Start Guide Introduction Hilt makes it easy to add dependency injection to your Android app. This tutorial will guide you through bootstrapping an existing app to use Hilt. For more on the basic concepts of Hilt’s components, check out Hilt Components. Gradle vs non dagger.dev 그럼 저희 코드에 ..
[배달의 민족] 따라만들기 10-1편 (Dagger-Hilt) 안녕하세요! 무책임하게 다음 글을 올리지 않았습니다. 처음부터 다시 차근차근 같이 만들어 가보도록 하겠습니다. 이번 편은 시간이 지남에 따라, 몇몇 업데이트 및 MVVM의 꽃인 Dependency Injection(의존성 주입) 프레임워크인 Dagger Hilt를 사용하도록 하겠습니다. [버전 업데이트 관련] 저도 오랜만에 Github에서 코드를 다운로드하여 실행해보았으며 문제없이 작동이 되는 것을 확인하였습니다. 먼저 오랜만에 프로젝트를 열었기 때문에 build.gradle 파일 내에 몇몇 버전이 업데이트되었습니다. 굳이 일일이 다 짚고 넘어갈 필요가 없기 때문에 업데이트한 프로젝트 파일을 깃허브에 올려놓았습니다.(아래 링크 참조) 필요시 해당 깃허브에서 프로젝트를 다운로드하시고 현재 글을 보며 따라 ..
Dialog 관련 Activity 생명주기 안녕하세요! 오랜만에 글 남깁니다. 이런 질문을 보았습니다. Dialog를 화면에 띄울 때 Dialog를 띄우는 Activity의 onPause()가 호출되는가? 그리고 권한 요청 다이얼로그를 화면에 띄울 때는 onPause()가 호출되는가? 참고로 권한 요청 다이얼로그라고 하면 아래 그림과 같으며 많이 봐보셨을 겁니다. Dangerous Permission을 부여해야 할 때 런타임에서 권한 체크를 하는 것입니다. Permission (Normal, Dangerous) 관련해서는 아래 리스트 참조 https://stackoverflow.com/questions/36936914/list-of-android-permissions-normal-permissions-and-dangerous-permissions..
[Tip] ViewModel의 LiveData를 작성하는 방법 안녕하세요 허접샴푸입니다. 간단하게 Android ViewModel에서 LiveData를 작성하는 방법을 끄적여 봅니다. [예] 출처: https://classroom.udacity.com/courses/ud9012/lessons/da3967cc-ba85-4045-bb46-dea1c770fb8b/concepts/d6779adf-494a-484d-870c-1e054eabed11 우선 MutableLiveData는 말 그대로 "Mutable" 즉 변형이 가능한 LiveData로서 읽기 / 쓰기가 가능합니다. 그리고 그냥 LiveData는 읽기 전용입니다. 참고로 LiveData에서 get() = { } 형태의 코드는 Kotlin 의 Backing Property라고 불리는 속성입니다. (Backing Pro..