안드로이드에는 다양한 아키텍처 구조가 존재한다.오늘은 MVP 패턴에 대해서 공부해보려고 한다. MVP는 간단하게 Model, View, Presenter의 약자입니다.MVP의 구조는 MVC와는 다르게 UI(View)와 비즈니스 로직(Model)을 분리하고, 서로 간에 상호작용을 다른 객체(Presenter)에 그 역할을 줌으로써 서로의 영향(의존성)을 최소화하는 것에 있습니다.(MVP의 등장 배경) Model, View, Presenter의 특징을 정리해보자 Model프로그램 내부적으로 쓰이는 데이터를 저장하고, 처리하는 역할을 함.(비즈니스 로직)View 또는 Presenter 등 다른 어떤 요소에도 의존적이지 않은 독립적인 영역임.ViewUI를 담당하며 안드로이드에서는 Activity, Fragmen..
안드로이드에는 다양한 아키텍처 구조가 존재한다. 오늘은 MVC 패턴에 대해서 공부해보려고 한다. MVC는 안드로이드와 관계없이 프로그래밍 시 가장 널리 사용되는 구조 중 하나이며 간단하게 Model, View, Control의 약자입니다. MVC 구조에서의 입력은 모두 Control에서 발생하게 되며 관리되게 되는 구조입니다. 이벤트가 발생한 Control에 의해 각 모듈의 정의와 View의 사용 용도가 달라지게 됩니다. MVC 구조에서는 입력을 모두 Control에서 발생하게 되며 관리하게 되는 구조이다. 이벤트가 발생한 Control에 의해 각 모듈의 정의와 View의 사용용도가 달라지게 된다. Model, View, Control의 특징을 정리해보자 Model 데이터를 가지며 애플리케이션에서 사용되..
오늘은 안드로이드에 Notification 기능을 정리해보려고 한다. Notification 즉, 알람기능의 경우는 개인적으로 모바일에서는 중요한 기능이라고 생각한다. 웹과 달리 모바일 어플리케이션의 경우 모바일의 휴대성이라는 점을 고려해야한다. 알림(Notification) 개요 앱의 UI와 별도로 사용자에게 앱과 관련한 정보를 보여주는 기능 알림을 터치하여 해답 앱을 열 수 있다. 바로 간단한 작업(ex 문자 답하기)을 할 수 있음(Android 7.0부터) 보통 단말기 상단 부분에 표시된다. 앱 아이콘의 배지로도 표시(Android 8.0부터) 알림(Notification) 표시 권한 안드로이드 13 (API 33) 부터 알림 표시를 위해 동적 권한 필요 Manifest 파일에 POST_NOTIFI..
아래 그림과 같이 도형을 선택하는 라디오 버튼을 만들고, 선택한 도형에 따라 터치할 때 그린다. activity_main.xml MainActivity import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import com.example.myapplication.databinding.ActivityMainBinding class MainActivity() : AppCompatActivity() { lateinit var binding: ActivityMainBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) ..
커스텀뷰에 대해서 정리를 하려고 한다. 커스텀 뷰 란? 안드로이드 앱을 개발하다 보면 일반적인 뷰로는 내가 원하는 결과를 만들 수 없는 경우가 발생하는데, 이런 경우 직접 ‘커스텀 뷰’를 만들어야 한다. 안드로이드의 UI 요소는 모두 View를 상속한다. 아래에 그림을 참고하자. View를 상속하여 UI 요소의 외형을 그리고 UI이벤트를 처리한다. CustomView를 사용하는 이유는 View의 재사용을 위해서다. 디자인이나 React 같은 프레임워크에서는 이런 개념을 컴포넌트라고 부른다. 디자인과 UX의 통일성을 유지하기 위해 동일한 형태의 UI를 여러 군데에서 사용하게 되는데 이런 UI를 사용하는 곳마다 각각 구현하기에는 코드의 길이도 길어지고, 수정 및 관리하기에도 어렵다. CustomView의 핵..
Clean architecture MVVM, MVP 등등 아키택처 패턴 Hilt를 이용한 의존성 주입 Paging 3 Flow Room 유닛테스트, UI테스트 Retrofit 비동기처리(Couroutine) 이미지 활용 미디어 활용(Exployer) Custom UI 및 다양한 디자인 UI 경험 안드로이드 기본 기능 외부 리소스 활용(오픈 APi, Glide 등) JetPack FireBase 할게 너무 많다....