안드로이드 앱 모듈화 가이드

모듈이란? 모듈(module)이란 앱을 구성하는 요소로, 관련된 소스 코드나 리소스 등을 하나로 묶는 단위다. 최근에는 앱 모듈에 모든 코드를 작성하지 않고, data나 domain 등의 모듈로 세분화 시켜 개발한 뒤 최종적으로 프로덕트를 만들 때 이러한 모듈들을 합쳐서 하나의 애플리케이션을 만들게 된다. 이런 방식을 모듈화 프로그래밍이라고도 한다. 모듈은 다음과 같은 특징을 갖는다 단일 더보기…

윈도우 블러효과 적용하기

Android12부터 Android SDK에서 제공하는 API를 통해 윈도우 블러를 손쉽게 구현할 수 있다. 이 API를 이용하면 윈도우를 불투명하게 만들수도 있고, 윈도우 뒤에 있는 배경만 흐리게 만들수도 있다. 그리고 두 효과를 결합할 수도 있다. 윈도우 블러 적용 방법 윈도우를 투명하게 만들기 위해 windowIsTranslucent를 true로, windowBackground를 투명으로 설정한다. 2. 윈도우 뒤의 화면을 흐리게 더보기…

글쓴이 Charlezz,

안드로이드 프로젝트에서 최신 버전의 라이브러리 확인하기

이 포스팅은 Gradle 프로젝트에서 라이브러리 버전을 관리하는 방법을 공유합니다. Lint의 최신 라이브러리 검사 비활성화 Lint의 이슈중 NewerVersionAvailable 이라는 것을 활성화 하면, 원격 리파지토리에 접속하여 특정 라이브러리의 버전을 매번 검사하게 되므로 유용할 수 있지만 안드로이드 스튜디오가 느려질 수 있다. 그래서 난 보통 이 옵션은 비활성화 한다. 최신 라이브러리 검사 하기 NewerVersionAvailable 더보기…

안드로이드 스튜디오에서 Java 앱 모듈 만들기

자바 애플리케이션을 개발할 때 이클립스를 많이 사용하는데, 간단한 앱을 만들거나 모듈을 테스트 해보기 위해 안드로이드 스튜디오를 사용할 수도 있다. 다음의 순서를 따라 콘솔에 “Hello World”를 출력하는 실행 가능한 애플리케이션을 만들자 기존 프로젝트를 불러온거나 새로운 안드로이드 스튜디오 프로젝트를 생성한다. 프로젝트 패널 영역에서 우클릭을 한 뒤 New > Module을 선택한다. 모듈 생성 더보기…

JVM, DVM, ART 이해하기

안드로이드를 처음 막 배우기 시작한 꼬꼬마시절 왜 구글이 왜 자바를 선택했고, 자바의 바이트코드가 무엇이며, 왜 폰에서 Dalvik과 ART를 선택하라는 거지??? 궁금했지만 누구하나 시원하게 알려주지 않았던 기억이 있어, 오늘은 안드로이드가 실행되는 환경의 내부를 좀 알아보고자 한다. JVM(Java Virtual Machine) JVM은 자바 바이트 코드를 실행할 수 있는 주체이다. 자바 바이트 코드는 플랫폼에 더보기…

Android에서 View의 생명주기

https://proandroiddev.com/the-life-cycle-of-a-view-in-android-6a2c4665b95e을 번역한 내용입니다. 안드로이드 앱을 실행할 때 우리가 가장 먼저 스크린에서 볼 수 있는 것이 View라고 말할 수 있다. View 클래스는 사용자 인터페이스 기본적인 구성 요소를 가지고 있다. 예를들어 스크린위 사각형 영역에서 그리기 및 이벤트 처리 같은 작업이 View를 통해 이루어진다. View는 Button, TextView, ImageView 등의 위젯을 작성하는 데 사용되는 더보기…

안드로이드에서 Custom Lint 활용하기

Lint란? Android 스튜디오에 있는 Lint라는 코드 스캔 도구를 사용하면 앱을 실행하거나 테스트 사례를 작성하지 않고도 코드의 구조적 문제를 식별하고 수정할 수 있습니다. 도구에서 탐지된 각 문제는 설명 메시지 및 심각도 수준과 함께 보고되므로 개선이 시급한 순서대로 신속히 우선순위를 결정할 수 있습니다. 또한 프로젝트와 관련이 없는 문제를 무시해서 문제의 심각도 수준을 더보기…

안드로이드의 Context

Android의 Context란? Application, Service, Activity 모두 Context를 상속 했다는 사실 알고계셨나요? 공식문서에 나와있는 Context의 개요를 확인해보면, 애플리케이션 환경에 대한 전역정보가 컨텍스트로 연결됩니다. Context는 구현이 Android 시스템에 의해 제공되는 추상 클래스입니다. 애플리케이션 별로 리소스 및 클래스에 대한 접근은 물론 Activity의 실행, 브로드 캐스팅 및 Intent수신과 같은 애플리케이션 레벨에 대한 호출을 허용합니다. 쉽게 더보기…

글쓴이 Charlezz,

프레그먼트간 통신하는 3가지 방법

프레그먼트 통신(Fragment Commnication) 안드로이드 공식 문서인 Communicate with other fragments에 프레그먼트간 통신하는 방법에 대해서잘 나와있지만, 저는 또 다른 방법들에대해서 설명하고자 합니다. AAC ViewModel 이용 ViewModel을 이용하면 Activity를 라이플싸이클 오너로 등록하여 공통된 뷰모델을 이용할 수 있습니다.  app레벨의  build.gradle에 다음과 같이 의존성을 추가합니다. //LiveData and ViewModel def lifecycle_version = “1.1.1” implementation “android.arch.lifecycle:extensions:$lifecycle_version” 더보기…

안드로이드의 PendingIntent란?

PendingIntent   PendingIntent는 Intent를 가지고 있는 클래스로, 기본 목적은 다른 애플리케이션(다른 프로세스)의 권한을 허가하여 가지고 있는 Intent를 마치 본인 앱의 프로세스에서 실행하는 것처럼 사용하게 하는 것입니다. PendingIntent 용도 Notification으로 작업을 수행할 때 인텐트가 실행되도록 합니다. Notification은 안드로이드 시스템의 NotificationManager가 Intent를 실행합니다. 즉 다른 프로세스에서 수행하기 때문에 Notification으로 Intent수행시 PendingIntent의 사용이 더보기…