Android란? 안드로이드는 구글에서 만든 스마트폰용 운영체제입니다. 운영체제와 미들웨어, 사용자 인터페이스, 어플리케이션, MMS 서비스 등을 하나로 묶어 서비스를 제공하며 다양한 어플리케이션을 만들어 설치하면 실행될 수 있도록 구성된 어플리케이션 플랫폼이라고도 볼 수 있다. 많은 사람들이 iOS(애플 운영체제)에 견주어 스마트폰과 태블릿으로 안드로이드 운영체제를 사용하면서, 안드로이드는 세계 모바일 시장에서 가장 성공한 OS라는 평가를 받고있으며, 안드로이드는 리눅스(Linux)를 기반으로 제작되었고 언어는 자바와 코틀린을 사용한다. Android의 특징 자바기반 : 안드로이드를 개발할 떄 사용하는 언어는 자바이다. 따라서 전 세계의 많은 자바 개발자들이 안드로이드 앱 개발에 뛰어들 수 있었고 안드..
안드로이드에는 다양한 아키텍처 구조가 존재한다.오늘은 MVVM 패턴에 대해서 공부해보려고 한다. MVVM는 간단하게 Model, View, ViewModel의 약자입니다.MVVM의 구조는 MVC, MVP의 단점을 보완한 구조로 하나의 앱 아키텍처를 최대한 기능적으로 작은 단위로 나누어 테스트가 쉽고 큰 프로젝트도 상대적으로 관리하기가 좋은 구조입니다. MVVM은 모든 입력들이 View로 전달되며, ViewModel은 입력에 해당하는 Logic을 처리하여 View에 데이터를 전달합니다. ViewModel은 View를 따로 참조하지 않기때문에 독립적이며 ViewModel과 View는 1:N관계입니다. 따라서 View는 자신이 이용할 ViewModel을 선택해 데이터를 바인딩하여 업데이트를 받게됩니다.그 후 ..
안드로이드에는 다양한 아키텍처 구조가 존재한다.오늘은 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 할게 너무 많다....