안녕하세요. 벌써 가을이 가고 겨울이 오는거 같습니다.
오늘은 그간 제가 진행 했던 하이브리드 어플리케이션 개발에 대해 리뷰를 조금 하려고 합니다.
만약 하이브리드 어플리케이션 개발을 생각중이거나 현재 개발중이라고 하면 조금은 도움이 될거라고 생각합니다.
폰갭은 HTML, Javascript, CSS를 이용하여 개발한 내용을 소스 수정 없이 안드로이드와 iOS단말에 적용이 가능하다는 장점이 있습니다.
웹에서 검색을 하게 되면 폰갭으로 주로 작업하는 내용은 간단한 HelloWorld 출력을 하거나 단순 예제를 빌드하는 문제가 없을 것 같은 부분만 만들어 문제점이 없는 것처럼 보입니다.
그렇지만 실제 개발을 해보니 문제가 없는 것은 아니었습니다.
1. 화면 레이아웃 문제
위의 이미지를 보시게 되면 Kitkat과 ICS에서 서로 다르게 보이는 것을 확인할 수 있습니다.
비록 여백이 빠지는 내용이긴 하지만 사용자의 입장에서 보면 해당 어플리케이션은 문제가 있는 것 처럼 보입니다.
(제가 테스트한 Kitkat과 iPad4, WebBrowser에서는 모두 동일하게 출력이 되는 것을 확인 하였습니다.)
화면 레이아웃은 개발을 하면서 수정하기가 가장 어려운 부분입니다. 현재 화면과 관련된 CSS를 수정하고 빌드해서 안드로이드 단말에 설치하고 다시 수정하고 이런일을 수십번 반복해야 동일한 화면을 얻을 수 있습니다.
2. 연산 오류
곱셈 연산을 하는 어플리케이션 입니다. 그렇지만 연산의 결과가 서로 다릅니다. 문제는 Javascript API 연산에 있었습니다. Javascript에는 String Type을 Integer Type으로 변경하는 parseInt() 라는 메소드가 있습니다. parseInt()의 결과값이 두 버전간에 서로 다르게 표시되어 발생된 문제입니다.
Kitkat: parseInt("010") => 10 ICS: parseInt("010") => 0
위의 표처럼 두개의 연산 결과가 서로 다르기 때문에 문제가 발생됩니다.
3. 성능
저의 경우는 주로 Java 위주로 개발을 했기 때문에 Javascript는 그냥 문법 정도만 알고 있습니다. 그런 수준으로 개발을 해서 그런지는 몰라도 앱의 반응이 굉장히 느려 보였습니다. 성능은 검색을 해보면 “Phonegap에서 성능 최적화 하기” 등의 글을 쉽게 찾을 수 있습니다. 어느 정도는 해결이 가능할 것으로는 보입니다.
4. 어떤 문제가 나올지 모름
폰갭의 주된 개발은 웹 브라우저를 기반으로 해서 작업을 합니다. 그렇지만 위에서 보는 것처럼 브라우저와 폰갭으로 빌드한 어플리케이션에서 다르게 동작한다면 반드시 해당 단말에서 테스트를 해야만 합니다. 지뢰가 묻혀 있는 밭을 건너는 느낌일겁니다.
UI, 연산 오류, 성능은 어찌 보면 모두 수정이 가능한 내용입니다. 그렇지만 저의 경우 위와 같이 간단한 수학 문제 풀이를 하는 어플리케이션을 한달동안 30개 정도 만들었는데 개발기간이 10일이었다면 UI를 수정하고 확인하는데 걸린 시간이 20일정도 소요된거 같습니다.
만약 폰갭으로 어플을 개발할 예정이시라면 에로 사항도 분명히 있다는 점을 염두하셨으면 좋겠습니다.