본문 바로가기
IT/mendix

Native App 환경 구성 및 실행

by 가능성1g 2024. 6. 4.
반응형

!! iOS 를 포함한 버전으로 재 작성 중 입니다.

 

샘플 프로젝트 -> Mendix Academy 에 있는 Build a Native Mobile Inspection App 과정의 완성본 을 배포 해보겠습니다.

 

Mendix Academy - Build a Native Mobile Inspection App

개발방법은 해당 교육페이지를 참조

 

환경 : 

Mendix Studio Pro : 10.6.8

Node : 20.12.2

JDK : 17 -> 11 ( 서버 컨테이너화시 17인경우 not support 오류 발생함 )

 

1. 프로젝트 마이그레이션

샘플프로젝트의 결과파일이 Mendix Studio 9.24.1 을 대상으로 하기 때문에 자동 컨버트가 일어나고 몇가지 오류가 발생합니다. 아래의 사항을 진행해 줍니다.

 

1.1 Natvie Mobile Resources  위젯 업데이트
1.2 Mendix SSO 위젯 업데이트
1.3 오류관련 User 엔티티 EmailAddress 추가

### 배포를 위해서 시큐리티 레벨변경

1.4 보안 레벨 Poduction 으로 변경 -> 엔티티 접근권한 을 모두 추가함 

 

아래 문서를 참조로 로컬에서 네이티브 앱을 빌드합니다. (안드로이드)

 

Build a Mendix Native App Locally | Mendix Documentation

 

Build a Mendix Native App Locally

Describes how to build your first Mendix native mobile app locally using Mendix Native Mobile Builder.

docs.mendix.com

 

2. 안드로이드 스튜디오 설치

안드로이드 스튜디오 : 2023.3.1 JellyFish 설치합니다.

 

3. 템플릿 가져오기

네이티브 컴파일을 위해 템플릿을 가져옵니다.

git clone https://github.com/mendix/native-template.git

 

GitHub - mendix/native-template

Contribute to mendix/native-template development by creating an account on GitHub.

github.com

 

자신의 Mendix Studio Pro 의 버전에 맞게 네이티브 템플릿을 가져와야 합니다. 

위와 같이 하면 최신의 것을 가져와서 낮은 버전의 스튜디오를 쓰면 Android Studio 에서 오픈시 컴파일 오류가 발생합니다.

현재 템플릿 8.0.8 버전으로 대응이 됩니다. 

직접 이 버전을 다운 받은 후 진행 하면됩니다. 

 

다운받은 루트 폴더에서 npm i 를 실행합니다.

 

4. 앱 번들링

앱번들링을 위해 mxbuild 를 다운받습니다.

cdn.mendix.com/runtime/win-mxbuild-10.6.8.33522.tar.gz

 

자신에 맞게 실행명령어를 수정해서 번들링을 실행합니다.

mxbuild.exe --java-home="JDKDirectory" --java-exe-path="javaExecutable" --target=deploy --native-packager --loose-version-check path-to-your-app-mpr-file

 

예)

mxbuild.exe --java-home="C:\Program Files\Eclipse Adoptium\jdk-11.0.20.101-hotspot" --java-exe-path="C:\Program Files\Eclipse Adoptium\jdk-11.0.20.101-hotspot\bin\java.exe" --target=deploy --native-packager --loose-version-check "C:\study\rn-workspace\sample-mendix-rn\native-template\CompletedBuildANativeMobileApp_6_1_2_V9_24\CompletedBuildANativeMobileApp_6_1_2_V9_24.mpr"

 

5. 앱 컴파일 준비

위에서 번들링한 타겟 폴더에 있는 (프로젝트)\deployment\native\bundle\android 의 파일을 3의 템플릿 폴더

\native-template-8.0.8\android\app\src\main 에 복사 붙여 넣기 합니다.

서버 주소를 아래의 파일에 써줍니다.

native-template-8.0.8\android\app\src\main\res\raw\runtime_url

템플릿 루트폴더( \native-template-8.0.8) 에서 npm install --legacy-peer-deps 를 실행합니다.

 

6. 앱 컴파일

템플릿 루트 폴더의 android 폴더를 Android Studio 에서 오픈합니다.

첫 오픈시 필요한 파일 다운로드에 많은 시간이 걸립니다.

이제 실행을 하면, 접근이 가능합니다!

 

 

-. 서버 

프로젝트를 docker  빌드용 폴더에 복사해서 컨테이너화를 진행합니다.

docker build --build-arg BUILD_PATH="./CompletedBuildANativeMobileApp_6_1_2_V9_24" -t inspector .

 

#docker hub 에 push 하기위해 태깅을 하고 로그인 후 푸쉬합니다.

docker tag 230af8417b31 gauguin135/inspector:0.1.0

docker login

docker push gauguin135/inspector:0.1.0

 

!!  오류사항 JDK 17을 지원하지 않는 오류가 발생하여, 11로 환경을 다운설정하고 재실행함

 

-. 서버 인프라는 쿠버네티스 환경이어서 postgresql 설정 주입및 디플로이먼트 yaml 파일을 생성하여 환경 구성 하였습니다.

 

 

이전에 쓴 아래 글을 참조한다.

Mendix 프로그램 컨테이너화 ( by docker build pack ) (tistory.com)

 

Mendix 프로그램 컨테이너화 ( by docker build pack )

Mendix 로 만든 프로그램을 컨테이너 환경에 적용하기 위해서는, 멘딕스 프로그램을 컨테이너 이미지로 작성해야 합니다.역시 멘딕스! 답게 해당 문서는 잘정리 되어 있습니다. Docker | Mendix Documen

taisou.tistory.com

 

반응형