본문 바로가기
Android 개발/Android

Android4를 지원하지 않는 라이브러리들 정리 # API21 이상

by Developer88 2020. 8. 5.
반응형

안드로이드 개발자들에게 많이 쓰이는 라이브러리인 OKHttp나 Retrofit에서는,

안드로이드5미만의 기기를 지원하지 않겠다고 합니다.

실제로 GalaxyS3같은 안드로이드4기기의 사용자들은 많이 줄어들고 있기는 한데요.

어떻게 해야할까요? 포기해야할까요?

우선 현재 기기들의 API별 분포부터 보도록 하겠습니다.

 

1. API21이하(Android5미만)를 포기해야 할까?

Android Studio에서 Create New Project로 프로젝트를 생성하려고 하면,

Minimum SDK를 설정해야하는 부분이 있는데요.

바로 아래에 Help me Choose라는 링크가 있는데, 이를 클릭하면 아래와 같이 가장 최신의 버전별 기기분포를 볼 수 있습니다.

 

일부 라이브러리들이 API 21이상을 지원하겠다고 하고 있는 상황인데요.

API Level16인 안드로이드 4.1을 Minimum SDK로 설정하면, 99.8%의 기기를 지원하게 됩니다.

이 경우, 전체 사용기기의 94.1%만 지원하겠다는 것이 됩니다.

 

 

 

이러한 상황에서 개발자들은 5%정도의 사용자에 해당하는 API 21미만의 기기들을 버리는 것을 쉽게 선택하기 힘든데요.

어떻게 대응해야 할지 알아보도록 하겠습니다.

1. OKHttp

가장 많이 사용하는 HTTP클라이언트중 하나이면서도,

최신 버전의 라이브러리에서는 API21이상만 지원한다고 하였습니다.

정확히는 3.13버전이상에서는 API21이하의 기기에서는 Exception이 나게 되어있습니다.

 

현재 최신버전은 무려 4.8.0이구요.

API21미만의 기기에 대한 지원은,

3.12 브랜치에서 2020년 말까지 마이너 버그픽스를 해 준다고 합니다.

21년도가 되면, 더 이상 그런 지원을 하지 않겠다는 것 이지요.

가장 최근에는 20년도 5월에 3.12.12버전을 릴리즈 해 주었네요.

 

 

2. Retrofit

같은 스퀘어사에서 만든 라이브러리이므로,

API21만 지원하는 것을 어렵지 않게 추측해볼수 있겠지요.

 

어느날 갑자기 테스트용 Android4폰에서 아래와 같은 Exception을 보게 될지도 모르는데요.

아래 이미지만 보시면, OKHttp때문이 아닐까 하실지도 모르지만, 아래는 Retrofit을 최신버전으로 Implement한 결과입니다.

다시 예전 버전으로 바꾸니 정상적으로 동작하였습니다.

 

 

 

Retrofit의 홈페이지를 살펴보면 언젠가부터 아래와 같이 Android API 21이상을 요구한다고 나와있습니다.

 

 

불친절하다고 느낀것은,

OKHttp에서는 기존의 하위버전지원 앱을 위해서 3.12브랜치를 이용하라고 가이드가 되어있는데요.

Retrofit에서는 그런 가이드글을 찾기가 어렵습니다.

 

현재는 아래 버전(2.6.4)까지는 API21미만에서도 정상적으로 동작을 하고 있습니다.

다만, OKHttp처럼 2.6 브랜치를 계속 지원하거나 하고있지는 않는 것 같습니다.

 

com.squareup.retrofit2:retrofit:2.6.4

 

3. CameraX 라이브러리

구글의 Jetpack support library인 CameraX라이브러리도 API21이상을 요구합니다.

아이러니하게도 하위호환성을 강점으로 내세우고 있기는 합니다.

(물론 실제로 제조사별로 특수한 코딩을 하지 않아도 되므로, API21까지의 하위호환성은 매우 좋습니다.)

그럼에도 불구하고, 기존에 API 21미만의 구현폰의 사용자가 많은 앱이라면, 기존의 Camera라이브러리를 대체해서 사용하기는 부담스러운 것이 사실이지요.

 

4. 정리

라이브러리 버전을 확인하고 최신버전으로 업데이트하는 것은 매우 중요할텐데요.

버전별로 업데이트 내용이나 대응해야될 부분에 대해 자세히 설명하지 않는 라이브러리를 사용할 때는 매우 주의가 필요합니다.

자칫 비율은 적더라도 기존 사용자들이 사용을 하지 못하고,

불편했던 사용자경험을 기억하게 만들수 있을 테니까요.

 

결국에는 강제적으로 해당 라이브러리를 쓰는 저희들은 선택을 강요받고 있다고 볼수도 있겠네요.

저도 현재 배포한 앱의 사용자중 200명이 채 못되는 분들이 android 4.4버전이하를 쓰고 계시는데요.

어떻게 대응해야 할지 고민이 됩니다.

그동안 프로덕트를 애용해주셨던 사용자분들이 불편을 겪을 수 있기 때문에 포기하는 것이 쉽지만은 않습니다.

 

특히나 OKHttp나 Retrofit처럼 대안을 찾기가 어려운 경우는 더욱 그러한 것 같습니다.

슈퍼개발자들이 모인 좋은 라이브러리일수록 좀더 스무스한 접근이나 가이드가 이루어졌으면 좋겠습니다.

 

728x90

댓글