📱 Android 66

[Android] RecyclerView - MultiViewHolder(2)

2021.05.15 - [Android] - [Android] RecyclerView (1) - Multi ViewHolder [Android] RecyclerView (1) - Multi ViewHolder 안녕하세요 :) 오늘은 RecyclerView를 사용해보겠습니다 굉장히 자주 쓰이는 부분이기에 저 또한 더 자세히 알아두고자 정리해보려 합니다. (사용 빈도는 높지만 프로젝트를 처음부터 구현하지 않 kong-droid.com 기존 포스팅이 존재하지만, 기존 포스팅에선 같은 모델에서 type에 따라 나누는 방식을 사용했지만 보통 RecyclerView를 사용할 때 다양한 Model을 사용하기 때문에 ViewHolder별로 다른 DTO를 MultiViewHolder로 보이는 방식을 사용해 보겠습니다 코..

📱 Android 2022.07.13

[Android] Fragment LifeCycle

2022.07.03 - [Android] - [Android] Activity LifeCycle 🧐 [Android] Activity LifeCycle 🧐 안녕하세요 오늘은 Activity의 LifeCycle에 대해 알아보겠습니다 :) 수없이 봐온 LifeCycle이지만, 더 상세하게 알아둔다면 좀 더 좋은 구조를 가진 앱을 개발할 수 있을 것 같아요 💪 위의 사진 순서대 kong-droid.com Activity LifeCycle에 이어서 Fragment LifeCycle에 대해서도 알아볼텐데 거의 비슷하지만, Fragment에 좀 더 추가된 부분들이 있습니다 그리고, 2020년에 onActivityCreated가 Deprecated 되면서 Lifecycle이 아래와 같이 변했습니다 Fragment의 ..

📱 Android 2022.07.06

[Android] 4대 Component

Component Application의 구성 요소입니다 Manifest 파일에 등록 필수 🔍 시스템에 컴포넌트를 알려야하기 때문에 일반 클래스와의 차이 일반 클래스: 생명주기 관리 개발자 코드 컴포넌트 클래스 : 안드로이드 시스템에서 생명주기 관리 또, 앱 안에서 독립된 실행단위로 이로 인해 안드로이드는 앱 실행 시점이 다양합니다 안드로이드에선 4개의 Component가 존재하는데, 각각 Component들에 알아보겠습니다 생성방법이나 사용법에 대해선 자세히 다루진 않겠습니다 😭 1. Activity 화면을 구성하고 사용자와 상호작용을 담당하는 컴포넌트 2. Broadcast Receiver 시스템에 어떤 이벤트가 발생 (ex.부팅, 배터리상태, 화면 On/Off)하면 실행되는 컴포넌트 Broadcas..

📱 Android 2022.07.05

[Android] Activity LifeCycle 🧐

안녕하세요 오늘은 Activity의 LifeCycle에 대해 알아보겠습니다 :) 수없이 봐온 LifeCycle이지만, 더 상세하게 알아둔다면 좀 더 좋은 구조를 가진 앱을 개발할 수 있을 것 같아요 💪 위의 사진 순서대로 알아보겠습니다 1. onCreate() 최초로 1회만 실행되기 때문에 필수로 구현되어야 하는 부분이고, 초기 1회만 실행되어야 하는 부분을 넣어줍니다 주로 setContentView()를 onCreate에서 호출합니다 2. onStart() 사용자에게 화면이 보여질 때 호출되고, 여러 번 호출이 가능합니다 3. onResume() 사용자와 상호작용을 할 수 있을 때 호출되며, 여러 번 호출이 가능합니다 즉, 포커스를 얻을 때 실행되는 부분이며 액티비티가 포커스를 잃기 전까지 이 상태에 ..

📱 Android 2022.07.03

[Android] MVVM 구현하기

안녕하세요 :) 이전 포스팅에서 MVVM에 대해 알아봤습니다만, 2022.05.30 - [Android] - [Android] Pattern (MVC, MVP, MVVM) 막상 MVVM으로 구현하려니, 적용이 꽤나.. 어려웠습니다 🥶 그래서 MVVM을 구현 시 알아둬야할 부분에 대해 자세한 개념보다는 어떻게 써야하는지를 정리하려고 합니다 .. 멀고도 험한 MVVM의 길 😮‍💨 ⚒ Skill ⚒ - ViewModel - LiveData - DataBinding - Repository - Dagger ViewModel - AAC (Clean Architecture을 쉽게 구현하도록 제공되는 library) 중 하나 - LifeCycle을 고려해 UI 관련 데이터를 저장하고 관리 👀 ViewModle을 사용하..

📱 Android 2022.06.27

[Android] Jetpack Architecture #1 DataBinding

Jetpack 컴포넌트는 생산성을 높인 개발을 도우는 라이브러리로, 아래와 같은 특징이 있습니다 1. 애플리케이션 설계 권장사항을 따름 2. 보일러 플레이트 코드 줄임 3. 복잡한 작업들 간소 -> 중요 코드에만 집중 Jetpack 컴포넌트는 Foundation, Architecture, Behavior, User Interface 4개의 카테고리를 가지는데 그 중 Architecture에 대해서 알아보겠습니다 DataBinding xml을 앱의 데이터와 결합할 수 있는 라이브러리 - findViewById 메소드를 호출할 필요가 없어 앱 성능이 향상, 메모리 누수 및 NPE를 방지할 수 있다 💬 호출할 필요가 없는 이유 ? 바인딩 클래스 내부에서 미리 findViewById를 호출하고 그 결과를 캐싱해..

📱 Android 2022.06.05

[Android] Pattern (MVC, MVP, MVVM)

MVC Model, View, Controller로 구성 🔍 Model - 비즈니스 로직 및 데이터를 다루는 영역 ex) POJO 클래스, SQLite, Room, Realm 🔍 View - 사용자에게 보이는 영역 - Model로 부터 얻은 데이터 표시 ex) Activity, Fragment 🔍 Controller - 모델과 뷰에 의존 - 뷰로 부터 입력 받음 - 특정 이벤트 발생 시 뷰, 데이터 변경 가능 ex) Activity, Fragment 다이어그램 💬 MVC의 장점과 단점은 무엇일까? 장점 - 직관적이다 쉽게 말해 패턴을 몰라도 구조가 단순하고 직관적이라 쉽게 적용할 수 있다 단점 - 컨트롤러가 뷰, 모델에 의존적 -> 유닛테스트가 힘들다 - Fragment, Activity에서 Contro..

📱 Android 2022.05.30

[Android] Clean Architecture in Android

Clean Architecture 본격적인 디자인 패턴 공부에 앞서, clean Architecture에 대해 알아보겠습니다 Clean Architecture에 가장 중요한 부분은 UI와 Data를 분리함에 있습니다 관심사를 계층별로 분리 관심사란 단어가 잘 와닿지 않는데 정의를 알면 이해가 쉽습니다 관심사는 어떤 상태나 데이터에 영향을 미치는 정보의 집합을 뜻합니다 Clean Architecture Layer 각 계층별로 반드시 코드의 종속성이 외부로부터 내부로 의존 (Entities

📱 Android 2022.05.29

[Firebase SDK 추가 이슈] build.gradle in Bumblebee

오늘은 간단하게 SDK 추가 이슈에 대해 정리하겠습니다 Firebase SDK를 Build.gradle에 추가하려고 하니, 자꾸 에러가 발생했습니다 ㅠㅠ Firebase Console에서 설명된 SDK 추가 방법을 따르니, 프로젝트 수준의 build.gradle에서 에러가 발생했습니다 Bumblebee 버전에서는 위의 방법을 따르지 않고 아래처럼 classpath만 선언해주면 됩니다 혹시 저처럼 build.gradle 오류가 발생하시는 분들이 있다면, AndroidStudio Version을 확인해보시길 바랍니다 :)

📱 Android 2022.05.22

[Dagger2] #2 with.Retrofit

안녕하세요, 🐥 오늘은 DI 1탄에 이어서 2탄으로 돌아왔습니다 Rest API(Retrofit)와 Dagger2를 함께 사용하는 예제로 진행하겠습니다 이번 포스팅에서 진행할 3가지 기능입니다 📌 mocky API 📌 Retrofit을 이용해 REST API 연동 📌 Dagger2로 Retrofit 사용 Mocky 사용법 1. https://designer.mocky.io/에서 NEW MOCK을 클릭하여 이동 2. 출력하고자 하는 값을 JSON 형태로 Body에 넣어줍니다 3. GENERATE MY HTTP RESPONSE 클릭 - 이 경우에 BASE_URL은 https://run.mocky.io/v3/ 입니다 💬 본격적으로 DI를 시작하기 전, Retrofit과 dagger2 사용을 위해서 librar..

📱 Android 2022.04.07