Sky (is the limit). Dość już Javy, superszybkie aplikacje dla Androida powstaną w języku Dart

Sky (is the limit). Dość już Javy, superszybkie aplikacje dla Androida powstaną w języku Dart

Sky (is the limit). Dość już Javy, superszybkie aplikacje dla Androida powstaną w języku Dart
02.05.2015 12:10, aktualizacja: 04.05.2015 09:12

Aplikacje w Androidzie 5.0 znacząco przyspieszyły – toprzyzna chyba każdy użytkownik urządzeń z Lollipopem, którywcześniej korzystał z poprzednich wersji tego systemu. To zasługazmiany środowiska uruchomieniowego. Kolejne wersje tego systemu mogąich szybkość poprawić jeszcze bardziej: na horyzoncie pojawiłasię możliwość zmiany języka, w którym powstają aplikacje dlaAndroida.

W porównaniu do iOS-a, Android w swoich początkach szybkościąnie grzeszył. Widać to było nie tylko w responsywności interfejsuużytkownika, ale też w szybkości działania większościaplikacji, zarówno systemowych, jak i tych ze sklepu Play. Nie mogłobyć inaczej – oprogramowanie dla iPhone'a czy iPada pisane było wObjective-C i kompilowane bezpośrednio do kodu maszynowego, podczasgdy na Androidzie pisano je zwykle w Javie i kompilowano do kodubajtowego dla wirtualnej maszyny Javy, który był następnietłumaczony na kod bajtowy maszyny wirtualnej Dalvik. Narzutgenerowany w tym procesie potrafił być zaskakująco duży. Niektórebenchmarki pokazywałynawet trzydziestokrotną różnicę w wydajności między aplikacjąnatywną a aplikacją Dalvika na tym samym urządzeniu z Androidem.

Zastąpienie w Androidzie 5.0 Dalvika przez nowe środowiskouruchomieniowe ART poprawiło sytuację. Aplikacje wciąż są pisanew Javie, ale podczas procesu instalacji aplikacji przeprowadzana jestkompilacja wraz kompleksową optymalizacją typu ahead-of-time (AOT),w wyniku czego uzyskujemy natywny kod maszynowy w linuksowym formacieELF. Choć instalacja trwa teraz dłużej, a aplikacje zajmująwięcej miejsca, to zarazem uruchamiają się szybciej, działająoszczędniej (w sensie zużycia energii) i wydajniej – znika narzutgenerowany przez Dalvika.

W zeszłym roku Apple pokazało jednak następcę Objective-C,język Swift, przeznaczony do pisanania oprogramowania na systemy iOSi OS X, określany często jako Objective-C bez C.Nowoczesne struktury języka pozwoliły na efektywniejszewykorzystanie kompilatora LLVM, powstały kod działa nie tylko sporoszybciej, ale jest też bardziej zwięzły i odporniejszy na błędy.Wiele wskazuje na to, że Google chce pójść podobną drogą i Javęzastąpić docelowo swoim językiem Dart, rozwijanym niegdyś jakoniespełniona alternatywa dla JavaScriptu. Dart w Androidzieprzynieść ma niespotykaną szybkość działania i łatwośćintegrowania aplikacji z usługami webowymi.

Dart został stworzony przezautorów silnika skryptowego V8, wykorzystywanego w przeglądarkachChromium i Chrome oraz ich klonach, a także w popularnym frameworkuprogramistycznym Node.js, w nadziei, że uda się nim zastąpić tenbrzydki i koślawy język zwany JavaScriptem. Wyparcie JS okazałosię niemożliwe, przeglądarki do dziś nie mają wirtualnych maszynDarta, więc jedyne co zostawało zwolennikom tego języka, tokompilacja kodu Darta do JavaScriptu. Kilka dni temu jednak naGitHubie zadebiutował projekt, który obiecuje nowe życie dla Darta– Sky. Toeksperymentalny framework interfejsu użytkownika dla mobilnychaplikacji, który pozwolić ma na budowę przepięknegooprogramowania o bardzo wysokiej responsywności, działającegopłynnie z częstotliwością odświeżania 120 Hz. Ta liczba to nieefekt pracy chochlika, deweloperzy Sky naprawdę mierzą w rysowaniekolejnych klatek animacji w czasie 8 milisekund.

[yt=https://www.youtube.com/watch?v=PnIWl33YMwA]

Nawet dzisiaj, z Androidem 5.0,rzadko kiedy udaje się osiągnąć renderowanie animacji 60 Hz(czyli rysowanie kolejnych klatek co 16 ms), szczególnie nasłabszych urządzeniach można zobaczyć, jak animacje potrafią sięzacinać, gdy podsystem grafiki nie zdąży z wyrobieniem się w tymczasie. Tymczasem już dziś w sklepie Play pobrać można zbudowanąna Sky aplikacjętestową, która rysuje klatki w czasie 1,2 ms. Jak to jestmożliwe?

Sercem Sky jest napisany w C++silnik, dostarczający m.in. planistę czasu rzeczywistego i własny,hierarchiczny podsystem grafiki. Nad nim działa szkielet Sky,zapewniający dobrze znane elementy interfejsu – rozmaiteprzyciski, listy, animacje – sterowane programami pisanymi właśniew języku Dart. Architektura frameworka ma gwarantować, żeinterfejsy programistyczne nigdy nie zablokują głównego wątkuinterfejsu użytkownika, dzięki czemu nawet jeśli aplikacja będziespowalniała, interfejs wciąż będzie płynny i responsywny.

Co szczególnie zastanawia, toniezależność kodu pisanego na Sky od platformy. Widać tu wpływyprzeglądarkowego paradygmatu myślenia o oprogramowaniu. Aplikacjetakie mogą działać na dowolnym urządzeniu z maszyną wirtualnąDarta, czy to będzie Android, iOS, czy może nawet Windows. Cowięcej, aplikacje nie są de facto instalowane w systemie, ale sąserwowane z Internetu, po HTTP, tak samo jak aplikacje webowe. Bezpamięci podręcznej nie będą działały offline. Niektórymużytkownikom może się to nie spodobać, ale z perspektywyprogramistów ma to same zalety, ułatwiając aktualizację idystrybucję nowych wersji oprogramowania. Poza tym aplikacje Skyzachowują się w Androidzie całkiem normalnie, mają pełny dostępdo systemowych API, kontrolowane są przez uprawnienia, awykorzystywane przez nie widżety zgodne są z wytycznymi wzornictwaMaterial Design.

Za wcześnie jeszcze mówić, czyto właśnie Dart i Sky będą odpowiedzią Androida na Swifta, alenawet jako eksperyment już teraz robi spore wrażenie. Takresponsywnych aplikacji nie ma nawet na iOS-ie, nie było nawet naSymbianie, a przecież właśnie na responsywność użytkownikgłównie patrzy, oceniając „szybkość” systemu operacyjnego(co pokazała historia Windows Phone, systemu zoptymalizowanegogłównie pod kątem responsywności).

Programy

Aktualizacje
Źródło artykułu:www.dobreprogramy.pl
Oceń jakość naszego artykułuTwoja opinia pozwala nam tworzyć lepsze treści.
Wybrane dla Ciebie
Komentarze (75)