카카오내비 문서에 이 사항이 없더군요 이것때매 빌드 안됐음

카카오내비 1.1.28 버전 사용자입니다.
안드로이드 API Guide 보면
카카오SDK 사용하는데에 최소 버전이 상당히 낮은걸로 알고있는데,
카카오내비 library import 하면
어쩔 수 없이 compile sdk를 24로 맞춰야 되더군요.
스샷의 @TargetApi 어노테이션 좀 참고해주시고요
하위 버전에선 VERSION_CODES.N 이란게 전혀 존재가 안하니까
빌드도 안됐어요. 문서에 추가라도 해주세요

APIGuide 는 Android 4.4.2에서 작성이 되었다는데 과연 ?? 될까요 ?
적어도 새 유형의 API 추가 하실때 제발 검토좀 하고 추가해주세요.

모든 앱 개발자가 complie sdk를 다 바꿀 수도 없는 노릇이잖습니까
안드로이드 최신버전에 대한 dependency 좀 제거해주세요

API 가이드의 세팅부분이 업데이트가 안되어 있었네요 ㅠ.ㅠ 죄송합니다. 해당 부분은 수정하였습니다 :slight_smile:

하지만 안드로이드 최신버전에 대한 depdendency를 제거해달라는 의견은 조금 더 고민이 필요할 것 같아서요.

https://medium.com/google-developers/picking-your-compilesdkversion-minsdkversion-targetsdkversion-a098a0341ebd#.aalcisl7l

compileSdkVersion
compileSdkVersion is your way to tell Gradle what version of the Android SDK to compile your app with. Using the new Android SDK is a requirement to use any of the new APIs added in that level.
It should be emphasized that changing your compileSdkVersion does not change runtime behavior. While new compiler warnings/errors may be present when changing your compileSdkVersion, your compileSdkVersion is not included in your APK: it is purely used at compile time. (You should really fix those warnings though — they were added for a reason!)
Therefore it is strongly recommended that you always compile with the latest SDK. You’ll get all the benefits of new compilation checks on existing code, avoid newly deprecated APIs, and be ready to use new APIs.
Note that if you use the Support Library, compiling with the latest SDK is a requirement for using the latest Support Library releases. For example, to use the 23.1.1 Support Library, you must have a compileSdkVersion of at least 23 (those first numbers need to match!). In general, a new version of the Support Library is released alongside a new platform version, providing compatibility shims to newly added APIs as well as new features.`

위 링크에서 인용된 글을 보시면 다양한 이유로 항상 최신 버전의 SDK로 컴파일하는 것을 강력하게 추천한다고 되어있습니다.

http://stackoverflow.com/questions/26694108/what-is-the-difference-between-compilesdkversion-and-targetsdkversion
http://stackoverflow.com/questions/36484074/is-shouldoverrideurlloading-really-deprecated-what-can-i-use-instead

위 두 링크를 보셔도 비슷한 얘기가 나오는 것을 알 수 있습니다. 두번째 링크에서는 해당 메소드의 경우를 얘기하고 있고요. SDK 개발 입장 쪽에서는 새 OS 버전이 나올 때 어떤 코드가 deprecate되는지 신경을 쓸 수 밖에 없는데요. 새 버전 대응을 할 때 deprecate된 코드를 처리해주지 않는다면 나중에 정말 해당 메소드가 없어졌을 때 한번 더 대응해야 하는 번거로움이 있기 때문에 deprecate되었을 때 처리를 해줘야 한다고 생각하고 있습니다. 두번쨰 링크에 달려있는 아래의 댓글에서도 비슷한 얘기를 하고 있고요~

If you want to be future-proof, you could actually override BOTH methods. That way your app will continue to work on < 21, but you wll be ready to go once they do fully deprecate the old method`

저도 compileSdkVersion은 최신으로 유지해야 한다는 위 글들에 동의하는 바인데, 개발자님께서 혹시 compile sdk를 최신으로 유지하시지 않는 특별한 이유가 있으신지요? 제가 틀린 부분이 있다면 지적해 주시면 감사하겠습니다 :slight_smile: