Codename OneCodename One 시작하기


비고

이 섹션에서는 codenameone이 무엇인지, 개발자가 왜 그것을 사용하고 싶어하는지에 대한 개요를 제공합니다.

또한 codenameone 내의 큰 주제를 언급하고 관련 주제에 링크해야합니다. codenameone에 대한 문서가 새롭기 때문에 이러한 관련 주제의 초기 버전을 만들어야 할 수도 있습니다.

설치 및 설정

설치

NetBeans에서 코드 네임 1 설치

이 지침에서는 NetBeans의 최신 버전 (이 시점 8.x)을 다운로드하여 설치하고 실행했다고 가정합니다.

  • 도구 -> 플러그인 메뉴 옵션을 선택하십시오. 도구 -> 플러그인 메뉴 옵션

  • 사용 가능한 플러그인 탭을 선택하십시오.

  • CodenameOne 플러그인 확인 Netbeans 플러그인 설치 마법사

  • 아래의 install 버튼을 클릭하십시오. 마법사 지침에 따라 플러그인을 설치하십시오. Netbeans 플러그인 설치 마법사 2 단계

Eclipse에서 코드 네임 1 설치하기

Eclipse를 시작하고 Help -> Install New Software 클릭하십시오. 이 대화 상자를 가져와야합니다.

Eclipse 설치 새 소프트웨어

https://www.codenameone.com/files/eclipse/site.xml 에 작업 할 위치를 붙여넣고 Enter 키를 누릅니다.

항목을 선택하고 마법사를 따라 설치하십시오. Eclipse 설치 마법사 항목 선택

IntelliJ IDEA에서 코드 이름 1 설치

IntelliJ / IDEA를 다운로드하고 설치하십시오. Android Studio는 작동하지 않습니다.

The Plugin Center를 사용하여 플러그인 설치

플러그인 센터의 검색 기능을 사용하여 Codename One 플러그인을 찾아서 설치하십시오.

Codename One은 무엇이며 어떻게 작동합니까?

Codename One은 Java에서 많은 아키텍처를 끌어내는 모바일 응용 프로그램 개발 도구 세트입니다.

Codename One의 사명은 다음과 같습니다.

모바일 장치 프로그래밍의 복잡하고 단편화 된 작업을 단일 도구, API 및 서비스 집합으로 통합하십시오. 결과적으로 개발자에게 제공되는 전원 / 제어를 희생시키지 않으면 서 모바일 응용 프로그램 개발에 대한 관리가 용이 ​​한 접근 방식을 만들 수 있습니다.

이것은 이전의 "WORA (Write Once Run Anywhere) Java Mantra를 모바일 장치에 가져다 쓰지 않고"가장 낮은 공통 분모로 가져 오는 것을 의미합니다.

코드 네임 1은 어떻게 작동합니까?

Codename One은 여러 가지 기술과 개념을 단일 외관으로 통합합니다.

  • API - 다양한 장치 간의 차이점을 추상화합니다.
  • 플러그인 - 클라이언트 컴퓨터에 설치된 유일한 소프트웨어로서 다음과 같은 기능을 포함합니다.
    • IDE 통합 - 기본 설정, 완료, 기본 빌드 전송 기능
    • 시뮬레이터 - 로컬에서 실행되고 응용 프로그램 디버깅을 허용하는 원시 장치 시뮬레이터
    • 디자이너 / GUI 빌더 - 고급 도구
  • 서버 빌드 - 빌드 서버는 플러그인이 보낸 원시 장치 빌드를 허용하고 아래에 설명 된대로 바이너리 (소스가 아닌 JAR)를 원시 응용 프로그램으로 변환합니다.
  • 클라우드 서버 - 클라우드 서버는 푸시 알림, 클라우드 로깅 등과 같은 기능을 제공합니다.

코드 네임 하나의 도구 체인

왜 서버를 구축할까요?

빌드 서버를 사용하면 Windows 컴퓨터가없는 Mac 및 기본 Windows 응용 프로그램없이 기본 iOS 응용 프로그램을 구축 할 수 있습니다. 복잡한 툴체인을 설치 / 업데이트하고 마우스 오른쪽 버튼으로 네이티브 앱을 제작하는 과정을 단순화 할 필요가 없습니다.

예 : 기본 iOS 응용 프로그램을 구축하려면 최신 버전의 xcode가 설치된 Mac OS X 시스템이 필요하기 때문에 코드 네임 원 (Codename One)은 이러한 시스템을 클라우드에 유지합니다. 개발자가 iOS 빌드를 보내면 이러한 Mac이 ParparVM을 사용하여 C 소스 코드를 생성하는 데 사용되며 xcode를 사용하여 C 소스 코드를 컴파일하고 xcode를 사용하여 결과 바이너리에 서명합니다. 바이너리를 디바이스에 설치하거나 appstore 용 분배 바이너리를 빌드 할 수 있습니다. C 코드가 생성 되었기 때문에 애플이 변경된 경우에도 앱이 "미래의 증거"가된다는 의미입니다. 또한 Codename One의 "네이티브 인터페이스"기능 덕분에 Objective-C 네이티브 코드를 100 % 이식성을 유지하면서 응용 프로그램에 삽입 할 수 있습니다.

구독자는 Codename One의 포함 소스 기능을 사용하여 C 소스 코드를 수신하고 벤치마킹, 장치 디버깅 등을 위해 이러한 소스를 사용할 수 있습니다.

다른 대부분의 플랫폼에서도 마찬가지입니다. Android, J2ME & Blackberry의 경우 표준 Java 코드가있는 그대로 실행됩니다.

Java 8 구문은 Codename One 서버에 설치된 retrolambda를 통해 지원됩니다. 바이트 코드를 Java 5 구문 수준으로 완벽하게 변환하는 데 사용됩니다. Java 5 구문은 J2ME / Blackberry의 JDK 1.3 cldc 하위 집합으로 변환되어 모든 장치에서 언어 기능 및 API를 제공합니다. 이것은 retroweaver와 커스텀 코드를 기반으로하는 서버 기반의 바이트 코드 프로세서를 사용하여 수행됩니다. 빌드 서버는 장치 간의 가장 큰 차이점을 추상화하므로이 아키텍처는 개발자에게 투명합니다.

왜 ParparVM인가?

iOS에서 Codename One은 Java 바이트 코드를 C 코드로 변환하는 ParparVM 을 사용하며 64 비트 / 비트 코드 지원은 물론 비 차단 GC도 자랑합니다. 이 VM은 Codename One git 저장소 의 완전 오픈 소스입니다. 과거 Codename One은 XMLVM 을 사용하여 매우 비슷한 방식으로 원시 코드를 생성했지만 XMLVM 솔루션은 Codename One의 요구 사항에 너무 일반적이었습니다. ParparVM 은 공식적으로 지원되는 iOS 툴체인이 문서화되지 않은 동작 대신 항상 사용되기 때문에 Codename One이 향후 iOS 호환성을 보장 할 수있는 유일한 솔루션이기 때문에 코드를 C (XMLVM과 유사)로 변환하는 독특한 아키텍처를 자랑합니다.

참고 : XMLVM은 이론적으로 보장 할 수 있지만 더 이상 유지 관리되지 않습니다.

다른 접근법에 비해 ParparVM의 주요 장점은 다음과 같습니다.

  • 진정한 네이티브 - 코드가 ARM 또는 LLVM 코드가 아닌 C로 직접 변환되기 때문에이 앱은 "더 원시적"입니다. Apple의 공식 도구 및 접근 방식을 사용하며 최신 비트 코드 또는 프로파일 링 기능과 같은 향상된 기능을 활용할 수 있습니다.

  • 더 작은 클래스 라이브러리 - ParparVM에는 전체 JavaAPI의 아주 작은 부분이 포함되어있어 최종 바이너리가 대안보다 크기가 더 작습니다. 이는 성능 및 메모리 오버 헤드에 직접 매핑됩니다.

  • 간단하고 확장 성 - ParparVM과 함께 작업하려면 C에 대한 기본적인 이해가 필요합니다. Apple이 빠르게 변화하는 모바일 개발 세계에서 중요합니다. Apple이 일을 바꿀 때마다 더 민첩한 VM이 필요합니다.

Windows Phone / UWP

Codename One에는 2 개의 주요 Windows VM 포트와 3 개 또는 4 개의 렌더링 파이프 라인이 있습니다.

이전 Windows Phone 포트는 XMLVM을 사용하여 Java 바이트 코드를 C #으로 변환했습니다. C #으로 변환되는 XMLVM 백엔드는 과거에 iOS 용 코드를 변환하는 데 사용 된 백엔드와 매우 다릅니다.

이제 Codename One은 수정 된 버전의 iKVM을 활용하여 고유 한 Windows 범용 응용 프로그램을 구축함으로써 UWP를 타깃으로합니다.

자바 스크립트 포트

Codename One의 JavaScript 포트는 TeaVM 프로젝트 의 놀라운 작업을 기반으로합니다. TeaVM의 팀은 매우 창의적인 접근 방식을 사용하여 스레딩 의미를 유지하면서 Java 바이트 코드를 JavaScript 소스 코드로 변환하는 JVM을 효과적으로 만들었습니다.

JavaScript 포트를 사용하면 수정되지 않은 Codename One 응용 프로그램을 데스크탑 또는 모바일 브라우저에서 실행할 수 있습니다. 포트 자체는 HTML5 Canvas API를 기반으로하여 픽셀 1 API의 완벽한 구현을 제공합니다.

참고 : JavaScript 포트는 Codename One의 엔터프라이즈 급 가입자에서만 사용할 수 있습니다.

데스크톱, 안드로이드, RIM 및 J2ME

Codename One의 다른 포트는 호스트 시스템 / 환경에서 사용 가능한 VM을 사용하여 런타임을 실행합니다. https://github.com/orfjackal/retrolambda[Retrolambda] 는 Java 8 언어 기능을 이식성있는 방식으로 제공하는 데 사용됩니다. 이전 장치의 경우 Java 5 기능을 사용하기 위해 retroweaver가 사용됩니다.

Android 포트는 최신 버전의 gradle 빌드 환경을 포함하여 기본 Android 도구를 사용합니다.

데스크탑 포트는 JRE 및 설치 프로그램과 함께 패키지화 된 표준 JavaSE 응용 프로그램을 만듭니다.

참고 : 데스크톱 포트는 Codename One의 프로 그레이드 가입자 만 사용할 수 있습니다.

경량 부품

Codename One이 눈에 띄는 점은 "경량 아키텍처"를 사용하는 UI에 대한 접근 방식이므로 UI가 모든 플랫폼에서 원활하게 작동 할 수 있습니다. 결과적으로 대부분의 UI는 Java로 개발되어 휴대 성이 뛰어나고 디버깅이 가능합니다. 경량 아키텍처에는 여전히 "중량급"위젯을 "lightweights"사이에 삽입 할 수있는 기능이 포함되어 있습니다.

경량 아키텍처 원본

경량 컴퍼넌트는 Smalltalk 프레임 워크로 거슬러 올라갑니다.이 개념은 Java 세계에서 Swing으로 대중화되었습니다. 스윙은 코드 네스트 원 (Codename One)의 전임자 인 LWUIT에게 영감을주었습니다. 많은 프레임 워크는 JavaFX와 가장 최근의 JavaScript 세계에서 이오닉을 포함 해 수년간이 접근 방식을 채택했습니다.

코드 명 1에서

Lightweight 구성 요소는 완전히 Java로 작성된 구성 요소이며 자체 인터페이스를 가져 와서 자체 이벤트 / 상태를 처리합니다. 이것은 동일한 코드가 모든 플랫폼에서 실행되기 때문에 큰 이식성 이점을 가지고 있지만, 많은 추가적인 장점을 가지고 있습니다.

경량 컴퍼넌트는 표준 상속과 페인트 / 이벤트 처리 오버라이드를 사용하여 무한하게 커스터마이즈 가능합니다. 경량 컴포넌트는 전적으로 Java로 작성되므로 개발자는 시뮬레이터 및 GUI 빌더에서 애플리케이션을 정확하게 미리 볼 수 있습니다. 이렇게하면 플랫폼 별 동작으로 저장된 노력을 저 버리는 다른 WORA 솔루션의 많은 함정을 피할 수 있습니다. 따라서 코딩에서 절약 된 모든 노력은 디버깅 난해한 장치들만의 기이함에서 사라졌습니다.

Codename One은 iOS에서 OpenGL ES와 같은 대부분의 플랫폼의 기본 게임 API를 사용하여 그림을 그리면 빠른 성능을 제공합니다.

코드 네임 1의 버전

Codename One에 대한 혼란스러운 점 중 하나는 버전입니다. Codename One은 SaaS 제품이기 때문에 버전 관리는 2.x 또는 3.x와 같은 단순하지 않습니다. 그러나이 협약에 따라 Codename One은 일반적인 혼란을 일으키는 버전 화 된 릴리스를 작성합니다.

Codename One 버전이 출시되면 버전 번호는 출시 당시의 라이브러리를 나타냅니다. 그런 다음 이러한 라이브러리는 고정되어 Versioned Builds 기능을 사용하는 개발자가 사용할 수있게됩니다. 디자이너뿐만 아니라 버전이있는 빌드와 관련이없는 모든 개발을 포함하는 플러그인은 출시 직후 정기적 인 업데이트를 계속합니다. 표준 업데이트 주기로 직접 이동하는 빌드 서버에서도 마찬가지입니다.