Android

    [Android] 하단 탭 사용하기 (BottomNavigation)

    [Android] 하단 탭 사용하기 (BottomNavigation)

    BottomNaviagtionView는 NavigationBarView를 확장하는 클래스이다. BottomNaviagtionView는 어플리케이션에서 표준 하단 탐색바를 나타내고 머티리얼 디자인 하단 탐색바의 구현이다. 하단 탐색바를 사용하면 사용자가 탭 한 번으로 상위 수준의 뷰를 쉽게 탐색하고 전환할 수 있다. 이러한 사용자 인터페이스는 애플리케이션에 3~5 개의 최상위 뷰가 존재하는 경우 사용하는 것을 추천한다. 레이아웃 구성하기. 하나의 액티비티를 생성하자. 생성한 액티비티의 레이아웃 구성은 아래와 같다. FrameLyout을 선언하고 내부에 BottomNaviagtionView를 생성한다. BottomNaviagtionView 내에 app:menu="@menu/menu" 를 확인할 수 있다. 여..

    [Android] WearOS HealthServicesClient 성능 문제 분석기

    [Android] WearOS HealthServicesClient 성능 문제 분석기

    리눅스 기반의 프로세스 성능 분석의 경험은 있으나 안드로이드 어플리케이션의 성능 분석은 처음이다. 학생 이후에 약 10년 만에 안드로이드 개발을 해보는 상황으로 도메인 지식이 많이 부족하다. 안드로이드 플랫폼에서 어떤 프로파일링 툴을 제공하고 어떻게 사용해야 하는지 파악을 해보고 싶었고, 문제를 좀 더 빠르게 분석하고자 했다. 현재 안드로이드 웨어OS 기반의 헬스 어플리케이션을 개발하고 있다. 디바이스 타겟은 갤럭시 워치 4이며 헬스 기능은 안드로이드에서 제공하는 헬스 API를 사용한다 .(Samsung Health는 파트너 체결 등의 이유로 사용하지 않았다.) 처음 서비스 로드가 너무 느려! 문제는 디바이스 부팅 후 첫 헬스 서비스 사용 시 시스템에서 헬스서비스의 로드가 매우 느리다는 문제가 있었다. ..

    [Android] Google Map Key 관리

    [Android] Google Map Key 관리

    안드로이드에 구글 맵 플랫폼(https://developers.google.com/maps?hl=ko)을 사용하여 지도 기능을 개발하는 경우에는 구글 맵 플랫폼에서 제공하는 키를 관리해야 한다. 해당 키는 민감한 정보로 github과 같은 버전관리시스템에 노출이 되어서는 안된다. 앞서 민감한 키 정보를 local.properties 에 작성하여 버전관리시스템에서는 관리되지 않도록 하고, BuildConfig를 이용하여 키 값을 코드에서 사용하는 방법을 소개한 적이 있다. (2022.08.08 - [IT Domain Knowledge/Android] - [Android] local.properties를 사용하여 키 관리하기 ) 구글 맵에서 제공하는 키는 AndroidManifest.xml 파일에 명시를 해..

    [Android] local.properties를 사용하여 키 관리하기

    [Android] local.properties를 사용하여 키 관리하기

    안드로이드 프로젝트를 Github와 같은 코드 호스팅 플랫폼에 공유를 하는 경우는 많다. 이 때 애플리케이션에서 사용하는 각종 키나 정보들이 있을 수 있다. 특히 보안에 민감하여 외부로 노출되어서는 안되는 인증 키의 경우에는 Github에 노출되어서는 안된다. 이 글에서는 각종 키들을 루트 프로젝트 경로에 존재하는 local.properties 파일을 사용하여 외부에 노출시키지 않고 개인이 사용하는 방법에 대해서 정리한다. 만약 local.properties 파일이 git(+ 다른 버전관리툴)에서 관리되는 파일이라면 제거한다. (git은 .gitignore에 등록하는 방법을 사용한다.) local.properties파일은 안드로이드 스튜디오 툴에서 자동으로 생성해주는 파일이다. 처음 생성되는 아래와 같은..

    [Kotlin/Plugin] Json으로 data class 추출하기

    [Kotlin/Plugin] Json으로 data class 추출하기

    개발을 하다보면 Json 파일 정보를 이용하여 매핑할 수 있는 클래스를 만드는 일이 간혹 있습니다. 간단한 Json 파일 형태라면 수작업으로 빠르게 완성할 수 있겠지만 Json 파일 포맷이 매우 큰 경우, 그리고 복잡한 구조인 경우에는 클래스로 정의하기 귀찮고, 복잡하며, 매우 하기 싫은 일 일수 있습니다. 이런 귀찮음과 불편함은 누군가 해결해주었고, 그 해결법중 안드로이드 스튜디오 플러그인에서 설치하여 간단하게 사용하는 방법을 공유드리려 합니다. 추천하는 플러그인은 JsonToKotlinClass 입니다. https://github.com/wuseal/JsonToKotlinClass GitHub - wuseal/JsonToKotlinClass: 🚀 Plugin for Android Studio And ..

    [Android] 위치(Location)

    [Android] 위치(Location)

    안드로이드를 최근에 다시 공부 및 개발을 하고 입장에서 10년전과 많이 달라져 적응하기 어려움이 있다. 이번에 위치정보 기반 모듈 설계 및 구현 시 정리한 내용을 블로그로 재정리하려고 한다. 안드로이드의 위치서비스 안드로이드 어플리케이션은 기기의 여러 센서에서 제공하는 신호를 활용하여 기기 위치를 결정할 수 있다. 특히 사용자의 위치서비스를 제공하기 위해 GPS와 Network를 많이 사용하였다. LocationManager를 이용하여 GPS와 Network의 정보를 이용하여 현재 Location 정보를 얻어서 제공하였다. LocationManager 외에 구글은 Google I/O 2019에서 google-service를 이용하여 사용할 수 있는 FusedLocationProvider API를 발표했다..