본문 바로가기

Android13

[Android] OnBackPressed() Deprecated, 어떻게 할까? onBackPressed() 함수란?Compose 로 개발되었거나 View 방식으로 개발되었더라도 최근에 개발된 안드로이드 코드를 접했다면 보기 힘든 함수이다. 물론 최근에는 Compose 로 대부분 개발하는 추세이기 때문에 위 함수를 아예 접할 기회가 없을지도 모르지만,어느 회사던 Lagacy 한 프로젝트는 남아있기 마련이고, 이러한 프로젝트를 유지보수 해야할 일도 빈번하다(필자의 이야기다...) onBackPressed() 함수는 사용자가 네비게이션 바에 위치한 "시스템 뒤로가기" 버튼을 클릭했을 때 혹은 뒤로가기 제스처를 통해 호출되는 함수이다. 우리는 이 함수를 오버라이드 하여 뒤로가기가 눌렸을때의 동작을 변경 할 수 있었다.class MainActivity : AppCompatActivity().. 2025. 4. 2.
[Android] Fragment Navigation - 2 (Using Kotlin DSL) 이전 포스팅인 [Android] SAA 와 Fragment Navigation - 1 (XML Based Graph) 에서 이어진다. https://gangglion.tistory.com/entry/Android-Fragment-Navigation-1-XML-Based-Graph [Android] SAA 와 Fragment Navigation - 1 (XML Based Graph)SAA?Fragment Navigation 에 대해 다루기 이전에 SAA 의 개념에 대한 이야기이다. 지금은 대부분 Compose 방식으로 넘어갔지만, Compose 등장 이전 Xml 방식으로 UI 를 작성하고 Activity, Fragment 들로 구성하였을gangglion.tistory.com 개요Android Docs 의 .. 2024. 12. 26.
[Android] SAA 와 Fragment Navigation - 1 (XML Based Graph) SAA?Fragment Navigation 에 대해 다루기 이전에 SAA 의 개념에 대한 이야기이다. 지금은 대부분 Compose 방식으로 넘어갔지만, Compose 등장 이전 Xml 방식으로 UI 를 작성하고 Activity, Fragment 들로 구성하였을때 등장한 개념이다.Single Activity Architecture 의 약자로서, 앱 내에 1개 혹은 아주 적은 수의 Activity 만을 두고 나머지 화면을 Fragment 로 구성하는 방식이다. Activity 로 구성할 경우 화면 전환이 Fragment 에 비해 비교적 간편하다고 느낄 수 있는데, 왜 이런 방법을 써야 할까? Fragment 는 Activity 보다 가볍기 때문에 동일한 화면 Flow 를 Activity 만으로 구성하는 것보.. 2024. 12. 23.
[Android] DI(Dependencies Inject) 와 Hilt 라이브러리 이 글은 Android Developers 공식 문서를 기반으로 내용을 정리한 글임. 공식 문서 Dependencies Inject 원문 글 Android의 종속 항목 삽입  |  Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. Android의 종속 항목 삽입 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 종속 항목 삽입(DI)은 프로그래developer.android.com 종속 항목 삽입이란?DI(Dependencies Inject) 라고 하는 기법으로서, 앱 아키텍처를 구성하는데 있어 중요함. 종속 항목 삽입을 통해1. 코드 재사용 가능2. 리펙터링 편의성 3. 테스트 편의성의 이점을 누릴 수 있음 클래스에는.. 2024. 11. 22.
[Android] ViewBinding Android 앱을 만들때, 제일 처음에 " findViewById(R.id.***) " 을 이용하여 xml에 작성한 View를 가져와 특정한 작업을 하는 방법을 배운다. 이런 작업에는 View를 가져와 저장할 변수, 해당 변수에 findViewById 를 사용하여 가져오는 작업이 필요하다. 그러나 프로젝트의 규모가 커질수록, findViewById 코드의 양은 점점 많아질 것이고, onCreate의 길이도 길어질 뿐더러 findViewById로 가져온 View 를 저장할 변수 또한 매우 많아질 것이다. 또한 존재하지 않는 id를 가져오도록 하여 NullPointerException의 위험 또한 존재한다. 이러한 findViewById의 단점이 나타나자, 이를 대체할 ButterKnife 라던지, 지금은.. 2023. 10. 30.
[Android] onSaveInstanceState 사용하여 상태 유지하기 플레이스토어에서 앱을 다운로드 받아 사용할 때, 화면 방향을 바꾼다던지, 앱을 켜둔 상태로 다크모드를 킨다던지, 멀티윈도우로 전환한다던지 하는 행동을 하곤 한다. 이때 앱에서 표시하고 있는 데이터가 변경된다거나, 만약 게임을 하던 중 화면 방향을 바꿨는데 게임이 처음부터 시작된다면 이는 앱의 옳은 동작이 아닐 것이다. 하지만 우리가 직접 만들어본 앱은 어떤가? 리스트에 아이템을 추가하는 앱을 만들었다고 했을 때 화면을 돌려보면 그 아이템이 유지가 되는가? 아마 아닐 것이다. 왜 이렇게 되는지, 그리고 상태를 유지하는 방법에 대해 알아보자. 상태가 유지되지 않는 이유 Activity의 수명주기는 다음 그림과 같다. Activity 의 종료는 onResume() 상태에서 onPause, onStop을 거쳐 .. 2023. 9. 26.