본문 바로가기

안드로이드 공부 & 앱9

[안드로이드/Kotlin] 의존성 주입 및 Hilt 프레임워크 사용 과정 Dagger Hilt를 알아보기 전에 의존성 주입을 하는이유에 대해서 알아보겠습니다. 1.의존성 주입(dependency injection) -"의존성 주입"은 하나의 객체가 다른 객체에게 의존성을 제공하는 것입니다. -그러면 의존성이 필요한 이유를 보면서 의존성을 이해해봅시다. 1-1)의존성 주입을 하는이유 -위의 코드처럼 객체를 필드안에서 new 연산자를 생성해서 객체를 생성할 때 문제가 발생합니다. -만약 Pocket 클래스의 코드가 수정되어서 객체 생성시 입력값이 필요하면 Draemon 클래스도 수정을 해줘야 하는 문제가 발생합니다. -이것을 객체간의 의존성이 발생한다고 얘기합니다. 1-2)의존성 주입을 통한 객체 생성 방식 -위의 그림의 외부에서 Pocket 객체를 가져와서 주입하면 Pocket.. 2022. 5. 17.
[안드로이드/Kotlin] DiffUtill + RecyclerView 개념 정리 및 Tip 1.DiffUtil의 사용배경 1-1)기존 NotifyDataSetChanged의 단점 -기존의 NotifyDataSetChanged를 사용해서 데이터를 갱신하면 전체 아이템을 다시 바인딩하는 방식으로 되어있어서 수정되지 않은 아이템도 다시 갱신되어지는 단점이 있습니다. 1-2)DiffUtil의 장점 -DiffUtil을 사용하면 수정이된 아이템만 갱신시켜서 불필요한 리소스를 줄일 수 있다는 장점이 있습니다. -DiffUtil은 이전 데이터 상태와 현재 데이터간의 상태 차이를 계산해서 반드시 업데이트해야 할 최소한의 데이터만 갱신시킵니다. 2.DiffUtil 사용방법 2.DiffUtil 구현 Tip 1)DiffCallBack -DiffUtil을 사용하기 위해선 이전데이터와 현재 데이터간의 비교를 해주는 클.. 2022. 5. 14.
안드로이드 CleanArchitecture 개념 정리 및 구현 1.클린아키텍처란 -2012년에 Uncle Bob이란 분이 제시한 소프트웨어 설계 방식 사용하는 이유 -계층(Layer)별로 역할(관심사)를 나누어 분리함으로써 다양한 요구(대규모 업데이트, 새로운 기능, 버그수정, 테스트, 고객의 요청)등에 유연하게 대처하기 위해 사용 이러한 계층간의 역할을 알기전에 의존성 규칙을 먼저 알아보겠습니다. 의존성 규칙(Dependency Rule) -계층마다 경계를 나누어서 관심사를 분리하기 위해 사용하는 규칙 1)모든 소스코드 의존성은 반드시 바깥쪽에서 안쪽으로, 고수준 정책을 향해야 한다 -안쪽으로 갈수록 고수준에 해당하고, 고수준과 저수준은 추상화의 정도에 따라 분류됩니다. -추상화가 많이 되어있을수록 안쪽에 위치해있고 고수준에 해당합니다. 2)고수준에 있는 계층은 .. 2022. 4. 21.
[안드로이드] JetPack Navigation 개념 정리 및 예제 1.Navigation이란 -사용자가 앱 내의 여러 콘텐츠를 탐색하고 그곳에 들어갔다 나올 수 있게 하는 상호작용을 의미합니다.(안드로이드 공식문서에서 나온 정의) -주로 하나의 엑티비티에 여러개의 Fragment를 전환하는 것에 중점을 두어 설계가 되었습니다. -화면(주로 Fragment)간의 전환이나 데이터 전달 등의 다양한 기능을 제공합니다. (그 외의 딥링크나 더 다양한 기능이 있습니다) 2.Navigation의 구성요소 1)NavGraph(탐색 그래프) -위의 그림은 하나의 엑티비티에 있는 Fragment들의 전개 방식을 시각적으로 표현했습니다 -그림에 보이는 화면 하나하나를 Destination(목적지)라고 부르고 화면의 경로를 표시한 화살표들을 action이라고 부릅니다. -Destinati.. 2022. 4. 16.