안드로이드 [Kotlin] - ViewModel 파헤쳐보기
2022. 10. 3. 14:07
Android
Android ViewModel에 대해 알아보기 전에 우선 ViewModel이 왜 필요한 지부터 생각해보자. 📌 UI 상태 저장 및 복원의 필요성 화면 회전 또는 멀티 윈도우 모드로 전환하는 것과 같이 Configuration이 변경되어도 사용자는 Activity의 UI상태가 그대로 유지하기를 기대한다. Android Configuration이 변경되는 경우 언어 설정을 변경할 때 화면을 가로/세로 회전할 때 폰트 크기나 폰트를 변경했을 때 기기 서비스 국가가 변경되었을 때 등 위와 같은 경우 Activity의 onCreate() 콜백 함수가 다시 실행되기 때문에 데이터가 보존되지 못한다. 이를 대체하기 위한 첫 번째 방법은 onSaveInstanceState() 메서드이다. onSaveInstanceS..
[코틀린] 프로그래머스 - 거리두기 확인하기
2022. 9. 23. 16:14
Algorithm
전형적인 BFS 문제이다. 최대한 함수로 역할을 나누어 분리해 풀이해보려고 노력했다. solution -> check -> bfs 함수 순으로 내려가 보도록 하자. 📌 soloution 함수 fun solution(places: Array): IntArray { var answer = mutableListOf() for (i in (0..4)) { if (check(places[i])) answer.add(1) else answer.add(0) } return answer.toIntArray() } 문제에서 palaces가 2차원 String 배열로 주어지므로 한 줄씩 내려가면서 check 함수 안에 Array을 넣어 만약 확인이 된다면 즉 거리두기를 위반하는 사람이 없다면 answer 리스트에 1을 넣..
안드로이드 [Kotlin] - Task와 Launch Mode 그림으로 이해하기
2022. 9. 20. 20:42
Android
안드로이드 시스템은 자동으로 Task를 관리하지만, Launch Mode를 통해 Activity가 Task에 관리되는 방식을 설정할 수 있다. 즉 Activity 실행 시 쌓이는 Task(Back Stack)에 대한 운영 방식을 우리가 설정할 수 있다는 뜻이다. 여기서 Task와 Back Stack의 차이를 공식문서에서는 이렇게 말하고 있다. https://developer.android.com/guide/components/activities/tasks-and-back-stack 작업 및 백 스택 이해 | Android 개발자 | Android Developers 일반적으로 앱에는 여러 활동이 포함됩니다. 각 활동은 사용자가 실행할 수 있는 특정 종류의 작업을 중심으로 설계되어야 하며 다른 활동을 시작..
안드로이드 [Kotlin] - Paging3 사용기 (Room 데이터, 네트워크 데이터)
2022. 9. 18. 16:26
Android
📌 Paging이란? Paging이란 데이터를 가져올 때 한 번에 모든 데이터를 가져오는 것이 아니라 일정한 덩어리로 나눠서 가져오는 것을 뜻한다. 예를 들어 구글 같은 포털 사이트에서 검색을 할 때 모든 데이터를 한꺼번에 가져오는 것이 아니라 페이지 단위로 데이터를 가져오는 것을 볼 수 있다. 페이징을 사용하면 성능, 메모리, 비용 측면에서 효율적이다. 📌 Paging3 라이브러리 Android Jetpack에서는 페이징을 위한 Paging3 라이브러리를 제공하고 있다. Paging3 라이브러리는 로컬 저장소에서나 네트워크를 통해 데이터를 나누어 효율적으로 로딩할 수 있게 도와준다. Paging3 라이브러리는 구글에서 권장하는 Android App Architecture에 맞게 설계되어있다. 다른 Je..
안드로이드 [Kotlin] - DataStore를 이용한 자동로그인
2022. 8. 16. 17:34
Android
SharedPreferences Key, Value 형태로 이용한다. String, Int, Float, Boolean과 같은 원시형 데이터들을 저장하고 검색할 수 있다. 내부적으로는 XML 파일로 저장된다. SharedPreferences를 사용하는 방법은 이전 포스팅을 참고하면 된다. https://jminie.tistory.com/169 안드로이드 [Kotlin] - SharedPreferences 를 이용해 Retrofit2 Header에 JWT 담기 안드로이드에서 데이터를 저장하는 방법으로 여러 가지가 있다. 파일 I/O (내부 또는 외부 저장소) 접근 권한을 획득하고 파일을 열었다 닫았다 하는 수고가 필요함 관계형 데이터베이스 SQLite 등 jminie.tistory.com 🚨 SharedP..