📱 Android 68

[Android] Custom Spinner

안녕하세요 오늘은 spinner에 대해 사용해보겠습니다 보통, 문자 인증 시 통신사 선택할 때 자주 사용되는데 저는 DatePicker 대신 년도+월을 선택할 수 있는 Spinner를 만들고자 합니다 (화면에 날짜를 선택하는 영역을 최대한 줄이고 싶어서요) Spinner 드롭다운의 형태로 여러 개의 데이터 중 하나의 데이터를 선택할 수 있는 View입니다 자주 접하는 모양의 View일 거에요, 문자 인증 시 통신사를 선택하거나 이메일 주소를 선택할 때 등등 기본 형태는 위와 같지만, 저는 배경도 바꾸고 싶고 icon도 변경하고 싶어서 Custom을 하겠습니다 🚀 Spinner 사용하기 1. xml에 Spinner 선언 2. Activity or Fragment에 SpinnerAdapter 연결 Spinn..

📱 Android 2022.08.09

[Android] Custom Rating Bar

RatingBar SeekBar, ProgressBar의 확장으로 별점을 표시할 때 쓰이는 View입니다 터치 혹은 드래그로 별점을 정할 수 있습니다 아래사진처럼요! RatingBar의 자주 쓰이는 속성 android:isIndicator - RatingBar의 조절 여부 (true : 사용자가 조절 불가 , false: 사용자가 조절 가능) android:numStars - 별의 개수를 지정 (ex: android:numStars="5") - numStar 지정 시, RatingBar의 layout_width = "wrap_content"로 해야 지정한 개수가 제대로 보입니다 android:rating - 디폴트 별점 지정 (ex. android:rating="3") android:stepSize - ..

📱 Android 2022.08.04

[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