안드로이드
-
[Android] Clean Architecture란안드로이드 2022. 5. 30. 18:27
Clean Architecture 란?🤷🏻♂️ Uncle Bob인 로버트 C. 마틴의 Clean Architecture에서 시작. 소스 코드만 보고 소프트웨어가 수행하는 작업이 무엇인지 식별할 수 있어야 하는 소프트웨어 개발 방법론입니다. 프로그램의 목표를 달성하는 데 필요한 프로그래밍 언어, 하드웨어 및 소프트웨어 라이브러리는 구식이어야 합니다. Clean Architecture 장점 코드는 표준 MVVM 보다 테스트하기 쉽다. 완벽하게 선별된 분리 사용자 친화적인 패키지 구조 프로젝트를 계속 실행하기 쉽다. 새로운 기능을 추가하기 용이하다. Clean Architecture 단점 러닝 커브가 가파르다. 많은 추가 클래스가 포함되므로 정교함이 낮은 소프트웨어에는 적합하지 않다. Clean Archit..
-
[Android] RecyclerView 사용법안드로이드 2022. 3. 5. 21:17
RecyclerView란 Android에서 List형태로 구성하고 싶을 때 사용하는 View입니다. 기존의 ListView는 커스텀하기에는 구조적인 문제로 많은 제약이 따랐으며, 구조적인 문제로 인해 성능 문제가 있었습니다. ViewHolder 패턴을 활용해 View를 재활용해 사용할 수 있어 메모리 관리에 매우 효율적입니다. 🔥 RecyclerView의 재활용성♻️ ListView와는 다르게 RecyclerView는 사용자가 스크롤 할 때마다 맨 위에 위치한 뷰 객체를 삭제하지 않고 아래쪽에서 새로 나타날 파란색 뷰 위치로 객체를 이동시킵니다. 즉 뷰 객체 자체를 재사용하는 것인데, 중요한 점은 뷰 객체를 재사용할 뿐이지 뷰 객체가 담고 있는 데이터는 새로 갱신되는 것이므로 효율적입니다. 주요 클래스👀..
-
[Android]Glide 라이브러리를 통해 이미지 Load하기안드로이드 2022. 2. 11. 12:37
안드로이드 개발을 할 때 이미지를 띄우고자 할때, 여러 방법이 있습니다. 1. 안드로이드 프로젝트의 drawable폴더의 리소스를 보여주는 경우 2. 안드로이드 디바이스 안에 저장되어있는 사진(갤러리 등)을 보여주는 경우 3. 이미지 URL을 로드해서 보여주고자 하는 경우 Glide란‼️ Glide는 위와 같은 3가지 방법들을 안드로이드에서 이미지를 빠르고 효율적으로 불러올 수 있게 도와주는 라이브러리입니다. 이미지, GIF,비디오 스틸의 로딩과 디코딩, 캐싱 등의 다양한 API를 사용할 수 있습니다. 기본적으로 커스텀하게 만들어진 HttpUrlConnection 기반이지만, Volley나 okHttp 라이브러리를 사용할 수 있는 플러그인도 지원합니다. Glide 사용 방법 1. build.gradle(..
-
[Android] Fragment LifeCycle안드로이드 2022. 1. 12. 14:29
Fragment란? Fragment는 앱 UI의 재사용 가능한 부분을 나타냅니다. Fragment는 자체 Layout을 정의 및 관리하고 자체 생명주기를 가지며 자체 입력 이벤트를 처리할 수 있습니다. Fragment는 단독으로 존재할 수 없으며 Activity 또는 다른 Fragment에서 호스팅 해야 합니다. Fragment의 View 계층은 호스트의 View 계층의 일부가 되거나 연결됩니다. Fragment LifeCycle Fragment 인스턴스에는 고유한 수명 주기가 있습니다. 사용자가 앱을 탐색하고 상호작용할 때 프래그먼트는 추가, 제거, 화면 진입 또는 종료에 따라 수명 주기의 다양한 상태로 전환됩니다. 수명 주기를 관리하기 위해 Fragment는 LifecycleOwner를 구현하여 ge..
-
[Android] Activity Life Cycle안드로이드 2022. 1. 11. 15:00
Activity Life Cycle이란? 사용자가 앱을 탐색하고 앱에서 나왔다가 다시 돌아올 대 앱의 Activity 인스턴스는 생명 주기의 다양한 상태로 전환됩니다. Activity 클래스는 Activity 상태가 변경되었음을 알 수 있도록 하는 여러 가지 콜백 함수들을 제공합니다. 즉 시스템이 Activity를 생성, 중지 또는 재개하거나 Activity가 있는 프로세스를 파괴하고 있다는 것입니다. Activity 클래스가 제공하는 CallBack 함수들 onCreate() onStart() onResume() onPause() onStop() onDestroy() onCreate() 시스템이 처음 활동을 생성할 때 실행되는 콜백 함수입니다. Activity 생성 시 Activity는 onCreate..
-
[Android] API Key값 관리안드로이드 2022. 1. 4. 23:38
안드로이드에서 특정 API를 사용하려고 할 때 API Key값을 가지고 통신을 하게 됩니다. 이때 API Key값을 코드 내부에 작성을 해야 하는데 Git Hub에 해당 코드를 Push 하여 누구나 접근 가능하게 된다면 난처해질 수 있습니다. 이를 보완하기 위한 방법이 바로 local.properties에 Key값을 작성하는 것입니다. 1. gitignore 파일 작성 local.properties에 Key값을 저장할텐데 해당 파일이 Git에 commit 되는 것을 사전에 막는다. 그 이후에 /build 경로도 막는다. 해당 경로에는 BuildConfig라는 파일이 존재하는데, 여기에 API Key를 변수로 저장하기 때문에 이 파일 또한 commit 되면 안 된다. //.gitignore local.pr..
-
[Android] 안드로이드 4대 컴포넌트안드로이드 2022. 1. 3. 16:31
안드로이드 앱에 있어 컴포넌트는 필수적인 기본 요소입니다. 각 구성 요소는 시스템이나 사용자가 앱에 들어올 수 있는 진입점입니다. 다른 구성 요소에 종속되는 구성 요소도 있습니다. 각 유형은 뚜렷한 목적을 수행하고 각자 나름의 생명주기가 있어 구성요소의 생성 및 소멸 방식을 정의합니다. 안드로이드 앱의 4대 컴포넌트 1. Activity Activity는 사용자와 상호작용하기 위한 진입점으로 하나의 사용자 인터페이스 화면을 가지며 특정 작업을 수행하는 컴포넌트입니다. 안드로이드 앱은 반드시 하나의 Activity를 포함하고 있어야 합니다. Activity는 생명주기(Life Cycle)를 가지며, 생명주기를 통해 원하는 기능을 구현합니다. Intent를 통해 다른 앱의 Activity를 호출할 수도 있습..
-
[Android] 안드로이드 View Binding(뷰바인딩)안드로이드 2021. 12. 22. 19:52
View Binding(뷰 바인딩)이란..? 뷰 바인딩은 뷰와 상호 작용하는 코드를 보다 쉽게 작성할 수 있는 기능입니다. 모듈에서 뷰 바인딩이 활성화되면 해당 모듈에 있는 각 XML 레이아웃 파일에 대한 바인딩 클래스를 생성합니다. 바인딩 클래스의 인스턴스에는 해당 레이아웃에 ID가 있는 모든 보기에 대한 직접 참조가 포함되어 있습니다. 뷰 바인딩은 Android Studio 3.6 Canary 11 이상에서만 사용할 수 있습니다. findViewById와의 차이점 Null Safety: View Binding은 뷰의 직접 참조를 생성하므로 유효하지 않은 뷰 ID로 인해 null 포인터 예외가 발생할 위험이 없습니다. 또한 레이아웃의 일부 구성에만 뷰가 있는 경우 결합 클래스에서 참조를 포함하는 필..