모바일 하이브리드 앱 개발시 뒤로가기 기능의 해결안

서비스를 개발하면 당연히 브라우져기반과 안드로이드 애플 3가지를 항상 고민하게 된다. 많은 개발사에서 이를 해결하기 위해서 3명의 엔지니어가 필요하다고들 한다.

나 또한 초기에 이 3가지를 어떻게 통합할 수 없을까에 상당한 시간을 들였으나 해결하지 못했던것이 바로 뒤로가기의 어려움이였다.

브라우져에서는 뒤로가기와 앞으로가기 기능이 가장 많이 사용하는 버튼이다.

안드로이드에서도 뒤로가기 하드웨어의 기능이 비슷하게 존재한다.

아이폰은 레이어의 처리에서 뒤로가는 기능이 있다.

하지만 3가지 동작을 하나의 개발방식으로 처리하기 어려워서 OS별로 프레임을 만들고 내부데이타를 REST로 받아서 처리하는 형태를 많이 처리하고들 있지만 그 역시 3분야의 기술이 필요하다. 페이지를 이동하고 뒤로가는 페이지가 웹과 동일하게 만들수도 없고 모든 페이지를 다 웹처럼 만들었다 하더라도 이벤트 구조와 외부 프레임의 차이가 있기 때문이다.

모바일의 Overlay 의 뷰어는 브라우져에서는 존재하지 않는 못하는 문제와 back, forward가 모바일에 없지만 만흔 사용자의 습관은 바꿀수 없다는게 개발자를 괴롭히는 어려운 과제이다.

요즘 많이 쓰는 리액트와 코틀린으로 전환들을 많이 하지만 3가지를 완벽하게 호환하지도 않을뿐더러 배우는시간도 걸리고 역시나 시간이 지나면 또 다른 방법론이 나올것이다.

이 부분의 문제를 해결하기 위해서 javascript와 html 기본문법만으로 이벤트와 스택구조, 모바일 overlay view 기능을 조합하여 세가지 환경에 호환하는 모듈을 개발하였다. 상당기간 모듈안정화와 업그레이드를 통해 하나의 코딩방법으로 문제점을 해결했다.

지금은 그냥 웹만 개발해서 서비스를 오픈해도 안드로이와 아이폰 앱에 네이티비앱과 동일한 수준의 Overlay의 화면을 처리하고 있다. 당연히 1명의 웹개발로 모든 서비스를 개발하고 유지보수를 하고 있다. 시간이 좀더 허락된다면 개발방법론과 오픈라이브러리를 생각해볼려고 한다.

각자의 OS에 맞춰서 개발을 할수도 있겠지만 개발보다는 메인터넌스가 많은 서비스개발에서는 통합개발방법에 시간을 할애하는것이 바람직하다.