구성
모바일 디바이스 API는 각 플랫폼(Android, iOS) 별 구현환경 위에서 HTML, CSS, JavaScript 로 구성된웹 리소스를 통한 디바이스 하이브리드 애플리케이션 구현을 지원하며 플랫폼 별 SDK를 활용 하여 구현된 웹 리소스 내의 JavaScript 형태의 Device API와 각 플랫폼 별 Native Code 가 하이브리드 프레임워크 및 웹 뷰 인터페이스를 통해 연동되어 실제 디바이스의 고유 기능을 호출 할 수 있도 록 지원한다.
구현환경
- Android SDK
- iOS sdk
웹리소스 Native연계
- 하이브리드 프레임워크
- Web View Interface
기능구현
-
디바이스 API
- 디바이스 API 10종
- 전자정부 특화 디바이스 API 2종
-
디바이스 API 10종
- HTML
- CSS
- Java Script
-
웹 리소스
- 전자정부 모바일 웹 실행환경
- Custom JavaScript Framework
SDK
모바일 디바이스 API는 Android, iOS 두 가지의 모바일 플랫폼을 지원한다.
구분 | 구성요소 | 설명 |
---|---|---|
Android | Linux kernel | 하드웨어 드라이버, 프로세스와 메모리 관리, 보안, 네트워크, 전력 관리 등의 핵심 서비스를 담당한다. |
Libraries | MAndroid libc와 SSL 같은 다양한 C/C++ 코어 라이브러리로서 핸드폰에 사용되는 하드웨어를 지원하기 위해 컴파일되어 핸드폰 공급업체에 의해 핸드폰에 미리 설치된다. | |
Android Runtime | Core Libraries, Dalvik Virtual Machine으로 구성, 커널 위에 존재하며 Dalvik, VM, 코어 라이브러리 등이 포함된다. | |
Application Framework | Android Application을 만드는데 필요한 기능을 지원, App들을 관리하는 역할을 한다. | |
Application | 안드로이드 아키텍처 다이어그램의 최상위 계층, 안드로이드의 특징 중 하나로 모든 애플리케이션이 동일한 수준으로 실행된다. | |
iOS | Kernel | Mac OS X와 같은 Mach에 기초한다. |
Core OS와 Core Services 계층 | 기본적인 iOS의 인터페이스를 가지고 있다. 데이터 타입들, 봉주르 서비스, 네트워크 소켓 등이 있다. | |
Media 계층 | 2D/3D 그리고, 오디오, 비디오 등의 기반 기술을 가지고 있다. OpenGL ES, Quartz Core Audio와 Core Animation이 있다. |
|
Cocoa Touch 계층 | 모든 기술이 Objective-C를 기본으로 하며, 각종 프레임워크로 응용프로그램을 만들 때 가장 기본적인 인프라를 제공한다. |
SDK
- 웹 리소스와 Native 모듈과의 연계를 위한 하이브리드 프레임워크로 Cordova(PhoneGap)을 사용한다.
- 오픈소스 하이브리드 프레임워크인 Cordova(PhoneGap)은 네이티브 플랫폼 종속적인 디바이스 API와 플랫폼 비종속적인 영역인 애플리케이션 부분으로 나누어지며 웹 뷰 클라이언트를 이용해 애플리케이션을 구동시킨다.
하이브리드 애플리케이션 영역은 플랫폼에 비종속적인 언어인 HTML5, 자바스크립트, CSS로 구현 되며 앱 빌드시 컴파일 되지 않는다.
애플리케이션이 동작하면 디바이스 API의 웹뷰에 의해 인터프리팅 방식으로 랜더링 된다.
웹뷰 인터페이스
- 웹 리소스와 각 SDK 사이에서 인터페이스 역할을 수행한다. 웹 뷰 인터페이스는 각 디바이스 플랫폼에 내장 되어있는 Web Kit 기능을 통하여 수행된다.
- 각 플랫폼 별 SDK 내에 내장되어 있는 브라우저 기능을 포함 한 웹 Tool Kit 으로서 하이브리드 애플리케이션의 디바이스 API 호출을 위한 브릿지 역할을 해준다.
- SDK 로 부터 상속받은 웹뷰를 생성해서 그웹뷰에 내 소스를 로드한 후 네이티브API를 사용할 수 있도록 연계한다.
DEVICE API
- 모바일 하이브리드 애플리케이션 구현 시 모바일 디바이스 API 실행환경에서는 Javascript 객체를 이용하여, Device에 접근이 가능도록 다양한 API를 제공한다.
- 하이브리드 애플리케이션 동작 하기 위한 기반 구성요소로 네이티브 플랫폼에 종속적인 언어로 구성된다.
- HTML5와 자바스크립트 표준 코드 이외의 디바이스 종속 기능을 사용하기 위한 기능을 구현하며 사용자의 커스텀 라이브러리가 포함된다.
- Accelerator
- 단말기의 가속도계 정보를 제공하는 API(단말기의 움직임 정보를 x, y, z 축의 값으로 제공)
- GPS
- 단말기의 현재 위치에 대한 정보를 제공하는 API
- Vibrator
- 단말기의 진동 및 알림음 기능을 호출할 수 있는 API
- Camera
- 단말기의 카메라 촬영 기능을 호출할 수 있는 API
- Contact
- 단말기의 주소록(연락처) 정보를 조회 및 수정할 수 있는 API
- Compass
- 단말기의 방향정보를 조회할 수 있는 API
- File Reader/Writer
- 단말기의 내장 저장 장치의 파일을 읽기 쓰기 기능을 제공하는 API
- Network
- 단말기의 네트워크 연결 정보를 조회할 수 있는 API
- Device
- 단말기의 기본 정보(UUID, 버전 등)을 조회할 수 있는 API
- Media
- 단말기의 오디오 파일을 컨트롤할 수 있는 API
- Interface
- 전자정부 표준프레임워크 기반 웹 서버 애플리케이션과 연계를 지원하는 API
- Push Notifications
- 모바일 앱 사용자에게 다양한 푸시 메세지를 전달할 수 있는 기능을 제공하는 API
- File Opener
- 연결 단말기의 사용 가능한 문서 앱의 연동을 제공하는 API
- Streaming Media
- 멀티미디어 동영상을 실시간으로 볼수 있도록 내장 미디어 플레이어로 연동하는 기능을 호출할 수 있는 API
- Barcode Scanner
- 바코드, QR코드 등 정보를 확인할 수 있는 기능을 호출할 수 있는 API
- WebResource Update
- 웹 리소스의 최신버전 조회 및 버전 업데이트를 진행할 수 있는 기능을 호출할 수 있는 API
- Device FileMgmt
- 디바이스 저장소 내의 폴더(디렉토리) 및 파일 관리(이동, 삭제, 복사) 기능을 호출할 수 있는 API
- JailbreakDetection
- 디바이스의 루팅 및 탈옥 정보 조회 기능을 호출할 수 있는 API
- SocketIO
- 웹 서버의 웹소켓에 접속하여 양방향 데이터 처리 기능을 사용할 수 있는 API
- SQLite DB
- 디바이스 내 독립적인 데이터베이스를 사용할 수 있는 기능을 지원하는 API
- Unzip
- 단말기의 파일의 압축과 해제 기능을 지원하는 API
웹 리소스
- 폰갭 프로젝트는 일반적인 웹 리소스 (HTML5, CSS3, JavaScript) 등을 활용하여 모바일 하이브리드 APP을 구현하며 해당 웹 리소스는 디바이스의 종류에 상관없이 재활용이 가능하다.
- HTML, CSS, Image, js 등의 파일을 추가할 수 있으며 디바이스의 종류에 관계없이 재활용이 가능하다.
- 전자정부 디바이스 API 실행환경에서는 HTML5, CSS3을 적용한 웹 리소스 구현을 지원한다.
JavaScript Framework
- 전자정부 모바일 웹 실행환경
- jQuery
- iScroll
서비스 그룹 | 서비스 | 오픈소스 | 확장 및 개발 |
---|---|---|---|
UX처리 | UI/UX 라이브러리 | jQuery Mobile | |
디바이스 API 실행환경 | Mobile Hybrid Framework | Cordova(PhoneGap) |