Tu jesteś:

blog.trustnet.pl Archiwum autora

140 tysięcy aplikacji i 3 miliardy ściągnięć…

Takimi wynikami chwali się sklep z aplikacjami dla urządzeń mobilnych giganta zza oceanu, z jabłuszkiem w logo. Robi wrażenie, tym bardziej, że trend zapotrzebowania na rozwiązania mobilne jest zdecydowanie wzrastający. Do takiego stanu rzeczy w znacznym stopniu przyczyniają się giganci rynku, którzy sami napędzają koniunkturę i forsują swoje (wzajemnie niekompatybilne) mobilne rozwiązania. Oczywiście polski rynek to nie ta skala, a i moda na rozwiązania mobilne, nie jest jeszcze tak powszechna jak za oceanem. Trudno jednak negować fakt, że internet mobilny jest obok, rozwija się i nigdzie się nie wybiera. Im wcześniej zdamy sobie sprawę z tego faktu, tym lepiej. Dlaczego zatem nie ugryźć kawałka tego lukratywnego „mobilnego” tortu?

Podstawowym problemem jest mnogość platform systemowych w urządzeniach mobilnych (Android, iOS, Symbian, Windows Mobile) i ich wzajemna niekompatybilność. Decydując się dzisiaj na projekt aplikacji natywnej – czyli takiej która działa bezpośrednio na urządzeniu – musimy korzystać z dedykowanego zestawu narzędzi (SDK) dla danej platformy. Co w przypadku, gdy zależy nam na przenośności, wiąże się z pisaniem wielu wersji tej samej aplikacji na poszczególne systemy – dodatkowy czas i koszty. Jednak wraz z obecnym gwałtownym rozwojem aplikacji typu RIA, i coraz wiekszymi możlwiościami przeglądarek, pojawia się alternatywne rozwiązanie…

Mobilne aplikacje webowe – uruchamiane w przeglądarce urządzenia przenośnego, funkcjonujące na zasadzie „otwórz przeglądarkę, wpisz adres URL i ciesz się swoją aplikacją”.

Już teraz rozwiązania te oferują wygląd i funkcjonalność zbliżoną do tych, oferowanych przez aplikacje natywne, a wraz z wejściem na rynek zaawansowanych rozwiązań jak ustandaryzowana obsługa audio i wideo, grafika 3D wspierana przez WebGL (dla gier 3D i modelowania), obsługa grafiki 2D i animacji, usprawnienia komunikacji, wsparcie dla geolokalizacji, lokalne magazyny danych, bazy SQL, cachowanie zasobów (tak, że będą dostępne po przejściu w tryb offline) przeglądarka stanie się kompleksowym graficznym środowiskiem do uruchamiania aplikacji.

Dodatkowym atutem, są pojawiające się, znakomite narzędzia jak Sencha Touch - pierwszy oparty na HTML5, wieloplatformowy framework dla twórców aplikacji mobilnych. Powstały z połączenia lidera rynku rozwiązań biznesowych – biblioteki komponentów Ext JS, służącej do szybkiej budowy interfejsów i bogatych aplikacji internetowych (nasz firmowy CMS) wraz z jedną z najlepszych bibliotek Javascript dla urządzeń mobilnych – JQTouch.

Z pomocą Sencha Touch, będziemy mogli pisać aplikacje do złudzenia przypominające rozwiązania znane z telefonów Apple’a, obsługiwane zaawansowanymi zdarzeniami dotykowymi, oferujące dowolną funkcjonalność: od mobilnego uzupełnienia systemów do zarządzania kontaktami z klientami, przez biurowe aplikacje raportująco-użytkowe, po aplikacje do zarządzania sieciowym łańcuchem dostaw (SCM).

Mimo, że obecnie prym nadal wiodą aplikacje natywne (póki co szybsze i bardziej niezawodne), to przyszłość mobilnych aplikacji webowych i tego stosunkowo młodego rynku maluje się kolorowo. Wraz z rozwojem nowych narzędzi i technologii, środek ciężkości projektowania mobilnego będzie przesuwał się w stronę aplikacji przeglądarkowych. Pokonanie obecnych słabości tych rozwiązań, jest tylko kwestią czasu – kombinacja wzrastającej mocy obliczeniowej urządzeń przenośnych, dalszy rozwój WebKita, większa ilość RAM, nowy interpreter Javascript – Nitro, to tylko niektóre przesłanki pozwalające z całą stanowczością twierdzić, że sieć stanie się nieuchronną platformą zarówno dla aplikacji mobilnych jak i tradycyjnych.

Trustnet na PHPCon2010

Dnia 21. Maja miał miejsce pierwszy ogólnopolski zlot entuzjastów i programistów języka PHP  – PHPCon Poland 2010 zorganizowany przez PLUG. Oczywiście nie mogło tam zabraknąć silnej reprezentacji programistów  firmy Trustnet .
Zjazd miał miejsce w malowniczej miejscowości Huta Szklana, położonej niedaleko Puszczy Świętokrzyskiej. W ciągu trzech dni mieliśmy przyjemność  uczestniczyć w 12 prelekcjach dotyczących zagadnień związanych zarówno bezpośrednio z projektowaniem i implementacją projektów w PHP, jak i bardziej uniwersalnych tematów traktujących  o prawach autorskich, czy problemie walki ze spamem.

Większość wykładów, może z wyłączeniem prelekcji samego sponsora imprezy, stała na wysokim poziomie. Interesujący wykład dał niejaki Zyx, opowiadając o rozwijanym przez siebie autorskim systemie szablonów – Open Power Template. Projekt w ciekawy sposób podejmuje problem separacji warstwy logiki aplikacji od widoku, dając projektantowi szablonu do dyspozycji zestaw instrukcji osadzanych bezpośrednio w kodzie szablonu. Programista na wejściu instrukcji  określa jedynie rodzaj spodziewanych danych wejściowych i format ich prezentacji, zaś całą resztą: algorytmami renderowania, przygotowywania danych do wyświetlenia, zajmuje się sam system szablonów.
Mimo że do prezentacji podszedłem z lekkim dystansem, to być może w przyszłości pokuszę się o przetestowanie OPT w praktyce.

Duże zainteresowanie wzbudziły dwie prelekcje dotyczące systemów cachowania . Pierwsza z nich ogólnie zarysowała tematykę wielopoziomowego cachowania aplikacji skali biznesowej, z wykorzystaniem do tego  klastrów i serwerów dedykowanych, wyznaczonych wyłącznie do cachowania  newralgicznych danych. Druga, bardziej konkretna, traktująca o wysokiej wydajności systemie buforowania obiektów Memcached, o którym można przeczytać w relacji mojego kolegi tutaj.

Niestety prezentacja, na którą osobiście czekałem najbardziej o Architekturze Plug-in w PHP,  nie powaliła mnie na kolana.

Sam temat jest obecnie wyjątkowo ciekawy, ze względu na ogólną  potrzebę pisania aplikacji w sposób szybki, przy jednoczesnej minimalizacji nakładów pracy. Łatwo wyobrazić sobie jakim ułatwieniem byłoby składanie aplikacji z gotowych modułów na konkretne żądanie klienta. Jednak zaprojektowanie aplikacji  w oparciu o koncepcję autonomicznych części, „klocków” realizujących pewne samodzielne zadania jak  autoryzacja, blog czy sklep nie jest trywialne. Pojawia się szereg podstawowych problemów…

  • Które warstwy architektury MVC odpowiadałyby za poszczególne zadania: rozdzielania żądań, rejestrowania pluginów, implementacji usług, wyrejestrowywania?
  • W jaki sposób zaprojektować aplikację, w taki sposób żeby moduły pozwalały na manipulację wzajemnymi zależnościami?
  • Jak w łatwy sposób rozszerzać funkcjonalności poszczególnych modułów?
  • Czy rejestrować wszystkie pluginy jednocześnie?

Niestety część  z tych pytań pozostała dla mnie bez odpowiedzi. Owszem prelekcja zawierała fragmenty listingów, jednak sama koncepcja wydaje się zbyt złożona i wiąże się z szeregiem skomplikowanych inżynieryjnych pojęć  – kontenera wstrzykiwania zależności, szczegółów implementacji architektury EDA, których omówienie w tak krótkim czasie, jest niemożliwe.

Podsumowując, zjazd był dla mnie nie tylko zastrzykiem nowych informacji, świetną okazją do poznania ludzi z branży, wymiany doświadczeń i dyskusji na temat realizowanych projektów, ale również bodźcem do dalszego poszerzania wiedzy i szukania coraz to lepszych programistycznych rozwiązań.