본문 바로가기

전체 글253

[Doit 깡샘의 안드로이드 앱 프로그래밍 with 코틀린] 정리 16 - 갤러리 앱 연동하기 본 글은 [Doit 깡샘의 안드로이드 앱 프로그래밍 with 코틀린 - 이지스퍼블리싱 (2022)] 의 내용을 발췌한 것입니다. 좀더 자세한 내용은 책 혹은 인강을 통해 확인해 주세요. 갤러리 앱을 연동해 사진 이미지를 가져오는 방법도 살펴보겠습니다. 갤러리 앱 연동은 인텐트로 갤러리 앱의 목록 화면을 띄우거나 갤러리 앱의 콘텐츠 프로바이더로 데이터를 가져오는 작업입니다. 이미지 작업 시 고려 사항 먼저 안드로이드 앱에서 이미지 데이터를 이용할 때 고려해야 할 사항은 다음과 같습니다. • 안드로이드에서 이미지는 Drawable이나 Bitmap 객체로 표현합니다. • Bitmap 객체는 BitmapFactory로 생성합니다. • BitmapFactory로 이미지를 생성할 때는 OOM 오류를 고려해야 합니다.. 2022. 2. 28.
[Doit 깡샘의 안드로이드 앱 프로그래밍 with 코틀린] 정리 15 - 서비스의 백그라운드 제약 본 글은 [Doit 깡샘의 안드로이드 앱 프로그래밍 with 코틀린 - 이지스퍼블리싱 (2022)] 의 내용을 발췌한 것입니다. 좀더 자세한 내용은 책 혹은 인강을 통해 확인해 주세요. HTML 삽입 미리보기할 수 없는 소스 서비스는 앱이 백그라운드 상태일 때 인텐트를 전달하면 오류가 발생합니다. 포그라운드 상황에서는 잘 실행되던 인텐트도 백그라운드 상황에서는 다음과 같은 오류가 발생합니다. Not allowed to start service Intent { act=ACTION_OUTER_SERVICE pkg=com.example.test_outter }: app is in background uid null 백그라운드는 앱의 화면이 안 보이는 상황이지만 세부적으로는 몇 가지를 더 고려해야 합니다. 안드.. 2022. 2. 28.
[Doit 깡샘의 안드로이드 앱 프로그래밍 with 코틀린] 정리 14 - 시스템 상태 파악하기 본 글은 [Doit 깡샘의 안드로이드 앱 프로그래밍 with 코틀린 - 이지스퍼블리싱 (2022)] 의 내용을 발췌한 것입니다. 좀더 자세한 내용은 책 혹은 인강을 통해 확인해 주세요. HTML 삽입 미리보기할 수 없는 소스 시스템에서 발생하는 인텐트는 여러 종류가 있으며 부팅 완료, 화면 켬/끔, 배터리 상태 등이 대표적입니다. 이러한 상황에서 앱의 리시버를 어떻게 실행하는지 살펴보겠습니다. 부팅 완료 안드로이드 기기의 전원을 켜면 시스템이 동작해 부팅이 시작되고 완료되면 사용자가 기기를 사용할 수 있는 상태가 됩니다. 만약 앱에서 부팅이 완료될 때 특정한 작업을 수행하고 싶다면 브로드캐스트 리시버를 만들고 매니페스트 파일에 인텐트 필터를 구성해서 등록합니다. 부팅이 완료되면 시스템에서는 android.. 2022. 2. 28.
[Doit 깡샘의 안드로이드 앱 프로그래밍 with 코틀린] 정리 13 - 액티비티 화면 되돌리기 ― ActivityResultLauncher 본 글은 [Doit 깡샘의 안드로이드 앱 프로그래밍 with 코틀린 - 이지스퍼블리싱 (2022)] 의 내용을 발췌한 것입니다. 좀더 자세한 내용은 책 혹은 인강을 통해 확인해 주세요. 이번에는 최근 권장하는 방식을 살펴보겠습니다. 인텐트를 발생시켜 화면을 전환한 후 되돌아왔을 때 ActivityResultLauncher로 사후 처리하는 방법입니다. ActivityResultLauncher 는 이밖에도 액티비티에서 다양한 결과에 대한 사후 처리를 제공합니다. Contract ActivityResultLauncher를 이용하려면 먼저 Contract 객체가 필요합니다. Contract는 Activity ResultLauncher로 실행될 요청을 처리하는 역할을 합니다. 즉, ActivityResultLau.. 2022. 2. 28.
[Doit 깡샘의 안드로이드 앱 프로그래밍 with 코틀린] 정리 12 - 탭 레이아웃 ― 탭 버튼 구성 본 글은 [Doit 깡샘의 안드로이드 앱 프로그래밍 with 코틀린 - 이지스퍼블리싱 (2022)] 의 내용을 발췌한 것입니다. 좀더 자세한 내용은 책 혹은 인강을 통해 확인해 주세요. HTML 삽입 미리보기할 수 없는 소스 탭 레이아웃은 탭tab으로 구분하는 화면에서 탭 버튼을 배치하는 레이아웃입니다. 탭 화면에는 탭 버튼을 선택했을 때 나와야 하는 내용이 있습니다. 탭 레이아웃은 이 중 탭 버튼을 다양하게 표시하고자 사용하는 뷰입니다. 다음 그림은 Play 스토어 앱의 화면입니다. 상자로 표시한 부분에 탭 버튼이 사용되었습니다. 왼쪽 그림에서 위의 탭 버튼은 가로로 스크롤됩니다. 탭 버튼이 많으면 이처럼 스크롤되게 제공해야 합니다. 왼쪽 그림에서 아래의 탭 버튼은 4개를 가로 등분으로 제공합니다. 그.. 2022. 2. 28.
[Doit 깡샘의 안드로이드 앱 프로그래밍 with 코틀린] 정리 11 - 뷰 페이저2 ― 스와이프로 넘기는 화면 구성 본 글은 [Doit 깡샘의 안드로이드 앱 프로그래밍 with 코틀린 - 이지스퍼블리싱 (2022)] 의 내용을 발췌한 것입니다. 좀더 자세한 내용은 책 혹은 인강을 통해 확인해 주세요. HTML 삽입 미리보기할 수 없는 소스 뷰 페이저ViewPager는 스와이프(손가락으로 화면을 탭하여 오른쪽이나 왼쪽으로 미는) 이벤트로 화면을 전환할 때 사용합니다. Instagram 앱을 보면 사용자가 손가락을 이용해 화면을 양옆으로 밀어 이전이나 다음 화면을 볼 수 있습니다. Instagram이 아니어도 많은 앱에서는 뷰 페이저로 만든 화면을 제공합니다. 뷰 페이저는 플랫폼 API에서 제공하지 않으므로 androidx 라이브러리를 이용해 개발해야 합니다. 그런데 개발자가 오랫동안 이용했던 viewpager와 별개로 .. 2022. 2. 28.