[TIL] expo-dev-client 사용시도 - 실패

햄스터아저씨·2022년 1월 3일
2

SDK 44로 업데이트 하고 난 뒤, 기존에 사용하던 명령어 expo start 가 제대로 작동하지 않기 시작함
이에 따라 expo에서 권장하는 개발방법인 expo-dev-client를 사용하는 방식으로 바꿔보고자 함.

expo-dev-client는?

Expo Go 가 아닌, 별도의 runtime을 만들어 실행함. Customize 된 Expo Go 를 만든다고 생각하면 됨.

사용순서는?

  1. eas build --profile development --platform android 명령어로 custom 개발런타임을 빌드.
  2. 빌드된 apk를 device에 설치
  3. 개발환경에서 expo start --dev-client 명령을 이용해 실행하면, device 에서 사용할 수 있다.

실제 시도결과

끔찍한 경험이었다. 2가지 이유가 있다.

  1. 개발용 앱과 제품용 앱이 구분되지 않음
    기존 개발 방식은 production이 device에 설치된 상태로, 개발은 Expo Go 앱으로 수행했기 때문에 개발된 제품을 쓰면서도, 별도의 개발이 다른 앱의 형태로 존재했다. 그래서 개발 상태인 앱과, 제품 상태인 앱이 서로 독립적으로 수행했기 때문에 아무런 문제가 없었는데, expo-dev-client를 사용하기 위해선 제품 상태인 앱을 지우고 개발상태인 앱을 설치해야 한다.
    즉, 개발과 제품이 구분이 안되게 되는데, 이는 내게 expo를 이용하게 했던 이유 중 하나를 없애는 것과 같다.

  2. 제대로 연결되지 않음.
    쨋든 사용을 해보기 전에는 평가할 수 없으므로, 원래 사용하던 앱의 데이터를 모두 백업 후 제품 앱을 삭제했다. 이후 새로 빌드된 껍데기 앱을 설치하는데 성공하고 expo start --dev-client 명령을 통해 실행을 시켰으나... 연결되지 않았다.
    분명 같은 네트워크임에도 성공하지 못하고 제품 개발이 불가능한 상태에 빠져, 결국 다시 지우고 제품용 앱을 재설치했다.

피드백

높은 확률로 내가 잘못 사용했을 가능성이 높다.
1. 이 방식을 적용하기 전에, 제품용 앱과 개발용 앱을 구분하는 방법을 먼저 찾아야 할 것 같다.
2. 동일 네트워크임에도 동작하지 못한 것은 여전히 이해되지 않는 부분인데, 이건 다른 공기계 device로 테스트를 우선 진행해야 할 것 같다.

여담

한번 앱을 삭제한 뒤 재설치를 한 영향 때문인지, 기존 방식이 다시 동작하기 시작했다.
Expo Go 가 망가졌다고 생각했던 건 reload를 시도하면 앱이 재시작이 되는게 아니라 터져서 그랬던 건데, 알고보니 Theme 같이 앱이 뜰 때 올라가는 종류의 ts는 원래 다이나믹한 수정이 불가능 한 것으로 보인다.

profile
서버도 하고 웹도 하고 시스템이나 인프라나 네트워크나 그냥 다 함.

0개의 댓글