넥사크로플랫폼은 같은 개발 환경에서 하나의 소스 코드로 다양한 운영체제와 사용 환경을 지원하는 애플리케이션을 개발할 수 있습니다. 하지만 실제 사용자에게 전달되는 애플리케이션 형태로 배포되는 과정에서 사용 환경에 따라 일부 기능과 배포 환경이 달라지게 됩니다.
이번 장에서는 스마트폰이나 태블릿 기기 중 iOS와 안드로이드 운영체제를 대상으로 개발자 또는 시스템 운영자가 필요한 내용을 설명합니다.
기술구성 요소
iOS와 안드로이드 운영체제에 배포되는 애플리케이션은 이동 중에 사용하며 다양한 내장 센서 기능을 활용할 수 있고 스마트폰인 경우에는 전화나 문자 메시지 기능을 연동할 수 있습니다. 이에 따라 Device API, 개발, 실행, 배포에 대한 이해가 필요합니다.
Device API
넥사크로플랫폼에서 제공하는 디바이스 API는 아래와 같습니다.
디바이스 API | 기능 내용 |
---|---|
System | 단말기 기본 정보 전화 걸기 간단한 사운드 파일 재생
|
Acceleration | 가속도계 센서를 이용한 단말기 가속도 정보 |
LiteDB | 로컬 DB 사용 |
VirtualFile | 파일 입출력 |
AudioPlayer | 사운드 파일 재생 제어 |
AudioRecorder | 오디오 녹음 |
Camera | 단말기 내장 카메라를 이용 |
ContactSet | 주소록 연락처 조회/추가/삭제/수정 |
ExternalAPI | 외부기기 접근/연동 |
GeoLocation | GPS, WPS를 이용한 단말기 위치 정보 GPS - Global Positioning System WPS - WiFi Positioning System |
ImagePicker | 단말기 사진앨범 접근 |
Map | 지도 표시를 위한 Map Component |
Network | 단말기 네트워크 상태(No Network, 3G, Wi-Fi)를 확인 특정 사이트와 통신 가능 여부를 확인 |
Sms | SMS 전송 SMS 수신 감지 수신된 SMS 보관함 조회/삭제 |
Vibrator | 진동 발생 |
제공되는 기능은 제품 버전에 따라 추가되거나 변경될 수 있으며 단말기 운영체제 특성상 지원되는 기능에 부분적인 제한이 있을 수 있습니다. 세부적인 정보는 넥사크로 스튜디오에 포함된 레퍼런스 가이드를 참고하십시오.
개발
화면과 서비스를 개발하는 방식은 런타임이나 HTML5 모두 같습니다. 다만 iOS와 안드로이드 운영체제에서 사용할 수 있는 Device API를 추가적인 컴포넌트로 활용할 수 있다는 것이 다른 점입니다. 생성된 애플리케이션에 대한 기본적인 테스트는 넥사크로 스튜디오 내에서 실행해볼 수 있지만 Device API 실제 동작은 기기에 앱을 배포해서 직접 테스트해봐야 합니다.
iOS, 안드로이드에서는 확인되지 않은 애플리케이션을 직접 실행할 수 없고 앱 형태로 만들어진 응용프로그램만 실행할 수 있습니다. 따라서 넥사크로플랫폼을 기반으로 개발된 애플리케이션을 웹브라우저가 아닌 단말기에서 직접 실행하려면 앱 형태로 개발, 배포해야 합니다.
넥사크로플랫폼은 안드로이드, iOS 개발환경에 필요한 라이브러리를 제공해 간단하게 앱을 만들 수 있게 지원하고 있으며 패키징(아카이브 파일 생성) 작업을 기반으로 만들어진 애플리케이션을 배포할 수 있습니다.
iOS, 안드로이드에서 동작하는 넥사크로플랫폼 기반 앱을 개발하는 과정은 아래와 같습니다.
넥사크로 스튜디오에서 직접 마켓에 배포할 수 있는 앱을 만들거나 시뮬레이터에서 테스트하는 직접적인 방법은 별도로 제공하지는 않습니다.
실행
넥사크로플랫폼으로 개발된 앱은 지정된 디플로이 서버에 있는 start_android[ios].json 파일에 설정된 정보에 따라 필요한 파일을 단말기에 내려받아 앱을 설치하거나 변경된 파일을 업데이트합니다. 필요한 파일을 모두 처리한 후에 앱이 실행됩니다.
웹 서버와 배포 서버가 물리적으로 다른 서버를 사용해야 하는 것은 아닙니다. 각 서버에 대한 경로만 명확히 지정해주면 장비 배치는 필요에 따라 조정할 수 있습니다.
배포환경
배포란 생성된 아카이브 파일을 배포 서버에 반영하고 넥사크로플랫폼 앱을 사용자 단말기에 설치하는 작업을 의미합니다.
앱은 각 단말기 운영체제를 지원하는 마켓을 통해 배포합니다. 안드로이드는 구글, 단말기 제조사, 통신사에서 운영하는 다양한 마켓을 통해 애플리케이션이 배포되며 사설 서버를 통해 배포할 수도 있습니다. iOS는 App Store를 통해 배포할 수 있습니다. 기업 내에서만 사용하는 애플리케이션은 iOS 개발자 프로그램 중 엔터프라이즈 프로그램(Enterprise Program)을 활용할 수 있습니다.
안드로이드와 iOS에서 배포 가능한 방법은 다음과 같습니다.
OS | 배포 방법 | 마켓 | 내용 | 운영사 |
---|---|---|---|---|
안드로이드 | 마켓 | Google Play | 안드로이드를 개발한 구글에서 운영하는 마켓으로 가장 많은 애플리케이션이 배포되는 곳입니다. | 구글 |
Samsung Apps | 단말기 제조사인 삼성전자에서 운영하는 마켓입니다. | 삼성전자 | ||
자체 배포 | 사설 웹서버에 apk 파일을 위치시키고 해당 URL을 통해 배포하는 방법입니다. | 자체운영 | ||
iOS | 마켓 | Apple Appstore | Apple이 운영하는 Market입니다. 단, 사설 서버를 이용할 수는 없습니다. | Apple |
자체 배포 | 엔터프라이즈 프로그램에 가입해 사용할 수 있습니다. | 자체운영 |
안드로이드 운영체제는 서비스를 제공하는 국가에 따라 사용할 수 있는 마켓이 달라질 수 있습니다. 위의 표는 한국에서 사용할 수 있는 주요 마켓을 명시한 것입니다.
개발 프로세스
주요 구성
넥사크로플랫폼 앱을 구성하는 주요 요소는 다음과 같습니다.
넥사크로플랫폼 앱을 구성하는 주요 구성요소를 상세하게 설명하면 다음과 같습니다.
구성요소 | 상세 내용 | 포함 시점 |
---|---|---|
넥사크로플랫폼 라이브러리 (네이티브 코드) | 넥사크로플랫폼 라이브러리는 엔진 라이브러리로 앱 개발 시 반드시 포함되어야 하는 파일입니다. iOS(nexacro14.framework), 안드로이드(nexacro14.jar, libnexacro14.so), 형식으로 제공됩니다. 세부구성은 다음과 같습니다.
※ 주의사항
| 안드로이드 스튜디오 혹은 Xcode에서 넥사크로플랫폼 애플리케이션 프로젝트에 포함해 빌드합니다. |
start_android.json start_ios.json | 다음 파일의 경로 정보가 포함되어 있으며 앱 빌드 시 지정된 경로에 접근해 읽어옵니다.
※ 주의사항
| 실행 시 로딩/업데이트로 넥사크로플랫폼 앱 안에 내려받습니다. |
Base 라이브러리 | 넥사크로플랫폼 프레임워크를 압축해서 제공합니다. 자바스크립트로 구현된 컴포넌트가 포함된 nexacro14lib.zip 파일을 사용합니다. ※ 주의사항
| |
Run 아카이브 파일 | 넥사크로플랫폼에서 사용하는 컴포넌트 정보와 최초 실행할 ADL 자바스크립트 파일의 경로가 포함된 파일입니다. ※ 주의사항
| |
프로젝트 아카이브 파일 / 프로젝트 파일 | 넥사크로 스튜디오에서 개발한 넥사크로플랫폼 HTML5 프로젝트 파일입니다. ※ 주의사항
| |
테마 아카이브 파일 / 테마 파일 | 넥사크로플랫폼 HTML5 프로젝트의 테마 파일입니다. ※ 주의사항
|
개발 및 실행절차
개발 및 실행은 다음과 같은 절차에 의해 진행합니다.
단계 | 상세 내용 |
---|---|
프로젝트 개발 | 넥사크로 스튜디오에서 넥사크로플랫폼 애플리케이션을 개발합니다. |
배포 서버 반영 | 넥사크로 스튜디오에서 필요한 아카이브 파일을 생성 후 배포 서버에 반영합니다. |
앱 프로젝트 생성 / 빌드 | 안드로이드 스튜디오(Android), Xcode(iOS)에서 앱 프로젝트를 생성합니다. 프로젝트를 생성하고 제공된 넥사크로플랫폼 라이브러리를 참조하도록 합니다. 프로젝트 설정을 마쳤으면 안드로이드 스튜디오(Android), Xcode(iOS)에서 앱(APK/APP)를 빌드 합니다. ※ iOS의 경우 단말기를 타겟으로 빌드 하기 위해서는 Apple 개발자 계정이 필요합니다. |
실행 | 단말기 연결 후 안드로이드 스튜디오(Androd), Xcode(iOS)에서 단말기로 실행합니다. ※ iOS의 경우 단말기를 타겟으로 실행하기 위해서는 Apple 개발자 계정이 필요합니다. |
배포 절차 및 방법
넥사크로플랫폼은 아래 그림과 같이 아카이브 파일과 앱이 별도로 배포됩니다. 아카이브 파일은 넥사크로 스튜디오에서 패키징한 Base 라이브러리, 프로젝트 아카이브, 테마 아카이브, Run 아카이브 등으로 구성되며 배포서버를 거쳐 전달됩니다. 앱은 넥사크로플랫폼 라이브러리를 포함해 생성된 프로젝트에서 생성되며 배포 가능한 파일로 만들어져 마켓 또는 사설 서버(Android에 한함)로 배포합니다. 사용자가 스마트폰 단말기 구동 후 마켓 또는 사설 서버에서 앱을 내려받고 실행시키면 앱이 배포서버로부터 필요정보를 로딩하여 화면을 실행시킵니다.
마켓을 이용한 넥사크로플랫폼 Hybrid 앱(APK/APP) 배포 절차는 다음과 같습니다. 세부사항은 마켓 별로 차이점이 있으며 각 마켓의 관련 매뉴얼을 참조하십시오.
개발자 계정 생성
배포용 앱 생성
검수 등록
검수 완료
서비스 시작
앱 개발 및 실행을 위한 권장사양
안드로이드, iOS의 SDK 버전 및 단말기 권장사양은 다음과 같습니다.
배포를 위해서는 최신 버전의 툴 및 SDK를 이용하는 것을 권장합니다.
안드로이드
구분 | 항목 | 내용 |
---|---|---|
개발 | 운영체제 | Window/Mac/Linux 사용가능 |
안드로이드 스튜디오 | 안드로이드 스튜디오 설치파일은 기본적으로 SDK 도구를 포함하고 있습니다. | |
개발자 계정 | Google Play에 배포를 위해서는 각 사의 개발자계정이 있어야 합니다. 개발자 계정의 비용정책은 각 사 별로 다릅니다. | |
단말기 | 단말기 OS | Android OS 2.3 이상 ※ 단, 상기 OS 이외의 것은 추가검토 필요 |
iOS
구분 | 항목 | 내용 |
---|---|---|
개발 | 운영체제 | Mac OS X에서만 개발/배포 가능 최소 : Mac 10.6.8 이상 |
Xcode | iOS용 앱개발을 위한 툴 (무료 제공) | |
iOS SDK | Xcode 설치 시 함께 설치 됩니다. (무료 제공) 최신 버전의 SDK로 빌드 되어야 Appstore에 배포가 가능합니다. | |
개발자 계정 | Apple iOS 개발자 페이지에서 생성하며 연간 비용 형태로 가격이 책정되어 있습니다. 가격은 연간 약 10만원 정도이며 환율에 따라 틀려집니다. | |
단말기 | 단말기 OS | iOS 9 이상 ※ 단, 상기 OS 이외의 것은 추가검토 필요 |