Cordova Pros & Cons

Cordova


최근에는 Feedly 를 이용하여 제가 주로 보는 글을 RSS 형태로 보고 있습니다. 매번 사이트에 들어가서 확인하기도 힘들고 해서 이용하는 굉장히 편리한 어플리케이션 입니다.

오늘 본 글 중에 Cordova의 정의, 동작원리, 장점, 단점등에 대한 내용중 장, 단점과 Phonegapcordova 에 대한 내용만 정리해보려고 합니다.

정리 내용중에는 제 경험도 일부 포함하였습니다.

원문: http://code.tutsplus.com/tutorials/an-introduction-to-cordova-basics–cms-25146

장단점

새로운 프로젝트에 cordova 또는 Phonegap을 도입하려고 한다면 아무래도 집중적으로 살펴야 하는 부분이 단점에 대한 부분인거 같습니다.

신경쓰지 않으면 나중에 아주 힘든 상황이 발생될 수 있습니다.

장점

1. 쉽게 배울 수 있다.

cordova는 HTML페이지만 잘 만든다면 바로 사용할 수 있습니다.

2. 네이티브 API 접근 가능

카메라, 연락처, 위치정보, 미디어등 기기에서 제공하는 항목에 대해 접근이 가능합니다.

3. 공짜

제가 생각하는 가장 중요한 이유입니다.

4. 오픈소스

5. 다양한 커뮤니티 및 많은 사용자

cordova에 관련된 이슈에 대해 문제 해결을 하기 위해 검색하면 많은 결과가 나옵니다. 비슷한 이슈사항을 가진 사람이 많으면 버그도 빠르게 수정될 수 있습니다.

6. 다양한 플랫폼 지원

안드로이드, iOS, Windows에 모두 지원되는 어플리케이션을 단일 코드로 작성할 수 있습니다.

단점

단점에 대한 경험을 제가 아는대로 공유해보겠습니다.

1. 문서 미흡

2. 네이티브 소스보다 느리다.

당연한 내용이지만 cordova 로 어플리케이션을 개발하면서 네이티브 어플리케이션과 동일한 성능을 나타낸다는 것은 어불성설입니다.

cordova는 하나의 소스로 다양한 플랫폼을 지원하는 편의성이 있지만 거기에 따른 비용을 무시할 수는 없습니다. 이것은 다른 하이브리드 어플리케이션도 비슷하다고 생각합니다.

3. 프레임워크

iOS 네이티브 어플리케이션의 경우 UITableView 형태의 구현이 정말 쉽습니다. 그렇지만 이와 같은 형태를 Phonegap으로 구현하기 위해서는 네이티브보다 훨씬 어려운 방법이 동원되어야 합니다.

또한 네이티브에서 사용되는 페이지 전환 애니메이션 효과를 나타내기 위해서도 많은 코드및 꼼수가 포함되어야 합니다.

cordova가 HTML 페이지를 Webview 에서 표시하는 형태이기 때문에 어플리케이션 사용시 네이티브 어플리케이션과 유사하게 만들어야 한다면 많이 어렵습니다.

4. 플러그인 버그

iOS 9 버전이 발표되며 고객사의 요구사항에 어플리케이션 대상에 iOS 9이 포함되었습니다. 요청에 대해 대응을하고자 빌드를 하였지만 iOS8에서는 정상동작을 하지만 iOS 9에서 잘못 표시되는 항목이 발생하였습니다.

원인은 포함된 플러그인의 버그 였습니다. 저희가 선택할 수 있는 방법은 플러그인이 업데이트 되기를 기다리는 방법과 플러그인을 사용하지 않고 빌드된 파일을 변경하는 방법이었습니다.

결론은 빌드된 파일을 변경하였습니다. 3rd 파티 플러그인의 경우 개발자가 빠르게 대응해준다면 고마운 일이지만 그렇지 않다면 언제 개선될지 모르기 때문입니다.

5. 모든 플랫폼에 동일하지 않다

폰갭으로 빌드한 결과물을 실제 단말에 올려보기 전에는 화면 표시 및 다른 부분이 어떻게 동작할지 예상할 수 없습니다. iOS에서 동작이 잘되니까 Android에서도 잘되겠지라는 생각은 금물입니다.

폰갭(Phonegap)과 Cordova

Phonegap API를 참조하다 보면 링크가 cordova 페이지로 넘어가는 경우가 많습니다. 간단하게 생각하면 cordova를 한번 감싼게 Phonegap이라고 생각됩니다.

두개를 로컬에서 빌드한다면 명령어만 다르고 나머지는 대동소이합니다.

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중