html5를 사용하여 모바일 애플리케이션을 개발하는 데 어떤 프레임워크가 사용됩니까?
새로운 모바일 기기의 등장은 인터넷의 미래를 바꿔 놓았습니다. 기술 발전 측면에서 HTML5가 앱 애플리케이션을 대체할 것인가? 아니면 어느 정도까지 교체할 수 있나요? HTML5 사양에는 카메라, 자기 나침반, GPS 정보에 대한 지원이 추가되었습니다. 많은 최신 브라우저도 이러한 새로운 기능을 지원하기 시작했습니다. 통합 HTML5를 사용하여 Android와 iOS의 병렬 개발에 드는 이중 비용을 대체할 수 있습니까? 다음은 HTML5가 Android 및 iOS 애플리케이션을 대체할 수 있는지에 대한 자세한 분석을 제공하는 Michael Mahemoff의 기사를 번역한 것입니다.
소개
모바일 애플리케이션(App)과 HTML5는 현재 가장 뜨거운 기술이며, 둘 사이에는 겹치는 부분이 많습니다. 모바일 장치 브라우저에서 실행되는 HTML5 웹 페이지는 다른 플랫폼에서 실행되는 앱으로 다시 패키징될 수도 있습니다. 현재 많은 브라우저는 크로스 플랫폼을 잘 지원합니다. (주석: Firefox는 실제로 Windows에서와 동일한 브라우저 코어를 사용할 수 있습니다.) HTML5 웹 솔루션은 개발자에게 더 편리합니다. 한 번 완료하면 여러 플랫폼에서 사용할 수 있습니다. 하지만 이것이 정말 가능할까? 개발자가 앱 개발을 선택하는 데에는 여전히 필요한 이유가 많이 있습니다. 분명히 많은 사람들이 이미 이 일을 하고 있습니다. 이 기사에서는 두 가지 옵션의 장점과 단점을 자세히 분석합니다.
풍부한 기능
Zhengfang: 앱에서 더 풍부한 기능을 개발할 수 있습니다
모바일 기능을 두 가지 범주로 나눕니다. 프로그램 자체, 프로그램과 시스템의 결합. 예를 들어 Android에서는 위젯 아이콘이나 알림 알림을 추가합니다. 앱에도 문제가 없습니다. 말할 필요도 없이 그것은 확실합니다.
반대: APP는 상당히 강력하지만 웹도 따라잡고 있습니다.
네이티브 앱에서 구현하는 많은 기능이 HTML5의 범위를 벗어나는 것이 사실입니다. 웹이 아무리 훌륭하더라도 카메라 지원 없이 샌드박스에 머무르면 여전히 많은 상황에서 플레이할 수 없습니다. 다행히 더 이상 샌드박스 제한이 없습니다. 웹 사진을 찍어야 하는 경우 사진을 찍는 앱을 만든 다음 웹을 이 앱에 패키징할 수 있습니다. 오픈 소스 PhoneGap 프레임워크가 이를 수행합니다. 이런 식으로 위젯과 휴대폰 알림은 문제가 되지 않습니다.
하지만 이런 하이브리드 개발의 문제점은 복잡성이 증가하고 기존 웹처럼 브라우저에서 직접 실행할 수 없다는 점입니다. 이 문제는 단기간에 해결되지 않을 것 같습니다. 다행스럽게도 네트워크 표준은 지속적으로 빠른 속도로 확장되고 있으며 고급 브라우저도 이를 따르고 있습니다. Android3.1은 이미 카메라를 지원합니다. iOS 브라우저는 WebSocket 및 장치 방향 감지도 지원합니다.
일반적으로 모바일 기기가 발전하고 있고, 웹 역시 빠르게 변화하고 있습니다. 데스크톱 브라우저 자체에는 기존 표준을 개선하고 새로운 기능을 강화하는 5개의 주요 브라우저 개발자가 있습니다. 그래서 네이티브 앱이 빠르게 발전하고 있고, 동시에 웹도 그 격차를 줄여나가고 있습니다.
운영 효율성
장점: 기본 앱이 더 빠릅니다.
기본 앱에는 병목 현상이 없으며 GPU 가속을 직접 호출하고 멀티스레딩을 사용할 수 있습니다.
반대: 이제 웹은 훨씬 빨라졌으며 대부분의 애플리케이션은 그렇게 빠를 필요가 없습니다.
이 진술은 약간 오래된 것입니다. 크롬이 출시되면서 선보인 JavascriptV8은 웹 속도의 비약을 가져왔다. 그리고 이제 계산 속도가 더욱 빨라졌습니다.
이미지 처리 엔진은 웹 가속을 사용했습니다. 이제 하드웨어 가속도 적용되기 시작했습니다. 하드웨어 가속 캔버스를 살펴보세요(차트 소스)
3D 게임을 개발하고 싶다면 논쟁할 필요가 없지만 일반인을 위한 뉴스, 이메일, 시간 관리, 소셜 네트워크, 등 모두 웹을 사용합니다. 그것으로 충분합니다. Steve Souders의 모바일 성능 테스트 도구를 사용해 보세요. 또한 OpenGL을 활용하기 위해 점점 더 많은 프레임워크가 WebGL과 결합되고 있습니다. 예를 들어 ImpactJS는 JS 게임 개발을 돕습니다.
개발 경험
장점: 네이티브 APP은 작성하기 쉽습니다.
네이티브 APP는 강력한 프로그래밍 언어(Java, ObjectiveC, C)를 사용합니다.
복잡한 프로그램을 작성하는 데 적합하고 역사적으로 검증되었으며 풍부한 API를 갖추고 있습니다. 시뮬레이터를 이용하여 데스크탑 환경에서 쉽게 테스트할 수 있습니다. 웹 프로그램의 런타임과 다양한 브라우저의 혼란은 혼란스럽습니다.
반대: 일반적으로 웹은 더 간단하며, 특히 다양한 장치와 호환되어야 하는 경우에는 더욱 그렇습니다.
웹의 초기 기능은 프로그램 적용이 아닌 문서 표시에만 국한되어 있었던 것으로 보입니다. JS가 나온 지 2주 정도 된 것 같습니다. 그러나 JS를 사용하면 웹 세계가 즉시 달라집니다. 게다가 웹은 단지 정적인 것이 아닙니다. HTML5, CSS3, EcmaScriptHarmony(이것이 무엇인지 누가 알겠습니까?) 모두 개발자에게 큰 도움이 됩니다. C, Java, JavaScript를 좋아한다면 개인 취미도 저장한 코드를 기반으로 합니다. 하지만 이제 자바스크립트도 전자와 같은 단계에 있다는 사실을 누구도 부인할 수 없습니다.
브라우저/런타임은 호환되지 않습니다(조각화되어 있음). 앱을 볼 때도 마찬가지입니다. 저는 Java로 Android 앱을 작성한 후 iOS용 ObjectiveC를 접해야 했습니다. Android와 iOS에서 즉시 실행할 수 있는 프로그램을 작성할 수 있다면 문제가 해결될 것입니다. 아직 WebOS, BlackBerry 또는 Windows Mobile에 대해서는 언급하지 않았습니다. 물론 이것은 이론적이다. 프로그램이 모든 플랫폼에서 아름답게 실행되기를 원한다면 많은 디버깅과 타협을 거쳐야 합니다. 이는 많은 기본 앱에서도 마찬가지입니다. 다양한 OS 버전, 다양한 기기. . .
소위 웹의 단편화는 항상 존재해 왔습니다. 하지만 좋은 소식은 이미 좋은 솔루션이 많이 있다는 것입니다. Modernizr 라이브러리를 잘 사용하면 시스템이나 브랜드에 관계없이 수많은 주류 장치와 호환되는 데 도움이 될 수 있습니다. 2011년 GoogleIO 데모를 확인해 보세요.
사용자 경험
긍정적: 기본 APP는 원래 플랫폼에 더 가깝습니다.
운영 경험의 정의 중 하나는 사용자가 이를 사용하기를 원한다는 것입니다. 귀하의 프로그램은 일관되고 통일된 방식으로 작동합니다. 다양한 플랫폼에는 몇 가지 확립된 습관이 있습니다. 예를 들어, 버튼을 오랫동안 누르고 있으면 어떻게 될까요? 모든 사용자를 만족시키기 위해 통합된 HTML5App을 사용할 수는 없습니다.
또한 전체 플랫폼의 운영 경험은 플랫폼 자체 소프트웨어 라이브러리에 의해 조정됩니다. 플랫폼 툴킷을 호출하면 무료로 직접 완전한 지원을 받을 수 있습니다.
반대: 우리 웹에는 고유의 전통이 있습니다. 원래 플랫폼처럼 느껴지는 웹을 만들고 싶다면 그래도 만들 수 있습니다.
앞서 언급한 것처럼 웹의 방식은요. 개발은 먼저 모든 플랫폼에 일반적으로 적합한 버전을 만든 다음 다양한 플랫폼에 맞게 지속적으로 개선하는 것입니다. 이러한 개선 사항이 주로 기능에 중점을 두는 경우 최적화를 위해 가장 관심 있는 몇 가지 플랫폼을 선택할 수 있습니다. 브라우저 감지와 유사합니다. 기술 포럼의 비참한 기술자들은 종종 이에 대해 불평합니다. 브라우저 버전은 매우 다양합니다. 그러나 2~3개의 주류 플랫폼에 우선순위를 둔다면 이를 최적화하는 데 더 많은 시간을 투자할 가치가 있습니다.
웹에는 고유한 운영 경험이 있습니다. 또한 다양한 기본 브라우저와 운영 환경이 고유한 "웹 경험"을 생성한다고 말할 수도 있습니다. 더 넓은 관점에서 보면 이 자체가 사용자들이 인정하는 방식이다. 또한, 모바일 기기 고유의 작동 습관을 따르지 않고 성공을 거둔 사례도 많습니다. 좋아하는 모바일 게임의 인터페이스를 생각해 보세요. Twitter 클라이언트와 같은 더 많은 기존 앱에서도 마찬가지입니다.