오늘은 안드로이드 프로젝트 구성에 대해서 알아보자. 프로젝트의 폴더 구성 처음에 안드로이드 프로젝트를 생성하게 되면 많은 폴더와 파일이 생성이 된다. 근데 사실 프로젝트 폴더에서 [모듈명 -> src -> main]이 가장 중요하다. 안드로이드 스튜디오 프로젝트 탐색착에서는 이렇게 보여준다. 프로젝트를 생성하게 되면 app이라는 모듈이 자동으로 생성된다. 모듈하나다가 앱 하나이며 프로젝트는 여러 모듈을 묶어서 관리하는 개념이다. 하나의 프로젝트에는 자동으로 만들어지는 app모듈이외에 여러 모듈을 추가할 수 있다. 모듈의 폴더 구성 모듈을 구성하는 폴더와 파일 간단 정리 이름 설명 build.gradle 빌드 설정 파일 AndroidManifest.xml 앱의 메인 환경 파일 res 리소스 폴더 activ..
안드로이드란 무엇인가에 대해서는 지난 포스팅에 정리해두었다. https://superohinsung.tistory.com/72 [Android] Android 란? Android란? 안드로이드는 구글에서 만든 스마트폰용 운영체제입니다. 운영체제와 미들웨어, 사용자 인터페이스, 어플리케이션, MMS 서비스 등을 하나로 묶어 서비스를 제공하며 다양한 어플리케이 superohinsung.tistory.com 오늘은 이러한 안드로이드 앱 개발의 주요 특징들에 대해서 정리해보자. 컴포넌트를 기반으로 한 개발 안드로이드 개발의 핵심은 컴포넌트(Component)이다. 그렇기에 안드로이드 앱 개발의 구조를 이해하려면 컴포넌트가 무엇이고 어떻게 동작하는지 반드시 알아야한다. 컴포넌트를 한마디로 정리하자면, 애플리케이션..
ConstraintLayout이란 ConstraintLayout은 부모 뷰그룹 안의 다른 요소들과의 상대적인 제약조건을 설정함으로써 화면에 배치되도록 하는 레이아웃을 말합니다. 기존의 레이아웃(Linear, Relative 등등)에 비해 레이아웃이 중첩하지 않도록 복잡한 레이아웃을 만들 수 있습니다. 또한 안드로이드 스튜디오의 레이아웃 에디터로 만들기 편하고, 성능이 다른 레이아웃에 비해 우수합니다. ConstraintLayout을 쓰는 것이 복잡한 View를 성능 저하 없이 만들 수 있는 방법으로 권장되었는데, Compose에서는 굳이 그럴 필요가 없어서 (Compose자체가 성능이 우수하기 때문에) 코드의 가독성이 아닌 이상은 굳이 권장하지 않는다고 한다. 근데 XML에서는 굳이 상관없으니 Const..
Android에서 View, ViewGroup, XML Layout은 사용자 인터페이스(Ui)를 설계하고 구성하는데 사용되는 중요한 개념과 구성 요소이다. 오늘은 이러한 것들에 대해서 정리를 해보자. View 란? View는 Android 애플리케이션에서 사용자 인터페이스의 기본 구성 요소이다. 버튼, 텍스트상자, 이미지, 체크박스와 같은 사용자가 보는 Ui 요소는 모두 View의 하위 클래스이다. View는 사용자 입력을 처리하고 화면에 그래픽 요소를 그릴 수 있다! View 객체를 일반적으로 위젯 이라고 부르며, 위에서도 언급했듯 Button 또는 TextView와 같은 여러 서브 클래스 중 하나 일 수 있다. ViewGroup 이란? ViewGroup을 일반적으로는 레이아웃 이라고 부르며, Line..
안드로이드에서 이미지 로드 라이브러리란 Glide 외에 Coil, Picasso, Presco도 있지만 오늘은 Glide만 알아보자. Glide란? Glide란 Android에서 많이 사용하는 이미지 로드 라이브러리이다. 안드로이드 앱에서 이미지 로딩 및 디스플레이를 쉽게 처리 할 수 있게 도와주는 오픈 소스 라이브러리이다. 이미지 로딩은 안드로이드 앱 개발에서 자주 사용되는 작업 중 하나이며, 대량의 이미지를 효율적으로 로드하고 캐싱하여 앱 성능을 최적화하는 것이 중요한데, Glide는 이러한 작업들을 쉽게 처리할 수 있도록 도와준다. 공식페이지: https://bumptech.github.io/glide/ 공식깃허브: https://github.com/bumptech/glide Glide를 사용해보자..
Retrofit이란 Retrofit은 안드로이드 앱에서 RESTful API와 통신할 때 사용되는 라이브러리 중 하나입니다. Retrofit은 Square Inc.에서 개발된 오픈 소스 라이브러리로, 안드로이드 앱 개발을 위한 RESTful API 호출을 간편하게 처리할 수 있습니다. Retrofit은 앱에서 서버로 HTTP 요청을 보내고, 응답을 처리하며, JSON으로 직렬화하는 작업들을 자동화합니다. 또한, Retrofit은 OkHttp 라이브러리를 기본 HTTP 클라이언트로 사용하므로, 높은 성능과 안정성을 보장합니다. Retrofit은 앱에서 API를 호출할 때 필요한 여러 기능을 제공합니다. 예를 들어, Retrofit은 API URL 및 요청 파라미터를 구성하고, 요청 본문을 구성하고, API..
MVI 패턴이란 Android MVI 패턴은 Model-View-Intent의 약자로, 안드로이드 앱 개발에서 사용되는 아키텍처 패턴 중 하나입니다. MVI 패턴은 기존의 MVP, MVVM 등 다른 패턴과는 다르게 데이터 흐름이 단방향으로만 흐르는 것이 특징입니다. 뷰에서 인텐트를 발생시켜 모델에 전달하고, 모델에서 처리한 결과를 다시 뷰로 전달하는 방식으로 동작합니다. MVI 패턴에서는 상태를 중심으로 구성됩니다. 앱의 상태를 변경하는 인텐트는 불변의 데이터 구조로 구현되며, 상태 변화를 처리하는 모델 역시 불변의 데이터 구조로 구현됩니다. 뷰는 상태를 표시하기 위해 불변의 데이터 구조를 이용합니다. 이러한 구조는 다양한 이점을 가지고 있습니다. 불변의 데이터 구조를 사용하므로 코드의 안정성이 높아지고..
의존성 주입이란? 안드로이드에서 의존성 주입(Dependency Injection)은 객체 지향 프로그래밍(OOP)에서 사용되는 디자인 패턴 중 하나입니다. 의존성 주입은 객체가 필요로 하는 다른 객체를 직접 생성하는 대신에, 이를 외부에서 전달받는 방식으로 구현됩니다. 이는 객체 간의 결합도(Coupling)를 낮추고, 유지보수와 테스트 용이성을 증가시키는 데 도움이 됩니다. 안드로이드 앱에서 의존성 주입을 사용하면, 앱의 여러 컴포넌트(Activity, Fragment, Service, ViewModel 등)에서 공통적으로 사용되는 객체(예: 데이터베이스, 네트워크 등)를 한 곳에서 관리하고, 이를 각각의 컴포넌트에서 사용할 수 있습니다. 이를 통해 코드의 중복을 줄이고, 유지보수와 테스트 용이성을 ..