Programming/Android
[Android] DataBinding
DataBinding은 UI 요소와 데이터를 프로그램적 방식으로 연결하지 않고 선언적 형식으로 결합할 수 있도록 도와주는 Jetpack 라이브러리의 한 기능이다. 프로그램적 방식 vs 선언적 방식 프로그램적 방식 TextView에 문자열을 넣기 위해 코틀린 코드상에서 값을 집어넣는다. // findViewById val textView = findViewById(R.id.textView) textView.text = "hello" // ViewBinding binding.textView.text = "hello" 선언적 방식 코틀린 코드에는 로직만을 위한 코드를 만기고 뷰와 관련된 작업은 레이아웃 파일(XML)에 정의한다. 즉 dataBinding은 데이터와 뷰를 연결하는 작업을 레이아웃(XML)파일에서..
![[Android] ViewPager](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZnn5M%2FbtrUyATf69U%2FKWde37o2E06ZO8OkKtk9D0%2Fimg.gif)
[Android] ViewPager
ViewPager는 좌우 스크롤을 통해 화면을 넘겨볼 수 있는 기능을 제공해준다. 부분 화면 여러 개를 변환하여 보여주기 때문에 Fragment를 사용하여 구현하며, 여러 개 중 하나를 선택하는 형태의 위젯이므로 리스트뷰와 같이 어댑터를 사용하여 데이터를 분배해 주어야 한다.
[Android] Retrofit2
Retrofit은 안드로이드와 서버간의 REST API 통신을 도와주는 라이브러리로, okHTTP에 기반을 두고 있다. 높은 성능과 가독성으로 현재 가장 인기가 많은 통신 라이브러리 중 하나이다. Retrofit의 장점 1. 높은 성능 HTTP 통신을 지원하는 다른 라이브러리들과 비교했을 때 높은 성능을 보여준다. 2. 뛰어난 가독성 Annotation으로 HTTP 메소드를 정의함으로서 코드의 구현이 쉬워지며 개발자들은 행위를 손쉽게 알아볼 수 있게 되어 직관적으로 코드를 설계할 수 있게 된다. 3. 쉬운 유지보수 Retrofit은 서버 연동 시 주로 주고받는 데이터인 JSON, XML을 자동을 파싱해주는 Converter 연동을 지원해주기 때문에 개발자 입장에서는 유지보수가 매우 편리하다. 사용법 1...
[Android] Glide
Glide는 안드로이드에서 이미지를 빠르고 효율적으로 불러올 수 있게 도와주는 라이브러리이다. ImageView로 이미지 리소스를 넣을때 src로 바로 넣을 수 있지만, 사이즈가 큰 이미지의 경우 OOM을 발생시키기도 해서 Glide를 사용하는 것이 좋다. Glide를 사용하면 이미지가 타일형식으로 로드되어 로드 도중 OOM 문제가 발생되지 않는다. 또한 이미지 로딩 속도가 빠른 장점도 있고 drawable의 이미지 리소스 뿐만 아니라, url의 이미지를 가져오거나 GIF 같은 움직이는 이미지도 넣을 수 있고 여러가지 기능도 있어 유용한 라이브러리이다. 사용법 1. gradle에 dependencies 추가 dependencies { implementation 'com.github.bumptech.gli..
[Android] ViewBinding
ViewBinding ViewBinding이란 findViewById를 대체하는 방식으로 findViewById 를 쓰지 않고, XML의 view component에 접근하는 object를 반환받아 view에 접근하는 방식이다. ViewBinding을 사용하는 이유 1. findViewById를 사용할 필요가 없다. 2. Type-Safe : 레이아웃 내에서 정확한 view type를 찾아 매핑해준다. 3. Null-safety : 레이아웃에 존재하지 않는 id를 findViewById 했을 때의 NullPointException을 방지할 수 있다. 4. findViewById보다 속도가 상대적으로 빠르다. 사용법 1. gradle 추가 android { ... viewBinding { enabled =..
[Android] RecyclerView
RecyclerView vs ListView RecyclerView는 ListView의 확장판으로 ListView 보다 향상된 성능을 제공하며, Adpater의 ViewHolder를 이용, RecyclerView 내의 View를 재활용하여 사용한다. ListView 는 사용자가 스크롤 할 때마다 위에 있던 뷰는 삭제되고, 맨 아래의 뷰는 생성되길 반복하여 cost가 매우 높아지게 되는 반면, RecyclerView에서는 아이템이 100000개를 넘어가더라도 화면에 보이는 정도의 View만 생성하고, 스크롤 할 때마다 삭제하지 않고 가장 아래의 아이템쪽으로 객체를 이동시켜 재사용하게 된다. RecyclerView는 상하 뿐만 아니라 좌우로도 스크롤이 가능하고(ListView에서는 불가능) 스크롤을 부드럽게..
[Android] SharedPreferences
안드로이드 앱 개발을 진행하다 보면 앱의 데이터들을 저장하여 관리해야 할 상황이 존재한다. 데이터의 양이 많거나 중요 데이터의 경우 서버나 DB에 저장해야겠지만, 간단한 설정 값이나 문자열 같은 데이터를 저장하기 위해 DB를 사용하기는 부담스럽기 때문에 SharedPreferences를 사용하는 것이 적합하다. SharedPreferences의 특징 보통 초기 설정값이나 자동 로그인 여부 등 간단한 값을 저장하기 위해 사용 Application에 파일 형태로 데이터를 저장한다. Application이 삭제되기 전까지 저장한 데이터가 보존된다. Key-value 방식 MODE의 종류 MODE_PRIVATE : 생성한 Application에서만 사용 가능하다. MODE_WORLD_READABLE : 외부 A..