평범한 개발자 행복한 가족, 패밀리그램

개발/안드로이드 32

안드로이드 API 27 풀스크린 모드 ( Full screen mode ) 주의 사항

앱을 만들 때 코치마크와 같은 것을 표현 할 때 오래 전에 투명 Activity를 종종 사용했었다. windowIsTranslucent 을 true로 된 테마를 사용하는 방법인데, 요즘에도 종종 푸쉬 받았을 때 Push service에서 팝업처럼 보이기 위해 사용되곤 한다. ( 다이얼로그 같은 화면을 표현 할 때 많이 사용되긴 한다 ) Android API 27 에서 해당 테마의 Activity를 사용 할 때 orientation이 설정되어 있으면 풀스크린 모드일 때 아래와 같은 에러를 만나게 된다 java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation 사실 투명속성의 Activity는 부모 Act..

AudioManager를 그냥 사용하면 메모리 누수 (Memory leak) 이 발생한다

개발된 안드로이드 프로젝트의 Memory leak를 체크해 보기로 했다. 물론 GC가 알아서 해주는거 아니야 ? 라고 생각 할 수도있지만 “A small leak will sink a great ship.” - Benjamin Franklin https://github.com/square/leakcanary 에 있는 벤자민 프랭클린의 명언이다. Memory leak 체크 라이브러리 - leakcanary참 좋은 라이브러리이다. 안드로이드 스튜디오에 있는 프로 파일링으로 확인도 가능하지만, 해당 라이브러리를 사용하면 더 편리하게 앱의 메모리 누수를 체크 할 수 있다. AudioManager를 Activity의 Context로 사용하면 ?안드로이드 앱에 크게 발생하는 누수가 있었는데, 그게 AudioMana..

Android MVVM 패턴을 위한 Architecture Components library - LiveData #2

https://developer.android.com/topic/libraries/architecture/adding-components.html 아키텍처 콤포넌트 소개 영상 LiveData - LiveData는 옵저버 패턴의 Data holder 이다. Data가 변경될 때 Observer를 통해 감지 할 수 있으며, 이를 통해 UI를 업데이트 할 수 있다.이전 포스팅인 Room Database에 LiveData를 사용 할 수 있다. 간단하게 LiveData를 살펴본 뒤 느낀 부분은 LiveData 는 Reactive + Object 라는 느낌이었다. Reactive X의 Subject와 같은 Observable 를 정의된 Object ( LiveData ) 가 기본적으로 갖고 있으며 , LiveDat..

Android MVVM 패턴을 위한 Architecture Components library - ROOM #1

구글에서 안드로이드개발을 위한 아키텍처 컴포넌트 라이브러리 1.0 이 나왔다. 5월 말 쯤에 나왔는데 다른 것들에 관심을 갖다 연말이되어서야 확인하고 있다. ( 너무 알아야 할 것이 많아지는 것 같아 슬프다. ) 간단하게 아키텍처 컴포넌트는 기존 안드로이드 개발에서 MVVM 패턴을 구현할 수 있도록 도와주는 라이브러리로 판단된다. 지금 까지 RxJava를 이용하여 Lifecycle을 Observe 하고 이를 이용해 MVVM 패턴을 구현했는데, 구글 안드로이드에서 직접 나서서 아키텍처 콤포넌트 라이브라리를 만들었다. For Room RxJava support, add:implementation "android.arch.persistence.room:rxjava2:1.0.0"아직 사용은 안해봤지만, RxJa..

알아두면 좋은 Android Studio Live templates

잘 사용하면 개발 속도를 눈부시게 단축시켜 주는 Android Studio Live templates. 꼭 Android Studio IDE에만 있는 기능은 아니고 대부분의 IDE에 Live templates기능을 제공한다. ( 사실상 IntelliJ에서 지원하는 기능이다. ) Android Studio의 Live templates 메뉴는 Preferences -> Editor -> Live Templates 에 위치해 있다. 그럼 한번 Live Template을 한개 등록해보자. Live Templatesabbreviation 에 원하 단축 키워드를 입력 하고 Description에 해당 키워드의 설명을 넣는다. 그리고 Template text:에 입력되어야 할 결과값을 입력한다. Live templa..

Nexsus & Pixel 시리즈 안드로이드 O ( 8.0 버전, API 26 ) 업데이트

안드로이드 Nexus 5X를 사용한다. 전 날 밤 Android OS 업데이트 알림을 받았고 아침 일찍 출근하여 버전 업데이트를 하였다.안드로이드 8.0의 주요 개발자 기능 리스트는 아래와 같다. 안드로이드 Oreo (8.0) 소개 Google 포스팅 주요 개발자 기능사용자 환경알림Autofill FrameworkPIP 모드다운로드 가능한 글꼴XML의 글꼴TextView 자동 크기 조절어댑티브 아이콘색상 관리WebView API바로가기 및 위젯 고정최대 화면 가로세로 비율다중 디스플레이 지원통합된 레이아웃 여백 및 패딩포인터 캡처앱 범주Android TV 런처AnimatorSet입력 및 탐색키보드 탐색 클러스터기본 포커스 보기시스템새로운 StrictMode 탐지기캐시된 데이터콘텐츠 제공자 페이징콘텐츠 새..

Perl을 이용한 안드로이드 프로젝트 소스 내의 PackageName 변경

간혹 기존 프로젝트를 재활용이 필요할 때 패키지이름만 변경하여 프로젝트를 활용하는 경우가 있다.Unix계열 OS를 사용 할 때 프로젝트 소스코드 위치로 이동하여 Perl을 이용해 변경할 수 있다.예를 들면 "~/project/app/src" 의 위치로 이동하여 변경한다. ( Android Studio의 Terminal을 사용하면 편리하다.)find . -name '*.*' -exec perl -pi -e 's/com.sample.app.a/com.sample.app.b/g' {} \;src 폴더 하위에 위치한 모든 파일내의 com.sample.app.a 라는 라인을 com.sample.app.b로 변경 된다.프로젝트 Root에서 명령어를 실행하면 불 필요한 것들도 변경되니 주의 하여야한다.

쇼핑 할 때 사용 할 수 있는 장바구니 메모 앱

몇 달 전 어떤 안드로이드 앱을 만들어 볼 까 고민하던 중 아내가 장바구니 메모 앱이 필요하다가 얘기했다. 그래서 장 볼 때 사용 할 수 있는 장바구니 메모 앱을 만들기로 결정했다.우선 어떤 것들이 필요한지 정리했는데, 새로운 패러다임을 연 RxJava와 Lambda 은 반드시 사용하기로 결정했다. 그리고 단순히 메모만 되면 심심하니, 상품 메모를 입력하면 그에 해당하는 이미지를 자동으로 불러 올 수 있게 구현하였다. 구글플레이 스토어 - 장바구니 메모 최대한 익숙하고 단순한 UX/UI를 사용하려고 노력했는데 혼자 만들기엔 역시나 쉽진 않았다. 그래도 어쨋든 완성해서 비루한 내용으로 퍼블리싱을 완료한 상태이다. ( 기능적 면으론 주변 사람들의 칭찬을 많이 받았다 ㅋ ) 우선 아내가 편리하게 자주 사용했으..

안드로이드에서 Graph를 표현하기 위한 GraphView Library

개인 프로젝트에서 Graph를 구현하기 위해 CustomView를 만들까 하다가, 왠지 이미 좋은 라이브러리가 있을 것 같아 구글링에 들어갔다. 역시나 GraphView라는 좋은 라이브러리가 이미 있었다.사용하기도 편리하며, 커스터마이징도 굉장히 편하다 ( 많은 편의성을 제공한다. )GraphView http://www.android-graphview.org/위 링크에서 자세한 내용을 확인 할 수 있다. 따로 Jar파일로 라이브러리를 제공을 하기도 하지만, Android Studio의 Gradle dependency도 제공한다.compile 'com.jjoe64:graphview:4.2.1'

반응형