Android 35

FragmentContainerView 가 Design 에서 미리보기가 안될 때 해결 방법

필자는 Android 앱을 개발하면서 UI 를 만들 때, [Split] 모드로 코딩을 한다. [Split] 모드는 왼쪽에는 [Code] 뷰, 오른쪽에는 [Design] 뷰가 보여서 XML 코드를 추가함과 동시에 앱에서 어떻게 보여질지 미리볼 수 있어서 좋다. 그런데, 어느 순간 FragmentContainerView 를 추가하면, 우측에 미리볼 수 있는 곳에서 모든게 안보이는 버그(?)가 나타났다. 그래서 급할 때는 FragmentContainerView 부분을 주석처리하고, 다른 부분을 작업했다. 어느날, 위 현상을 해결하고 FragmentContainerView 를 주석처리할 필요 없이 작업할 수 있는 방법을 찾아내서, 블로그에 정리하고자 한다. 해결 방법이 너무나 간단해서 본 글은 엄청 짧다. 해결..

Android Developer 2023.04.03

Tensorflow Lite for Android - Overview

Tensorflow Lite 를 사용해야하는 상황이 와서, 이에 대한 기본적인 지식을 공부하기 위해 블로그에 기록하게 되었다. 아무것도 모르는 상태이기에 공식 문서의 Overview 문서를 번역하며 정독해보았다. Tensorflow Lite 는 Android 앱 안에서 Tensorflow Machine Learning 모델들을 실행할 수 있게 해준다. Tensorflow Lite 시스템은 Android 에서 ML 모델들을 빠르고 효율적으로 실행시킬 수 있는 실행 환경을 제공한다. 하드웨어 가속화 기능까지도 제공한다. 1. Machine Learning Models Tensorflow Lite 가 사용하는 Tensorflow Model 은 더 용량이 작아 옮기기 쉬우며, 더 효율적인 머신러닝(ML) 모델로..

Android Developer 2023.01.30

Android TinyDancer 라이브러리 분석 (FPS, 프레임률 측정)

프레임율(FPS, Frame Per Second) 이란, 초당 렌더링 되는 프레임의 개수를 의미한다. 여기서 프레임이란 하나의 사진, 화면을 뜻한다. 즉, 초당 그려지는 사진이나 화면의 개수를 프레임율이라 하며, 성능을 확인하며 게임을 하는 유저들에게는 아주 익숙한 용어일 것이다. 그만큼 애플리케이션이나 기기의 성능을 테스트할 때, 기본적으로 확인하는 요소이다. GitHub - friendlyrobotnyc/TinyDancer: An android library for displaying fps from the choreographer and percentage of time with t An android library for displaying fps from the choreographer and ..

Android Developer 2022.12.28

[Android] Duplicate class androidx.lifecycle.ViewModelLazy found...

새 Android 프로젝트에 개발하고 있던 라이브러리 모듈을 붙였더니 다음과 같은 에러가 나타났다. [Sync Now] 를 할때는 오류가 안생기다가, RUN 만 시키면 발생하는 오류였다. Duplicate class androidx.lifecycle.ViewModelLazy found in modules jetified-lifecycle-viewmodel-ktx-2.3.1-runtime (androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1) and lifecycle-viewmodel-2.5.0-runtime (androidx.lifecycle:lifecycle-viewmodel:2.5.0) Duplicate class androidx.lifecycle.ViewTreeV..

Android Developer 2022.11.21

[React-Native] ReactNative 에서 Android Native 함수 호출

개발 중이던 Android 앱의 특정 기능들을 다른 ReactNative 앱과 결합할 일이 생겼다. 그래서 가장 먼저 Android 앱에서 필요한 기능들을 하나의 라이브러리 모듈로 통합을 해두었고, ReactNative 앱에서 생성된 Android Project 에 모듈을 Import 해주었다. 해당 모듈에는 필요한 기능들을 모두 사용하는 Activity 까지 넣어두었기 때문에, ReactNative 앱에서 Activity 를 호출해주기만 하면 됐다. 다만, 본 글에서는 ReactNative 에서 Android Project 를 생성하고, Android Project 내에서 ReactNative 에서 사용할 수 있는 함수를 어떻게 만들고, 호출하는지에 대해 정리한다. 1. Create React Nati..

ReactNative 2022.11.17

화면 자동 꺼짐 없이 항상 화면을 키고 싶을 때

Android App 뿐만 아니라, 화면을 보여주는 전자 제품들의 대부분은 디스플레이 출력에서 많은 전력을 소모한다. 심지어 Android App 은 적은 배터리 용량으로 돌아가기 때문에, 배터리 효율을 위해서 디스플레이가 자동으로 꺼지도록 설정이 되어있다. 하지만, 앱을 개발하다보면 디스플레이가 자동으로 꺼지지 않도록 하고 싶은 경우가 존재한다. 예를 들어, 영화나 동영상 감상을 할 때나, 어떤 작업을 하다가도 생각할 시간이 자주 필요한 상황이다. 그럴 때는 Android Device 가 Awake 상태를 유지하도록 해줘야한다. 출처 : https://developer.android.com/training/scheduling/wakelock 1. 대안책 1-1) DownloadManager 만약 앱이 ..

Android Developer 2022.11.03

Android Vitals 와 Firebase Crashlytics 연동

개발을 하다보면 예상치 못한 에러를 자주 마주하게 된다. 보통 Android 앱을 개발할 때, 가상 머신이나 실제 기기를 PC 와 연결하여 Android Studio 의 Logcat 이나 Run 창을 확인하면서 에러의 내용을 파악하고, 그에 맞게 코드를 수정한다. 그런데, Logcat 이 가끔씩 연결이 끊겨서 실시간으로 로그를 볼 수 없는 경우나 디버깅 모드가 지원되지 않는 기기에 APK 를 설치하여 테스트해야하는 경우 등, PC 와 연결하지 못한 상태에서 에러가 발생하는 경우도 흔하다. 그럴 때는 보통 전후 과정을 확인하고, 어디에서 오류가 발생했을 지 추측을 하여 에러를 잡는다. 하지만, 에러문을 직접 눈으로 확인하지 못하기 때문에 불확실한 추측으로 코드를 수정하게 될 수도 있다. 게다가, 디버그 상..

Android Developer 2022.11.02

Firebase Console 과 Android App 연동

Firebase 와 Android App 을 연동하면, Firebase 에서 제공하는 다양한 서비스들을 이용할 수 있다. 앱 크래쉬나 ANR 종료 등을 리포트 받을 수 있는 Firebase Crashlytics, 푸쉬 알림을 보낼 수 있는 Firebase Cloud Messaging(FCM), 각종 통계 수치를 볼 수 있는 Firebase Analytics 등등... Firebase 와 연동하여 다양한 서비스들을 제공 받을 수 있다. 위에 예로 든 서비스 외에도 다양한 서비스들을 Android App 과 연동하기 위해서는 Firebase Console 에서 "google-service.json" 파일을 발급 받아서 App 프로젝트 내에 넣어줘야한다. 이제 Firebase 와 Android App 을 연동..

Android Developer 2022.11.02

RadarChartView 직접 만들기 : 3. Custom Drawing

RadarChartView 직접 만들기 : 2. Creating a View Class RadarChartView 직접 만들기 : 1. CustomView Overview 개발을 하다보면 외부 라이브러리를 쓰기 보다는 직접 필요한 라이브러리를 만들어서 쓰고 싶은 낭만(?) 같은게 생긴다. 특히, 필자는 나만의 CustomVie choboit.tistory.com 이전 글에서는 CustomView 클래스를 만드는 방법에 대해 정리했다. 이번 글에서는 CustomView 에서 직접 그려보는 방법에 대해 정리한다. 본 글은 Android Developer 공식 문서를 기반으로 작성한다. 출처 : https://developer.android.com/develop/ui/views/layout/custom-vie..

Android Developer 2022.10.14

RadarChartView 직접 만들기 : 2. Creating a View Class

RadarChartView 직접 만들기 : 1. CustomView Overview 개발을 하다보면 외부 라이브러리를 쓰기 보다는 직접 필요한 라이브러리를 만들어서 쓰고 싶은 낭만(?) 같은게 생긴다. 특히, 필자는 나만의 CustomView 를 만들고 싶다는 생각이 Android 를 처음 choboit.tistory.com 지난 글에서는 CustomView 에 대한 이론적인 내용을 다뤄보았다. 이번에는 CustomView 를 만드는 기본적인 방법에 대해 기술한다. 출처(공식 문서) : https://developer.android.com/develop/ui/views/layout/custom-views/create-view 1. Overview 잘 만들어진 CustomView 는 마치 잘 만들어진 Cl..

Android Developer 2022.10.12

[Ionic] Photo Gallery 앱을 모바일로 & Live Reload

[Ionic] Ionic Angular 입문 및 Photo Gallery 앱 만들기 Cross-Platform Mobile App Development: Ionic Framework Ionic Framework's app development platform builds amazing cross-platform mobile, web, and desktop apps all with one shared code base and open-.. choboit.tistory.com 이전 글에서 Ionic 에 대한 전반적인 지식과 첫 가이드 앱인 Photo Gallery 앱을 웹 버전으로 만들어보았다. 사진을 찍고, Grid 형태의 앨범으로 찍은 사진을 보여주며, 촬영한 사진을 Filesystem 에 저장하는 것까..

NotePad 2022.09.05

RadarChartView 직접 만들기 : 1. CustomView Overview

개발을 하다보면 외부 라이브러리를 쓰기 보다는 직접 필요한 라이브러리를 만들어서 쓰고 싶은 낭만(?) 같은게 생긴다. 특히, 필자는 나만의 CustomView 를 만들고 싶다는 생각이 Android 를 처음 접한 순간부터 존재했다. 하지만, 이것저것 공부해야한다는 핑계로 미루다 지금이라도 결심을 하고 진행해보려한다. 살짝 나만의 스터디 프로젝트 같은 느낌으로 진행할 예정이다. 먼저, CustomView 에 대한 이론(Overview)을 살펴본 후, RadarChart 를 출력하는 RadarChartView 를 만든다. 그리고, 필자의 최종 Goal 은 "MusicXML 파일을 악보로 출력하는 악보뷰를 만드는 것"이다. 불가능할지도 모르고, 거대한 삽질을 하게될지도 모른다. 하지만, 삽질하는 과정도 재밌기..

Android Developer 2022.08.18

Android Zoom Video SDK : 3. Essential Guides (2)

지난 글에서는 Zoom SDK 를 초기화하고, Video SDK 의 Session 을 생성하는 방법까지 정리했다. 이번 글에서는 생성된 Session 에서 Video Rendering 을 추가해보고, 그 외에 기능들에 대해 정리한다. 1. Render a User's Video Zoom SDK 를 사용하는 목적은 대부분 화상 회의 기능을 구현하기 위해서이다. 그리고 화상 회의 기능의 핵심은 회의실 생성, 그리고 "회의 참여자들의 모습을 보여주는 기능" 이다. Video SDK 는 당연하게도 회의 참여자의 모습을 보여주는 기능을 제공한다. Video Rendering 을 구현하기 위해서는 다음의 작업 과정들이 필요하다. Session 에 참여한 사용자들의 ZoomVideoSDKUser 객체 획득 각 사용자..

Android Developer 2022.08.10

Android Zoom Video SDK : 1. Overview

Android Zoom Meeting SDK 2 : Integrate SDK 공식 문서 URL : https://marketplace.zoom.us/docs/sdk/native-sdks/introduction 지난 글에서는 Zoom SDK 에 대해 간단히 알아보고, 데모 앱 중 하나인 "sample" 앱을 실행시켜보았다. 이제는 Zoom Meeting.. choboit.tistory.com 약 한달 전, Android Zoom Meeting SDK 를 적용해본 경험을 글로 게시한 적이 있다. 그 때는 Zoom Meeting SDK 를 사용한 것이었고, Meeting SDK 에서 UI 커스텀까지 해보려 했으나, 좀 더 커스텀이 자유로운 SDK 가 있어서 Meeting SDK 는 중도 하차했다. 커스텀이 더..

Android Developer 2022.07.28

Android Zoom Meeting SDK : 2. Integrate SDK

공식 문서 URL : https://marketplace.zoom.us/docs/sdk/native-sdks/introduction 지난 글에서는 Zoom SDK 에 대해 간단히 알아보고, 데모 앱 중 하나인 "sample" 앱을 실행시켜보았다. 이제는 Zoom Meeting SDK 를 응용하여 내게 맞게 커스텀이 가능한지 공식 문서를 따라하면서 글을 정리해본다. Zoom Meeting SDK - Android 적용기 1 공식 문서 URL : https://marketplace.zoom.us/docs/sdk/native-sdks/introduction 1. Zoom Meeting SDK Zoom Meeting SDK 는 Zoom Client App 에서 사용 가능한 기능들을 손쉽게 개발 중인 애플리케이션..

Android Developer 2022.06.30

Android Zoom Meeting SDK : 1. 데모앱 살펴보기

공식 문서 URL : https://marketplace.zoom.us/docs/sdk/native-sdks/introduction 1. Zoom Meeting SDK Zoom Meeting SDK 는 Zoom Client App 에서 사용 가능한 기능들을 손쉽게 개발 중인 애플리케이션으로 적용할 수 있도록 해준다. 주요 Native Platform 에서 모두 사용 가능하며, Zoom Meeting SDK 가 가지는 특징은 다음과 같다. - Easy to use : 간단한 라이브러리와 패키지를 통해 Zoom Meeting 기능을 빠르게 구현할 수 있다. - Localizable : 다양한 국가의 언어들을 지원하고, 열린 통역확장성을 통해 국제적으로 사용 가능한 앱을 만들 수 있다. - Customizab..

Android Developer 2022.06.24

Androidx ViewPager2 정리

목차 더보기 0. Dependency 1. ViewPager2 in XML 2. ViewPager2 Adapter 3. ViewPager2 in Code 4. Disable Touch Swipe 5. OnPageChangeCallback 6. Move Page Programmatically 0. Dependency dependencies { implementation "androidx.viewpager2:viewpager2:1.0.0" } ViewPager2 를 사용하려는 프로젝트가 Androidx 패키지를 전반적으로 사용하고 있다면 ViewPager2 의 Dependency 를 따로 추가해줄 필요는 없다. 만약, ViewPager2 가 인식되지 않는다면 Dependency 를 추가한다. 1. ViewP..

Android Developer 2022.06.21

[Android] 나만의 adb 명령어 모음

요즘 필자가 하는 업무들이 스마트폰이 아닌 Android OS가 올라간 보드를 통해 테스트를 해야하는 상황이 늘어나고 있어 adb 명령어를 자주 쓰고 있다. 다양하게 쓰고 있지는 않지만, 많이 쓰고 있는 명령어들을 모아두고자 글을 쓴다. Android Board 와 연결한 PC에 Android Board 의 출력 디스플레이를 보고 싶다면, scrcpy(스크린카피) 를 사용하면 된다. 설치 방법과 사용 방법은 공식 문서에 잘 설명되어 있다. https://github.com/Genymobile/scrcpy GitHub - Genymobile/scrcpy: Display and control your Android device Display and control your Android device. Cont..

Android Developer 2022.05.25

Retrofit2 의 Callback 자동 완성을 찾기 귀찮을때

Android 앱을 개발하면서 서버의 API 와 연동할 때, Retrofit 을 주로 사용합니다. 그래서 Retrofit 의 Callback 인터페이스도 많이 사용하게 됩니다. 새로운 Presenter 나 ViewModel 을 추가하게 되면 Import 한 Package 리스트가 없이 도화지 상태에서 시작하기 때문에 Callback 의 Package 도 다시 추가를 해주어야합니다. Android Studio 의 자동완성 기능은 정말 좋아서 Callback 을 붙일 때 꼭 사용하고 있습니다. 자동완성으로 넣어주면 Package Import 까지 같이 해주기 때문이죠. 하지만, 위 사진과 같이 Callback 이라는 이름의 인터페이스와 추상클래스가 무수히 많습니다. 아래에서부터 찾으면 금방 Retrofit2..

Android Developer 2022.05.24
반응형