본문 바로가기

앱개발이야기

[앱개발스토리] 플러터로 만든 크로스플랫폼 앱, 가장 큰 단점

타임스냅은 플러터로 개발한 앱이라서 안드로이드와 아이폰 모두에 동작하기는 하지만, 양쪽 모두 론칭하고 관리할 자신이 없어서 구글플레이스토어에만 론칭 했다. 처음에는 마케팅이라는 거대한 산을 제대로 인지하지 못했기에 iOS에도 동시에 론칭 할까 고민을 했던 것이 사실인데, 지금 생각하면 안드로이드에만 론칭한게 잘한 것 같다.

플러터가 아무리 자기 스스로를 크로스 플랫폼 앱 개발 툴킷이라고 부르지만, 결국 개발이 조금만 진전되면 그때부터는 안드로이드와 iOS 부분에 자잘하게 손이 많이 간다. 뭐 자세히 알지는 못하더라도 일단 어떤 패키지를 사용할때 어떤 플랫폼에는 어떤 문제 문제가 있다던지, 문제가 생겼을 때 해결책이 다르다던지 하는 것들이 상상 이상으로 많다. 지금은 iOS관련해서 해결해야 할 문제는 그냥 메모장에 적어두고 방치하고 있고, 안드로이드 관련 부분만 해결하는 것에 집중하고 있다. 그런데도 이게 보통 일은 아닌것 같다. 나의 경우는 결국 자바 코드까지 만져야 하는 경우도 있었다.

그리고 그 문제가 플러터 SDK나 공식 패키지와 관련 되어 있다면, 더 큰 문제가 된다. 우선 구글팀의 대응이 상당히 느리다는게 큰 문제이다. 비록 깃헙을 통해 오픈소스로 이루어져 있고, 외부 개발자들의 피드백을 열심히 대응하고 있는것은 확실하다. 그러나 여전히 외부 커미터의 역할은 상당히 제한적이고, 그나마도 기회가 주어지지는 않는다. 그 의미는, 문제가 발견되면 구글팀이 해결해서 릴리즈 할 때까지 손 빨면서 기다려야 한다는 것이다. 내 앱에는 매우 심각한 이슈인데 구글팀의 우선순위에서 낮으면 정말 답 없다.

이번에도 특정 형태의 앱에서는 론치 블로커인 버그가 하나 있는데, 2달째 수정되지 않고 있다. 그것도 내가 아주 열심히 푸쉬하고 재현하기위한 코드까지 구현해서 보내줘서 그나마 지금 막 디버깅이 시작된 것 같다. 이 버그때문에 타임스냅은 옛날 버전의 플러터 라이브러리를 아직도 사용하고 있다. 업그레이드를 하는 순간 핵심 기능이 동작하지 않기 때문이다. 이에 수반하는 수많은 문제들은 앱 개발자들이 다 떠안고 가야한다. 중앙집권적인 오픈소스로 언제까지 이 다양한 문제들에 대응할 수 있을지 궁금하다.

플러터가 제공하는 기본 카메라 패키지 경우도 사정은 비슷하다. 애초부터 너무 조악하게  만들어졌고, 사람들의 피드백이나 건의사항에도 대응하지 못하고 지지부진 하다가 결국 완전 대공사를 하기로 하고, 카메라 패키지는 기능추가가 거의  중단 된 상태이다. 카메라는 수많은 앱의 핵심 기능인데, 이부분이 이렇게 허술하게 진행된다는게 믿어지지 않는다. 타임스냅도 플러터 카메라 패키지의 심각한 버그때문에 코드를 포크해서 사용하고 있다. 개발진은 이 부분을 알고있지만 어찌 된 영문인지 고치지를 않는다. 긴 논의가 있으나 생략하고, 연말에나 새버전이 나온다는것과, 추후에도 CameraX를 사용할 수 없을수도 있다는 것.

이런 문제들 때문에 ReactNative로 다시 개발할까 심각하게 고민중이기도 하다.