버전정보
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으로 변경하면서 웹브라우저에서 지원하는 여러 장점을 적용할 수 있습니다.
웹접근성 지원
웹폰트 지원
디버깅 지원(WebKit inspector)
WebBrowser 컴포넌트 기능 개선(화면 Clipping 등의 문제 해결)
모바일 앱 개발 환경 단일화
Android, iOS NRE 개발 환경 단일화를 통해 개발 생산성을 높이고 Device API와 Extension API의 사용 편의성을 향상했습니다.
In-App Browser 지원
스크립트 상에서 window.open 함수 실행 시 외부 웹브라우저로 실행되던 동작을 in-app browser가 팝업 형태로 표시되도록 변경했습니다.
nexacro.open 메서드도 Android, iOS NRE에서 사용할 수 있습니다.
Cordova 플러그인 지원
앱 개발 시 기능 확장을 위해 Cordova 플러그인을 가져와 사용할 수 있습니다.
넥사크로 라이브러리 배포 방식 개선
넥사크로 라이브러리를 기본 라이브러리와 Device API 라이브러리로 분리하고 필요에 따라 선택적으로 배포할 수 있습니다.
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 지원 항목 | 처리 방안 |
|---|---|
Selenium WebDriver를 사용할 수 있습니다. | |
WebView에서 제공하는 API를 사용할 수 있습니다. | |
WebView에서 제공하는 API를 사용할 수 있습니다. | |
WebView에서 제공하는 API를 사용할 수 있습니다. |
WebView API
https://developer.android.com/reference/android/webkit/WebView
WebView API Debugging
https://developer.android.com/reference/android/webkit/WebView#setWebContentsDebuggingEnabled(boolean)
Selenium WebDriver
https://www.selenium.dev/documentation/webdriver/
Internet Explorer 10, 11 지원 중단
모던 웹 기술을 최대한 활용하기 위해 Internet Explorer 10 및 11 지원을 중단했습니다.
Internet Explorer를 사용해야 하는 환경이라면 21 버전의 nexacro SDK를 사용해 새로운 개발 도구에서도 지원할 수 있습니다.
이전 버전에서는 Internet Explorer 지원을 위해 속성값 설정 시 set_속성 형태의 스크립트를 사용했습니다. 이미 작성한 코드에 대해서는 set_속성 형태의 스크립트를 계속 지원하며 신규로 작성하는 경우에는 속성값을 직접 대입하는 방법을 권장합니다.
(O) this.Button00.text = "text"; // recommend
(O) this.Button00.set_text("text");반응형 웹 개발 편의성 개선
화면 편집 시 여러 컴포넌트를 그룹으로 묶어서 화면 크기에 맞게 레이아웃을 손쉽게 조정할 수 있게 Panel 컴포넌트를 지원합니다.
컨테이너 컴포넌트 크기 자동 조정
이제 Div 및 Panel 컴포넌트에 fittocontents 기능을 활용해 배치된 컴포넌트에 따라 적절하게 컨테이너 컴포넌트의 크기를 자동으로 조정할 수 있습니다.
상대 길이 단위
화면 디자인 시 절대 길이 단위("px"), 비율 단위("%") 뿐 아니라 상대 길이 단위("em", "rem")를 지원합니다. 컴포넌트 배치와 font-size 설정 시 활용할 수 있습니다.
Screen에 따라 다른 스타일 적용
Screen type 속성값에 따라 특정 선택자의 스타일을 다르게 적용할 수 있습니다
테마나 XCSSResource에서 Screen type을 지원할 수 있게 generate 시 각 Screen type에 맞는 파일이 추가로 생성됩니다.
컨테이너 컴포넌트 자식 컴포넌트 추가
이전 버전 넥사크로 스튜디오에서는 컨테이너 컴포넌트에 자식 컴포넌트를 추가하려면 컨테이너 컴포넌트 내에 새로운 컴포넌트를 배치했어야 했는데 이제는 이미 배치된 컴포넌트를 선택하고 컨테이너 컴포넌트로 드래그하는 것만으로 자식 컴포넌트로 추가할 수 있습니다.
컴포넌트를 선택하고 컨테이너 컴포넌트 영역으로 드래그하면 파란색으로 경계선이 표시됩니다. 컨테니어 컴포넌트 내 원하는 위치에 컴포넌트를 배치할 수 있습니다.
컨테이너 컴포넌트와 겹치는 위치에 컴포넌트를 배치하거나 컨테이너 컴포넌트 자식 컴포넌트의 위치를 컨테이너 컴포넌트 영역 밖으로 이동하고자 할 때는 아래의 방법을 사용하세요.
속성창에서 컴포넌트의 position 속성값을 변경합니다.
컴포넌트 선택 후 방향키로 위치를 이동합니다.
신규 컴포넌트
Material UI 적용 컴포넌트
TextField
TextField 컴포넌트는 사용자로부터 한 줄로 된 문자열을 입력하는 데 쓰이는 컴포넌트입니다.
MultiLineTextField
MultiLineTextField 컴포넌트는 사용자로부터 여러 줄로 된 문자열을 입력하는 데 쓰이는 컴포넌트입니다.
DateField
DateField 컴포넌트는 날짜와 시간을 입력받기 위한 컴포넌트입니다.
시작, 종료 날짜, 시간 선택 컴포넌트
DateRangePicker
1개 또는 2개(시작일자와 종료일자)의 날짜와 시간을 입력받거나 선택하기 위한 컴포넌트입니다.
PopupDateRangePicker
1개 또는 2개(시작일자와 종료일자)의 날짜와 시간을 입력받거나 선택하기 위해 팝업창으로 띄우는 컴포넌트입니다.
컴포넌트 그루핑 컴포넌트
Panel
두 개 이상의 컴포넌트를 그룹으로 묶어서 원하는 형식으로 배치할 수 있는 컴포넌트입니다.
프로젝트 템플릿
실행 환경에 따라 프로젝트에서 바로 활용할 수 있는 프로젝트 템플릿을 제공합니다.
DesktopMDI
데스트톱 환경을 지원하는 프로젝트 개발 시 활용할 수 있는 디자인 템플릿과 트랜잭션, 팝업, 메시지 처리 등의 공통 기능 스크립트를 제공합니다.
Mobile
모바일 환경을 지원하는 프로젝트 개발 시 활용할 수 있는 디자인 템플릿과 트랜잭션, 팝업, 메시지 처리 등의 공통 기능 스크립트를 제공합니다.
다국어 지원
언어별로 StringResource를 설정하거나 데이터베이스에 있는 용어집을 참조해서 애플리케이션 개발 시 다국어 지원을 쉽게 구현할 수 있습니다.
Generate Rule
이전 버전에서 CSS Rule 파일이 있는 경로를 지정하는 -CSSRULE 옵션은 더 이상 지원하지 않습니다.
CSS Rule 파일을 포함한 Generate에 필요한 Rule 파일이 추가됐고 –GENERATERULE 옵션을 필수로 지정하도록 변경됐습니다.