본문 바로가기

Android

(7)
앱 아키텍처 - 2 [3가지 레이어] 앱 아키텍처 - 관심사 분리 앱 아키텍처 - 1 아키텍처 원칙 앱 아키텍처는 앱의 부분과 그 각 부분에 필요한 기능 간의 경계를 정의 앱의 견고성을 높이며 앱을 쉽게 테스트할 수 있도록 하려면 몇 가지 특정 원칙을 준수하도록 앱 아키텍 dev-jewon.tistory.com 이전 글에서는 관심사의 분리 원칙에 대해 다루었다. 안드로이드 앱 아키텍쳐에는 3가지 레이어가 존재하며 이들은 각각의 '책임'을 명확히 가지고 있다. 3가지 레이어 UI Layer (사용자 인터페이스 레이어) 사용자의 입력을 받고, 출력을 제공합니다. 사용자 경험(UX)과 직접적으로 관련이 있습니다. Domain Layer (도메인 레이어): 비즈니스 로직을 처리합니다. 앱의 핵심 기능을 정의하고 관리합니다. Data Layer (데..
앱 아키텍처 - 1 [관심사 분리] 아키텍처 원칙 앱 아키텍처는 앱의 부분과 그 각 부분에 필요한 기능 간의 경계를 정의 앱의 견고성을 높이며 앱을 쉽게 테스트할 수 있도록 하려면 몇 가지 특정 원칙을 준수하도록 앱 아키텍처를 설계 해야 함 관심사 분리 Activity 또는 Fragement에 모든 코드를 작성하는 실수는 흔히 발생한다. UI 기반 클래스는 UI 및 운영체제 상호작용을 처리하는 로직만 포함 해야 함 UI 클래스의 경우 최대한 가볍게 유지해야 하는데, 그 이유는 라이프 사이클과 관련된 많은 문제를 피해야하기 때문이다. Activity 및 Fragment 구현은 소유 대상이 아니다 Android OS와 앱 사이를 이어주는 클래스일 뿐 OS는 사용자 상호작용을 기반으로 또는 메모리 부족과 같은 시스템 조건으로 인해 언제든지 제거..
Android Studio 에서 Hilt 의 소비 표시가 안나타는 경우 상의 예제 코드를 보면 provideApiService 함수의 경우 Retrofit을 매개 변수로 사용하는데 스튜디오에 코드 뷰어의 좌측 끝에 어디서 제공을 하는지 표시가 된다. 하지만 provideRetrofit 함수에서는 OkhttpClient을 매개 변수로 사용하는데 스튜디오에서는 어디서 제공하는지 표기가 되지 않는다. 이유는 간단하다. 함수의 리턴 값을 주지 않을 경우 스튜디오에서 어디서 제공 하는지 표시를 하지 않는다. 그래서 하기 이미지와 같이 리턴값을 지정해 준다면 표기가 된다.
디자인 패턴] MVVM 프로그램 로직과 사용자 인터페이스 컨트롤을 분리하도록 구성된 소프트웨어 디자인 패턴 이 아키텍처 패턴은 비즈니스 로직과 사용자 인터페이스 로직 간의 명확한 분리하여 애플리케이션을 설계하고 구현하는 데 특히 유용 M ( model ) 애플리케이션의 데이터 및 비즈니스 로직을 나타냄 본질적으로 응용 프로그램의 원시 정보를 담당 V ( view ) 이 구성 요소는 사용자가 화면에서 보는 것의 구조, 레이아웃 및 모양을 정의하는 역할 이상적으로 보기는 순전히 선언적입니다. 즉, UI의 구조와 모양을 제공하지만 표시할 정보나 사용자 작업에 반응하는 방법은 결정하지 않음 VM (view model) Model과 View 사이의 중개자 역할을 함. ViewModel은 Model에서 데이터를 가져와서 View에서 사용..
안드로이드 앱 성능 최적화 안드로이드 앱의 성능을 최적화하려면 다양한 방법과 기술이 필요합니다. 제가 생각하는 대표적인 몇 가지 주요 사항을 나열하겠습니다 UI 최적화 부드러운 UI 동작을 위해 메인 스레드에서 오래 걸리는 작업을 배제하고, 뷰 계층 구조를 최소화하며, 오버드로우를 줄입니다. 또한, 이미지를 알맞은 해상도에 맞게 리사이징하고, 리소스를 압축합니다. 메모리 관리 메모리 누수를 방지하기 위해 객체 참조를 적절히 관리합니다. 비트맵 메모리 사용을 최적화하고, 캐싱을 사용하여 메모리 사용량을 줄입니다. 데이터베이스 최적화 데이터베이스 작업을 백그라운드 스레드에서 수행하고, 쿼리 성능을 개선하기 위해 인덱싱을 사용합니다. 또한, 쿼리 결과를 캐시하고 필요할 때만 데이터베이스에 액세스합니다. 네트워크 최적화 사용자 경험을 개..
다양한 디바이스 지원의 양날의 검: 안드로이드 운영체제의 도전과 한계 다양한 장치를 지원하면 Android 운영 체제에 몇 가지 단점이 있습니다. 조각화 하드웨어 사양, 화면 크기 및 해상도가 서로 다른 다양한 장치로 인해 앱 개발자는 모든 장치에서 원활하게 작동하는 앱을 만드는 데 어려움을 겪습니다. 이러한 조각화로 인해 앱이 특정 장치에 최적화되지 않거나 구형 하드웨어에서 제대로 작동하지 않을 수 있습니다. 일관성 없는 업데이트 업데이트가 중앙에서 제어되는 다른 플랫폼과 달리 Android 업데이트는 기기 제조업체 및 이동통신사에 의존하는 경우가 많습니다. 이로 인해 지연, 일관되지 않은 업데이트 또는 특정 장치에 대한 업데이트가 전혀 없을 수 있으며, 이로 인해 사용자는 오래된 소프트웨어를 사용하고 보안 취약성에 노출될 수 있습니다. 품질 관리 Android는 다양한..
Android 란? Android 운영 체제는 Google에서 개발한 모바일 운영 체제입니다. 주로 스마트폰 및 태블릿과 같은 터치스크린 장치용으로 설계되었습니다. Android는 수정된 버전의 Linux 커널 및 기타 오픈 소스 소프트웨어를 기반으로 하므로 개발자가 응용 프로그램을 만들고 다양한 장치에 맞게 시스템을 사용자 지정할 수 있습니다. Android는 사용자 친화적인 인터페이스, 광범위한 앱 생태계 및 다양한 제조업체의 수많은 장치와의 호환성 덕분에 전 세계적으로 가장 인기 있는 운영 체제 중 하나가 되었습니다. 운영 체제는 Google에서 정기적으로 업데이트하며 새 버전마다 일반적으로 성능 개선, 보안 강화 및 새로운 기능을 제공합니다.