기존의 SupportLibrary를 사용하시는 분들에게는

AndroidX로 마이그레이션 해야한다는 사실은 정말 피곤한 일이 아닐 수 없습니다.

하지만, 구글의 SupportLibrary Revision을 보면 

이젠 더이상 업그레이드를 하지 않는다고 명시되어 있기도 하고,

계속 SupportLibrary를 고수할 수 없는일이지요.


오늘은 마이그레이션 하는 과정에 대해서 정리해보겠습니다.


1. AndroidX로 변경하기


참고로 AndroidX의 변경사항에 대해서는 아래 링크를 참고해 볼 수 있습니다.

>> https://developer.android.com/jetpack/androidx/releases/archive/androidx <<

2018년 9월을 기점으로 해서 스테이블한 1.0.0버전이 나와있는 상태라는 것을 알 수 있네요.


그냥 Library이름만 바꾸고 하면 되는 것도 아니고,

패키지명이 바뀌는 것이어서 손으로 일일이 바꾼다면 보통일이 아닐 것 같습니다.

다행히도 구글에서 마이그레이션을 쉽게 할 수 있도록,

안드로이드 스튜디오가 메뉴를 제공하고 있는데요.


이 메뉴를 실행하기 전에 먼저 SupportLibrary를 마지막 버전인 28로 업그레이드 해 놓는 것이 좋다고 합니다.

이미 28버전을 사용하고 계시다면,

아래와 같이 메뉴에서 Refactor > Migrate to AndroidX를 선택해 줍니다.

선택하기 전에 git에 미리 커밋해놓는것이 안전을 위해서 좋겠네요.




실행하면 아래와 같이 만일을 대비해서 zip파일을 만들것인지 물어봅니다.

구글이 만든 메뉴로 동작하는 것이어서 걱정없으실 수도 있겠지만,

마이그레이션에 실패했다는 개발자들도 보이므로 백업은 해두는 것이 안전할 것 같습니다.




그럼 원하는 파일 위치를 물어보고 그 위치에 zip으로 된 백업파일을 저장해 줍니다.

그런다음 Refactoring Preview를 통해서 바뀌는 것들에 대해서 알려줍니다.

저의 경우는 46개 파일에서 122개의 레퍼런스가 변경되는 군요.


이 단계가 별 거 아닌 것 같지만, 하나하나 열어서 보는 것을 추천합니다.

왜냐하면 import할 레퍼런스들만 수정한 것이 아니라, 다른 레퍼런스들을 건드려서 프로젝트를 오동작 하게 할 수 있으니까 말이지요.


이상이 없다면, 하단의 Do Refactor버튼을 클릭해 줍니다.




이제 build.gradle에 가보면 supportLibrary가 androidX로 바뀌어져 있는 것을 볼 수 있습니다.



다행히 빌드도 잘 되었고, 저의 경우에는 문제없이 마이그레이션이 잘 되었습니다.

하지만, 여러가지 문제들이 발생할 수 있으므로, 

QA과정을 거쳐서 레퍼런스 변경에 따른 문제가 없도록 확인하는 것을 추천합니다.


+ Recent posts