NativeHost: Uruchom aplikację Cappuccino jako aplikację desktopową

Zespół Cappuccino Framework upublicznił nowe, ekscytujące, narzędzie NativeHost.

Czym jest NativeHost?

Jest to narzędzie umożliwiające uruchomienie aplikacji internetowej napisanej przy użyciu Cappuccino (i nie tylko) jako aplikacji desktopowej. Rozwiązanie polega na wykorzystaniu niesamowicie lekkiego i małego wrappera wokół silnika przeglądarki internetowej WebKit. Rozwiązanie jest zbliżone do istniejących technologii np. Adobe AIR, Titanium, ale na tym podobieństwa się kończą.

Jaka jest różnica NativHost od Titanium, Adobe AIR ?

Titanium i Adobe AIR posiadają własne API umożliwiajce pisanie aplikacji desktowpowych za pomocą technologi webowych ale nie pozwalają przenieść istniejące aplikacji internetowej by działała jako aplikacja natywna. Na tym polega główna różnica pomiędzy w/w technologiami a NativeHost. NativHost umożliwia przeniesienie istniejącej aplikacji webowej na system operacyjny komputera (na chwilę obecną tylko Mac OS X) bez potrzeby modyfikacji aplikacji!

Dodatkowo Cappuccino jest bardzo silnie powiązane z NativeHost dzięki czemu udało się osiągnąć:

  • Główne menu Cappuccino automatycznie staje się natywnym paskiem menu w  Mac OS X. Na innych platformach będzie dokładnie działać tak jak będą oczekiwać tego użytkownicy. Dla przykładu, w Windowsowej wersji NativeHost menu będzie przywiązane do każdego okna.
  • Okno Cappuccino (CPWindow) automatycznie stanie się „natywnym” oknem. W przeglądarce internetowej okna Cappuccino są standardowo rysowane w środku głównego okna przeglądarki. W NativeHost staną się one w pełni systemowymi oknami, które  będzie można minimalizować itp.
  • Bezpieczny dostęp do natywnego systemu plików bez natywnego API: wykorzystanie istniejących metod jak XMLHttpRequest.
  • Architektura dokumentu Cappuccino jest zintegrowana z systemem operacyjnym.
  • Są używane systemowe operacyjne okna otwórz/zapisz.
  • Tak jak każda natywna aplikacja Twoja aplikacja może przypisać się do otwierania specyficznego typu pliku. Kiedy system operacyjny zażąda by Twoja aplikacja otwarła dokument ta informacja jest przekazywana do Cappuccino aby Twoja aplikacja to przechywciła i obsłużyła.

Dlaczego instalować aplikacje webowe na desktopie?

Istnieje kilka przypadków, w których przeniesienie aplikacji internetowej na komputer stacjonarny może mieć sens:

  • Kiedy Twoja aplikacja wymaga dostępu do lokalnego systemu plików lub innego natywnego API nie dostępnego z poziomu przeglądarki internetowej.
  • Kiedy jest wymagane dostęp offline.
  • Kiedy użytkownicy Twojej aplikacji nie ufają jeszcze chmurze (cloud).
  • Kiedy chcesz integracji z systemem operacyjnym np. pasek zadań, dock, przełącznik aplikacji itp.

Przykłady aplikacji wykorzystujących NativHost

Upublicznienie NativHost przyniosło ze sobą kilka działających aplikacji:

  • Atlas – czyli zintegrowane środowisko programistyczne dla Cappuccino Framework, Objective-J zawierające w sobie narzędzie do budowania interfejsu podobne do Xcode.
  • Github Issues – działa w wersji dla przeglądarki ale można go również pobrać jako aplikacje na Mac OS X.
  • CappKiDo – jest to przeglądarka API dokumentacji Cappuccino – i jest tym samym co AppKiDo dla Cocoa!

Zapraszam do oficjalnej informacji na stronie głównej Cappucino.org i do strony projektu na github.com.

Gianduia – konkurencją Cappuccino i SproutCore?

Na grupie dyskusyjnej Cappuccino Framework został poruszony temat Gianduia„nowego” produktu od Apple.

W odpowiedzi jeden z użytkowników napisał ciekawy list czym może być Gianduia.
Poniżej przedstawiam polskie tłumaczenie a zainteresowanych całą dyskusją zapraszam do całości wątku.

Witam wszystkich, pierwszy post na liście.
Nie tak dawno byłem programistą WebObjects, więc możliwe że mogę rzucić delikatne światło na to…

Nie byłbym zaskoczony gdyby Gianduia została wypuszczona. Apple całkiem niedawno zatrudniło lead dewelopera na defakto-standard open-source WebObject toolchain (nie wiem jak dokładnie przetłumaczyć, zatem zostawiam oryginał) i większy zestaw otwarto źródłowego frameworku WebObjects (ta sama osoba). Używają WebObjects mocno dla wielu masywnych systemów strategicznych takich jak iTunes Store i Apple Store (online i w handlu detalicznym)… WO wspierają tworzenie interfejsu użytkownika.. połączenie z Cappuccino/SproutCore w zasadniczo nie istnieje, więc nie jest naginane by myśleć że chcą wyprodukować Cappuccino-podobne UI i również ładnie połączone z ich istniejącym kodem.

Widziałem wzmianki o Apple że jest możliwość  użycia Gianduia do iAd i że zdecydowanie jest już w publicznym użyciu przez Apple w sklepie detalicznym rezerwacji iPhona.

Wątpię, że Apple mierzy w Flash – Gianduią, ale jeżeli ludzie chcą tak myśleć to nie wydaje mi się że Apple będzie miało coś przeciwko (dopóki oczywiście jest to tylko framework WebObject  stworzony do działania po stronie klienta zamiast po stronie serwera i że nie jest niczym takim jak Flash).

Rozważając jak długo Apple pracowało nad tym, przypuszczam że jest możliwe iż mogli zdecydować się by pójść w stronę Flash, który w tym samym czasie zaczyna stawać się frameworkiem aplikacji webowych.

Jeżeli chcesz się dowiedzieć czym była Gianduia rok temu możesz kupić wideo WOWODC West 2009. Powiedziano mi że mowa o Gianduii jest częścią tej paczki. Nie widziałem tego więc nie mogę komentować.

Jim

Całość prezentuje tajemniczo.

Ciekawi mnie czy Gianduia może być czymś takim jak GWT? Skoro i WebObjects oparte jest na Javie. Jeśli nie, to po co Apple wypuszczało by kolejny framework…? „ma” już potężny framework SproutCore, na którym zostało oparte me.com.

Pozostaje czekać.. niebawem wszystko będzie jasne czy będzie czymś konkurencyjnym dla Cappuccino i innych frameworków aplikacji webowych.

PS. Jeszcze link do grupy dyskusyjnej Apple:  http://lists.apple.com/archives/Webobjects-dev/2009/Nov/msg00296.html