Android 15

[Android] Jetpack ViewModel

ViewModel비즈니스 로직 또는 화면 수준 상태 홀더로,UI 컨트롤러의 데이터를 캡슐화하여 구성 변경이 일어나도 데이터를 유지하는 것이 목적인 구성요소이다. 즉, UI에 상태를 노출하고 관련 비즈니스 로직을 캡슐화   ViewModel이 아닌 일반 Class로 UI를 상태를 관리하면 어떻까?이는 활동(Activity)이나 탐색 대상(Navigation destinations) 간에 이동할 때 문제가 될 수 있습니다. 이렇게 하면 인스턴스 상태 저장 메커니즘을 사용하여 데이터를 저장하지 않을 경우 해당 데이터가 소멸됩니다. 참고적으로, ViewModel은 Hilt 및 Navigation과 같은 주요 Jetpack 라이브러리와 Compose와의 통합을 완벽하게 지원   ViewModelStoreOwner..

Android/학습 2024.11.14

[Android] Bundle이란? (feat. Activity 간 데이터 전달에 Intent를 사용하는 이유)

BundleString key에 다양한 Parcelable 값으로 매핑key, value의 Map 형태의 데이터 구조 Parcelable와 Bundle는 IPC/바인더, 인텐트가 있는 활동 간 트랜젝션, 구성 변경 간에 일시적인 상태를 저장하는 것과 같이프로세스 경계를 ​​넘어 사용하도록 의도된 객체Parcel는 일반적인 직렬화 메커니즘이 아니며, Parcel를 디스크에 데이터를 저장하거나 네트워크를 통해 전송해서는 안 됩니다.  Bundle은 parcel을 사용하여 마샬링(marshalling) 및 언마샬링(unmarshalling)하는 데 매우 최적화되어 있습니다.  데이터를 저장하거나 전송할 목적으로 데이터 구조 또는 개체를 한 표현에서 다른 표현으로 변환하는 프로세스 마샬링(marshalling)..

Android/학습 2024.10.01

[CS] SOLID - 객체지향 설계의 원칙

약어개념 SSRPThe Single Responsibility Principle단일 책임 원칙A class should have one, and only one, reason to change.한 클래스는 하나의 책임만을 가져야 한다.OOCPThe Open Closed Principle개방-폐쇄 원칙You should be able to extend a classes behavior, without modifying it.소프트웨어 객체(클래스, 모듈, 함수 등)는 확장에 열려있어야 하고, 수정에 대해서는 닫혀 있어야 한다.LLSPThe Liskov Substitution Principle리스코프 치환 원칙Derived classes must be substitutable for their base cl..

Android/학습 2024.09.25

[CS] 객체지향 프로그래밍(OOP: Object-Oriented Programming)과 절차지향 프로그래밍(Procedural Programming)

객체지향 프로그래밍은프로그래밍 패러다임 중 하나로, OOP(Object-Oriented Programming)객체지향 프로그래밍객체(object)라는 개념을 중심으로 프로그램을 구조화하는 것 VS Procedural Programming절차지향 프로그래밍개체를 순차적으로 처리하여 프로그램 전체가 유기적으로 연결되어 있는 것   OOP를 이야기할때 늘 단골로 나오는 절차지향 프로그래밍에 대한 이야기가 나온다.하지만, 절차지향 프로그래밍과 객체지향 프로그래밍 서로 반대되는 개념이라기보다는 절차지향 프로그래밍이 발전하여 객체지향 프로그램이라는 패러다임이 나온 것이라고 볼 수 있다.- 생활코딩  Procedural Programming ↔️ Object-Oriented Programming이와 같이 표현하지만 ..

Android/학습 2024.09.04

[Android] Android 권장 앱 아키텍처를 통해 보는 ViewModel과 Repository

아키텍처 원칙 앱 구성요소 : Activity, Fragment, Service, Content Provider, Broadcast Receiver 등 구성요소는 개별적이고 비순차적으로 실행될 수 있음. 운영체제나 사용자가 언제든지 앱 구성요소를 제거 가능. 애플리케이션 데이터나 상태를 저장 ❌ 서로 종속 ❌ Activity 및 Fragment 구현은 소유 대상이 아니며 Android OS와 앱 사이의 계약을 나타내도록 이어주는 클래스 OS는 사용자 상호작용을 기반으로 또는 메모리 부족과 같은 시스템 조건으로 인해 언제든지 클래스를 제거 가능 권장 앱 아키텍처 UI 레이어 : 화면에 애플리케이션 데이터를 표시 데이터 레이어 : 앱의 비즈니스 로직을 포함하고 애플리케이션 데이터를 노출 UI와 데이터 레이어..

Android/학습 2022.09.18