본문 바로가기

안드로이드36

[Android] 딥링크(Deep Link) 파헤치기 딥링크(Deep Link)란? : 특정 콘텐츠(페이지)로 바로 연결되는 링크를 말합니다. 예를 들어 안드로이드 Developer 사이트 주소는 아래와 같습니다. https://developer.android.com/ 하지만 안드로이드 스튜디오 설치 안내 페이지로 바로 이동하는 링크를 전달하고 싶다면 아래의 링크와 같이 바로 이동가능한 딥링크를 이용하는 것입니다. https://developer.android.com/studio/install 딥링크는 일반적으로 아래와 같이 스키마(scheme)와 호스트(host) 및 경로(path)의 두 부분으로 나뉘어져 있습니다. {scheme}://{host_path} 모바일에서는 2가지의 경우의 수가 존재합니다. 첫째. 모바일 앱이 설치되어 있는 경우, '딥링크' .. 2020. 12. 9.
WebView에서 외부 브라우저 새 창 띄우기 방법 안드로이드 개발을 진행하다 보면, WebView을 사용하는 일이 많다. 아래와 같이 뉴스 기사의 원문링크나, 하이퍼텍스트 기능과 같이 링크가 포함된 키워드를 클릭하면 새 창이 띄워지는 것을 원할 때가 있다. 원문링크 그러나 shouldOverrideUrlLoading()을 사용하기 위해 webView.setWebViewClient(new WebViewClient()); 을 사용할 경우 자동으로 외부 브라우저로 내용을 보여주지 않는다. 이러한 경우에는 다음과 같이 처리하면 외부브라우저로 내용을 띄울 수 있다. 1. 새 창을 띄우기 위해선, webView.getSettings().setSupportMultipleWindows(true) 로 설정 2. setWebChromeClient() 함수 내 onCrea.. 2020. 11. 14.
Android Studio 4.1.1 업데이트 이후 오류 발생 및 해결책 안드로이드 개발을 진행하다 보면, Android Studio 개발 툴 우측 하단에 조그맣게 팝업이 뜨는 것을 확인할 수 있다. Gradle 버전 업데이트 혹은 종종 Android Studio 버전 툴 업데이트이다. 예전에는 업데이트 하는 시간을 기다리기 귀찮아서 계속 미루었는데, 현재는 팝업창이 뜰 때 즉각적으로 업데이트를 진행한다. 왜냐하면 최신 버전에 즉각적으로 응대해야, 나중에 일이 적어지는 것을 체감했기 때문이다. Android Studio 4.1.1 최신 버전으로 업데이트하고, Gradle 버전도 그에 맞게 최신 버전으로 업데이트해주었다. 업데이트 한 이후에, 윈도우 작업표시줄에 보이는 아이콘이 변화되었음을 알아챘다. Build을 정상적으로 진행하고, 실행을 하려는 순간 에러가 발생했다. # 에.. 2020. 11. 14.
Caused by: java.lang.IllegalStateException: Expected Android API level 21+ but was 19 - 오류 해결책 (Feat. Android Query) 안드로이드 개발은 버전이 업데이트되면서, 네트워크 관련 라이브러리들도 파편화되거나 통합되기 마련이다. 이 과정에서 일부 라이브러리는 deprecated 되면서, 특정 버전 이전에는 지원을 하지 않는 이슈가 발생했다. 간혹,, 잘 되던 서비스가 특정 안드로이드 버전에서 막히거나 오류가 생기면 10에 4 정도는 라이브러리 지원이 멈춘 영향 과거 네트워크/이미지 처리를 간편하게 도와주는 라이브러리로 AQeury(android-query)가 강세였다. 이로 인해, 수많은 프로젝트에서 AQeury를 사용하게 되었다. 하지만, 현재는 Retrofit이 대세가 되면서 2014년 2월 이후로 AQuery 라이브러리의 업데이트는 멈추었다. 나 또한 최근 서비스를 업데이트 하면서 아래와 같은 Error Code를 접하게 .. 2020. 10. 30.
Didn't find class "com.google.firebase.provider.FirebaseInitProvider" 오류 해결책 안드로이드 개발과정에서 targetSDKVersion을 상향 조정하는 것은 피할 수 없는 숙명이다. 10월 30일 기준으로 보았을 때, 안드로이드 개발자라면 모두 targetSDKVersion 29에 최적화하여 앱 개발을 진행 중일 것이다. 2020년 11월부터는 기존에 서비스 중인 앱도 업데이트 시에는 무조건 targetSDKVerison을 29로 업그레이드해야 한다. * 안드로이드 10 변경된 사항을 참고하면서 앱 서비스에 영향을 미치는 부분이 없는지 점검은 필수이다. 보안상의 이슈와 서비스 최적화를 위해 targetSDKVersion 29로 상향 후, 업데이트를 한 다음날 오류가 접수되었다. 문제는 바로 Didn't find class "com.google.firebase.provider.Fireb.. 2020. 10. 30.
[Https 오류] Android API level 21+ but was 19 in Android 어느 날, 정상적으로 서비스 중인 앱에서 로그인이 되지 않는다는 문의전화가 왔다. 확인해보니, 갤럭시 맥스 (Android 4.4)에서만 로그인 과정에서 아래와 같이 에러가 발생하는 것이다. 보안상, 로그인 API는 HTTPS 도메인과 통신하는데 Android 5.0 이상은 정상동작하고 그 미만의 버전에서만 오류가 발생했다. Caused by: java.lang.IllegalStateException: Expected Android API level 21+ but was 19 구글링 해본 결과, OkHttp에서 TLS 스택이 정상적으로 지원되는 버전이 Android 5.0 이상이었다. 즉, Android 4.4 이하 버전에서는 별도로 OkHttp가 지원될 수 있도록 build.gradle 설정값을 변경해.. 2020. 10. 19.
드로이드 나이츠(DroidNight) 1일차 세션 후기 안드로이드 개발자라면 한 번쯤 들어봤을 만한 '드로이드 나이츠' 2020 세션이 드디어 시작됐다. 기존에는 4월에 진행될 예정이었으나, 코로나19로 인해 오프라인 방식으로 개최될 수가 없게 되었다. 그래서 9월에 온라인 세션의 형태로 미루어지게 되었다. 시작하는 날인만큼 실시간 Youtube 방송의 형태로 진행되었다. 코로나 19로 인해 비대면 서비스가 활성화 되면서, 다양한 기술 세션들이 온라인으로 진행되어 집에서 편하게 접할 수 있었다. 이러한 점에 있어서는 뜻밖의 장점이다. Summary 개발자로서 현재 주기적인 리팩토링의 중요성에 대해서 느끼고 있었다. 때마침 발표자 분들도 주기적인 리팩터링과 때에 따라서는 리스트럭쳐(ReStructure)도 병행할 필요가 있다고 강조해주셨다. (주기적인 리팩토링.. 2020. 9. 5.
[NAVER TECH CONCERT] 네이버 테크 콘서트, 현업 개발자들의 노하우 꿀팁들 놓치면 후회 ! 올해 3회차를 맞이하는 NAVER TECH CONCERT 행사가 시작되었다. 작년(2019년)까지만 해도, 오프라인에서 행사가 진행되어서 지방에 거주하고 있는 나로서는 행사 당일 참가하기가 어려웠다. 하지만 올해(2020년)는 코로나 19로 인해 비대면 방식(온라안)으로 행사가 진행된다. * 행사명 : 네이버 테크 콘서트 * 일자 : 2020. 08. 19(수) ~ 08. 20(목) 2일간 진행 (13:00 ~) 나로서는 편하게 네이버테크콘서트를 즐길 수 있는 좋은 기회가 되었다. 2020년 네이버 테크 콘서트는 총 2일 (1DAY, 2DAY)로 구성되었다. [DAY 1] 세션 : Android / iOS 을 주제로 한 세션들로 구성되어있다. - 네이버 개발자들의 다양한 꿀팁이 있으니, 현업 개발자/개발.. 2020. 8. 20.
[알뜰Tip] Debug Mode 반복 발생 오류 해결법 Android Studio에서 버그 개선을 위해 디버그 모드(Shift + F9)를 이용할 때가 자주 발생한다. 그런데, 어느 순간부터 일반 앱 실행(Shift + F10)을 했는데도 자동으로 디버그 모드로 실행되어서 종종 앱을 재설치해서 자동 디버그 실행 모드를 해제하는 경우가 많았다. 이럴 때, 해결책은 CMD(커맨드) 창에서 "adb shell am clear-debug-app" 명령어를 입력하면 깔끔하게 해결된다. 2020. 8. 1.