본문 바로가기

분류 전체보기

(33)
안드로이드 개발 - (1) Android Studio 설치 및 설정 안드로이드 개발은 Android Studio를 설치해야 한다. 아래 Android Developer 사이트에 접속해서 Android Studio를 설치하도록 한다. 현재 3.5버전을 사용 중(안정화 버전)이며, 3.6버전으로 업데이트가 가능하다. Android Studio는 IntelliJ IDEA 기반 안드로이드용 개발 툴이다. https://developer.android.com/?hl=ko Android 개발자 | Android Developers Android 앱 개발자를 위한 공식 사이트입니다. Android SDK 도구 및 API 문서를 제공합니다. developer.android.com 다운로드를 클릭하여 OS에 맞는 설치파일을 다운로드 받아 설치하면 된다. 기본적으로 JRE 1.8을 제공하..
RxJava - (1) 소개 및 초기 설정 RxJava 리액티브 프로그래밍(스다 토모유키, 길벗)를 공부하면서 정리하는 포스팅입니다. https://g.co/kgs/9FQKSc/ RxJava 리액티브 프로그래밍 리액티브 프로그래밍의 기본 개념을 잡자! 리액티브 프로그래밍 라이브러리의 표준 사양인 Reactive Streams를 소개하고 RxJava를 시작하는 데 필요한 람다식과 비동기 처리에 관한 배경 지식은 물론 RxJava의 메커니즘과 핵심 연산자의 작동 원리, RxJava로 구현한 ... www.google.com Reactive, 반응형은 데이터의 비동기적 처리를 위해 고안된 것으로 현재 다양한 프로그래밍 언어에서 제공되고 있다. 아래는 ReactiveX(Rx) 사이트이며, 보다 자세한 내용은 홈페이지를 참고하기 바란다. http://re..
기상청 API 변경사항 적용 및 후기 이번에 기상청에서 기존에 제공하던 API에 대해 전체적으로 대대적인 수정을 한 것 같다. 기존에 기상청에서 제공하던 API중 사용하던 것은 아래와 같다. - 동네예보 : 시간별 날씨예보 제공(1시간별, 3시간별 등) - 중기예보 : 주간 날씨(3일 후 기상정보) - 생활지수 : 생활기상지수 제공 - 기상특보 : 기상특보 제공 기존에 제공 중이던 API는 3개월 후 (2020.04.28) 폐기되며, 새로 제공되는 API를 적용할 것을 공지하고 있다. 아래는 해당 내용에 대한 공공데이터포털의 공지사항 내용이다. https://www.data.go.kr/information/NOTICE_0000000001605/notice.do 불러오는 중입니다... 적용하고난 후기 장점 1. API별 제공 포맷 통일 가장 ..
RecyclerView 사용시 끊김현상 없애는 방법 안드로이드 앱에서 각종 리스트를 사용자에게 보여줄 경우가 있다. 이 때 RecyclerView를 사용해서 보여주게 되는데 새로운 목록을 불러오거나 목록의 내용이 변경될 경우 RecyclerView가 깜빡이면서 전체 리스트가 고쳐지는 경우가 있다. 이는 RecyclerView의 Adapter 구현을 정확히 하지 않았기 때문에 발생하는 현상이다. Adapter에서는 아래와 같은 메서드를 제공해 Adapter의 item들을 새로고침해주는 방식을 제공한다. notifyDataSetChanged() // 해당 Adapter의 모든 데이터를 변경 (전체 새로고침) notifyItemChanged(position: Int, payload: Any?) // position의 데이터에 대해 변경 notifyItemRan..
안드로이드 카메라, 갤러리 연동 Android 앱에서 카메라로 사진을 찍어 가져오거나, 갤러리에 저장된 사진을 가져오는 방법을 소개하려 한다. 먼저 카메라 사용을 위해서는 권한 획득이 필요하다. 필요권한은 아래와 같다. android.permission.CAMERA android.permission.WRITE_EXTERNAL_STORAGE android.permission.READ_EXTERNAL_STORAGE 위의 권한을 AndroidManifest.xml에 추가해준 후, 카메라 권한 및 외부 저장소 권한의 경우 마시멜로 이후 (API 23, Android 6.0) 사용자에게 직접 권한을 요청해야 한다. 관련 내용은 아래의 Android Developer 에서 자세하게 확인할 수 있다. https://developer.android...
안드로이드 앱 배포시 '지원되는 기기 0개' 오류 해결 최근 앱 내부 테스트를 하기 위해 APK를 업로드 했는데 지원되는 기기가 0개여서 내용을 찾아보고 공유하고자 올리게 되었다. Google play console에서 APK 배포시 아래와 같이 APK에 대한 상세 정보를 볼 수 있다. 나에게 해당되는 원인은 카메라 사용시 아래 의 android:required 속성을 false로 주지 않아서 발생하였다. 해당 속성은 앱에서 camera 하드웨어 사용시 기기에서 해당 하드웨어가 없을 경우 구글플레이에서 '해당 앱을 지원하지 않는 기기 입니다.' 란 식으로 설치 자체가 되지 않는다. 기본값은 true기 때문에 false로 설정해줘야 다운로드가 가능해진다. 아래는 적용 후 APK 상세 정보이다.
Android: 프로그레스바(ProgressBar) 회전하지 않는 문제 해결 기본적으로 앱을 생성하면 발생할 확률이 매우 적다. 원인은 Androidx를 적용하면서 dependency 정리중 'com.google.android.material:material:1.0.0'를 삭제해서 발생하였다. Androidx는 추후 정리해서 포스팅할 예정이지만 간단히 설명하면 Google I/O 2018에서 발표된 Jetpack 오픈소스 프로젝트이다. 참고 링크: https://developer.android.com/jetpack/androidx AndroidX 개요 | Android Developers AndroidX는 Android 팀이 Jetpack 내에서 라이브러리를 개발, 테스트, 패키징, 버전 관리, 출시하는 데 사용하는 오픈소스 프로젝트입니다. AndroidX는 기존 Android ..
Android: ERR_CLEARTEXT_NOT_PERMITTED 오류 웹뷰를 사용하다 보면 'ERR_CLEARTEXT_NOT_PERMITTED' 를 볼 수 있다. 원인은 앱이 cleartext를 허용하지 않았기 때문인데, 앱이 안드로이드 9(Pie, API 28)이상을 타겟팅하는 경우 기본적으로 usesCleartextTraffic 속성 기본값이 false이다. 따라서 TLS를 사용하지 않는 도메인의 경우, 네트워크 통신이 기본적으로 불가능하다. 아래의 방법 중 하나를 사용해서 처리를 해주면 정상적으로 통신이 가능하다. 1. useCleartextTraffic 속성값 변경 AndroidManifest.xml에서 의 useCleartextTraffic 속성값을 true로 변경한다. 해당 방법은 매우 간단하지만 Android Developer에서는 추천하지 않는 방법이다. 모..