전체 글 107

[Jetpack] Navigation Component #1 기본 뼈대 만들기

Jetpack에서 Navigation을 한번 사용해보겠습니다 Navigation에 관해선 아래의 공식문서를 참고했어요 https://developer.android.com/guide/navigation 탐색 | Android 개발자 | Android Developers Android Jetpack의 탐색 구성요소를 사용하여 앱에서 탐색 구현 developer.android.com Navigation에는 3가지 Key part가 있습니다 1️⃣ Navigation Graph 모든 네비게이션 관련 정보가 한곳에 모여 있는 XML 리소스 앱을 통해 이동할 수 있는 경로뿐만 아니라 앱 내의 모든 개별 콘텐츠 영역(목적지)가 포함됩니다 2️⃣ Nav Host Navigation graph로부터 목적지들을 표시하는..

📱 Android 2023.04.30

[Jetpack] LiveData와 ViewModel

Jetpack 라이브러리의 Architecture(안드로이드 앱의 아키텍처를 지원하는 데 필요한 기술들을 제공) 카테고리에 속해있는 ViewModel과 LiveData에 대해 간략히 정리해보겠습니다 :) LiveData : 생명주기를 인식하는 observer pattern을 구현하는 데이터 홀더 클래스 데이터 변경 시 UI에 알림을 보내고 Activity, Fragment등 구성요소의 lifecycle에 따라 관찰 가능 🔍 특징 - UI 업데이트에 사용되는 Data들을 쉽게 관리할 수 있다 - 생명주기를 인식해 Data Update를 알려준다 - 안전하게 관찰가능하도록 설계되어서 NPE 방지가 가능하다 - 구성요소 변경(화면 회전 등)의 이유로 Activity 재생성시 이전 상태 저장 ViewModel ..

📱 Android 2023.03.23

[🔍] 동시성에 관하여

많은 기업들의 기술블로그를 즐찾해두곤 하는데, 코루틴을 공부하면서 찾게된 데브시스터즈 블로그의 동시성에 관련한 포스팅 코루틴을 공부하는 입장으로써, 너무 도움되는글 :) https://tech.devsisters.com/posts/crunchy-concurrency-kotlin/ 바삭한 신입들의 동시성 이야기 - Kotlin 편 마이쿠키런 신입 안드로이드 개발자의 Kotlin Coroutine 탐방기 tech.devsisters.com 코루틴을 직접 개인프로젝트에 적용하려니 어려운 점이 많더라구요..ㅠㅠ 개인프로젝트 진행과정도 포스팅으로 곧 올려보겠습니다

[Hilt] Hilt 익히기 #2 - Dagger 복습하기 (주요 Annotation)

앞전에서 Hilt는 Dagger를 기반으로 만들어진 DI 라이브러리임을 알 수 있었는데, 사실 Dagger도 초반에만 사용하고, 그 뒤로 안 써봐서 어노테이션이 정확히 기억나지 않아요 :( 그래서 주요 어노테이션들을 복습하는 시간을 가지고, Hilt 공식 문서를 보는 공부방식으로 정했어요 ! 까먹는거.. 저만 그런거 아니잖아요..? 아주 간단한 예제를 통해서 주요 Annotation을 다시 복습해보겠습니다 ✏️ 1. @Module, @Provides Component에 의존성을 제공하는 역할을 합니다 모듈 클래스를 만드는 방법은 @Module만 붙여주면 됩니다 그리고 그 안에 선언되는 메소드들에는 @Provides가 붙어요 :) 간단한 코드를 예시로 보자면, @Module class MainModule ..

📱 Android 2023.01.30

[Kotlin] Collection 함수 - (1) 원소 변환 및 필터, 특정원소 검색

컬렉션의 원소 타입을 변환하거나 필터링 하는 과정은 코딩테스트에서 빈번하게 사용되더라구요 꼭 익혀두도록 해야겠어요 :) Collection에 확장함수는 정말 너무나도 많아요.. 공식문서에 스크롤이 이를 증명합니다.. 어떻게 나눠야 하나 많이 고민했는데 우선 1️⃣ 원소 변환 및 필터, 특정원소 검색 2️⃣ 수학적 개념 3️⃣ index 관련 4️⃣ 형식변환5️⃣ 값 반환 및 정렬 순으로 정리해볼까 해요 :) 이유는 제맘입니다..🫢 바뀔수도 있어요 ,, 원소 변환 Map Collection 타입을 Collection 타입으로 변환 공식문서엔 아래와 같이 설명되어있어요 Returns a list containing the results of applying the given transform function..

💡 Kotlin 2023.01.12

[Kotlin] mutable Collection

2023.01.03 - [💡 Kotlin] - [Kotlin] Collection (List, Set, Map) [Kotlin] Collection (List, Set, Map) 많이 접한만큼 익숙한 자료구조이지만, 한번 더 살펴보겠습니다 Collection 자료구조 중 하나로, 크게 3가지 컬렉션이 있습니다 (List, Set, Map) List와 Set은 Collection을 상속받고, Map은 독자적입니다 간 kong-droid.com 이전 포스팅에서 Collection에 대해 알아봤는데, Collection 인터페이스에서 원소를 수정하려면 Mutable Collection을 사용해야해요 오늘은 Mutable Collection에 대해 알아보겠습니다 ✏️ MutableCollection interf..

💡 Kotlin 2023.01.08

[Android] Clean Architecture

이전 포스팅에도 작성한 적이 있는데, 새로이 공부하면서 다시 정리해보도록 하겠습니다 ✏️ 왜냐하면 까먹었기 때문이죠 아마 내용이 비슷할거에요.. 그래도 한번 더 써보는걸로도 공부가 되니깐,,. 2022.05.29 - [📱 Android] - [Android] Clean Architecture in Android [Android] Clean Architecture in Android Clean Architecture 본격적인 디자인 패턴 공부에 앞서, clean Architecture에 대해 알아보겠습니다 Clean Architecture에 가장 중요한 부분은 UI와 Data를 분리함에 있습니다 관심사를 계층별로 분리 관심사란 단 kong-droid.com Clean Architecture ⭐️ 관심사 분..

📱 Android 2023.01.08

[Android] SOLID 원칙

설계원칙으로 유명한 SOLID 원칙에 대해 하나씩 알아보겠습니다 단일 책임 원칙 (Single Responsibility Principle) • 어떤 클래스나 모듈 , 메서드가 하나의 기능을 가져야 한다는 의미 • 모든 클래스는 단 하나의 책임만 가짐 -> 변경사항 발생 시 그 변경사항에 책임이 있는 부분만 수정 ex) A 모듈 : 특정 데이터를 분석 , 서버에 전송 A 모듈은 2가지 이유로 변경될 수 있다 1. 특정 데이터 분석 알고리즘 변경 2. 서버에 전송하는 형식 변경 실제로는 분리된 책임이며, 따라서 분리된 클래스 모듈로 나눠야한다 🔍 왜 이렇게까지 한 클래스에 한 책임만 가져야하는가 클래스를 더욱 튼튼하게 한다 (변경사항이 다른 책임에 영향을 주지 않으므로, 유지보수 용이) 개방 - 폐쇄 원칙..

📱 Android 2023.01.08

[Hilt] 코드랩으로 Hilt 익히기 # 1

Android 앱에서 Hilt 사용 | Android 개발자 | Android Developers 이 Codelab에서는 Hilt를 사용하여 종속 항목 삽입을 실행하는 Android 앱을 빌드해 보겠습니다. developer.android.com Android 앱에서 Hilt 사용 코드랩을 따라 Hilt를 익혀보겠어요 ✏️ Hilt가 dagger를 기반으로 만들어진 DI라, Hilt도 Annotation을 씁니닷 라이브러리 추가하기 코드랩에 적혀있는 방법으로는 라이브러리가 추가가 안되더라구여,, 아무래도 최신버전이 아니라서 그런 거 같아요 1. plugin id 추가 id 'kotlin-kapt' id 'dagger.hilt.android.plugin' 2. 프로젝트 단위 build.gradle plug..

📱 Android 2023.01.07

[Kotlin] Collection (List, Set, Map)

많이 접한만큼 익숙한 자료구조이지만, 한번 더 살펴보겠습니다 Collection 자료구조 중 하나로, 크게 3가지 컬렉션이 있습니다 (List, Set, Map) List와 Set은 Collection을 상속받고, Map은 독자적입니다 간단히 3가지의 특징, 생성법에 대해 알아보자면, ✅ List : 순서 O val list: Collection = listOf(1,2,3) ✅ Set : 순서 X, 중복 X val set: Collection = setOf(9,8,7) ✅ Map : [키-값]의 형태 , 키는 중복 X val map: Map = mapOf("First" to 0, "Second" to 1) Collection Interface interface Collection : Iterator Co..

💡 Kotlin 2023.01.03