본문 바로가기

Android/꼭 공부해야 할 라이브러리

(8)
Koin을 통해 의존성 주입하기 0. 의존성 주입에 대해서 1) 의존성(Dependency)이란? 현재 객체가 다른 객체와 상호작용을 하고 있다면 현재 객체는 다른 객체에 의존성을 가진다고 합니다. 의존성이 높은 경우, 하나의 모듈이 바뀌면 의존하고 있던 다른 모듈까지 변경되어야 합니다. 또한 두 객체 사이에 의존성이 존재한다면 단위 테스트를 하기 어려워집니다. 따라서 이를 해결하기 위해 의존성 주입 개념을 도입할 수 있습니다. 2) 의존성 주입(Dependency Injection)이란? 내부에서 객체를 생성하는 것이 아니라, 외부에서 객체를 생성하여 의존성을 주입해주는 것입니다. a. 장점 코드의 재사용성을 향상시키고, 더 간결하게 코드를 작성할 수 있습니다. 또한 객체의 생성과 사용을 분리시켜 종속된 코드를 줄여줍니다. 이를 통해..
Glide 를 사용해서 이미지 설정하기 안녕하세요? 닉네임간편입니다. 이번 시간에는 Glide(글라이드)에 대해서 다루어보겠습니다. 1. 개요 Glide(글라이드)는 안드로이드에서 이미지를 빠르고 효율적으로 불러올 수 있게 도와주는 라이브러리입니다. 구글은 Glide 라이브러리르 사용하여 앱에서 비트맵을 가져오고, 디코딩하고 표시하는 것을 추천하고 있습니다. 따라서 이 라이브러리를 사용하는 것은 중요하다고 할 수 있습니다. 2. 사용법 - 준비 먼저 build.gradle 파일의 dependencies에 아래와 같은 요소를 추가합니다. def glide_version = "4.12.0" implementation 'com.github.bumptech.glide:glide:$glide_version' annotationProcessor 'com..
예제로 알아보는 ExoPlayer 안녕하세요? 닉네임간편입니다. 이번 시간에는 ExoPlayer에 대해서 알아보겠습니다. 1. 개요 오디오 및 동영상 재생에 사용되는 오픈소스 프로젝트이며, 유튜브와 구글 무비 앱 등에서 사용될 정도로 유용하게 쓰입니다. ExoPlayer는 MediaPlayer에서 지원하지 않는 DASH, SmoothStreaming 및 일반 암호화 같은 기능을 지원하며, 맞춤 설정 및 확장이 용이합니다. 2. 사용법 - 준비 1) 빌드 종속 항목 추가 build.gradle(app) 파일의 dependencies에 아래 코드를 입력합니다. def exoplayer_version = "2.15.0" implementation 'com.google.android.exoplayer:exoplayer:$exoplayer_ver..
예제로 알아보는 DiffUtil - RecyclerView 성능을 향상하자! 안녕하세요? 닉네임간편입니다. 이번 시간에는 DiffUtil에 대해서 알아보겠습니다. 1. 개요 DiffUtil은 안드로이드 어댑터에서 현재 데이터 리스트와 교체될 데이터 리스트를 비교하여 무엇이 바뀌었는지 알아내는 클래스입니다. 이를 통해 기존 데이터 리스트에서 아이템에 수정이 생겼을 때 전체 리스트를 갱신하는 게 아니라 바뀐 아이템에 대해서만 데이터를 바꿔주고, 이를 통해 빠르고 효율적으로 데이터 갱신을 할 수 있습니다. 2. 만드는 법 DiffUtil을 사용하기 위해선 DiffUtil.IteamCallback과 ListAdapter가 필요합니다. 이전에는 DiffUtil.Callback, AsyncListDiffer 등이 필요했지만 이제는 ListAdapter라는 최강의 무기가 나왔기 때문에 위 두..
Room 을 사용해 데이터를 관리하자! with 사용법과 예제 안녕하세요? 닉네임간편입니다. 이번 시간에는 Room 라이브러리를 사용하겠습니다. 1. 개요 ORM은 객체와 관계형 데이터베이스의 데이터를 매핑하고 변환하는 기술로 복잡한 쿼리를 잘 몰라도 코드만으로 데이터베이스의 모든 것을 컨트롤할 수 있도록 도와줍니다. 안드로이드는 SQLite를 코드 관점에서 접근할 수 있도록 ORM 라이브러리인 Room을 제공합니다. 안드로이드 스튜디오는 SQLite보다 Room을 사용하는 것을 굉장히 권장하기 때문에, 저도 Room을 자주 사용합니다. 2. 준비 Room 라이브러리를 사용하기 전 준비가 필요합니다. 1) build.gradle(app) 파일에 아래 플러그인을 추가합니다. plugins{ id 'com.android.application' id 'kotlin-and..
[웹에서 데이터 가져오기] 3. GSON 1. 개요 앞서 JSON 포맷의 데이터를 다루었습니다. 그러나 해당 데이터는 그대로 사용하기엔 무리가 있습니다. 이때 GSON 라이브러리를 사용하면 JSON 객체를 직렬화 및 역직렬화할 수 있으며, 이를 통해 데이터를 처리할 수 있습니다. GSON 라이브러리는 JSON 문자열을 객체로 변환할 수 있도록 해줍니다. 2. 사용법 1) 라이브러리 추가 먼저 build.gradle의 dependencies 내부에 GSON 라이브러리를 추가해야 합니다. implementation 'com.google.code.gson:gson:2.8.6' 또한 인터넷을 사용하기 때문에 매니페스트 파일에 다음과 같이 코드를 추가합니다.
[웹에서 데이터 가져오기] 2. Volley 1. 개요 Volley는 안드로이드 앱에서 네트워킹을 더 쉽고 더 빠르게 하는 HTTP 라이브러리입니다. 이 라이브러리는 웹 요청과 응답을 단순화해줍니다. 2. 사용법 먼저 Request 객체를 만들고, 이 객체를 RequestQueue에 넣어줍니다. 그러면 RequestQueue가 알아서 스레드를 생성하여 서버에 요청하고 응답을 받아줍니다. 응답이 오면 RequestQueue에서 Request에 등록된 ResponseListener로 응답을 전달해줍니다. 또한 만일 응답을 받았을 때 처리할 메서드를 만들었다면 응답이 왔을 때 그 메서드가 자동으로 호출됩니다. 따라서 사용자는 별도의 스레드 관리뿐 아니라 UI 접근을 위한 Handler를 다룰 필요도 없습니다. 3. 예시 아래 코드를 통해 자세한 사용법을..
[웹에서 데이터 가져오기] 1. JSON 1. 개요 자바스크립트 객체 문법으로 구조화된 데이터를 표현하기 위한 문자 기반의 표준 포맷입니다. 웹에서 데이터를 전송할 때 일반적으로 사용합니다. JSON 포맷의 데이터는 기본적으로 다음과 같이 표현됩니다. 1) 객체는 중괄호 {}로 표기합니다. 2) 배열은 대괄호 []로 표기합니다. 3) 각 변수는 변수 이름과 변수의 값으로 구성되어 있으며, 콜론 : 로 구분합니다. 4) 속성이 여러 개인 경우 쉼표 , 로 구분합니다. 2. 예시 아래 텍스트는 영화진흥위원회의 API 서비스를 사용해 영화 정보를 조회한 결과입니다. 이 데이터를 통해서 설명드리겠습니다. // 1) TopMovieList { "movieListResult" : { // 2) movieListResult "totCnt":2,"source..

728x90
반응형