본문 바로가기

Android9

Android - Fragment에서 requireContext, requireActivity, requireOOO 이게 뭘까? Fragment에 requi….이라고 치면 require어쩌구~ 관련된 메서드들이 왕창 나오게 된다.사실 requireContext, requireActivity이런 메서드들의 구현부를 보면 별 거 없다.context, activity같은 게 있다면 NotNull타입으로 정상 반환하고 없다면 IllegalStateException을 발생 시킨다. @NonNullpublic final FragmentActivity requireActivity() { FragmentActivity activity = getActivity(); if (activity == null) { throw new IllegalStateException("Fragment " + this + " not attach.. 2024. 6. 30.
Android - Fragment는 도대체 왜 사용하는 걸까? 요즘 깃헙에서 Android 프로젝트를 보다보면 Jetpack Compose를 사용하는 게 아닌 이상 전부 View가 Fragment로 도배되어 있다.문득 든 생각이 도대체 Activity를 나두고 Fragment를 왜 쓰는 걸까?Activity의 문제점Activity안에 코드가 길어져 유지보수하기 어렵다는 의견도 있지만 나는 아래 사진의 문제점에 중점을 두고 싶다.Android디바이스는 휴대폰, 태블릿 등으로 다양하다. 이건 경우 Activity로 View를 그리기에는 한계가 있다.첫 번째 그림의 경우 Activity하나면 있어도 View를 다 그릴 수 있다. 하지만 두 번째 그림의 경우 화면이 작기 때문에 View가 두 개로 쪼개져야 한다.Activity와 Fragment 차이점Activity는 컴포.. 2024. 6. 29.
Android - findViewById vs kotlinx-synthetic vs viewBinding findViewById와 kotlin-synthetic의 문제점은 오래전부터 알려져 왔고 요새는 Compose를 쓰는 게 아니라면 거의 모든 프로젝트에서 viewBinding아니면 dataBinding을 쓴다.오늘은 findViewById와 kotlin-synthetic의 장단점과 왜 이걸 안 쓰고 viewBinding을 사용하는지 알아보자findViewByIdtextView = findViewById(R.id.textview)일단 코드가 길다. ‘R.id’라는 부분이 중복된다.하지만 더 치명적인 단점이 있는데 바로 null과 type 안정성이 없다는 것이다.null-safety 하지 않다R.id.OOO으로 view의 id에 접근을 하는 경우 해당 activity혹은 fragment에 대응되는 view .. 2024. 6. 19.
Android - android:exported=”true”는 무엇일까? AndroidManifest.xml 파일에서 컴포넌트 코드를 보면 종종 exported속성이 설정 되어 있는 것을 볼 수 있다. 도대체 android:exported=”true”는 뭘까? 이번 포스팅에서 알아보자. ... Android 공식 문서에 보면 다음과 같이 나와있다.android:exported 속성은 다른 애플리케이션의 구성요소에서 실행할 수 있는 구성요소(활동, 서비스, broadcast receiver 등)인지를 설정합니다.true인 경우 모든 앱이 활동에 액세스할 수 있고 활동의 정확한 클래스 이름으로 활동을 실행할 수 있습니다.false인 경우 같은 애플리케이션에 있는 구성요소나 동일한 사용자 ID를 가진 애플리케이션 또는 권한이 있는 시스.. 2024. 6. 15.