Codename OneRozpoczęcie pracy z Codename One


Uwagi

W tej sekcji omówiono, co to jest nazwa kodowa i dlaczego deweloper może chcieć jej użyć.

Powinien również wymieniać wszelkie duże tematy w ramach kryptonimu i linkować do powiązanych tematów. Ponieważ Dokumentacja dla kryptonimu jest nowa, konieczne może być utworzenie początkowych wersji tych pokrewnych tematów.

Instalacja i konfiguracja

Instalacja

Instalowanie Codename One In NetBeans

Instrukcje te zakładają, że pobrałeś najnowszą wersję NetBeans (w tej chwili 8.x), zainstalowałeś ją i uruchomiłeś.

  • Wybierz opcję menu Narzędzia-> Wtyczki Narzędzia-> Opcja menu wtyczki

  • Wybierz kartę Dostępne wtyczki

  • Sprawdź wtyczkę CodenameOne Kreator instalacji wtyczki Netbeans

  • kliknij przycisk install poniżej. Postępuj zgodnie z instrukcjami kreatora, aby zainstalować wtyczkę Kreator instalacji wtyczki Netbeans krok 2

Instalowanie Codename One In Eclipse

Uruchom Eclipse i kliknij Help -> Install New Software . Powinieneś dostać to okno dialogowe

Eclipse Zainstaluj nowe oprogramowanie

Wklej https://www.codenameone.com/files/eclipse/site.xml dla lokalizacji do pracy i naciśnij Enter.

Wybierz wpisy i postępuj zgodnie z instrukcjami kreatora, aby zainstalować Kreator instalacji Eclipse wybierz wpisy

Instalowanie Codename One In IntelliJ IDEA

Pobierz i zainstaluj IntelliJ / IDEA. Zauważ, że Android Studio nie będzie działać.

Zainstaluj wtyczkę za pomocą The Plugin Center

Użyj funkcji wyszukiwania w centrum wtyczek, aby znaleźć i zainstalować wtyczkę Codename One.

Co to jest Codename One i jak to działa?

Codename One to zestaw narzędzi do tworzenia aplikacji mobilnych, które w dużej mierze czerpią z architektury Java.

Misja Codename One to:

Ujednolic złożone i fragmentaryczne zadanie programowania urządzeń mobilnych w jednym zestawie narzędzi, interfejsów API i usług. W rezultacie stwórz łatwiejsze do zarządzania podejście do tworzenia aplikacji mobilnych bez poświęcania mocy / kontroli nadanej programistom.

To skutecznie oznacza przeniesienie starej mantry Java „Write Once Run Anywhere” (WORA) na urządzenia mobilne bez „stępienia” jej do najniższego wspólnego mianownika.

Jak działa Codename One?

Codename One łączy kilka technologii i koncepcji w jedną fasadę:

  • API - streszcza różnice między różnymi urządzeniami.
  • Wtyczka - jedyne oprogramowanie zainstalowane na komputerach klienckich, zawiera następujące funkcje:
    • Integracja IDE - preferencje, ukończenie, możliwość wysłania kompilacji natywnej
    • Symulator - natywny symulator urządzenia, który działa lokalnie i umożliwia debugowanie aplikacji
    • Designer / GUI Builder - narzędzia wysokiego poziomu
  • Kompiluj serwery - serwery kompilacji akceptują kompilacje urządzeń natywnych wysyłane przez wtyczkę i konwertują pliki binarne (pliki JAR, nie źródła) na aplikacje natywne, jak wyjaśniono poniżej.
  • Serwery w chmurze - serwery w chmurze zapewniają takie funkcje, jak powiadomienia wypychane, rejestrowanie w chmurze itp.

Łańcuch narzędziowy Codename One

Dlaczego warto budować serwery?

Serwery kompilacji pozwalają budować natywne aplikacje iOS bez komputera Mac i natywne aplikacje Windows bez komputera z systemem Windows. Eliminują potrzebę instalowania / aktualizowania złożonych łańcuchów narzędzi i upraszczają proces budowania aplikacji natywnej prawym przyciskiem myszy.

Np .: Ponieważ tworzenie natywnych aplikacji na iOS wymaga komputera Mac OS X z najnowszą wersją xcode Codename One utrzymuje takie maszyny w chmurze. Gdy programiści wysyłają kompilację dla systemu iOS, taki komputer Mac zostanie użyty do wygenerowania kodu źródłowego C przy użyciu ParparVM, a następnie skompiluje kod źródłowy C przy użyciu xcode i podpisa wynikowy plik binarny przy użyciu xcode. Możesz zainstalować plik binarny na swoim urządzeniu lub zbudować plik binarny dystrybucji dla sklepu z aplikacjami. Ponieważ kod C jest generowany, oznacza to również, że Twoja aplikacja będzie „w przyszłości” w przypadku zmian wprowadzonych przez Apple. Możesz również wstrzyknąć do aplikacji natywny kod Objective-C, zachowując go w 100% przenośnym dzięki możliwości „natywnych interfejsów” Codename One.

Subskrybenci mogą otrzymać kod źródłowy C z powrotem za pomocą funkcji dołączania źródeł Codename One i używać tych źródeł do testowania wydajności, debugowania na urządzeniach itp.

To samo dotyczy większości innych platform. W przypadku Androida, J2ME i Blackberry standardowy kod Java jest wykonywany w obecnej postaci.

Składnia Java 8 jest obsługiwana przez retrolambdę zainstalowaną na serwerach Codename One. Służy do płynnej konwersji kodu bajtowego na poziomy składni Java 5. Składnia Java 5 jest tłumaczona na podzbiór JDK 1.3 cldc w J2ME / Blackberry, aby zapewnić te możliwości językowe i interfejsy API na wszystkich urządzeniach. Odbywa się to przy użyciu opartego na serwerze procesora kodu bajtowego opartego na module odzysku i dużej ilości niestandardowego kodu. Zwróć uwagę, że ta architektura jest przezroczysta dla programistów, ponieważ serwery kompilacji wyodrębniają większość bolesnych różnic między urządzeniami.

Dlaczego ParparVM

W systemie iOS Codename One wykorzystuje ParparVM, który tłumaczy kod bajtowy Java na kod C i oferuje nieblokujący GC oraz obsługę 64 bitów / bitcode. Ta maszyna wirtualna jest w pełni open source w repozytorium git Codename One . W przeszłości Codename One używał XMLVM do generowania natywnego kodu w bardzo podobny sposób, ale rozwiązanie XMLVM było zbyt ogólne na potrzeby Codename One. ParparVM oferuje unikalną architekturę tłumaczenia kodu na C (podobnie jak XMLVM), ponieważ Codename One jest jedynym tego rodzaju rozwiązaniem, które może zagwarantować przyszłą kompatybilność z iOS, ponieważ oficjalnie obsługiwany łańcuch narzędzi iOS jest zawsze używany zamiast nieudokumentowanych zachowań.

UWAGA: XMLVM może to zagwarantować teoretycznie, ale nie jest już utrzymywane.

Kluczowe zalety ParparVM w stosunku do innych podejść to:

  • Prawdziwie natywny - ponieważ kod jest tłumaczony na język C, a nie bezpośrednio na kod ARM lub LLVM, aplikacja jest „bardziej natywna”. Korzysta z oficjalnych narzędzi i podejść Apple i może korzystać z ich udoskonaleń, np. Najnowszego kodu bitowego lub możliwości profilowania.

  • Biblioteka mniejszej klasy - ParparVM zawiera bardzo mały segment pełnych JavaAPI, co powoduje, że końcowe pliki binarne są mniejsze niż alternatywy o rząd wielkości. Odwzorowuje to bezpośrednio na wydajność i narzut pamięci.

  • Prosty i rozszerzalny - do pracy z ParparVM potrzebujesz podstawowej znajomości C. Jest to kluczowe dla szybko zmieniającego się świata mobilnego programowania, ponieważ Apple zmienia rzeczy w lewo i prawo, potrzebujemy bardziej zwinnej maszyny wirtualnej.

Windows Phone / UWP

Codename One ma 2 główne porty VM Windows i 3 lub 4 potoki renderujące w tych portach.

Stary port Windows Phone używał XMLVM do tłumaczenia kodu bajtowego Java na C #. Zauważ, że backend XMLVM, który tłumaczy na C #, bardzo różni się od tego, który był używany w przeszłości do tłumaczenia kodu dla iOS.

Codename One teraz atakuje UWP, wykorzystując zmodyfikowaną wersję iKVM do budowy natywnych aplikacji Windows Universal.

Port JavaScript

Port JavaScript Codename One oparty jest na niesamowitej pracy projektu TeaVM . Zespół odpowiedzialny za TeaVM skutecznie zbudował maszynę JVM, która tłumaczy kod bajtowy Java na kod źródłowy JavaScript, zachowując semantykę wątków przy użyciu bardzo pomysłowego podejścia.

Port JavaScript umożliwia uruchamianie niezmodyfikowanych aplikacji Codename One w przeglądarce komputerowej lub mobilnej. Sam port jest oparty na HTML5 Canvas API, aby zapewnić idealną pikselową implementację API Codename One.

UWAGA: Port JavaScript jest dostępny tylko dla subskrybentów klasy korporacyjnej o nazwie Codename One.

Komputer stacjonarny, Android, RIM i J2ME

Inne porty o nazwie kodowej One używają maszyn wirtualnych dostępnych na komputerach / środowiskach hosta w celu wykonania środowiska wykonawczego. https://github.com/orfjackal/retrolambda[Retrolambda] służy do zapewnienia funkcji języka Java 8 w przenośny sposób, w przypadku starszych urządzeń do pobierania funkcji Java 5 służy moduł odzyskujący.

Port Androida korzysta z natywnych narzędzi Androida, w tym środowiska kompilacji stopni w najnowszych wersjach.

Port pulpitu tworzy standardową aplikację JavaSE, która jest pakowana z JRE i instalatorem.

UWAGA: Port Desktop jest dostępny tylko dla profesjonalnych subskrybentów Codename One.

Lekkie elementy

To, co wyróżnia Codename One, to podejście stosowane w interfejsie użytkownika, w którym wykorzystuje on „lekką architekturę”, dzięki czemu interfejs może działać bezproblemowo na wszystkich platformach. W rezultacie większość interfejsu użytkownika jest rozwijana w Javie, dzięki czemu jest niezwykle przenośna i debugowana. Lekka architektura nadal obejmuje możliwość osadzania widżetów „o dużej masie” wśród „lekkich”.

Lekka architektura Pochodzenie

Lekkie komponenty pochodzą z frameworków Smalltalk. Swing spopularyzował to pojęcie w świecie Java. Swing był głównym źródłem inspiracji dla poprzednika Codename One LWUIT. Wiele frameworków stosowało to podejście przez lata, w tym JavaFX i ostatnio Ionic w świecie JavaScript.

W Codename One

Komponent Lightweight jest komponentem napisanym całkowicie w Javie, rysuje własny interfejs i obsługuje własne zdarzenia / stany. Ma to ogromne zalety w zakresie przenoszenia, ponieważ ten sam kod jest wykonywany na wszystkich platformach, ale ma wiele dodatkowych zalet.

Lekkie elementy można bezstopniowo dostosowywać za pomocą standardowego dziedziczenia i nadrzędnego zarządzania farbą / zdarzeniami. Ponieważ lekki komponent jest napisany całkowicie w Javie, programiści mogą dokładnie wyświetlić podgląd aplikacji w symulatorze i kreatorze GUI. Pozwala to uniknąć wielu typowych pułapek innych rozwiązań WORA, w których zachowanie specyficzne dla platformy udaremnia każdy zaoszczędzony wysiłek. Stąd cały wysiłek zaoszczędzony na kodowaniu został utracony podczas debugowania ezoterycznych urządzeń tylko osobliwości.

Codename One osiąga wysoką wydajność poprzez rysowanie przy użyciu natywnych API gier większości platform, np. OpenGL ES na iOS.

Wersje w Codename One

Jedną z niejasnych rzeczy w Codename One są wersje. Ponieważ Codename One to wersja SaaS, wersja nie jest tak prosta jak moniker 2.x lub 3.x. Jednak, aby zachować zgodność z tą konwencją, Codename One tworzy wersje z wydaniami, które przyczyniają się do ogólnego zamieszania.

Po wydaniu wersji Codename One numer wersji odnosi się do bibliotek w momencie wydania. Te biblioteki są następnie zamrażane i udostępniane programistom korzystającym z funkcji Wersje kompilowane . Wtyczka, która obejmuje zarówno projektanta, jak i cały program niezwiązany z wersjami kompilacji, kontynuuje regularne aktualizacje natychmiast po wydaniu. To samo dotyczy serwerów kompilacji, które przechodzą bezpośrednio do standardowego cyklu aktualizacji.