[Android] Kotlin 활용 앱 개발(11)
-
Android - RecyclerView
# 개념- 안드로이드 앱에서 리스트 형태의 데이터를 표시하는 데 사용되는 위젯- 여러 아이템을 스크롤 가능한 리스트로 표시- 한 화면을 재활용하여 여러 번 사용, 여러 아이템을 효율적으로 관리하고 표시 가능 # ListView와의 차이1) ListView- 스크롤 시 위에 있던 아이템은 삭제, 아래에 있는 아이템이 생성- 아이템이 많을수록 삭제와 생성을 반복하여 성능이 저하2) RecyclerView- 스크롤 시 위에 있던 아이템이 재활용되어 아래에서 재사용- 아이템이 100개 정도여도 스크롤에 따라 10개 정도만 반복해서 재사용 # RecyclerView 사용 준비물1) LayoutManager- RecyclerView 내부의 아이템들이 어떻게 배치될지 결정함- 기본 제공: LinearLayoutMan..
2024.07.16 -
[챌린지반] MVVM
# 개념- 사용자 인터페이스 개발을 위해 설계된 아키텍쳐 패턴- 프로그램의 비즈니스 로직과 UI 로직을 명확하게 분리하는 패턴- Model - View - ViewModel로 구성 # 구성 요소1. Model- 데이터를 다루는 부분 / 비즈니스 로직 포함- 데이터를 가져오고 저장하는 역할 수행- DB, 네트워크 요청, 데이터 소스와 상호작용 등 2. View- 레이아웃과 화면을 보여주는 역할, UI 담당- 사용자가 보는 화면을 표시, 사용자 입력을 처리 3. ViewModel- Model과 View 사이에서 중재자 역할 수행- View에서 발생하는 이벤트를 감지, 해당 이벤트에 맞는 비즈니스 로직을 Model에서 수행- Model과 상호작용해 데이터를 가져오거나 업데이트하고, 업데이트된 데이터를 View..
2024.07.16 -
뷰 바인딩(View Binding)
# 개념- 뷰와 상호작용하는 코드를 쉽게 작성 가능- 모듈에서 사용 설정된 뷰 바인딩은 모듈에 있는 각 xml 레이아웃 파일의 결합 클래스를 생성- 바인딩 클래스의 인스턴스에는 상응하는 레이아웃에 id가 있는 모든 뷰의 직접 참조가 포함됨- 대부분의 경우에 뷰 바인딩이 findViewById를 대체 # findViewById와의 차이점1) Null Safety(Null 안전성)- 앱이 레이아웃의 각 뷰를 직접 참조할 수 있게 해주는 안전한 코드를 자동으로 생성- 뷰를 사용할 때 null값으로 인식하는 오류, 즉 뷰가 아직 화면에 나타나지 않았는데 그 뷰를 사용하려고 할 때 생기는 문제를 예방2) Type Safety(타입 안전성)- xml 레이아웃 파일에서 정의된 뷰의 타입와 자동 생성된 바인딩 클래스의..
2024.07.09 -
Android - 액티비티 생명 주기
# 액티비티 생명 주기의 개념 # 액티비티의 수명- onCreate()와 onDestroy() 사이에 존재- onCreate(): 액티비티가 생성되어 레이아웃 설정 등을 수행- onDestroy(): 호출되는 시점에 사용하고 있는 리소스를 모두 해제하고 마감 # 액티비티 화면에서 눈에 보이게 되는 Visibility- onStart()와 onStop() 사이에 존재- 유저가 액티비티를 화면에서 보고 상호작용이 가능- onStop()이 호출되어 새 액티비티가 시작되면 기존의 액티비티는 Stop- 시스템은 액티비티의 전체 수명 내내 onStop()과 onStart()를 여러 번 호출 가능- 이때 액티비티는 유저에게 보였다가 숨겨짐을 반복 # 액티비티가 foreground에서 동작하는 구간- onResume(..
2024.06.20 -
Android - 인텐트(Intent)
# 인텐트의 개념- 개념: 일종의 메시지 객체로, 다른 앱 구성요소(액티비티, 서비스, 브로드캐스트 리시버)로 작업을 요청하는 기능 수행 # 인텐트의 유형1) 명시적 인텐트(Explicit Intent)- 특정한 컴포넌트를 직접적으로 호출- 인텐트 객체에 시작하고자 하는 구성 요소의 이름을 명확하게 설정하고 startActivity() 또는 startService() 메소드를 통해 해당 컴포넌트를 실행- 주로 앱 내부에서 다른 액티비티나 서비스를 시작할 때 사용(메인 액티비티에서 사용자 입력을 받아 세부 정보를 표시하는 새로운 액티비티를 띄울 때 등) 2) 암시적 인텐트(Implicit Intent)- 특정한 컴포넌트를 명시하지 않고, 수행하고자 하는 일반적인 작업을 인텐트 객체에 설정해 startAct..
2024.06.20 -
Android - 액티비티(Activity)
# 안드로이드 4대 컴포넌트1) 액티비티- 사용자가 직접 상호작용하는 화면- 사용자 UI 담당, 사용자 입력에 반응하는 이벤트 기반 프로그래밍 실현 2) 서비스- 백그라운드에서 오랜 시간 실행되어야 하는 작업(음악 재생, 파일 다운로드 등)- 사용자가 직접적으로 인지하지 못하는 백스테이지 작업 담당 3) 브로드캐스트 리시버- 안드로이드 시스템으로부터 발송되는 다양한 이벤트나 정보를 앱이 받을 수 있게 해주는 컴포넌트(배터리 부족 경고, 화면 꺼짐 등의 시스템 이벤트 처리)- 앱은 브로드캐스트 메시지를 구독하고 해당 이벤트가 발생했을 때 반응할 수 있음 4) 콘텐트 프로바이더- 앱 간의 데이터 공유 실현(연락처 어플이 다른 어플에 연락처 데이터를 제공하는 등)- 데이터를 저장/관리하는 일종의 DB 역할 #..
2024.06.20