KR101416104B1 - 하이브리드 웹 어플리케이션의 네이티브 기능을 수행하는 자바스크립트 코드의 동적 로딩 장치와 방법 - Google Patents

하이브리드 웹 어플리케이션의 네이티브 기능을 수행하는 자바스크립트 코드의 동적 로딩 장치와 방법 Download PDF

Info

Publication number
KR101416104B1
KR101416104B1 KR1020120086035A KR20120086035A KR101416104B1 KR 101416104 B1 KR101416104 B1 KR 101416104B1 KR 1020120086035 A KR1020120086035 A KR 1020120086035A KR 20120086035 A KR20120086035 A KR 20120086035A KR 101416104 B1 KR101416104 B1 KR 101416104B1
Authority
KR
South Korea
Prior art keywords
code
native
platform
web application
javascript
Prior art date
Application number
KR1020120086035A
Other languages
English (en)
Other versions
KR20140021091A (ko
Inventor
신기루
도창욱
Original Assignee
인크로스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인크로스 주식회사 filed Critical 인크로스 주식회사
Priority to KR1020120086035A priority Critical patent/KR101416104B1/ko
Publication of KR20140021091A publication Critical patent/KR20140021091A/ko
Application granted granted Critical
Publication of KR101416104B1 publication Critical patent/KR101416104B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • G06F8/4434Reducing the memory space required by the program code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44536Selecting among different versions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 하이브리드 웹 어플리케이션의 네이티브 기능을 수행하는 자바스크립트 코드의 동적 로딩 장치와 방법에 관한 것으로서, 웹앱 실행기에 자신의 네이티브 코드를 호출할 수 있는 자바스크립트코드를 포함하고, 상기 자바스크립트 코드를 요청할 수 있는 공용의 인터페이스를 웹 콘텐츠에 기본으로 제공함으로써, 웹 콘텐츠에서 네이티브의 기능이 필요할 경우 공용 인터페이스를 통해 필요한 자바스크립트를 요청하여 해당하는 네이티브 기능을 수행하는 자바스크립트 코드를 동적 로딩할 수 있도록 함으로써, 플랫폼에 따른 자바스트립트 코드의 단편화를 해결하여 개발 과정을 단순화하여 비용을 절감할 수 있도록 하는 효과가 있다.

Description

하이브리드 웹 어플리케이션의 네이티브 기능을 수행하는 자바스크립트 코드의 동적 로딩 장치와 방법{A DYNAMIC LOADING APPARATUS AND METHOD OF JAVA SCRIPT CODE PERFORMING NATIVE FUNCTIONS OF HYBRID WEB APPLICATIONS}
본 발명은 하이브리드 웹 어플리케이션의 네이티브 기능을 수행하는 자바스크립트 코드의 동적 로딩 장치와 방법에 관한 것으로, 더욱 상세하게는 웹앱 실행기에서 자바 스크립트 코드를 요청할 수 있는 공용의 인터페이스를 웹 콘텐츠에 기본으로 제공하도록 함으로써, 웹 콘텐츠가 네이티브의 기능이 필요할 경우 상기 공용 인터페이스를 통해 필요한 자바스크립트를 요청하고 네이티브 기능을 수행하는 자바스크립트 코드를 동적 로딩하게 하는 하이브리드 웹 어플리케이션의 네이티브 기능을 수행하는 자바스크립트 코드의 동적 로딩 장치와 방법에 관한 것이다.
일반적으로 하이브리드 웹앱은 앱(APP)과 모바일 웹(WEB)의 장점을 모두 합친 형태라고 볼 수 있다. 예를 들어 앱은 구동 속도가 빠르고 인터렉티브한 사용자 환경이 제공되어서 가장 좋은 성능을 내지만 OS 및 기기별로 특정 어플리케이션의 개발만 가능하고, 모바일 웹에 비해 개발비용이 많이 들고 개발기간도 상대적으로 길다는 단점이 있으며, 또한 업데이트 및 수정과 관리가 어렵고 OS별 프로그래밍 언어를 습득해야 하기 때문에 OS별 동일 어플리케이션 개발이 매우 어려우며, 빠른 구동속도에 비해서 스마트폰의 개별 특징을 잘 이해하고 있어야만 개발이 가능하다.
한편 모바일 웹은 앱에 비해서 개발기간이 짧고 웹 개발 지식으로도 개발이 가능하며 업데이트 및 수정 변경이 용이하고 어떤 OS에도 접근이 가능하기 때문에 PC 상에서도 실행이 가능할 뿐만 아니라, 인터넷을 통해 접속하기 때문에 구동이 느리고 스마트폰의 하드웨어 기능인 GPS, 가속 능력을 사용하지 못하고 브라우저를 통한 2차 접근이라 접근성이 낮다는 문제점이 있으며, OS나 기기를 가리지 않아 접근성이 좋고 호환성이 좋고 웹을 통합 접속으로 따로 설치가 필요하지 않은 장점이 있다.
따라서 상기와 같은 장점들을 결합한 하이브리드 웹앱은 기기에 상관없는 어플리케이션을 만들면서 내부구조와 사용자 인터페이스 및 카메라나 단말기 센서 조작과 같은 하드웨어적인 기능을 사용할 수 있는 장점이 있다. 따라서 하이브리드 웹앱에서 사용이 되는 언어가 웹상에서 많이 사용하는 자바스크립트와 HTML5, CSS가 많이 사용되고 있으며 그것만으로도 충분히 좋은 어플리케이션을 만들 수 있지만 더욱 개발이 쉬우면서 보기 좋게 만들기 위해서 모바일 프레임워크를 많이 사용하게 된다.
여기서 상기 HTML 과 CSS는 마크업 언어라고도 하는데 문서가 웹에서 보여지기 위한 문서의 논리적인 구조(웹 사이트에서 문서의 형태)를 만드는 역할을 담당한다. 즉, HTML은 구조를 만들고 CSS는 그 구조를 꾸며주는 역할을 하는 것이다. 상기 두 가지로 웹사이트를 충분하게 만들 수 있지만 정적인 웹사이트가 된다. 즉, 콘텐츠가 바뀌지 않고 마크업으로 정해놓은 내용만 보여지게 되는 것이다. 이때 자바스크립트(javascript)는 상기 웹사이트를 동적으로 만들어준다.
상기 자바스크립트는 스크립트 언어라고 하는데 브라우저가 컴파일을 하고 이해하는 브라우저용 프로그래밍 언어라고 할 수 있다. 즉, 상기 자바스크립트는 문서객체모델(DOM : Document Object Model)에 접근하여 자바스크립트가 가진 여러 가지 기능의 API를 통해 문서에 포함된 여러 객체와 해당 객체의 메소드 및 속성에 접근하여 많은 기능을 구현할 수 있도록 한다. 예컨대 상기와 같이 자바스크립트 API를 이용해 HTML5 에서는 더 이상 객체(object) 태그를 사용하지 않고도 오디오와 비디오 파일을 핸들링 할 수 있게 된다.
한편 각 모바일 디바이스(모바일 단말기)의 프레임워크에서는 웹 화면을 띄울 수 있는 웹뷰(webview)를 제공하는데, 상기 웹뷰에서 단말기 정보나 단말기 기능이 필요할 때 자바스크립트 API에서 메소드 호출 형식으로 네이티브 코드에 정의해놓은 메소드(객체 지향 프로그래밍 언어에서 사용하는 용어로서 특정 기능을 수행하는 함수나 프로시져에 해당)를 불러다 쓸 수 있다.
그런데 하이브리드 웹앱은 특성상 모바일 디바이스의 플랫폼에 따라 동일한 기능을 구현하는 자바스크립트 코드가 분리되는 이슈가 존재한다. 예컨대 동일한 기능을 수행하기 위한 자바스크립트 코드를 안드로이드의 플랫폼과 iOS 플랫폼에 따라 다르게 구성되어야 하는 것이다.
이에 따라 서버에 페이지를 두고 실행하는 방식으로 어플리케이션을 구현할 경우 서버 혹은 클라이언트에서 자바스크립트의 분기 처리를 하는 복잡한 과정이 필요하다. 예컨대, 서버 방식의 경우 서버에서 사용자 브라우저의 정보를 액세스하고 이를 플랫폼(예 : 안드로이드 or iOS 등)에 따라 필요한 자바스크립트 파일을 HTML 문서 내에 스트립트 태그로 삽입하여 클라이언트로 전송한다. 한편 클라이언트 방식의 경우 사용자 브러우저의 정보를 액세스하고 플랫폼에 따라 필요한 자바스크립트 파일을 스크립트 태그 내에 정확한 주소와 함께 기술하여 동적으로 로딩할 수 있다.
그러나 상기 두 가지 방식은 모두 원본 코드에 대해 중간 변경을 요구하여 개발자에게 불필요한 기능을 개발하도록 강제하고 개발상의 오류가 발생할 수 있는 문제점이 있다.
본 발명은 상기와 같은 문제점을 해결하기 위해 창작된 것으로서, 웹앱 실행기에 내장되어 네이티브 코드를 호출할 수 있는 자바스크립트 코드를 요청할 수 있는 공용 인터페이스를 웹 콘텐츠에 기본으로 제공함으로써, 웹 콘텐츠에서 네이티브의 기능이 필요할 경우 공용 인터페이스를 통해 필요한 네이티브 코드를 호출할 수 있는 자바스크립트 코드를 요청하여 동적 로딩할 수 있도록 하는 하이브리드 웹 어플리케이션의 네이티브 기능을 수행하는 자바스크립트 코드의 동적 로딩 장치와 방법을 제공하는데 그 목적이 있다.
본 발명의 일 측면에 따른 하이브리드 웹 어플리케이션의 네이티브 기능을 수행하는 자바스크립트 코드의 동적 로딩 장치는 모바일 디바이스의 해당 플랫폼에 따른 자신의 네이티브 코드를 호출할 수 있는 자바스크립트 코드; 및 상기 자바스크립트 코드를 요청할 수 있는 공용 인터페이스;를 포함하여 구성하고, 상기 공용 인터페이스를 웹 콘텐츠나 웹 어플리케이션에 기본으로 제공하며, 상기 자바스크립트 코드는 상기 해당 플랫폼에 따른 네이티브 기능을 수행하는 자바스크립트 코드이며, 상기 웹 콘텐츠는 네이티브 기능이 필요한 경우 상기 공용 인터페이스를 통해 해당 네이티브 기능을 수행하는 자바스크립트 코드를 요청하여 그에 해당하는 네이티브 코드를 호출하고, 상기 네이티브 코드는 모바일 디바이스의 CPU(중앙처리장치)와 운영체제(OS)에서 직접 실행할 수 있는 코드이고, 상기 자바스크립트 코드는 플랫폼에 따라 네이티브 기능을 호출하기 위한 구성이 다르며, 상기 공용 인터페이스는 웹 콘텐츠나 웹 어플리케이션에 제공하는 동일한 기능에 대해서 플랫폼에 관계없이 사용할 수 있는 공통된 형식으로 구성되는 것을 특징으로 한다.
본 발명의 일 측면에 따른 하이브리드 웹 어플리케이션의 네이티브 기능을 수행하는 자바스크립트 코드의 동적 로딩 방법은 모바일 디바이스의 해당 플랫폼에 따른 네이티브 기능을 수행하는 자바스크립트 코드 및 상기 자바스크립트 코드를 요청할 수 있는 공용 인터페이스를 포함하여 구성된 네이티브 기능을 수행하는 자바스크립트 코드의 동적 로딩 장치에 있어서, 상기 웹 콘텐츠 또는 웹 어플리케이션에서 네이티브 기능이 필요한 경우 상기 공용 인터페이스를 통해 필요한 자바스크립트 코드를 요청하는 제1 단계; 및 상기 네이티브 기능을 수행하는 자바스크립트 코드를 동적 로딩하여 그에 해당하여 네이티브 코드를 호출하는 제2 단계;를 포함하여 구성되고, 상기 자바스크립트 코드는 모바일 디바이스의 해당 플랫폼에 따른 자신의 네이티브 코드를 호출할 수 있는 자바스크립트 코드이며, 상기 자바스크립트 코드는 플랫폼에 따라 네이티브 기능을 호출하기 위한 구성이 다르며, 상기 공용 인터페이스는 웹 콘텐츠나 웹 어플리케이션에 제공하는 동일한 기능에 대해서 플랫폼에 관계없이 사용할 수 있는 공통된 형식으로 구성되는 것을 특징으로 한다.
본 발명은 웹앱 실행기에 자신의 네이티브 코드를 호출할 수 있는 자바스크립트코드를 포함하고, 상기 자바스크립트 코드를 요청할 수 있는 공용의 인터페이스를 웹 콘텐츠에 기본으로 제공함으로써, 웹 콘텐츠에서 네이티브의 기능이 필요할 경우 공용 인터페이스를 통해 필요한 자바스크립트를 요청하여 해당하는 네이티브 기능을 수행하는 자바스크립트 코드를 동적 로딩할 수 있도록 함으로써, 플랫폼에 따른 자바스트립트 코드의 단편화를 해결하여 개발 과정을 단순화하여 비용을 절감할 수 있도록 하는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 웹 어플리케이션 저작을 위한 통합 플랫폼의 구성과 동작을 설명하기 위한 개념도.
도 2는 본 발명의 일 실시예에 따른 웹 어플리케이션 저작을 위한 런타임 플랫폼의 구성을 보인 예시도.
도 3은 본 발명의 일 실시예에 따른 웹 어플리케이션 저작을 위한 통합 플랫폼의 런타임 플러그인의 동작을 보인 예시도.
도 4는 본 발명의 일 실시예에 따른 하이브리드 웹 어플리케이션의 네이티브 기능을 수행하는 자바스크립트 코드의 동적 로딩을 위한 장치의 개략적인 구성을 보인 예시도.
도 5는 본 발명의 일 실시예에 따른 하이브리드 웹 어플리케이션의 네이티브 기능을 수행하는 자바스크립트 코드의 동적 로딩 방법을 설명하기 위한 흐름도.
이하, 첨부된 도면을 참조하여 본 발명에 따른 하이브리드 웹 어플리케이션의 네이티브 기능을 수행하는 자바스크립트 코드의 동적 로딩 방법의 일 실시예를 설명한다.
도 1은 본 발명의 일 실시예에 따른 웹 어플리케이션 저작을 위한 통합 플랫폼의 전체적인 구성과 동작을 설명하기 위한 개념도이다. 이에 도시된 바와 같이 웹 어플리케이션 저작을 위한 통합 플랫폼은 저작도구(또는 디자인 툴)(100), 스튜디오(200), 런타임 플랫폼(300) 및 UI 프레임워크(400)를 포함하여 구성된다.
본 발명에 따른 통합 플랫폼은 HTML5 기반의 웹 어플리케이션 개발을 위한 토탈 솔루션으로서, 도 1에 도시된 바와 같이, 저작도구(Authoring Tool : AT)(100)와 스튜디오(200)를 포함하여 구성된 통합개발환경(IDE)이라고 할 수도 있다.
여기서 상기 HTML5는 텍스트와 하이퍼링크만 표시되던 기존 웹문서에 오디오, 비디오, 그래픽 등 다양한 응용프로그램까지 구현되도록 진화한 웹프로그래밍 언어를 말한다. 상기 HTML5는 무엇보다 액티브X(마이크로소프트(MS)가 개발한 재사용 가능한 객체지향적인 소프트웨어 구성요소 개발에 사용되는 기술) 등 설치 프로그램이나 모바일 앱스토어(스마트폰에 탑재할 수 있는 다양한 어플리케이션(응용프로그램)을 판매하는 온라인상의 모바일 콘텐츠 장터)에서 앱을 다운받지 않아도 웹에서 동영상, 게임 등을 이용할 수 있으며, IE(인터넷 익스플로러)뿐만 아니라 어떠한 브라우저에서나 쓸 수 있는 특징이 있는 것으로서, 최근에는 HTML5 기반의 기술들이 빠르게 성장하고 있으며, 다양한 3rd 파티 솔루션(예 : 프레임워크/라이브러리)이 선보여지고 있다.
따라서 본 발명에 따른 통합 플랫폼은 웹 어플리케이션의 개발 단계부터 HTML5를 기반으로 개발이 이루어지도록 하며, HTML5 기술을 100% 수용한 개방형 아키텍쳐를 제공함으로써, 3rd 파티 솔루션과의 호환성과 상호연동을 보장할 수 있도록 한다.
또한 상기 통합 플랫폼은 표준 웹 기술(예 : HTML5, CSS3, JS)을 기반으로 원소스 멀티유즈(OSMU : one source multi use, 한 가지 제품이나 개념을 다양한 용도로 사용하는 것)와 N-스크린 서비스(TV나 PC, 태블릿PC, 스마트폰 등 다양한 기기에서 하나의 콘텐츠를 끊김없이 이용할 수 있게 해주는 서비스) 개발을 지원한다. 즉, N-스크린 대응 웹 어플리케이션 개발에 필요한 일련의 과정을 심리스하게 지원할 수 있도록 한다. 또한 상기 런타임 플랫폼(300)과 UI 프레임 워크(400)를 기반으로 OS 단편화, H/W 단편화 및 비즈니스 요구사항을 해결한다.
상술한 바와 같이 본 발명에 따른 통합 플랫폼은 HTML5 기반 웹 어플리케이션의 개발로부터 서비스에 이르는 일련의 프로세스들을 심리스하게 지원하는 통합개발환경으로서, 저작도구(100)와 스튜디오(200)가 심리스하게 인터워킹 함으로써, UI 로직과 비즈 로직(업무관련 비즈니스 로직)의 모듈화된 개발 및 관리를 지원하고, 에뮬레이터, 디버거 및 다양한 하드웨어 프로파일을 지원하는 프로파일러를 제공하여 개발 생산성과 효율을 향상시킨다.
상기 저작도구(100)는 웹 어플리케이션 UI 저작을 위한 도구로서, HTML 언어(특히 HTML5)를 기반으로 UI를 제작할 수 있도록 하며, 사용자의 저작 편이성과 작업의 효율성을 위해 다양한 UI 구성 요소를 편집할 수 있는 편집기들을 제공하고, 상기 각종 편집기들은 UI 구성요소들 각각에 대해 최적화된 편집 기능을 제공하며, 필요에 따라 리스트, 트리 등의 관리 중심 UI, 또는 이미지 형태의 시각화 편집과 아이콘을 통한 직관적 편집을 동시에 제공함으로써, UI(또는 GUI) 레이아웃을 디자인할 수 있도록 하고, 또한 원하는 애니메이션(Animation)과 다양한 효과(Effect)를 디자인할 수 있도록 한다.
이에 따라 기존에 웹 어플리케이션 개발을 위한 솔루션들은 익스포트(Export)된 소스의 수정이 불가능하고, 솔루션에서 제공되는 기능 외에는 사용할 수 없기 때문에(즉, 솔루션에 종속적이기 때문에) 고객의 요구에 따른 기능의 확장이나 커스터마이징(또는 주문 제작)이 불가능하며, 또한 저작단계에서 메타 포맷(meta format)을 이용하기 때문에, 3rd 파티 자바스크립트 라이브러리나 CSS 라이브러리를 적용할 수 없었으나, 본 발명은 고객의 요구에 따라 커스텀 위젯을 자유롭게 추가할 수 있으며, 3rd 파티 솔루션과의 혼용을 지원할 수 있다.
상기 저작도구(100)의 프레임워크는 적어도 하나 이상의 에디터 윈도우로 구성된다. 즉, 상기 저작도구(100)의 에디터 윈도우(또는 에디터 패인)들은 패인(pane, 하나의 윈도우가 여러 개의 윈도우로 분할될 때 그 각각의 윈도우)으로 관리되며, 편집목적에 따라 에디터 패인의 자율배치 기능을 제공한다. 즉, 상기 에디터 패인의 갯수와 위치 및 사이즈는 편집 목적에 따라 개수와 사이즈를 얼마든지 증가하거나 감소시킬 수 있으며, 사용자(개발자)가 원하는 위치에 옮겨 표시하는 것이 가능하다. 여기서 상기 각 에디터 윈도우(또는 에디터 패인)는 하나의 편집기로 동작한다.
상기 저작도구(100)는 디자이너 뷰(또는 뷰 윈도우, 사용자가 편집하는 실제 디자인이 보여지는 뷰포트 윈도우)를 중심으로 모든 에디터가 연계되도록 설정됨으로써 객체 중심의 편집 기능을 제공한다. 이때 상기 디자이너 뷰(또는 뷰 윈도우)에서 위지윅(WYSIWYG) 방식으로 디자인 편집이 가능하다.
상기 저작도구(100)는 UI 내의 개별 화면인 페이지를 생성, 추가, 삭제작업을 할 수 있는 페이지 탐색기인 페이지 브라우저(Page Browser), UI 컨텐츠를 시각적으로 볼 수 있는 작업영역인 뷰포트(컴퓨터 그래픽스(CG)에서 화상을 생성하는 렌더링(rendering) 과정에서 투영 변환한 도형을 실제로 표시하는 윈도우 영역) 에디터(Viewport Editor), 선택한 객체나 구성요소의 다양한 속성을 변경할 수 있는 커스텀 프로퍼티(Custom Properties), 상기 페이지 브라우저 탐색기 창에서 선택한 페이지에 대한 정보를 보여주는 DOM(Document Object Model) 트리 브라우저(DOM Tree Browser) 및 페이지를 꾸밀 수 있는 다양한 위젯(widget)들로 구성되는 컴포넌트 브라우저(Components Browser)를 포함하여 구성한다.
상기 스튜디오(200)는 웹 어플리케이션의 개발을 위한 프로젝트의 생성과 관리를 수행하며, 또한 상기 저작도구(100), 런타임 플랫폼(300), UI 프레임워크(400)와 심리스한 인터워킹을 통해서 사용자인터페이스(UI) 로직과 비즈니스(Biz) 로직의 개발을 지원하며, 상기 인터워킹을 통해서 개발된 어플리케이션은 다양한 하드웨어 프로파일을 지원하는 프로파일러를 이용해 프로파일링과 에뮬레이터를 이용한 테스트를 수행하며 이때 발생된 에러를 디버거를 통해 디버깅할 수 있도록 하고, 상기 과정을 통해 완료된 앱 어플리케이션은 최종적으로 빌드 및 패키징하여 배포한다.
상기 스튜디오(200)는 프로젝트 매니저(210) 및 코드 에디터(220)를 통해서 UI 로직 및 비즈 로직을 코딩하며, 이들을 에뮬레이터(230)/디버거(240)/프로파일러(250)에서 테스트, 디버깅 및 프로파일링을 수행한다. 이어서 빌드(260)와 패키저(270)에서 빌드 및 디플로이(Deploy)를 수행하며, 그 결과는 하이브리드 어플리케이션으로 다양한 모바일 디바이스에서 동작하거나, 혹은 웹 어플리케이션으로 커스터머 서버에서 동작한다.
여기서 상기 프로젝터 매니저(210)는 프로젝트를 생성 및 관리할 수 있도록 하며, 개발의 편의성을 위해 여러 샘플 프로젝트를 제공할 수 있다. 그리고 상기 코드 에디터(220)는 상기 생성된 프로젝트 또는 프로젝트에 포함시키고자 하는 컴포넌트의 코드를 임포트(Import)하여 편집할 수 있도록 한다.
그리고 상기 에뮬레이터(230)는 본 발명의 통합 플랫폼을 이용하여 개발된 웹 어플리케이션을 모바일 기기에서 실행하는 것과 동일한 결과를 제공하여 테스트나 동작을 확인할 수 있도록 한다. 즉, 상기 에뮬레이터(230)는 다양한 해상도, 회전 및 익스펜터 등을 제공하여 실제 모바일 디바이스와 동일한 환경을 제공한다.
그리고 상기 디버거(240)는 본 발명의 통합 플랫폼을 이용하여 개발된 웹 어플리케이션에 포함된 자바 스크립트 손쉽고 편하게 디버그 할 수 있도록 한다. 또한 상기 프로파일러(250)는 웹 어플리케이션을 개발하는 과정에서 그 어플리케이션을 여러 가지 방법으로 실행시켜 봄으로써 시스템 성능 및 병목 현상이 발생하는 지점을 발견할 수 있도록 한다.
상기 빌드(260)는 웹 어플리케이션(또는 프로젝트)의 소스 코드 파일을 컴퓨터(또는 모바일 디바이스)에서 실행할 수 있는 독립 소프트웨어 결과물(예 : 실행파일)을 생성한다. 그리고 상기 패키저(270)는 상기 웹 어플리케이션(또는 프로젝트)을 배포(publishing) 가능하도록 패키징한다.
또한 상기 통합 플랫폼은 하이브리드 어플리케이션 빌드를 위한 빌드 서버(500)를 별도로 구성할 수 있으며, 상기 빌드 서버(500)를 이용하여 각종 OS(예 : 안드로이드, iOS)의 다양한 패키징을 지원할 수 있다. 이때 상기 빌드 서버(500)는 기업의 니즈에 따라 local(기업용) 빌드 서버 구축 및 이용이 가능하며, 또한 사용자 관리 및 빌드 상태 관리 기능의 제공, 빌드 히스토리 및 통계 정보를 제공할 수 있다. 그리고 상기 통합 플랫폼은 웹 어플리케이션의 개발과 배포 및 사용자와 개발자를 위한 지원과 관리를 위한 에코 시스템(600)을 제공할 수 있으며, 상기 에코 시스템을 위한 별도의 서버나 웹사이트를 구성할 수 있다.
런타임 플랫폼(300)은 도 2에서 보듯이 런타임 코어(runtime core), 디바이스 API 플러그인(빌트인), 유저 플러그인, 어플리케이션 및 서비스 프레임워크를 포함한다.
런타임 코어는 웹킷(webkit), 플러그임 로더 및 어플리케이션 매니저를 포함하고 있으며, 웹킷은 HTML, CSS 렌더링 및 자바 스크립트 엔진을 포함하는 오픈소스 웹브라우저 엔진이다. 또한 플러그인 로더는 네이티브 기능 연동을 위한 빌트인/커스텀 플러그인 API 관리를 수행하며, 어플리케이션 매니저는 어플리케이션을 실행하고 관리하는 기능, 즉 어플리케이션의 실행뿐만 아니라 인스톨과 업데이트 기능도 동시에 수행한다. 또한, 서비스 프레임워크의 런타임 API 프로바이더는 어플리케이션에서 필요한 기능에 대한 빌트인 API 기능을 제공하며, 플러그인에서 확장된 커스텀 API에 대한 연동 기능을 포함하여 제공한다.
도 3은 플러그인을 설명하기 위한 것으로, 예를 들어 iOS 런타임은 자바 스크립트 API 구현부에서 공통 인터페이스를 통해 네이티브 모듈의 해당 기능이 실행되고 이에 대한 결과가 다시 웹페이지로 전달되는 방식으로 구성된다.
도 3에 도시된 바와 같이 웹(Web) - 네이티브(Native) 인터페이스는 하드웨어 또는 특정 다른 어플리케이션의 고유 기능을 웹브라우저에서 접근할 수 있도록 표준화한 것을 말한다. 개발자는 HTML 태그 또는 자바스크립트 개체 형태로 사용이 가능하며, 하드웨어 고유 기능을 DOM 레벨에서 사용할 수 있도록 인터페이스화 한 하드웨어 네이티브 인터페이스(예: GPS, 카메라, iPhone의 사파리(Safari)에서 전화거는 기능)와 디바이스에 내장된 특정 어플리케이션 또는 미들웨어의 기능을 DOM(Document Object Model) 레벨에서 사용할 수 있도록 인터페이스화 한 어플리케이션 네이티브 인터페이스(예: 로컬 주소록이나 일정을 관리하는 미들웨어의 기능을 브라우저 인터페이스로 노출하여 웹 어플리케이션이 이를 사용하여 웹페이지에 데이터를 표시하거나 서버에 전달할 수 있도록 하는 것, HTML5의 <video>태그)로 나누어진다. 또한 플러그인을 통해 구현했던 비디오 출력 기능은 다른 윈도우에 그려졌기 때문에 웹브라우저에서 이를 제어할 수단이 많지 않았지만, <video>태그를 통해 웹페이지가 렌더링되는 같은 메모리 공간에 비디오가 출력되어 서로 합성이 가능해졌으며, 이 결과 캔버스(canvas)나 SVG(Scalable Vector Graphics)를 이용하여 비디오에 다양한 효과를 줄 수 있게 된다.
도 4는 본 발명의 일 실시예에 따른 하이브리드 웹 어플리케이션의 네이티브 기능을 수행하는 자바스크립트 코드의 동적 로딩을 위한 장치의 개략적인 구성을 보인 예시도이다.
이에 도시된 바와 같이 본 발명에 따른 하이브리드 웹앱 실행기(760)는 자신의 네이티브 코드(모바일 디바이스의 해당 플랫폼에 따른 네이티브 코드)를 호출할 수 있는 자바스크립트 코드(762)를 포함한다. 또한 상기 웹앱 실행기(760)는 상기 자바스크립트 코드(자신의 네이티브 코드를 호출할 수 있는 자바스크립트 코드)를 요청할 수 있는 공용의 인터페이스(761)를 웹 콘텐츠에 기본으로 제공한다.
이에 따라 상기 웹 콘텐츠(750)에서 네이티브 기능이 필요한 경우 상기 공용 인터페이스(751)를 통해 필요한 자바스크립트 코드(762)를 요청함으로써 그에 해당하는 네이티브 코드(770)를 호출한다.
참고로 상기 네이티브 코드(770)는 CPU(중앙처리장치)와 운영체제(OS)에서 직접 실행할 수 있는 코드로서, 기계 코드와 비슷한 개념이지만, 기계 코드는 운영제제(OS)를 배제하고 CPU에서 바로 실행될 수 있는 코드를 의미한다. 따라서 상기 네이티브 코드(770)는 디바이스의 하드웨어 기능을 직접적으로 제어할 수 있는 것으로서, iOS(애플), 안드로이드(구글), 블랙베리 OS(RIM), 심비안(노키아) 등 플랫폼에 따라 그 네이티브 기능을 호출하기 위한 자바스크립트 코드를 따로 제작해야 한다.
그런데 하이브리드 웹앱은 네이티브가 아닌 웹(WEB) 상에서 자바스크립트 코드(또는 자바스크립트 API)를 이용하여 네이티브 기능을 사용할 수 있도록 한다. 즉, 자바스크립트 코드를 이용해 네이티브 코드(770)을 호출하는 방식을 이용하여 카메라, 주소록, 가속도계와 같은 단말기의 하드웨어 기능을 사용할 수 있도록 한다. 다시 말해, 하이브리드 웹앱에서는 웹앱 실행기(또는 웹 브라우저)를 통해 특정 웹 페이지(예 : index.html)를 로드한 후, 그 웹 페이지에 포함된 네이티브 기능을 수행하는 자바스크립트 코드를 호출함으로써, 그 자바스크립트에 의해 해당하는 네이티브 기능이 호출되어 웹앱 실행기(또는 웹 브라우저)의 화면으로 해당하는 정보를 출력하게 되는 것이다.
이때 상기 자바스크립트 코드(네이티브 기능을 수행하는 자바스크립트 코드)는 플랫폼 별로 그 구성이 다르다. 즉, 동일한 기능을 수행하기 위한 자바스크립트 코드라고 하더라도 플랫폼에 따라 그 자바스크립트 코드의 구성이 달라진다. 이는 플랫폼에 따라 네이티브 코드가 다르기 때문에 그 네이티브 기능을 호출하기 위한 자바스크립트 코드의 구성(또는 자바스크립트 API)도 달라져야 하기 때문이다.
상기와 같이 본 발명은 웹앱 실행기(760)에 각 플랫폼별 네이티브 코드(770)를 호출할 수 있는 각 플랫폼에 최적화된 자바스크립트 코드(762)를 포함하고, 상기 각 플랫폼에 최적화된 자바스크립트 코드(762)에 대응하는 공용 인터페이스(761)를 포함한다. 상기 공용 인터페이스(761)는 각 플랫폼에 관계없이 동일한 기능에 대해서는 공통으로 사용할 수 있는 형식으로 구성된다.
예를 들어 사용자(또는 개발자)가 공용 인터페이스를 이용해서 특정 네이티브 기능을 호출하는 어플리케이션(또는 웹 콘텐츠)을 개발할 경우, 웹앱 실행기(760)는 상기 어플리케이션의 공용 인터페이스로 구성된 부분(특히 플랫폼별 특정 네이티브 기능의 호출에 관련된 부분)을 해석하여 플랫폼별 네이티브 기능을 수행하는(또는 플랫폼별 네이티브 코드를 호출하는) 자바스크립트 코드(762)를 동적 로딩하는 것이다.
따라서 사용자(개발자)는 플랫폼별 네이티브 코드에 대한 지식을 취득하지 않더라도, 또한 상기 네이티브 기능을 호출하기 위한 플랫폼별 자바스크립트 코드에 대한 지식을 취득하지 않더라도, 상기 공용 인터페이스에 대한 이해를 바탕으로, 즉 공용 인터페이스를 이용하여 어플리케이션을 개발할 수 있도록 함으로써, 개발자가 직접 어플리케이션(또는 웹 콘텐츠)의 원본 코드를 플랫폼에 따라 변경할 필요가 없으므로, 개발 기간을 단축할 수 있고 원본 코드의 변경에 따른 오류가 발생하지 않도록 할 수 있다.
다시 말해 자바스크립트는 인터프리터 방식으로 실행되기 때문에 네이티브 코드와는 데이터를 공유할 수 없을 뿐만 아니라, 그 동작 환경도 다르기 때문에 자바스크립트 코드를 플랫폼별 네이티브 코드에서 해석 가능한 형태로 변환해야 한다. 따라서 본 발명에 따른 웹앱 실행기(760)에는 네이티브 기능의 호출 가능한 플랫폼별 자바스크립트 코드(762)를 포함하고, 개발자가 어플리케이션(또는 웹 콘텐츠)의 원본 코드(소스 코드)를 플랫폼에 따라 변환하지 않더라도 웹앱 실행기(760)에서 자동으로 해석하여 상기 플랫폼별 자바스크립트 코드(762)를 호출할 수 있는 공용 인터페이스(761)를 제공한다. 즉, 개발자가 상기 공용 인터페이스(761)를 이용하여 어플리케이션(또는 웹 콘텐츠)을 개발할 경우, 상기 어플리케이션의 원본 코드를 플랫폼에 따라 변환하여 별도의 어플리케이션을 개발하지 않더라도, 상기 원본 코드를 플랫폼별 자바스크립트 코드(762)로 자동 해석하여 해당하는 네이티브(770) 기능을 호출할 수 있게 된다.
도 5는 본 발명의 일 실시예에 따른 하이브리드 웹 어플리케이션의 네이티브 기능을 수행하는 자바스크립트 코드의 동적 로딩 방법을 설명하기 위한 흐름도이다.
이에 도시된 바와 같이 본 발명에 따른 네이티브 기능을 수행하는 자바스크립트 코드의 동적 로딩을 위한 웹앱 실행기는 모바일 디바이스의 해당 플랫폼에 따른 자신의 네이티브 코드를 호출할 수 있는 자바스크립트 코드(네이티브 기능을 수행하는 자바스크립트 코드)를 포함하고, 또한 상기 웹앱 실행기는 상기 자바스크립트 코드(네이티브 기능을 수행하는 자바스크립트 코드)를 요청할 수 있는 공용 인터페이스를 웹 콘텐츠(또는 웹 어플리케이션)에 기본으로 제공한다.
이에 따라 도5에 도시된 바와 같이, 상기 웹 콘텐츠(또는 웹 어플리케이션)에서 네이티브 기능이 필요한 경우(S101), 상기 공용 인터페이스를 통해 필요한 자바스크립트 코드(필요한 네이티브 기능을 수행하는 자바스크립트 코드)를 요청한다(S102). 이에 따라 해당하는 네이티브 기능을 수행하는 자바스크립트 코드를 동적 로딩 함으로써 그에 해당하는 네이티브 코드를 호출하게 된다(S103).
예를 들어 하이브리드 웹앱은 웹(WEB) 상에서 자바스크립트 코드를 이용하여 네이티브 코드를 호출함으로써 카메라, 주소록, 가속도계와 같은 단말기의 하드웨어 기능을 사용할 수 있도록 한다. 즉, 공용 인터페이스를 이용할 수 있도록 개발된 하이브리드 웹앱에 있어서, 웹앱 실행기는 상기 웹앱(웹 콘텐츠 또는 웹 어플리케이션)에서 네이티브 기능이 필요할 경우, 공용 인터페이스를 통해 필요한 자바스크립트 코드를 요청하고, 그에 따라 해당 네이티브 기능을 수행하는 자바스크립트 코드를 동적 로딩한다. 즉, 동적 로딩된 상기 자바스크립트 코드를 통해 해당 네이티브 코드를 호출하여 그 네이티브 기능을 수행하는 것이다. 상기 수행된 네이티브 기능은 그 수행결과를 웹앱 실행기 또는 웹 브라우저를 통해 출력할 수 있다.
상기와 같이 본 발명에 따른 웹앱 실행기는 각 플랫폼별 자신의 네이티브 코드를 호출할 수 있는 자바스크립트 코드(네이티브 기능을 수행하는 자바스크립트 코드)를 포함하고, 그 자바스크립트 코드를 요청할 수 있는 공용 인터페이스를 웹 콘텐츠에 제공할 수 있도록 구성된다.
따라서 사용자(또는 개발자)가 웹 어플리케이션(또는 웹 콘텐츠) 개발 시 네이티브 기능이 필요할 경우, 공용 인터페이스를 통해서 상기 필요한 네이티브 기능을 수행하는 자바스크립트 코드를 요청하고, 그에 따라 상기 네이티브 기능을 수행하는 자바스크립트 코드를 동적 로딩하는 것이다. 즉, 공용 인터페이스를 통해서 각 플랫폼에 필요한 네이티브 기능을 수행하는 자바스크립트 코드를 동적 로딩할 수 있게 되는 것이다.
상기와 같이 본 발명은 사용자(개발자)는 플랫폼별 네이티브 코드, 또는 상기 네이티브 기능을 호출하기 위한 자바스크립트 코드에 대한 지식을 취득하지 않더라도, 공용 인터페이스를 이용하여 플랫폼별 네이티브 기능을 수행하는 자바스크립트 코드를 동적 로딩할 수 있도록 함으로써, 플랫폼에 따른 자바스크립트 코드의 단편화를 해결하여 개발 과정을 단순화하여 개발 기간 및 개발 비용을 절감할 수 있도록 한다.
이상으로 본 발명은 도면에 도시된 실시예를 참고로 하여 설명되었으나, 이는 예시적인 것에 불과하며, 당해 기술이 속하는 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 기술적 보호범위는 아래의 특허청구범위에 의해서 정하여져야 할 것이다.
100 : 저작도구 200 : 스튜디오
210 : 프로젝터 매니저 220 : 코드 에디터
230 : 에뮬레이터 240 : 디버거
250 : 프로파일러 260 : 빌드
270 : 패키저 300 : 런타임 플랫폼
400 : UI 프레임워크 500 : 빌드 서버
600 : 에코 시스템 750 : 웹 어플리케이션(웹 콘텐츠)
760 : 웹앱 실행기 761 : 공용 인터페이스
762 : 네이티브 기능을 수행하는 자바스크립트 코드
770 : 네이티브 코드

Claims (10)

  1. 모바일 디바이스의 해당 플랫폼에 따른 네이티브 코드를 호출할 수 있는 자바스크립트 코드를 요청할 수 있는 공용 인터페이스;
    웹 어플리케이션; 및
    상기 공용 인터페이스를 웹 어플리케이션에 제공하는 하이브리드 웹앱 실행기;를 포함하며,
    상기 웹앱 실행기를 통해서 플랫폼별 네이티브 기능을 수행하거나 플랫폼별 네이티브 코드를 호출하는 자바스크립트 코드를 동적으로 로딩하는 것을 포함하는 것을 특징으로 하는 하이브리드 웹 어플리케이션의 네이티브 기능을 수행하는 자바스크립트 코드의 동적 로딩 장치.
  2. 청구항 1에 있어서,
    상기 네이티브 기능을 수행하거나 네이티브 코드를 호출하는 것은,
    플랫폼별 특정 네이티브 기능의 호출에 관련된 부분을 포함한 상기 웹 어플리케이션의 공용 인터페이스로 구성된 부분에 해당하는 것을 특징으로 하는 하이브리드 웹 어플리케이션의 네이티브 기능을 수행하는 자바스크립트 코드의 동적 로딩 장치.
  3. 청구항 1에 있어서,
    상기 웹 어플리케이션은,
    네이티브 기능이 필요한 경우 상기 공용 인터페이스를 통해 해당 네이티브 기능을 수행하는 자바스크립트 코드를 요청하여 그에 해당하는 네이티브 코드를 호출하는 것을 특징으로 하는 하이브리드 웹 어플리케이션의 네이티브 기능을 수행하는 자바스크립트 코드의 동적 로딩 장치.
  4. 청구항 1에 있어서,
    상기 네이티브 코드는,
    모바일 디바이스의 CPU(중앙처리장치)와 운영체제(OS)에서 직접 실행할 수 있는 코드인 것을 특징으로 하는 하이브리드 웹 어플리케이션의 네이티브 기능을 수행하는 자바스크립트 코드의 동적 로딩 장치.
  5. 청구항 1에 있어서,
    상기 자바스크립트 코드는,
    플랫폼에 따라 네이티브 기능을 호출하기 위한 구성이 서로 다른 것을 특징으로 하는 하이브리드 웹 어플리케이션의 네이티브 기능을 수행하는 자바스크립트 코드의 동적 로딩 장치.
  6. 청구항 1에 있어서,
    상기 공용 인터페이스는,
    상기 웹 어플리케이션에서 제공하는 동일한 기능에 대해서 플랫폼에 관계없이 사용할 수 있는 공통된 형식으로 구성되는 것을 특징으로 하는 하이브리드 웹 어플리케이션의 네이티브 기능을 수행하는 자바스크립트 코드의 동적 로딩 장치.
  7. 모바일 디바이스의 해당 플랫폼에 따른 네이티브 기능을 수행하는 자바스크립트 코드 및 상기 자바스크립트 코드를 요청할 수 있는 공용 인터페이스를 포함하여 구성된 네이티브 기능을 수행하는 자바스크립트 코드의 동적 로딩 방법에 있어서,
    웹 어플리케이션에서 네이티브 기능이 필요한 경우 상기 공용 인터페이스를 통해 필요한 자바스크립트 코드를 요청하는 제1 단계; 및
    상기 네이티브 기능을 수행하는 자바스크립트 코드를 동적 로딩하여 그에 해당하여 네이티브 코드를 호출하는 제2 단계;를 포함하여 구성된 것을 특징으로 하는 하이브리드 웹 어플리케이션의 네이티브 기능을 수행하는 자바스크립트 코드의 동적 로딩 방법.
  8. 청구항 7에 있어서,
    상기 자바스크립트 코드는,
    모바일 디바이스의 해당 플랫폼에 따른 자신의 네이티브 코드를 호출할 수 있는 자바스크립트 코드인 것을 특징으로 하는 하이브리드 웹 어플리케이션의 네이티브 기능을 수행하는 자바스크립트 코드의 동적 로딩 방법.
  9. 청구항 7에 있어서,
    상기 자바스크립트 코드는,
    플랫폼에 따라 네이티브 기능을 호출하기 위한 구성이 서로 다른 것을 특징으로 하는 하이브리드 웹 어플리케이션의 네이티브 기능을 수행하는 자바스크립트 코드의 동적 로딩 방법.
  10. 청구항 7에 있어서,
    상기 공용 인터페이스는,
    상기 웹 어플리케이션에서 제공하는 동일한 기능에 대해서 플랫폼에 관계없이 사용할 수 있는 공통된 형식으로 구성되는 것을 특징으로 하는 하이브리드 웹 어플리케이션의 네이티브 기능을 수행하는 자바스크립트 코드의 동적 로딩 방법.
KR1020120086035A 2012-08-07 2012-08-07 하이브리드 웹 어플리케이션의 네이티브 기능을 수행하는 자바스크립트 코드의 동적 로딩 장치와 방법 KR101416104B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120086035A KR101416104B1 (ko) 2012-08-07 2012-08-07 하이브리드 웹 어플리케이션의 네이티브 기능을 수행하는 자바스크립트 코드의 동적 로딩 장치와 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120086035A KR101416104B1 (ko) 2012-08-07 2012-08-07 하이브리드 웹 어플리케이션의 네이티브 기능을 수행하는 자바스크립트 코드의 동적 로딩 장치와 방법

Publications (2)

Publication Number Publication Date
KR20140021091A KR20140021091A (ko) 2014-02-20
KR101416104B1 true KR101416104B1 (ko) 2014-07-14

Family

ID=50267651

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120086035A KR101416104B1 (ko) 2012-08-07 2012-08-07 하이브리드 웹 어플리케이션의 네이티브 기능을 수행하는 자바스크립트 코드의 동적 로딩 장치와 방법

Country Status (1)

Country Link
KR (1) KR101416104B1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9727391B2 (en) 2014-07-08 2017-08-08 Able World International Limited Method for performing task on unified information units in a personal workspace
US9626157B2 (en) 2014-07-03 2017-04-18 Able World International Limited Method of projecting a workspace and system using the same
EP3166016A4 (en) * 2014-07-03 2017-05-10 Able World International Limited Combinatory working method for standardized elements in personal workspace, and computer program product and system using said method
US11360828B2 (en) 2014-07-08 2022-06-14 Able World International Limited Method for combining unified matters in personal workspace and system using the same
KR101585931B1 (ko) * 2015-10-26 2016-01-15 (주)프리코어 하이브리드 앱과 네이티브 앱을 결합한 환경기반의 바로앱의 실행 플랫폼 및 실행방법
KR102138421B1 (ko) * 2018-05-30 2020-07-28 주식회사 티파이브온라인 멀티스레드 지원을 위한 크로스플랫폼 시스템 및 운용방법
KR102173840B1 (ko) * 2018-06-04 2020-11-04 주식회사 아솔 브로커를 이용한 이동 장치의 네이티브 기능을 실행시키기 위한 방법 및 장치
KR102173838B1 (ko) * 2018-07-04 2020-11-04 이인모 이동 장치의 네이티브 기능을 실행시키기 위한 방법 및 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120158893A1 (en) * 2010-12-18 2012-06-21 Boyns Mark Methods and apparatus for enabling a hybrid web and native application

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120158893A1 (en) * 2010-12-18 2012-06-21 Boyns Mark Methods and apparatus for enabling a hybrid web and native application

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
박상석 외 2명, 멀티플랫폼 환경에서 하이브리드 모바일 어플리케이션을 위한 UIFrame 설계, 2011 한국컴퓨터종합학술대회 논문집, Vol.38, 120~123페이지 *

Also Published As

Publication number Publication date
KR20140021091A (ko) 2014-02-20

Similar Documents

Publication Publication Date Title
KR101416104B1 (ko) 하이브리드 웹 어플리케이션의 네이티브 기능을 수행하는 자바스크립트 코드의 동적 로딩 장치와 방법
KR101416089B1 (ko) 웹 어플리케이션 저작을 위한 통합 플랫폼 및 그 저작 방법
US9471553B2 (en) Automatically rendering web or hybrid applications natively
KR101416100B1 (ko) 하이브리드 웹 어플리케이션에서 자바스크립트 연동을 위한 인터페이스
CN107092473B (zh) 桌面应用开发方法及设备
US20110167403A1 (en) Methods for platform-agnostic definitions and implementations of applications
RU2459238C2 (ru) Управляемая среда выполнения для организации взаимодействия между программными приложениями
Smyth Android Studio 2.2 Development Essentials-Android 7 Edition
JP2015534145A (ja) 宣言テンプレートを使用してコントロールをスタンプアウトするためのユーザインターフェイスコントロールフレームワーク
US9792198B2 (en) Debugger with method restart capability
KR101456505B1 (ko) 웹 어플리케이션 개발을 위한 사용자 인터페이스 프레임워크
US9558014B2 (en) System, method and apparatus for transparently enabling software applications with adaptive user interfaces
CN113918195A (zh) 应用界面更新方法、装置、电子设备及可读存储介质
KR20130017337A (ko) 하이브리드 앱 개발 플랫폼 구조 및 그 테스트 방법, 그리고 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
Panigrahy Xamarin Mobile Application Development for Android
KR20220132459A (ko) 디자인 시스템을 구비한 사용자 인터페이스 플랫폼 통합 개발 시스템 및 방법
Dixit Android
KR101416096B1 (ko) 하이브리드 웹 어플리케이션 개발을 위한 호환성 높은 플러그인 시스템
CN113778405A (zh) 一种跨平台app构建方法、装置、系统及介质
KR101456507B1 (ko) N-스크린 적용을 위한 웹 어플리케이션 ui 저작 장치 및 그 저작 방법
Mikkonen et al. Lively for Qt: A platform for mobile web applications
Taman JavaFX Essentials
Vermeir Desktop development
RU2799988C2 (ru) Система и способ динамической визуализации элементов программного обеспечения
Hunt et al. Android Overview

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170607

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180625

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190801

Year of fee payment: 6