AddView • 컨테이너 뷰에 자식 뷰들을 동적으로 넣는 방법. • 같은 틀(배치, 속성)에 내용물만 다른 형태 뷰들을 반복적으로 넣을 때 사용 ex) 리스트 • item_add_view16.xml - 아이템으로 쓸 뷰를 생성해준다. - 사진-이름-나이 형태의 아이템을 반복적으로 추가할 것이다. - 위의 형태를 만들기 위해 LinearLayout의 방향을 horizontal로 하여 생성 • activity_add_view_16.xml - 아이템들을 담을 컨테이너 뷰 생성 • AddView_16.kt package com.example.fastcampus import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import andr..
Library • 특정 기능을 모듈화하여 쉽게 가져와 쓸 수 있게 해놓은 것 • 외부에서 불러와서 사용한다. • 해당 라이브러리의 document를 참고하여 설치법, 사용법 등을 알고 사용하면 된다. • 라이브러리를 사용하기 위해선 파일을 직접 다운로드 받아서 사용할 수도 있고, Gradle을 통해 사용할 수도 있다. * 이미지 라이브러리 Glide를 사용 • Glide 깃허브 페이지 : https://github.com/bumptech/glide GitHub - bumptech/glide: An image loading and caching library for Android focused on smooth scrolling An image loading and caching library for An..
Resource • 리소스에 대한 기본적인 개념 : [📱Android/🔍UI] 13. Resource(리소스) [Android/UI] 13. Resource(리소스) Resource • 반복적으로 사용할 수 있는 자원 • res 폴더에 저장 - 사용 방법 : @리소스종류/리소스명 • 종류 - drawable, layout, mipmap, values... 1. drawable • 이미지 리소스 파일 - .jpg, .png, ... : 복잡한 이 apro-developer.tistory.com • 코틀린에서 리소스에 접근하는 방법 - resources - ContextCompat - ResourcesCompat -> 안드로이드 SDK 버전에 따라 되는 것이 있고 안 되는 것이 있다. package com...
동기 & 비동기 1. 동기 • 요청을 보낸 후 응답을 기다린다. • 기다리는 동안 다른 작업을 하지 않고, 응답이 오면 다시 작업을 시작한다. • 관리가 쉽다. • 요청한 작업을 하는 동안 아무 일도 하지 않고 기다려야할 때 사용한다. 2. 비동기 • 요청을 보낸 후 응답을 기다리는 동안에도 다른 작업을 계속 한다. • 흐름이 하나 더 생기는 것이므로 관리가 어렵다. • 작업 요청을 해놓고 사용자가 뒤로가기 버튼을 눌러서 작업을 취소하거나 했을 때의 대처가 필요하다. • 비동기 처리 방식을 잘 사용할 수 있도록 해주는 라이브러리가 있다. -> Coroutine (코루틴) • AsyncTask 클래스가 존재했지만 deprecated 되었다. -> 비동기를 이해하기 위해 우선 사용해보자. 3. AsyncTa..
Thread • 프로그램(앱)을 실행하는 흐름. • 우리가 오버라이드하여 정의한 onCreate, onResume 등의 생명주기들을 순서대로 실행하는 주체. • 쓰레드는 여러 작업을 동시에 하기 위해 언제든지 필요에 따라 추가되고 제거될 수 있다. - 하지만 프로그램을 실행시키는 하나의 쓰레드는 무조건 필요하다. -> Main Thread (메인 쓰레드) - 쓰레드의 추가, 제거는 다른 쓰레드에서 행해진다. - 둘 이상의 쓰레드가 동시에 작업을 수행하는 것을 Multi Thread(멀티 쓰레드)라고 한다. 1. Main Thread • 최초로 실행되며 무조건 실행된다. • 두 번째 쓰레드는 필연적으로 무조건 메인 쓰레드에서 생성된다. - 세 번째 쓰레드부터는 메인 쓰레드에서 생성될 수도, 다른 쓰레드에서..
Fragment • 앱 UI의 재사용 가능한 부분 • 여러 개의 프래그먼트를 하나의 액티비티에 결합하여 창이 여러 개인 UI를 빌드할 수 있다. • 하나의 fragment를 여러 액티비티에서 재사용할 수 있다. -> 즉, 액티비티의 모듈화된 구역이라고 생각하면 편하다. • Fragment는 자체적인 생명 주기를 갖는다. - 생명 주기는 호스트 액티비티의 생명 주기에 직접적으로 영향을 받는다. * 호스트 액티비티 : 해당 프래그먼트를 포함하는 액티비티 • Fragment는 자체 입력 이벤트를 수신한다. Fragment 생명 주기 1. Activity의 onCreate(savedInstanceState) • onAttach() - 프래그먼트가 액티비티와 연결되어 있는 경우 호출된다. - Activity가 전..
Bundle • 여러 가지 자료형의 값을 Map 형태로 저장하는 안드로이드 클래스 • Int, Double, Long, String 등의 간단한 자료형부터 List, Array, Serializable, Parcelable까지 다 저장할 수 있다. • 안드로이드에서 데이터를 전송할 때 Bundle에 담아 전송한다. - Intent를 이용하여 다른 앱-컴포넌트에 데이터를 전달할 때 (putExtras) - 액티비티의 상태를 저장 및 복구할 때 (savedInstanceState) * Serializable, Parcelable • Serializable : 객체를 바이트로 저장하는 자바의 인터페이스 • Parcelable : 오래 걸리는 Serializable의 단점을 보완하여 안드로이드에서 만든 인터페이..
Text Changed Listener • 안드로이드의 EditText 위젯을 사용할 경우, EditText에서 입력되거나 변경되는 텍스트를 Text Changed Listener를 통해 코틀린으로 받아올 수 있다. • 받아온 텍스트를 데이터로 활용할 수 있다. • 변경되는 텍스트를 실시간으로 확인하여 올바른 형식으로 텍스트를 입력했는지 등을 확인할 수 있다. * EditText 위젯을 다룬 게시글 : [📱Android/🔍UI] - 14. EditText [Android/UI] 14. EditText EditText • 사용자가 텍스트를 직접 입력할 수 있는 위젯 • 입력한 값을 저장하여 데이터로 사용할 수 있다. ex) Id, Password, 개인정보 등 • 속성 - text : 미리 내용을 채워넣을..