뷰 모델 클래스를 사용할 때, 함께 사용할 수 있는 좋은 기능이 라이브 데이터입니다. 라이브 데이터는 관찰 가능한 데이터를 담아두는 클래스입니다. 쉽게 말해, 데이터를 지켜보고 있다가 변경이 되면, 화면을 다시 그려줄 수 있도록 도와줍니다. 먼저 라이브 데이터의 기본적인 구성을 알아 봅시다. 라이브 데이터의 객체를 만드는 방법은 다음과 같습니다. currentName 변수는 라이브 데이터를 식별하는 역할을 합니다. class NameViewModel : ViewModel() { val currentName: MutableLiveData by lazy { MutableLiveData() } ** 뷰 모델 클래스 내용 ** } 이제 액티비티에 정의된 함수 부분을 살펴 봅니다. nameObserver 부분이 ..
앱 제작 시 안드로이드 생명 주기에 따라 회전 처리가 이루어지면 앱의 데이터가 날라가 버리게됩니다. 이러한 부분을 방지하기 위해 뷰 모델 클래스를 사용됩니다. 뷰 모델을 사용하면, 화면 회전 같은 변경된 구성에서도 데이터를 계속 유지할 수 있습니다. 우선, 아래의 이미지를 먼저 확인해 봅시다. 액티비티 생명주기가 진행되는데, 회전이 이루어지면 onPause ~ onDestroy ~ onCreate 등과 같이 액티비티가 없어지고 재생산됩니다. 뷰 모델 클래스 안에 데이터가 구현되는 담게 되면, 구성이 변경되더라도 담고 있는 내용이 유지되고 onCleared가 호출됩니다. 그럼 뷰 모델 클래스의 기본 코드를 살펴 봅시다. 아래와 같이 ViewModel을 상속받아, 나만의 뷰 모델 클래스를 작성해주면 됩니다...
오늘은 안드로이드 Paint 클래스의 다양한 상수값인 Flag에 대해 알아보도록 하겠습니다. 여러 종류의 플래그 중에서 자주 사용되는 플래그만 모아봤습니다 :) 1. ANTI_ALIAS_FLAG 앤티앨리어싱을 활성화하는 페인트 플래그입니다. 앤티앨리어싱은 네모난 픽셀로 이루어진 곡선, 원형 등의 이미지가 매끄럽게 보이지 못하는 것을 부드럽게 해줍니다. 2. EMBEDDED_BITMAP_TEXT_FLAG 텍스트를 그릴 때 비트맵 글꼴을 사용할 수 있도록 하는 페인트 플래그입니다. 이 플래그를 비활성화하면, 텍스트 글꼴에 포함된 비트맵 스트라이크를 사용하지 못하게 됩니다. 따라서, 확장 가능한 윤곽선과 비트맵 스트라이크가 모두 있는 글꼴은 확장 가능한 윤곽선만 나타내고, 비트맵 스트라이크 글꼴은 표현할 수 ..
findViewById를 매번 사용하여 뷰를 가져오는 경우, 뷰가 여러 개인 경우 관리 포인트가 많아지고 코드가 복잡해질 수 있습니다. 뷰 바인딩은 여러 뷰 객체들을 관리하고, 쉽게 가져올 수 있도록 도와주는 역할을 합니다. XML 레이아웃 파일에 정의된 뷰들을 바로 가져와 쓸 수 있어 매우 편리합니다. 기본적인 사용 방법은 우선, build.gradle의 모듈 단위에 아래와 같이 코드를 추가합니다. android { viewBinding { enabled = true } } 뷰 바인딩 사용 방법을 요약하자면 아래와 같습니다. 우선 setContentView(R.layout.activity_main) 처럼 설정된 부분을 뷰 결합을 통해서 바꿔줘야 합니다. 이렇게 함으로써, xml 객체를 binding에 ..
안드로이드 스튜디오에서 사용 가능한 유용한 단축키를 알아 봅니다. 해당 글은 윈도우를 기준으로 작성하였습니다. Reformatting Code: Ctrl + Alt + L (코드 간결화, 코드 뷰티파이, Code Beautify) Refactor: Shift + F6 (원하는 변수명이나 클래스명 여러 개를 바꾼 명칭으로 모두 동일하게 적용) Import: Alt + Enter (임포트하는 단축키) 타입/변수 확인: Ctrl + B (원하는 타입이나 변수 등이 어떤 부모/자식으로 이루어졌는지, 어떤 인자를 받는지 등을 확인) 주석 처리: Ctrl + / 함수 자동 채우기: Ctrl + Space 계속 업데이트 됩니다 :)
앱을 사용하다보면, 권한을 묻는 경우가 많습니다. 권한은 일반 권한 및 위험 권한으로 나뉘는데, 일반 권한은 인터넷 사용 권한과 같은 것으로, Manifest.xml 파일에 등록만 하면 바로 사용이 가능합니다. 위험 권한은 개인 정보 및 프라이버시와 관련된 권한들로 저장소, 카메라, 연락처 등을 말합니다. 이러한 권한은 사용자로부터 '허락'을 받아야 권한과 연계된 기능을 사용할 수 있습니다. 권한을 얻는 타이밍은 앱을 설치하자마 필요한 권한을 묻는 경우와 특정 기능을 사용하려고 할 때 묻는 경우가 있는데, 앱 개발 시 구글 정책상 특정 기능을 사용할 때 권한을 묻게 하도록 코딩하는 것이 가장 좋습니다. 그럼 권한을 어떻게 사용하는 직접 알아 봅니다. 우선 Manifest.xml 파일에 카메라 권한을 허용..
- Total
- Today
- Yesterday
- 2007년 사건사고
- notifyDataSetChanged
- 애드뷰
- 미제사건
- ToDo List 앱 만들기
- 인텐트
- RecyclerView
- 리사이클러뷰
- 2021년 사건사고
- 안드로이드 어댑터
- bmi 계산기 만들기
- lazy init
- 선형 레이아웃
- view binding
- findViewById
- addView
- 안드로이드 프로젝트
- 리스트뷰
- 자바스크립트 배열
- tabLayout
- 대한민국 미제사건
- 뷰 바인딩
- Bmi Calculator
- 상대적 레이아웃
- 2019년 사건사고
- 메소드 오버라이딩
- 안드로이드 스튜디오 에러
- 탭레이아웃
- 안드로이드 앱 만들기
- android adapter
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |