2023년 11월 (24.0.0.100)

버전정보

Product Version

24.0.0.100

File Version

2023.11.7.1

릴리스 이후 수정 사항

24.0.0.101

RP

설명

98448

TextField, DateField 컴포넌트의 이벤트명 오류를 수정했습니다(oninvaild -> oninvalid)

TextField, MultiLineTextField, DateField 컴포넌트의 labelposition 속성 기본값이 잘못 설정된 것을 수정했습니다.

넥사크로 N V24 주요 변경 사항

Android 앱 구조 개선

Android NRE 내부 구조를 Native App에서 WebView 기반의 Hybrid App으로 변경했습니다. 초기 로딩 속도가 개선되고 앱의 사용자 스크롤 동작과 터치 반응성이 개선됐습니다.

가벼워졌습니다

네이티브 코드를 제거해 배포하는 모바일 앱의 크기를 이전 버전과 비교해 1/4로 줄였습니다.

넥사크로 N V24 Android NRE

넥사크로 N V21 Android NRE

(arm64 라이브러리만 포함)

6MB

22MB

선명해졌습니다

렌더링 처리를 Skia 기반에서 WebView 기반으로 변경했습니다.

화면에 표시되는 글자와 이미지 렌더링 처리 성능이 개선되었고 일부 기기에서 글자나 이미지가 표시되면서 계단 현상(Aliasing)이 나타나는 문제를 해결했습니다.

빠르게 실행됩니다

앱 실행 시 초기 로딩 속도가 이전 버전과 비교해 2배 빨라졌습니다.

넥사크로 N V24 Android NRE

넥사크로 N V21 Android NRE

(arm64 라이브러리만 포함)

947ms

1846ms

LG V40 기기로 테스트 진행했습니다.

같은 프로젝트로 앱을 빌드했고 측정 시간은 유사한 구간에서 측정했습니다.

V24: WebView.onPageFinished() 호출 시간 - NexacroActivity 생성 시간

V21: Cy_PlatformGlobla::LoadApplication() 실행 완료 시간 - NexacroUpdatorActivity 생성 시간

즉시 반응합니다

앱 실행 후 사용자 인터랙션에 대한 반응이 빨라졌습니다. 스크롤, 터치 플링 액션, 컴포넌트 반응 속도가 전반적으로 개선됐습니다.

웹브라우저와 같은 환경을 지원합니다

Android NRE 내부 구조를 Native App에서 WebView 기반의 Hybrid App으로 변경하면서 웹브라우저에서 지원하는 여러 장점을 적용할 수 있습니다.

모바일 앱 개발 환경 단일화

Android, iOS NRE 개발 환경 단일화를 통해 개발 생산성을 높이고 Device API와 Extension API의 사용 편의성을 향상했습니다.

In-App Browser 지원

스크립트 상에서 window.open 함수 실행 시 외부 웹브라우저로 실행되던 동작을 in-app browser가 팝업 형태로 표시되도록 변경했습니다.

nexacro.open 메서드도 Android, iOS NRE에서 사용할 수 있습니다.

Cordova 플러그인 지원

앱 개발 시 기능 확장을 위해 Cordova 플러그인을 가져와 사용할 수 있습니다.

Cordova 플러그인 설치

Cordova 플러그인 파일 내보내기

Cordova 플러그인 적용

넥사크로 라이브러리 배포 방식 개선

넥사크로 라이브러리를 기본 라이브러리와 Device API 라이브러리로 분리하고 필요에 따라 선택적으로 배포할 수 있습니다.

iOS/iPad 넥사크로 라이브러리 설정

Android 넥사크로 라이브러리 설정

Android 앱 구조 변경으로 변경되거나 지원 중단되는 기능

Android NRE 내부 구조를 WebView 기반으로 변경하면서 WebView에서 제공하는 기능에 맞추어 동작이 변경되며 중복되는 일부 기능 지원을 중단합니다.

X-Frame-Options 설정이 있는 웹페이지 로딩

HTTP 헤더 적용 시 X-Frame-Options 설정이 있는 경우 WebBrowser 컴포넌트에서 웹페이지 로딩 시 제약이 있을 수 있습니다.

실행 환경

Android NRE

(V21)

Android NRE

iOS NRE

X-Frame-Options 설정 없는 웹페이지

O

O

O

X-Frame-Options 설정 있는 웹페이지


X-Frame-Options: DENY

O

X

X

X-Frame-Options: SAMEORIGIN

O

같은 도메인만 허용

같은 도메인만 허용

Cross Domain 상황에서 WebBrowser 컴포넌트 메서드 실행

Android NRE 내부 구조를 Native App일 때는 Cross Domain 문제가 무시되지만, WebView 기반의 Hybrid App에서는 웹의 CORS 문제가 동일하게 적용됩니다. 앱 패킹 시 Update Type에 따라 지원 여부가 달라질 수 있습니다.

실행 환경

Android NRE

(V21)

Android NRE

iOS NRE

Update Type

Local, Update

Server

Local, Update

Server

callMethod

O

X

X

X

getProperty

X

O

X

X

X

WebView 중복 기능에 대한 지원 중단

넥사크로 N V21 지원 항목

처리 방안

안드로이드 운영체제 NRE에서 단위 테스트 실행하기

Selenium WebDriver를 사용할 수 있습니다.

안드로이드 네이티브 인터페이스

WebView에서 제공하는 API를 사용할 수 있습니다.

안드로이드 운영체제에서 하나 이상의 NexacroActivity 사용하기

WebView에서 제공하는 API를 사용할 수 있습니다.

NRE 원격 디버깅

WebView에서 제공하는 API를 사용할 수 있습니다.

Internet Explorer 10, 11 지원 중단

모던 웹 기술을 최대한 활용하기 위해 Internet Explorer 10 및 11 지원을 중단했습니다.

Internet Explorer를 사용해야 하는 환경이라면 21 버전의 nexacro SDK를 사용해 새로운 개발 도구에서도 지원할 수 있습니다.

SDK

이전 버전에서는 Internet Explorer 지원을 위해 속성값 설정 시 set_속성 형태의 스크립트를 사용했습니다. 이미 작성한 코드에 대해서는 set_속성 형태의 스크립트를 계속 지원하며 신규로 작성하는 경우에는 속성값을 직접 대입하는 방법을 권장합니다.

(O) this.Button00.text = "text"; // recommend
(O) this.Button00.set_text("text");

속성값 설정

반응형 웹 개발 편의성 개선

화면 편집 시 여러 컴포넌트를 그룹으로 묶어서 화면 크기에 맞게 레이아웃을 손쉽게 조정할 수 있게 Panel 컴포넌트를 지원합니다.

컨테이너 컴포넌트 크기 자동 조정

이제 Div 및 Panel 컴포넌트에 fittocontents 기능을 활용해 배치된 컴포넌트에 따라 적절하게 컨테이너 컴포넌트의 크기를 자동으로 조정할 수 있습니다.

MLM (Multi Layout Manager)

Fluid Layout

상대 길이 단위

화면 디자인 시 절대 길이 단위("px"), 비율 단위("%") 뿐 아니라 상대 길이 단위("em", "rem")를 지원합니다. 컴포넌트 배치와 font-size 설정 시 활용할 수 있습니다.

Position

Screen에 따라 다른 스타일 적용

Screen type 속성값에 따라 특정 선택자의 스타일을 다르게 적용할 수 있습니다

Screen에 따라 스타일 정의하기

테마나 XCSSResource에서 Screen type을 지원할 수 있게 generate 시 각 Screen type에 맞는 파일이 추가로 생성됩니다.

컨테이너 컴포넌트 자식 컴포넌트 추가

이전 버전 넥사크로 스튜디오에서는 컨테이너 컴포넌트에 자식 컴포넌트를 추가하려면 컨테이너 컴포넌트 내에 새로운 컴포넌트를 배치했어야 했는데 이제는 이미 배치된 컴포넌트를 선택하고 컨테이너 컴포넌트로 드래그하는 것만으로 자식 컴포넌트로 추가할 수 있습니다.

컴포넌트를 선택하고 컨테이너 컴포넌트 영역으로 드래그하면 파란색으로 경계선이 표시됩니다. 컨테니어 컴포넌트 내 원하는 위치에 컴포넌트를 배치할 수 있습니다.

컨테이너 컴포넌트와 겹치는 위치에 컴포넌트를 배치하거나 컨테이너 컴포넌트 자식 컴포넌트의 위치를 컨테이너 컴포넌트 영역 밖으로 이동하고자 할 때는 아래의 방법을 사용하세요.

신규 컴포넌트

Material UI 적용 컴포넌트

시작, 종료 날짜, 시간 선택 컴포넌트

컴포넌트 그루핑 컴포넌트

프로젝트 템플릿

실행 환경에 따라 프로젝트에서 바로 활용할 수 있는 프로젝트 템플릿을 제공합니다.

프로젝트 템플릿

DesktopMDI

데스트톱 환경을 지원하는 프로젝트 개발 시 활용할 수 있는 디자인 템플릿과 트랜잭션, 팝업, 메시지 처리 등의 공통 기능 스크립트를 제공합니다.

Mobile

모바일 환경을 지원하는 프로젝트 개발 시 활용할 수 있는 디자인 템플릿과 트랜잭션, 팝업, 메시지 처리 등의 공통 기능 스크립트를 제공합니다.

다국어 지원

언어별로 StringResource를 설정하거나 데이터베이스에 있는 용어집을 참조해서 애플리케이션 개발 시 다국어 지원을 쉽게 구현할 수 있습니다.

다국어 적용하기

Generate Rule

이전 버전에서 CSS Rule 파일이 있는 경로를 지정하는 -CSSRULE 옵션은 더 이상 지원하지 않습니다.

CSS Rule 파일을 포함한 Generate에 필요한 Rule 파일이 추가됐고 –GENERATERULE 옵션을 필수로 지정하도록 변경됐습니다.

Nexacro Deploy