일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 백준 2615
- 코틀린 에러 핸들링
- power menu 라이브러리
- android compose orbit
- 안드로이드 커스텀 뷰
- Thread vs Coroutine
- 코루틴 공식문서
- 코루틴
- 안드로이드 컴포즈
- hilt
- runCatching
- Android Compose
- 코루틴 공식 문서
- Android Custom View
- android orbit
- Android Compose Navigation
- AAC ViewModel
- Sticky Header RecyclerView
- 스레드 vs 코루틴
- Hilt 에러
- power menu
- Kotlin Serialization
- BOJ
- Unsupported metadata version. Check that your Kotlin version is >= 1.0: java.lang.IllegalStateException
- Coroutine
- viewmodel
- RecyclerView Sticky Header
- 안드로이드 무한 스크롤
- 힐트
- 백준
- Today
- Total
목록Android (32)
Beeeam
Hilt Hilt는 안드로이드에서 의존성 주입을 도와주는 라이브러리이다. Hilt는 프로젝트의 모든 클래스에 컨테이너를 제공하고, 수명 주기를 자동으로 관리해준다. Hilt는 기존에 사용되던 Dagger 라이브러리를 기반으로 만들어졌다. Dagger보다 쉬워서 러닝 커브가 낮고, 초기 DI 환경 구축 비용을 절감할 수 있는 장점이 있다. 이전 게시물에서 언급했던 내용이다. 이번에는 더 자세히 알아보자 Hilt 사용 Project level의 gradle에 밑의 내용 추가 buildscript { ... dependencies { classpath 'com.google.dagger:hilt-android-gradle-plugin:2.44' } } App-level의 gradle에 밑의 내용 추가 plugi..
의존성이라는 용어를 많이 접했었다. 하지만 이게 정확하게 무엇인지 잘 모르고 있었다. 근데 이번에 Hilt 라이브러리를 공부하게 되면서 공부한 내용을 정리하려고 한다. 객체 지향 프로그래밍? 단어 그대로 객체 중심으로 프로그램을 설계하고, 개발하는 방식이다. 여기서 포인트는 객체가 중심이 되어서 “누가 어떤 일을 할 것인가?” 가 핵심이 된다. 객체를 중심으로 프로그램을 설계하기 때문에 객체 간의 협력은 필수적이다. 그래서 객체 간의 협력을 하게 되는데 이때 의존성이 생긴다. 의존성? 다른 것에 의지하여 생활하거나 존재하는 성질, 금단 증상 때문에 계속하여 약물을 섭취하지 않으면 안 되는 상태. 객체 지향에서 의존성 한 객체나 클래스가 파라미터나 리턴 값 또는 지역 변수 등으로 다른 객체를 참조하는 것 ..
Hilt 공부하려고 Hilt code lab을 하고 있었는데 Hilt 적용 전에는 잘 동작하던 프로젝트가 Hilt를 적용 한 후로 밑의 에러가 계속 나오면서 실행이 안됐다. 그래서 열심히 구글링을 해봤는데 사용 중인 코틀린과 버전을 일치 시켜야 한다 등 다양한 해결법이 나와서 시도 해봤는데 해결 하지 못했다. 그래서 몇 시간 동안 이거 때문에 머리 쥐어 뜯고 있다가 아는 선배를 통해서 에러를 해결 했었다. 처음 에러를 해결 했을 때는 아는 선배가 Hilt를 사용했던 프로젝트와 환경을 일치 시켜서 해결 했었다. 그리고 계속 진행 하던 중 여러 이유들 때문에 다시 해봐야겠다는 생각이 들어서 처음부터 프로젝트를 생성해서 진행했다. 그런데 Hilt를 적용하니 또 같은 에러가 발생하였다. 위의 에러는 코틀린의 버..
MVVM 패턴 앞에서 포스팅한 MVP 패턴은 View와 Presenter가 1:1 관계라서 View가 추가되면 Presenter도 추가 되야 하는 단점이 있었다. 이러한 단점을 보완한 패턴이 MVVM 패턴이다. MVVM 패턴은 Model, View, ViewModel로 구성이 된다. Model과 View는 기존의 패턴들과 동일하고, Presenter 대신에 ViewModel이 사용 된다. MVVM 패턴도 View가 입력을 받고 해당 요청을 ViewModel로 전달한다. 그러면 그에 맞는 데이터를 Model로 부터 받아온다. 받아온 데이터는 ViewModel에 Livedata에 저장을 한다. View는 ViewModel에 저장된 Livedata를 관찰하다가 데이터가 변경되면 이를 감지하고, UI를 갱신한다..
MVP 이전에 포스팅 했던 MVC 패턴에서 Model과 View의 의존성이 높아지는 문제점을 해결하기 위해서 생겨난 개념이다. Model, View, Presenter로 구성되며, Model과 View의 의존성을 없애기 위해서 둘은 Presenter를 통해서만 동작이 가능하다. → Model과 View는 오직 Presenter만 통해서 데이터를 주고 받을 수 있다. MVP 패턴의 흐름을 표현 해봤다. 흐름을 보면 먼저 User가 요청하면 이를 View가 받는다. 그럼 View는 Presenter에 요청이 왔음을 알린다. 그러면 Presenter는 Model에 데이터를 요청하고 데이터를 받아온다. 마지막으로 받아온 데이터를 View에 전달하여 화면에 보여준다. MVC와 차이점 activity / fragm..
사실 안드로이드 관련 자료를 찾아보거나 회사 기술 스택들을 보면서 MVVM을 많이 보았는데 이때는 그냥 많이 사용되는 개념이구나 하고 넘겼었다. 근데 이번에 동아리 발표를 준비하면서 주제를 뭘로 할까 생각하다가 안드로이드에서 많이 사용되고, 안드로이드가 아닌 sw 개발에서도 많이 사용되는 MVVM에 대해서 발표를 하면 좋을 것 같다는 생각이 들었고, MVVM을 공부하는 김에 안드로이드에서 사용되는 여러 디자인 패턴들을 공부하고, 발표 해야 겠다는 생각이 들었다. 먼저 앞에서 언급한 것 처럼 MVC, MVP, MVVM 모두 디자인 패턴인데 디자인 패턴이 무엇인지, 왜 사용하는지를 알아야 할 것 같다. 디자인 패턴? 소프트웨어 디자인 패턴(software design pattern)은 소프트웨어 공학의 소프..

https://developer.android.com/jetpack/guide?hl=ko 앱 아키텍처 가이드 | Android 개발자 | Android Developers 앱 아키텍처 가이드 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 이 가이드에는 고품질의 강력한 앱을 빌드하기 위한 권장사항 및 권장 아키텍처가 포함 developer.android.com 위의 안드로이드 공식문서의 앱 아키텍처 가이드를 기반으로 작성함 지금까지 안드로이드 개발을 하면 무지성으로 activity 파일에 기능들을 때려 넣었었다. 사실 이렇게 하면 편하다. 그냥 화면에 맞는 activity 또는 Fragment 파일에 동작할 코드들을 코딩하면 되기 때문이다. 그런데 이런식으로 코딩을 하게되면..
안드로이드 4개 컴포넌트는 안드로이드 앱을 구성하는데 있어서 필수적인 4개의 구성요소를 의미한다. 4대 컴포넌트에는Activity, Service, Broadcast receiver, Content provider 가 있다. 이 중에서 가장 많이 사용되는 요소는 Activity이다. 각 컴포넌트는 독립적인 형태로 존재하고, 각 컴포넌트들은 Intent 통해서 상호작용한다. 모든 컴포넌트는 앱에 추가할 때 Manifest 파일에 선언해야 한다. 여기서 Manifest 파일은 앱을 파악하기 위한 설계도 같은 역할을 하는 파일이다. 그리고 모든 컴포넌트는 Main Thread (UI 작업을 처리해주는 Thread)안에서 실행된다. Activity 보여지는 화면에서 동작하는 기능들을 담당한다. UI를 제공하여 ..