전체(111)
-
Gradle 파일(settings.gradle / build.gradle) 및 사용법 알아보기
Gradle 설치 후 구성된 디렉터리에서 .gradle 확장자를 가진 파일에 대해서 먼저 알아보도록 하겠습니다. 구성되는 .gradle 확장 파일은 settings.gradle(settings.gradle.kts), build.gradle(build.gradle.kts) 이 있습니다. 각 파일은 groovy와 kotlin DSL 중 하나의 형태를 골라 구성할 수 있습니다. kotlin DSL로 포스팅을 통해 파일의 사용법을 알아보도록 하겠습니다. settings.gradle / settings.gradle.kts 모든 gradle 프로젝트의 진입점이 되는 파일로, 주목적은 root project와 함께 빌드할 subproject를 추가하는 것입니다. 그래서 root project만 존재하는 single ..
2024.03.16 -
Gradle 개념 / 특징 및 Gradlew / 사용법 알아보기
안드로이드 개발 시 IDE에 내장된 Gradle을 사용하면서도 어설프게 알고 있던 내용들을 정리해보려고 합니다. Gradle이 무엇인지 개념부터 Gradlew과의 차이점, 사용법 알아보도록 하겠습니다. Gradle 개념 Gradle은 빌드 자동화 도구의 한 종류 입니다. 빌드 자동화 도구에는 여러가지가 있는데요, 종류만 간단히 살펴보면 다음과 같습니다. make : 유닉스 계열 운영체제에서 사용되는 빌드 자동화 도구 apache ant : 자바 빌드 자동화 도구 maven : 자바 프로젝트 관리 도구(ant 기능 확장) gardle : groovy(자바에 스크립트 언어의 특징을 더한 동적 객체 지향 언어) 이용한 빌드 자동화 시스템 apache ant와 maven은 xml 기반으로 구성되어 프로젝트가 방..
2024.03.15 -
[Source Decomposition] NavController 동작과정
BottomNavigationItem( icon = { Icon( painter = painterResource(id = screen.drawableResId), contentDescription = stringResource(screen.stringResId) ) }, label = { Text(stringResource(screen.stringResId)) }, selected = currentDestination?.hierarchy?.any { it.route == screen.route } == true, onClick = { navController.navigate(screen.route) { popUpTo(navController.graph.findStartDestination().id) { ..
2024.03.12 -
Mediaplayer와 VideoView 관계
VideoView 비디오뷰는 안드로이드 위젯의 하나로 MediaPlayer를 이용한 비디오 파일 관련 구현을 내부에 포함하고 있다. 따라서 단순히 레이아웃에 위젯을 추가하고 비디오 파일을 지정하는 것만으로 쉽게 비디오 파일을 재생할 수 있다. 물론 세부적인 컨트롤을 하려면 뒤에 소개하는 것처럼 MediaPlayer를 직접 사용해야 하지만, 대부분의 경우는 VideoView로 원하는 목적을 달성할 수 있다. 가장 먼저 할 일은 레이아웃에 비디오뷰 위젯을 추가하는 것이다. 다음은 길이는 부모와 같고, 높이는 210dp가 되는 비디오뷰의 예제이다. 다음으로 할 일은 비디오뷰에 재생하기 원하는 비디오 파일을 지정하는 것이다. 예를 들어 프로젝트의 raw 디렉토리에 포함된 sample.mp4를 재생하기 위해서는 ..
2024.03.12 -
Firebase Performance 서비스 추가 Gradle 설정 과정 참고(전이의존성 해결)
Firebase perf 추가 시 Auth어쩌구 에러 → Firebase BoM 사양에 맞춰 버전 업그레이드 iid랑 messaging 서비슨가 여튼 충돌 → force 구문 주석 처리했다가 버전 업그레이드 AbstractMethodException com.google.android.gms.common.Api$Client → Build.app에 있는 force 구문 google 관련 3개 버전 변경(최신으로) protobuf-lite protobuf-javalite duplicate exception → build.gradle에 configurations{ all*.exclude module:’protobuf-lite’} 추가 Process: kr.co.zumo.app.dev, PID: 3735 java..
2024.03.12 -
FCM(Firebase Cloud Messaging)
FCM(Firebase Cloud Messaging)이란? 안정적인 메시지를 전송할 수 있는 교차 플랫폼 메시징 솔루션 모든 사용자, 그룹핑된 사용자에게 메시지 전송 가능 요금 정책 미적용(무료) FCM을 사용하는 이유 플랫폼 종속없이 교차하여 전송 가능(APNS, GCM 개별 개발 불필요, Android & iOS & Mobile Web 등의 다양한 플랫폼을 모두 커버) App Server만을 활용한다면 end point 수신자가 계속 접속 상태여야하므로 배터리와 네트워크 사용 과다 발생(클라우드 메시징 서버 거쳐서 전송하는 이유) FCM 메시지 유형 유형 전송 방식 데이터 구성 Notification Message (알림 메시지) App Server 또는 신뢰가능한 환경(Firebase Adamin ..
2024.03.12