Monaca를 업무로 1년 사용한 소감

NIJIBOX Advent Calendar의 19일째 기사입니다.

HTML5 하이브리드 앱 개발 환경인 Monaca를 1년 정도 업무로 사용하고 있었으므로
Monaca에 의한 스마트 폰 앱 개발에 관한 개인적인 감상을 쓰고 싶습니다.

개인적으로 좋다고 생각하는 곳



학습 비용이 낮음



HTML+CSS+JavaScript로 만든 페이지를 그대로 앱에 사용할 수 있습니다.
디바이스 기능을 사용할 때만 전용 API를 사용하지만 학습 비용은 낮습니다.
(옛날 Titanium이라는 비슷한 기술을 만났을 때는 독자 SDK의 학습으로 좌절했습니다)

간단한 앱이라면 바로 만들 수 있습니다.



Hackason과 같은 이벤트에서 간단한 프로토 타입을 만들 때 Monaca에서 개발합니다.
2~3시간 정도 안드로이드/iOS 양쪽의 빌드 완료 앱까지 완성하고 있습니다.

실제 안건에서 사용하여 보는 감상



WEB 제작과 같은 팀으로 그대로 개발할 수 있다



앱 전문 엔지니어는 없지만 웹 제작과 같은 팀에서 개발할 수 있습니다.
HTML+CSS는 디자이너, JavaScript는 엔지니어라는 상태로 문제 없이 분업할 수 있다고 생각합니다.

앱 기능 검증에 디버거가 매우 편리



라이브 로드 기능으로 코드 수정이 실시간으로 반영되므로 확인 작업이 매우 어렵습니다.
스마트폰과 PC를 USB 연결하면 Chrome Dev Tools를 사용할 수 있어 디버깅 작업도 효율적으로 할 수 있었습니다.

클라우드 IDE에서는 팀 개발이 어려움



팀에서 개발할 때 여러 사람이 같은 프로젝트를 편집하면 디그레가 발생할 가능성이 있었기 때문에
프로덕션 코드에 직접 노출되는 클라우드 IDE는 이용하지 않고 Monaca Localkit에 의한 로컬 개발을 실시하고 있습니다.

앱에 따라 미리보기 기능을 사용할 수 없습니다.



보기 확인이 쉬운 WEB 미리보기 기능이지만 Cordova API 또는 크로스 도메인 Ajax 요청
사용한 앱이라면 움직이지 않게 되었기 때문에, 평상시는 Monaca 디버커를 사용하고 있었습니다.

버전 관리 연계 기능이 GitHub밖에 없다



내 프로젝트에서는 Backlog의 Git 저장소를 사용했기 때문에 제휴 할 수 없었습니다.
평소에는 Monaca Localkit을 사용하여 로컬 환경에서 Git에서 관리 및 개발할 수 있습니다.
Monaca CLI를 사용하여 클라우드 프로젝트와 동기화하는 작업을 수행합니다.

백엔드 서비스의 PUSH 알림 기능 수가 적습니다.



Gold 플랜(월액 5000엔)에서도 월 5만건, Platinum 플랜(월액 8000엔)에서도 월 10만건으로 적습니다.
니프티 mBaaS라면 월 200만회까지 무료로 사용할 수 있으므로, 개인적으로는 여기를 추천합니다.

표준으로 제공되지 않는 기능도 Cordova 플러그인으로 확장 가능



타사 플러그인이 많이 공개되어 있으므로 사용하여
쉽게 기능을 확장할 수 있습니다. (골드 플랜 이상)
Java나 ObjectiveC의 지식이 있으면, 자작의 플러그인도 만들 수 있습니다.

외부 플러그인을 사용하기 시작하면 유지 보수가 어려워집니다.



세상 그런 달콤하지 않습니다. 타사 플러그인을 사용하는 경우,
Monaca의 Crodova 버전을 올렸을 때 움직이지 않거나 빌드 실패로 고생했습니다.
안이하게 공식 이외의 플러그인에 뛰어들면 보수 작업으로 아픈 눈에 띈다.

빌드 작업 및 앱 배포에 번거로움



릴리스 빌드를 여러 명에게 배포하여 QA 작업을 실시하고 있다면, 보고 → 수정 → 배포 사이클이
빈번하기 때문에, 통상의 작업 순서라면 빌드와 배포에 많은 수고와 작업 시간이 발생하고 있었습니다만,
이 문제는 DeployGate와 Jenkins를 결합한 CI 환경을 구축하여 크게 개선되었습니다.

자세한 내용은 이 문서를 참조하세요.

총괄



  • 향후는 Cordova 자체의 이해도 깊어질 필요가 있다

  • Cordova 플러그인을 만들 수 있으면 자유도가 넓어집니다

  • 결국은 네이티브 API를 사용하기 위해 Java와 ObjectiveC 학습이 필요합니다.
  • 좋은 웹페이지 즐겨찾기