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

개발 44

react-script 업데이트 IE11 동작하지 않는 문제

typescript 를 사용하면 dependencies 가 늘어나며 build 속도에 문제가 생겼다 그래서 모든 react packages와 관련 package를 최신 버전으로 업데이트 하여 중복되는 종속성을 제거하면서 개선 할 수 있었다.' 그런데 갑자기 IE에서 동작하지 않음 처음에는 단순히 기존에 index.js에 추가되어있는 import @babel/polyfill 이 제거되고 core-js로 통합되면서 발생한 문제인줄 알았다. import "react-app-polyfill/ie11"; import "react-app-polyfill/stable"; react-scripts에 포함되어있는 react-app-polyfill 을 추가하였는데도 마찬가지로 IE에서는 SCRIPT 에러가 발생하고 있었다..

개발/React 2020.09.18

React 에서 jest 를 이용한 API test 시 timeout 변경

API 에러 체크를 쉽게 하기 위해 테스트 대상인 API 리스트를 jest test 를 이용해 테스트하기로 했다. API 응답에러를 체크하기 위한 테스트이기 때문에 retry policy는 제거하고 순수 1회 요청했을 때 실패를 확인하려고 한다. API timeout error jest에서 timeout은 기본 5000ms ( 5초) 로 설정되어 있다. 간헐적으로 트래픽이 몰릴때 응답이 지연될 경우가 있는데 backend 쪽 timeout 에러가 아닌데, jest 설정의 기본 timeout 시간을 초과하여 에러가 발생한다. 이런 문제로 jest timeout 을 변경하면 되는데, 이 부분은 간단하게 변경가능하다 jest.setTimeout(10000); // in milliseconds https://j..

개발/React 2020.09.18

안드로이드 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에서 명령어를 실행하면 불 필요한 것들도 변경되니 주의 하여야한다.

반응형