2.넥사크로플랫폼 개요

넥사크로플랫폼은 다양한 디바이스와 운영 환경을 지원하기 위해 통합 프레임워크(Unified Framework)와 자바스크립트 기반의 컴포넌트를 제공합니다. 하나의 코드로 어떤 환경에서든지 동작하는 애플리케이션을 만들 수 있으며 각 운영 환경에 따라 최적화된 실행 환경을 제공합니다.

2.1넥사크로플랫폼 통합 프레임워크

넥사크로플랫폼 통합 프레임워크는 다양한 실행 환경에서 최적의 성능을 제공하고 새로운 운영체제가 등장하더라도 즉각적으로 대응할 수 있는 구조로 만들어졌습니다.

버전에 따라 패키징이나 배포 방식은 달라질 수 있지만, 내부적으로 동작하는 애플리케이션은 같기 때문에 어떤 환경에서도 같은 동작을 보장할 수 있습니다. 애플리케이션에서 사용하는 모든 컴포넌트는 자바스크립트 기반으로 만들어져 웹브라우저와 넥사크로플랫폼 러너(Runner)에서 같은 방식으로 동작합니다. 다만 웹브라우저는 사용자가 사용하는 버전에 따라 성능이 달라질 수 있습니다.

통합 프레임워크는 다른 요소들과 함께 넥사크로플랫폼 엔진 역할을 담당합니다. 주요 요소는 아래와 같습니다.

그림 2-1unified_framework

구성요소

설명

통합 프레임워크

(Unified Framework)

프로젝트와 애플리케이션을 구성하는 기본적인 프레임워크를 제공합니다.

데이터 통신(XML, CSV 등), 화면 간의 연계와 같은 작업을 처리하고 설정된 테마에 따라 전체 스타일을 처리하는 기능을 포함합니다.

UI 컴포넌트

(UI Components)

화면 상에 보이는 UI 컴포넌트와 Dataset과 같은 오브젝트를 제공합니다. 내부적으로 UI 컴포넌트는 기본 컴포넌트를 조합해 만들어집니다.

- UI 컴포넌트: Button, Calendar, Checkbox, Grid 등

- 기본 컴포넌트: EditBase, FormBase, FrameBase, ScrollBar 등

- 오브젝트: Dataset

통합 프레임워크

API

애플리케이션은 통합 프레임워크로 구성되어 런타임과 HTML5 버전이 같은 방식으로 동작하며 개발자는 어떤 버전을 사용하던 같은 방식으로 개발합니다.

내부 요소인 엘리먼트(Element)는 각 환경에 최적화된 방식으로 개발됐습니다. 런타임 버전은 C를 기반으로 작성되며 HTML5 버전은 자바스크립트를 기반으로 작성됩니다. 하지만 개발자가 사용자 컴포넌트를 만들거나 프로젝트에 필요한 공통 작업을 할 때는 자바스크립트 기반으로 하나의 코드만을 사용합니다. 나머지는 통합 프레임워크 내부에서 사용 환경에 따라 필요한 요소를 적용해 처리합니다.

Device API

서드파티에서 개발한 모듈(Extension DLL)과 연계 시 사용하는 기능입니다.

외부 장비 연동 등의 처리를 지원합니다.

Device API

(Camera...)

모바일 기기 사용 시 카메라나 전화 걸기 등 기기 자체의 기능과 연계 시 사용하는 기능입니다. 기게에 따라 지원되는 기능이 제한될 수 있습니다.

- 웹브라우저에 따라 일부 기능을 제공하지만 아직은 실험적인 수준이어서 HTML5 버전에서는 지원하지 않습니다.

Local Database

애플리케이션 내부에서 데이터를 저장하고 처리할 수 있는 기능을 지원합니다.

SQLite를 지원하며 데스크탑 뿐 아니라 모바일 기기에서도 사용할 수 있습니다.

- 웹브라우저에서도 Indexed Database(http://www.w3.org/TR/IndexedDB/)를 지원하지만 아직은 실험적인 수준이어서 HTML5 버전에서는 지원하지 않습니다.

바이너리 데이터

통신

데이터 통신 시 XML, CSV, SSV 등의 형식은 런타임, HTML5 버전 모두 기본 지원하며 런타임 버전에서는 바이너리 통신을 추가적으로 지원합니다.

- 웹브라우저에서도 바이너리 데이터 통신 처리가 가능하지만 아직은 실험적인 수준이어서 HTML5 버전에서는 지원하지 않습니다.

2.2넥사크로플랫폼 구성 요소

넥사크로플랫폼은 4가지 요소로 구분됩니다. 프로그래밍 언어와 개발 환경은 제품 버전과 상관없이 같으며 실행 환경과 배포 환경은 버전에 따라 달라질 수 있습니다.

2.2.1프로그래밍 언어

넥사크로플랫폼은 다른 프로그래밍 언어와 달리 사용자에게 보이는 화면을 정의하는 부분과 비즈니스 로직을 처리하는 스크립트로 구분됩니다. 또한, 화면에 원하는 디자인을 적용하기 위해 스타일과 테마를 적용할 수 있는 기능을 제공합니다.

화면을 배치하는 부분은 XML 기반으로 각 컴포넌트의 속성과 바인딩, 이벤트 등의 정보를 관리합니다. 다양한 실행 환경을 지원할 수 있도록 MLM(Multi Layout Manager) 기능을 지원하며 관련된 속성을 사용할 수 있습니다. 애플리케이션 실행에 필요한 환경 정보는 별도의 파일에서 관리합니다.

아래는 넥사크로플랫폼에서 애플리케이션 개발 시 기본적으로 생성되는 파일에 대한 설명입니다.

표 2-1넥사크로플랫폼 Language를 사용하는 주요 파일들

구분

파일명(확장자)

용도

nexacro platform Project

*.xprj

• 프로젝트 정보

• TypeDefinition

• 전역 변수

• ADL (애플리케이션)

nexacro platform

Application Definition

*.xadl

• 애플리케이션 실행 환경

• TypeDefinition

• 전역 변수

• 테마 정보

• 프레임 속성

• 스크린 정보 (ScreenInfo)

nexacro platform

Form Definition

*.xfdl

• 화면 레이아웃

• 화면 폼 속성

• 컴포넌트 속성

• 추가 레이아웃

• 스크립트

TypeDefinition

default_typedef.xml

• 모듈

• 컴포넌트

• 서비스

• 업데이트

GlobalVariable

globalvars.xml

• 전역 변수

Theme

*.xtheme

• 스타일시트 (프레임, 폼, 컴포넌트 등)

• 이미지

생성된 애플리케이션은 빌드 과정을 거쳐 자바스크립트 기반의 코드로 변환됩니다. 실제 실행 환경에서는 변환된 자바스크립트 코드를 실행하게 됩니다.

2.2.2개발 환경

넥사크로플랫폼은 위지윅(WYSIWYG) 기반의 개발 툴인 넥사크로 스튜디오를 제공합니다. 넥사크로 스튜디오 내에서 실행 환경과 상관없이 애플리케이션을 개발할 수 있으며 생성된 코드는 넥사크로플랫폼 프로그래밍 언어로 저장됩니다.

넥사크로 스튜디오는 마이크로소프트 윈도우 운영체제만을 지원하지만 개발된 애플리케이션은 어떤 운영체제나 어떤 디바이스든 상관없이 최적화된 사용 환경으로 배포할 수 있습니다.

배포 환경에 따라 넥사크로 스튜디오 외 다른 개발 툴에서 추가적인 작업을 필요로 할 수 있으며 별도의 인증을 받아야 할 수 있습니다. 예를 들어 iOS 운영체제를 지원하는 앱을 개발하는 경우에는 배포 시 Xcode 환경이 필요하며 안드로이드 운영체제를 지원하는 앱을 개발하는 경우에는 배포 시 이클립스 환경이 필요합니다.

2.2.3실행 환경

넥사크로플랫폼은 통합 프레임워크(Unified Framework)를 기본으로 애플리케이션이 실행되며 각 실행 환경에 따라 최적화된 구조를 제공합니다.

애플리케이션을 실행하는 주체에 따라 런타임과 HTML5 2가지 버전이 제공됩니다. 런타임 버전은 각 운영체제에 따라 최적화된 실행 환경을 제공합니다. 새로운 운영체제가 나오더라도 필요한 API를 추가해 지원할 수 있습니다. HTML5 버전은 사용자의 웹브라우저 기반으로 동작합니다.

넥사크로플랫폼이 실행되는 환경을 간략하게 표현하면 아래와 같습니다.

그림 2-2XP13_Frame_Summary

런타임 버전은 자체 개발된 렌더링 엔진을 포함한 넥사크로플랫폼 러너(Runner)를 제공합니다. 이 때문에 일반 웹브라우저보다 빠르고 안정적인 성능을 보장할 수 있습니다.

런타임 버전이라도 운영체제상 제약이 있는 경우가 있습니다. 예를 들어 iOS에서 실행되는 앱은 UIWebView라는 오브젝트만 사용해야 합니다. 같은 프레임워크를 사용하지만, 운영체제 제조사 정책 상 UIWebView 오브젝트로 한 번 더 감싸주는 형식을 취합니다.

2.2.4배포 환경

배포란 애플리케이션이 실행하는 데 필요한 자원을 클라어언트에 설치하는 일련의 작업을 의미합니다. 사용 환경에 따라 넥사크로플랫폼에서 개발된 애플리케이션과 필요한 모듈을 내려받아 클라이언트에 설치하게 됩니다.

넥사크로플랫폼 애플리케이션은 사용자가 사용하는 클라이언트에서 동작합니다. 하지만 데이터 처리와 같은 작업을 위해 애플리케이션 서버(Application Server)를 필요로 할 수 있습니다. 넥사크로플랫폼은 데이터 처리를 위한 X-API 모듈을 함께 제공하고 있습니다. 또한, 필요에 따라 데이터를 실시간으로 처리해야 한다면 X-PUSH와 같은 추가적인 기술을 사용할 수 있습니다.

기본 배포 작업은 HTTP 프로토콜을 사용합니다. 하지만 인터넷 접속을 지원하지 않는 환경에서는 애플리케이션 실행에 필요한 자원을 별도 매체로 배포해 사용할 수 있습니다.

각 배포 환경에 따라 추가적인 작업이 필요할 수 있습니다. 세부적인 배포와 관련된 내용은 관리자 가이드(Administrator Guide)에서 제공하는 버전별 상세 내용을 참고하세요.

그림 2-3XP13_Application_flow

X-PUSH는 런타임 버전만 지원합니다.

런타임 버전에서는 설치 모듈이 실행환경에 따라 배포됩니다.

테마 파일은 기본 제공되는 테마를 사용할 경우에는 넥사크로 스튜디오에서 따로 만들지 않고 기본 테마를 변환하는 작업만 거칩니다.

2.3시스템 요구사양

iOS 운영체제에서 한국어 10키 키보드 사용 시 한글 입력에 제약이 있을 수 있습니다.

iOS 운영체제에서 10키 키보드 사용시 한글 입력 제약

2.3.1Runtime

항목

사양

Windows

Android

iOS

CPU

최소

Intel® Pentium® 4 1.4GHz

ARM Cortex-A8

600 MHz

ARM Cortex-A8

600 MHz

권장

Intel® Core™ i3-330M 2.13GHz

ARM Cortex-A8

1GHz 이상

ARM Cortex-A8

1GHz 이상

디스플레이

최소

-

HVGA

HVGA

권장

-

HVGA 이상

HVGA 이상

메모리

최소

1GB

256M

256M

권장

4GB DDR3

512M

512M

HDD(ROM)

최소

8GB

4M

4M

권장

30GB - 5400rpm

10M

10M

플랫폼

Windows XP SP3 이상

Windows 10 V1703 (10.0.15063.413) 이하

Android 2.3 이상

Android 7.0 이하

iOS 9 이상

iOS 10.1 이하

2.3.2HTML5

웹브라우저

최소사양

최고사양

비고

Google Chrome

10.0.648.127

최신버전


Firefox

8.0.1

최신버전


Internet Explorer

8.0

11.0

표준모드만 지원

Edge

25.10586.63.0

최신버전


Opera

11.0

최신버전


Safari

4

최신버전

macOS만 지원

Internet Explorer 브라우저는 표준모드만 지원합니다. 문서 호환성 모드를 사용하는 경우 애플리케이션의 정상적인 동작을 보장하지 않습니다.

Windows Safari 브라우저는 제조사의 업데이트 중단으로 지원하지 않습니다.

https://support.apple.com/en-us/HT204416

모바일 웹브라우저는 아래 명시된 브라우저만 지원합니다.

• Android 기본 브라우저

• Android 구글 크롬 브라우저

• iOS 기본 브라우저

모바일 웹브라우저

최소사양

권장사양

최고사양

Android 기본 브라우저

Android 2.3 기본 브라우저

Android 6.0 기본 브라우저

Android 7.0 기본 브라우저

Android 구글 크롬 브라우저

Android Chrome (Android 4.0)

Android Chrome (Android 4.4)

Android Chrome 최신버전

iOS 기본 브라우저

iOS 9 기본 브라우저


iOS 10.1 기본 브라우저

2.4모바일 테스트 현황 (2019년 12월 정기 업데이트, 누적 정보)

아래 정보는 누적된 현황입니다.

Windows 모바일 환경에 대한 테스트 현황은 2017년 추가했습니다.

2019년 12월 정기에 추가된 내용까지 업데이트했습니다.

2.4.1Android

No

단말기 모델

OS Version

최종 테스트 일자

1

Samsung Galaxy tab 10.1(SHV-M380S)

Android (3.2)

2016-10-25

2

Fujitsu Arrows Tab (FAR70A)

Android (3.2)

2014-02-21

3

LG Optimus Vu2 (LG-F200S)

Android(4.0.4)

2014-10-07

4

Sharp Aquos Phone Zeta (SH-02E)

Android (4.0.4)

2014-01-22

5

Samsung Galaxy Note 10.1(SHV-E230S)

Android (4.1.1)

2015-04-07

6

Samsung Galaxy Note 10.1(SHV-E230S)

Android (4.1.2)

2017-01-24

7

Samsung Galaxy Note 8.0 (SHW-M500W)

Android (4.1.2)

2016-04-26

8

Samsung Galaxy S3 (SHV-E210S)

Android (4.1.2)

2016-03-29

9

LG G2 (LG-F320S)

Android (4.2.2)

2015-12-29

10

Samsung Galaxy S4 LTE-A(SHV-E330)

Android (4.2.2)

2016-05-24

11

Samsung Galaxy S5 (SM-G906S)

Android (4.2.2)

2015-04-07

12

Samsung Galaxy Tab S 10.5 (SM-T800)

Android (4.2.2)

2015-04-07

13

Fujitsu F-04F

Android (4.2.2)

2016-05-24

14

Samsung Galaxy S4 (Verizon -SCH-I545)

Android (4.4.2)

2015-05-26

15

Samsung Galaxy S4 LTE-A (SHV-E330)

Android (4.4.2)

2016-7-26

16

Fujitsu ARROWS Tab(M555/KA4)

Android (4.4.2)

2015-06-23

17

NEC/Lenovo LaVie Tab S(TS708/T1W) / Lenovo Tab S8

Android (4.4.2)

2015-06-23

18

Google nexus 5

Android (4.4.2)

2015-07-28

19

SHARP AQUOS CRYSTAL X(402SH)(SoftBank)

Android (4.4.2)

2015-07-28

20

Kyocera TORQUE(G01)(au)

Android (4.4.2)

2015-07-28

21

Samsung Galaxy Note 10.1(SHV-E230S)

Android (4.4.2)

2016-02-23

22

Samsung Galaxy Tab S 10.5 (SM-T800)

Android (4.4.2)

2017-05-30

23

Samsung Galaxy Note4 (SM-N910S)

Android (4.4.2)

2015-05-26

24

LG G3 (LG-F400)

Android (4.4.2)

2016-08-23

25

Samsung Galaxy S4 (AT&T -SGH-I337)

Android (4.4.4)

2015-05-26

26

Samsung Galaxy Note4 (SM-N910S)

Android (5.0)

2016-02-23

27

LG G Flex2

Android (5.0.1)

2017-02-21

28

Zen Pad 10(Z300CL/M1000C)

Android(5.0.1)

2016-08-23

29

Samsung Galaxy S5 (SM-G906S)

Android (5.0.1)

2015-11-24

30

Samsung Galaxy S6

Android (5.0.1)

2015-09-22

31

Samsung Galaxy S6 Edge

Android (5.0.2)

2017-05-30

32

Galaxy Tab S2 8.0 (SM-T715)

Android (5.0.2)

2017-02-21

33

ZenPad C 7.0(Z170C)

Android(5.0.2)

2017-07-25

34

XPERIA Z5(docomo:SO-01H)

Android (5.1)

2016-10-25

35

Google nexus 5

Android (5.1.1)

2016-01-26

36

Samsung Galaxy S6

Android (5.1.1)

2015-12-29

37

LG V10 (LGF600 64G)

Android (5.1.1)

2017-03-28

38

LG G4 (LG-F500)

Android (6.0)

2016-08-23

39

Samsung Galaxy S6

Android (6.0)

2016-06-28

40

ASUS ZenPad 8.0(Z380M)

Android(6.0)

2016-09-27

41

Google nexus 5

Android (6.0.1)

2016-06-28

42

Google nexus 6

Android (6.0.1)

2016-11-22

43

Galaxy Note5(SM-N920S)

Android (6.0.1)

2017-03-28

44

Arrow SV F-03H

Android(6.0.1)

2019-09-24

45

arrows Tab(F-04H)

Android(6.0.1)

2019-12-24

46

LG V20

Android(7.0)

2017-12-26

47

Google nexus 5x

Android(7.0)

2016-10-25

48

Samsung Galaxy S7

Android (7.0)

2018-05-29

49

Samsung Galaxy S7 Edge

Android (7.0)

2018-02-27

50

Samsung Galaxy S8

Android (7.0)

2018-01-23

51

Galaxy S6 edge+ (SM-G928)

Android(7.0)

2017-08-29

52

Samsung Galaxy S6

Android (7.0)

2018-01-23

53

Samsung Galaxy S6 Edge

Android (7.0)

2018-03-27

54

Xperia XZ(SO-01J)

Android (7.0)

2017-12-26

55

Google nexus 6

Android (7.1.1)

2018-03-27

56

V30_Android

Android (7.1.2)

2017-11-28

57

V30_Android

Android (8.0)

2018-02-27

58

Samsung Galaxy S8

Android (8.0)

2018-04-24

59

Samsung Galaxy S8+

Android (8.0)

2019-07-29

60

Samsung Galaxy Note 8

Android (8.0)

2018-12-26

61

Samsung Galaxy S8+

Android (7.0)

2018-09-27

62

Samsung Galaxy S7 Edge

Android (8.0)

2019-03-26

63

Samsung Galaxy Note 9

Android (9.0)

2019-07-29

64

Samsung Galaxy S9

Android (9.0)

2019-07-29

65

Samsung Galaxy Tab S4

Android (9.0)

2019-12-24

66

LG G7

Android (8.0)

2019-12-24

2.4.2iOS

No

단말기 모델

OS Version

최종 테스트 일자

1

Apple iPhone5 (A1529)

iOS (6.0.1)

2014-10-07

2

Apple iPad mini (A1432)

iOS (6.0.1)

2014-07-11

3

Apple iPad mini (A1432)

iOS (7.1)

2014-10-28

4

Apple iPhone5s (A1530)

iOS (7.1)

2014-07-29

5

Apple iPad2 (A1395)

iOS (7.1.1)

2014-07-29

6

Apple iPad4 (A1458)

iOS (7.1.1)

2016-03-29

7

Apple iPad Air2(A1566)

iOS (8.1)

2015-11-24

8

Apple iPad2 (A1395)

iOS (8.1.1)

2015-09-22

9

Apple iPhone5s (A1530)

iOS (8.1.2)

2016-05-24

10

Apple iPad mini (A1432)

iOS (8.1.3)

2016-04-26

11

Apple iPad mini 3(A1599)

iOS (8.1)

2017-11-28

12

Apple iPhone5 (A1429)

iOS (8.3)

2017-01-24

13

Apple iPhone6 (A1586-16)

iOS (8.1.3)

2015-04-07

14

Apple iPhone6 Plus(A1524)

iOS (8.1.3)

2015-06-23

15

Apple iPad2 (A1395)

iOS (9.0.2)

2017-02-21

16

Apple iPhone6 (A1586-16)

iOS (9.2)

2016-03-29

17

Apple iPhone6s (A1688)

iOS (9.2)

2016-09-27

18

Apple iPad Air2(A1566)

iOS (9.2.1)

2016-06-28

19

Apple iPad Air2(A1566)

iOS (9.3.2)

2016-12-27

20

Apple iPad Air2(A1566)_KOR

iOS (9.3.3)

2017-06-27

21

Apple iPad Pro

iOS (9.3.4)

2018-01-23

22

Apple iPhone6s Plus

iOS (9.3.5)

2017-05-30

23

Apple iPad Air2(A1566)_JPN

iOS (10.0.2)

2016-10-25

24

Apple iPad mini 4(A1538)

iOS (10.2)

2017-06-27

25

Apple iPhone7 (A1778)

iOS (10.2.1)

2018-01-23

26

Apple iPhone6s (A1688)

iOS (10.3.1)

2017-11-28

27

Apple iPad Air2(A1566)_JPN

iOS (10.3.1)

2017-08-29

28

Apple iPhone 7 Plus (A1784)_iOS(10.3.2)

iOS (10.3.2)

2017-09-26

29

Apple iPad Air2(A1566)_JPN

iOS (11)

2017-10-31

30

Apple iPad mini 4(A1538)

iOS (11.0.3)

2018-05-29

31

Apple iPhone 7 Plus (A1784)

iOS(11.1.2)

2017-12-26

32

Apple iPhone X

iOS (11.2.6)

2018-05-29

33

Apple iPhone7 (A1778)

iOS (11.3)

2018-04-24

34

Apple iPhone8

iOS (11.3.1)

2018-09-27

35

Apple iPhone8 Plus

iOS (11.4)

2018-06-26

36

Apple iPad Air2(A1566)_KOR

iOS (10.3.2)

2018-09-27

37

Apple iPhone 7 Plus (A1784)

iOS (12.1)

2018-12-26

38

Apple iPad mini 4(A1538)

iOS (12.1.4)

2019-03-26

39

Apple iPhone 7 Plus (A1784)

iOS(12.1.4)

2019-07-29

40

Apple iPhone7 (A1778)

iOS Beta(13)

2019-07-29

41

Apple iPhone8 Plus

iOS (12.1.4)

2019-03-26

42

Apple New iPad Pro

iOS Beta(13.1)

2019-09-24

43

Apple iPad air2

iOS Beta(13.1)

2019-09-24

44

Apple New iPad Pro

iOS Beta(13.2.3)

2019-12-24

45

Apple iPad air2

iOS Beta(13.2.3)

2019-12-24

2.4.3Windows

No

단말기 모델

OS Version

최종 테스트 일자

1

ARROWS Tab(Q506/MB)

Windows 10 Pro

2019-07-29

2

ThinkPad 10

Windows 10 Pro 64bit

2019-07-29

3

New SurfacePRO M3

Windows 10 Pro 64bit

2018-12-26