본문 바로가기

ANDROID

(7)
Hilt를 이용한 안드로이드 의존성(DI) 주입 의존성 주입이란? (Dependency Injection)  - 생성자 또는 메서드 등을 통해 외부로부터 생성된 객체를 전달받는것 특징  (1) 클래스간 결합도를 느슨하게 함  (2) 인터페이스 기반으로 설계되며, 코드를 유연하게 한다.  (3) Stub 또는 Mock 객체를 사요하여 단위 테스트를 하기가 더욱 쉬워진다.1. 의존성 주입이 없는 코드class MemoRepository { private val db = SQLiteDatabase() fun load (id:String) {...}}fun main() { val repository = MemoRepository() repository.load("8092")}2. 의존성을 외부로부터 주입 받음class MemoRepository (priva..
Android UI - Animation (Transition) 1. SharedElements   - Activity 혹은 Fragment 간에 화면이 전환 할때,     콘텐츠가 이어지는 것을 볼수가 있다.     (ex : 프로필 사진을 확대해서 보거나, 이미지 목록형 화면에서 사용하기에 적합하다.)(1) 전달 하는쪽 kt (어트리뷰트 선언 하는것을 권장) (리스트) //ProfileAcitivity.ktval intnet = Intent(this, ViewerActivity::class.java)intent.putExtra("resId", resId)ActivityCompat.startActivity( this, intent, ActivityOptionsCompat.makeSceneTransitionAnimation(this, view, view.t..
Android UI - Animation (Button) 1. AnimatedStatusListDrawable    - View 상태에 따라 Drawable을 보여줄때,      각 상태 사이에 Animation 을 보여줄수 있다.     ex) BottomNavigationView, TabLayout 처럼 selected 상태를 지원하거나 좋아요 버튼 눌렀을때 사용 가능(1) 여러개의 사진을 이어 붙여서 하나의 애니메이션으로 만든다. (drawable 제작) ... (2) 해당 내용 적용 (3) 적용2. AnimatedVertorDrawable- Frame Animation을 사용하는 대신VertorDrawable에 Animation을 구현 할 수 도 있다. -처음에 스킬 다운를 한후 작은 크기로 설정했다가 일정 각도로 회전후 다시 스케일..
Android UI - Animation (Loading) 1. 이미지 안에 있고 뒤에 프로그레스바가 감싸져 있는 애니메이션   - 하지만 컨텐츠가 표시되기 전에 항상 로딩 UI가 보이면 조금 과한 느낌을 줄수가 있다.   - ContentLoadingProgressBar는 컨텐츠를 불러오는 속도가 느릴때만 로딩 UI를 보여준다 (ex : API 응답이 느린경우)(1) drawable 제작 (2) 프로그레스바- 500ms 이내에 불러오면 로딩 UI를 보여주지 않고   한번 보여진 UI는 최소 500ms동안 보여준다.public class ContentLoadingProgressBar extends ProgressBar { private static final int MIN_SHOW_TIME = 500; private sta..
ViewModel + LiveData + DataBinding 을 적용 해보자 일반적으로 같은 화면 에서 데이터 및 UI를 변경하고 사진과 같이 효과를 주면 UI 값의 초기화가 되어 있는것을 확인 할수 있다. 해당 내용의 UI를 지속적으로 반영할수 있게 진행 할려 한다. 먼저 DataBinding 으로 코드를 간략하게 하고 LiveData 와 ViewModel를 이용해 데이터를 유지 할려한다. 1. Gradle 셋팅 (DataBinding) android { dataBinding { enabled = true } } 2. layout 셋팅 (DataBinding) 일반 레이아웃과 다르게 DataBinding 을 사용하기 위해 layout 태그를 을 취상위로 감싸고 그 밑에 data 태그를 추가한다. 3. java 셋팅 (DataBinding) - 적용전 public class Ma..
간단하게 RecyclerView 를 달아보자 해당예제는 Kotlin 으로 작성 하였으며 정말 간단한 내용만 추가하여 구성 하였다. 1. Data 클래스 추가 (Data.kt) class Data (val title:String, val content:String, imgUrl:String) { } 2. item XML 생성 (recyclerview_item.xml) 3. Adapter 클래스 생성 (ListAdapter.kt) package com.example.recylcerviewproject.adapters import android.content.Context import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import andro..
Retrofit2 + Okhtttp3 를 이용하여 데이터를 달아보자 기존에 aQuery 라는 라이브러리를 이용하여 통신을 했었는데 많이 사용들하는 Retrofit를 이용한 데이터 가져오기를 구현 할라한다. --------------------------------------------------------------------------------------------------- 1.의존성 등록 1 2 3 4 5 implementation 'com.squareup.retrofit2:retrofit:2.5.0' implementation 'com.squareup.retrofit2:converter-gson:2.5.0' implementation 'com.squareup.retrofit2:adapter-rxjava2:2.5.0' implementation 'com.squa..