앱 개발 개요

넥사크로플랫폼은 같은 개발 환경에서 하나의 소스 코드로 다양한 운영체제와 사용 환경을 지원하는 애플리케이션을 개발할 수 있습니다. 하지만 실제 사용자에게 전달되는 애플리케이션 형태로 배포되는 과정에서 사용 환경에 따라 일부 기능과 배포 환경이 달라지게 됩니다.

이번 장에서는 스마트폰이나 태블릿 기기 중 iOS와 안드로이드 운영체제를 대상으로 개발자 또는 시스템 운영자가 필요한 내용을 설명합니다.

기술구성 요소

iOS와 안드로이드 운영체제에 배포되는 애플리케이션은 이동 중에 사용하며 다양한 내장 센서 기능을 활용할 수 있고 스마트폰인 경우에는 전화나 문자 메시지 기능을 연동할 수 있습니다. 이에 따라 Device API, 개발, 실행, 배포에 대한 이해가 필요합니다.

Device API

넥사크로플랫폼에서 제공하는 디바이스 API는 아래와 같습니다.

디바이스 API

기능 내용

System

단말기 기본 정보

전화 걸기

간단한 사운드 파일 재생

  • Objects > Misc. Objects > 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

자체

배포


엔터프라이즈 프로그램에 가입해 사용할 수 있습니다.

https://developer.apple.com/programs/enterprise/

자체운영

안드로이드 운영체제는 서비스를 제공하는 국가에 따라 사용할 수 있는 마켓이 달라질 수 있습니다. 위의 표는 한국에서 사용할 수 있는 주요 마켓을 명시한 것입니다.

개발 프로세스

주요 구성

넥사크로플랫폼 앱을 구성하는 주요 요소는 다음과 같습니다.

XPLATFORM Hybrid 앱 주요 구성

넥사크로플랫폼 앱을 구성하는 주요 구성요소를 상세하게 설명하면 다음과 같습니다.

구성요소

상세 내용

포함 시점

넥사크로플랫폼

라이브러리

(네이티브 코드)

넥사크로플랫폼 라이브러리는 엔진 라이브러리로 앱 개발 시 반드시 포함되어야 하는 파일입니다. iOS(nexacro14.framework), 안드로이드(nexacro14.jar, libnexacro14.so), 형식으로 제공됩니다.

세부구성은 다음과 같습니다.

  • Mobile API 모듈

    Mobile API 동작을 위한 Native Code 모듈

  • WebView (iOS)

    화면 등을 표현하기 위한 Web View Control

  • Loading/Update 모듈

    앱 실행 시 로딩 및 업데이트를 처리하는 모듈


※ 주의사항

  • iOS 운영체제에서 사용하는 nexacro14.framework는 압축된 파일로 제공되며 압축을 풀어 폴더 상태로 사용하며 디바이스에서 테스트할 때와 시뮬레이터로 테스트할 때 각각 다른 파일을 사용합니다.

안드로이드 스튜디오 혹은

Xcode에서 넥사크로플랫폼

애플리케이션 프로젝트에

포함해

빌드합니다.

start_android.json

start_ios.json

다음 파일의 경로 정보가 포함되어 있으며 앱 빌드 시 지정된 경로에 접근해 읽어옵니다.

  • Run 아카이브 파일 (iOS)

  • 프로젝트 아카이브 파일

  • 테마 아카이브 파일

  • 넥사크로플랫폼 라이브러리


※ 주의사항

  • 파일명은 변경할 수 있으나 안드로이드 스튜디오 혹은 Xcode에서 지정된 값과 같아야 합니다.

실행 시

로딩/업데이트로 넥사크로플랫폼 앱 안에

내려받습니다.

Base

라이브러리

넥사크로플랫폼 프레임워크를 압축해서 제공합니다. 자바스크립트로 구현된 컴포넌트가 포함된 nexacro14lib.zip 파일을 사용합니다.


※ 주의사항

  • 파일명은 변경할 수 있으나 안드로이드 스튜디오 혹은 Xcode에서 지정된 값과 같아야 합니다.

  • 투비소프트에서 제공하는 nexacro14lib 폴더 구조를 그대로 압축해서 파일로 만들어야 합니다.

Run

아카이브 파일

넥사크로플랫폼에서 사용하는 컴포넌트 정보와 최초 실행할 ADL 자바스크립트 파일의 경로가 포함된 파일입니다.


※ 주의사항

  • iOS 운영체제를 사용하는 경우에만 필요합니다.

  • 제공되는 파일명(Run.zip, Run.html)은 넥사크로플랫폼 내부에서 지정된 값이므로 임의로 수정하지 마십시오. 만일, 파일명을 바꾸면 작동하지 않게 됩니다.

프로젝트

아카이브 파일

/ 프로젝트 파일

넥사크로 스튜디오에서 개발한 넥사크로플랫폼 HTML5 프로젝트 파일입니다.


※ 주의사항

  • 디플로이 서버에서 프로젝트 아카이브 파일을 같이 배포하는 것을 권장합니다. 아카이브 파일은 Archive00.xzip 형식으로 배포됩니다.

  • 설정에 따라 아카이브 파일을 배포하지 않고 직접 HTTP 서버에 있는 프로젝트에 접근할 수 있습니다. 동작 방식은 배포되는 앱의 특성에 맞게 선택할 수 있습니다.

테마

아카이브 파일

/ 테마 파일

넥사크로플랫폼 HTML5 프로젝트의 테마 파일입니다.


※ 주의사항

  • 제공되는 파일명([테마명].zip)은 넥사크로플랫폼 내부에서 지정된 값이므로 임의로 수정하지 마십시오. 만일, 파일명을 바꾸면 작동하지 않게 됩니다.

  • 설정에 따라 아카이브 파일을 배포하지 않고 직접 HTTP 서버에 있는 프로젝트에 접근할 수 있습니다. 동작 방식은 배포되는 앱의 특성에 맞게 선택할 수 있습니다.

개발 및 실행절차

개발 및 실행은 다음과 같은 절차에 의해 진행합니다.

단계

상세 내용

프로젝트 개발

넥사크로 스튜디오에서 넥사크로플랫폼 애플리케이션을 개발합니다.

배포 서버 반영

넥사크로 스튜디오에서 필요한 아카이브 파일을 생성 후 배포 서버에 반영합니다.

앱 프로젝트 생성

/ 빌드

안드로이드 스튜디오(Android), Xcode(iOS)에서 앱 프로젝트를 생성합니다. 프로젝트를 생성하고 제공된 넥사크로플랫폼 라이브러리를 참조하도록 합니다.

프로젝트 설정을 마쳤으면 안드로이드 스튜디오(Android), Xcode(iOS)에서 앱(APK/APP)를 빌드 합니다.


※ iOS의 경우 단말기를 타겟으로 빌드 하기 위해서는 Apple 개발자 계정이 필요합니다.

실행

단말기 연결 후 안드로이드 스튜디오(Androd), Xcode(iOS)에서 단말기로 실행합니다.


※ iOS의 경우 단말기를 타겟으로 실행하기 위해서는 Apple 개발자 계정이 필요합니다.

배포 절차 및 방법

넥사크로플랫폼은 아래 그림과 같이 아카이브 파일과 앱이 별도로 배포됩니다. 아카이브 파일은 넥사크로 스튜디오에서 패키징한 Base 라이브러리, 프로젝트 아카이브, 테마 아카이브, Run 아카이브 등으로 구성되며 배포서버를 거쳐 전달됩니다. 앱은 넥사크로플랫폼 라이브러리를 포함해 생성된 프로젝트에서 생성되며 배포 가능한 파일로 만들어져 마켓 또는 사설 서버(Android에 한함)로 배포합니다. 사용자가 스마트폰 단말기 구동 후 마켓 또는 사설 서버에서 앱을 내려받고 실행시키면 앱이 배포서버로부터 필요정보를 로딩하여 화면을 실행시킵니다.

XPLATFORM Hybrid 배포

마켓을 이용한 넥사크로플랫폼 Hybrid 앱(APK/APP) 배포 절차는 다음과 같습니다. 세부사항은 마켓 별로 차이점이 있으며 각 마켓의 관련 매뉴얼을 참조하십시오.

  1. 개발자 계정 생성

  2. 배포용 앱 생성

  3. 검수 등록

  4. 검수 완료

  5. 서비스 시작

앱 개발 및 실행을 위한 권장사양

안드로이드, iOS의 SDK 버전 및 단말기 권장사양은 다음과 같습니다.

배포를 위해서는 최신 버전의 툴 및 SDK를 이용하는 것을 권장합니다.

안드로이드

구분

항목

내용

개발

운영체제

Window/Mac/Linux 사용가능

안드로이드 스튜디오

안드로이드 스튜디오 설치파일은 기본적으로 SDK 도구를 포함하고 있습니다.

http://developer.android.com/sdk/index.html

개발자 계정

Google Play에 배포를 위해서는 각 사의 개발자계정이 있어야 합니다. 개발자 계정의 비용정책은 각 사 별로 다릅니다.

단말기

단말기 OS

Android OS 2.3 이상

※ 단, 상기 OS 이외의 것은 추가검토 필요

iOS

iOS용 앱 개발 및 실행을 위한 권장 사양

구분

항목

내용

개발

운영체제

Mac OS X에서만 개발/배포 가능

최소 : Mac 10.6.8 이상

Xcode

iOS용 앱개발을 위한 툴 (무료 제공)

https://developer.apple.com/xcode/

iOS SDK

Xcode 설치 시 함께 설치 됩니다. (무료 제공)

최신 버전의 SDK로 빌드 되어야 Appstore에 배포가 가능합니다.

https://developer.apple.com/ios/download/

개발자 계정

Apple iOS 개발자 페이지에서 생성하며 연간 비용 형태로 가격이 책정되어 있습니다. 가격은 연간 약 10만원 정도이며 환율에 따라 틀려집니다.

https://developer.apple.com/programs/ios/

단말기

단말기 OS

iOS 9 이상

※ 단, 상기 OS 이외의 것은 추가검토 필요