HTML5 a reklamy natywne

Debata dotycząca aplikacji mobilnych

Michaela Mahemoffa
Michael Mahemoff

Wprowadzenie

Aplikacje mobilne i HTML5 to obecnie dwie najbardziej popularne technologie, które w dużym stopniu się pokrywają. Aplikacje internetowe działają w przeglądarkach mobilnych i można je również utworzyć jako aplikacje natywne na różne platformy mobilne. Ze względu na obsługę szerokiej gamy platform i ogrom możliwości przeglądarek mobilnych deweloperzy coraz częściej korzystają z HTML5 jako rozwiązania typu „pisz jeden, uruchamiaj wiele”. Czy jest to jednak naprawdę opłacalne? Wciąż istnieją ważne powody, aby tworzyć rozwiązania natywne i wielu deweloperów faktycznie idzie w tym kierunku. W tym artykule omawiamy spór między reklamami natywnymi a internetem.

Bogactwo funkcji

Pamiętaj: reklamy natywne zapewniają więcej możliwości

Funkcjonalność urządzeń mobilnych można podzielić na 2 wymiary: wrażenia z korzystania z samej aplikacji oraz sposób, w jaki jest ona powiązana z ekosystemem urządzenia (np.w przypadku Androida). Chodzi tu o takie funkcje jak widżety i powiadomienia. Reklamy natywne świetnie sprawdzają się w obu wymiarach.

Jeśli chodzi o wygodę użytkowników, aplikacje natywne zapewniają większe możliwości. Łatwo wykrywają zdarzenia przesunięcia, a nawet wielodotyk na platformach, które je obsługują. Zwykle działają one po naciśnięciu klawiszy twardych, takich jak przycisk wyszukiwania na Androidzie czy regulacja głośności. Mają też dostęp do sprzętu, np. GPS-a czy aparatu. Za zgodą użytkownika niektóre platformy zapewniają nieograniczony dostęp do systemu operacyjnego. Sprawdź po prostu, jaki jest poziom naładowania baterii dzięki HTML5.

To coś więcej niż tylko wrażenia z korzystania z aplikacji. System operacyjny, taki jak Android, zapewnia aplikacjom różne sposoby interakcji z użytkownikami, a w rzeczywistości z innymi aplikacjami. Na stronie głównej masz aktywne widżety. Masz powiadomienia, które pojawiają się na pasku stanu urządzenia. Masz też intencje, które sprawiają, że aplikacja informuje, że jest usługą ogólną, której inne aplikacje mogą od czasu do czasu wymagać.

Kontrast: można ulepszyć funkcje natywne, a internet i tak dogonił sieć.

To prawda, że wiele funkcji w aplikacji jest poza zasięgiem aplikacji HTML5. Bez względu na to, jak bardzo zaawansowane są Twoje umiejętności w zakresie tworzenia stron internetowych, jeśli Twoja aplikacja utknie w piaskownicy bez interfejsu API aparatu, nie będzie robić zdjęć w najbliższym czasie. Na szczęście nie musisz jej otwierać w tej piaskownicy. Jeśli naprawdę potrzebujesz aplikacji internetowej do robienia zdjęć, możesz stworzyć aplikację natywną z wbudowanym widokiem witryny, która zapewnia większość interfejsu. Oto jak działa platforma typu open source PhoneGap: wypełnia luki, udostępniając natywne funkcje jako usługi internetowe, które przeglądarka wyświetla za pomocą standardowego interfejsu API sieci. Tworząc taką aplikację hybrydową, możesz też korzystać z funkcji platformy, takich jak widżety, powiadomienia i intencje.

Tworzenie aplikacji hybrydowej z natywną aplikacją internetową nie jest najlepszym rozwiązaniem. Zwiększa to złożoność procesu i ma zastosowanie tylko do aplikacji internetowych w formie aplikacji natywnych, a nie jako tradycyjnych stron otwieranych w przeglądarce mobilnej. Jednak na długo nie jest to konieczne. Standardy internetowe szybko się zmieniają i nowoczesne przeglądarki mobilne wciąż nadążają za tymi zmianami. Pamięć offline, geolokalizacja, grafika na płótnie i odtwarzanie wideo/dźwięku są powszechnie obsługiwane na przykład przez nowoczesne smarpthony. Zaczynamy obsługiwać aparaty – od Androida 3.1 możesz robić zdjęcia i filmy za pomocą standardów internetowych. Najnowsza przeglądarka na iOS obsługuje protokół WebSocket do dwukierunkowego przesyłania strumieniowego oraz wykrywania orientacji urządzenia.

Ogólnie rzecz biorąc, urządzenia mobilne ewoluują. Ale internet również się rozwija i szybko się rozwija. Wśród przeglądarek na komputery jest tylko 5 głównych dostawców przeglądarek, którzy zmieniają standardy i błyskawicznie dodają nowe funkcje. Chociaż przenoszenie tych funkcji na urządzenia mobilne nie jest proste, wiele z nich już wkroczyło do takich przeglądarek.

Reklamy natywne to szybko rozwijający się cel, ale internet eliminuje tę przeszkodę.

Występy

Punkt: reklama natywna działa szybciej

W przypadku aplikacji natywnych nie obowiązuje żadna bariera czasu działania w internecie. Działają blisko metalu i wykorzystują funkcje zwiększające wydajność, takie jak akceleracja GPU i wielowątkowość.

Kontrast: środowiska wykonawcze internetowe są obecnie znacznie szybsze, a większość aplikacji i tak nie potrzebuje takiej szybkości

Gdyby w ostatnich latach sieć stawała się szybsza, to byłoby niedobra. Wersja 8, która jest uruchamiana z Chrome, miała duże znaczenie dla wydajności sieci. Od tamtej pory działa ona jeszcze szybciej:

Wykres skuteczności V8

Mechanizmy renderowania graficznego przyspieszyły także działanie internetu, a teraz zaczyna coraz szybciej wchodzić w życie sprzętowe. Zwróć uwagę na mechanizm przyspieszający, który zapewnia sprzęt z akceleracją obrazów:

Wykres akceleracji sprzętowej w kanale

Poza tym nowy interfejs Web Workers API umożliwia wielowątkowość, a nowoczesni programiści stron internetowych mogą wywoływać różne biblioteki zoptymalizowane pod kątem wydajności i przetestowane techniki optymalizacji wydajności. Większość z nich zaczęła korzystać z internetu na komputerach, ale użytkownicy urządzeń mobilnych w większym stopniu korzystają też z urządzeń mobilnych. Użytkownicy częściej przywiązują uwagę do urządzeń mobilnych. Specjalista ds. wydajności, Steve Souders, ma stronę poświęconą narzędziom mobilnym.

Nie wszystkie urządzenia mobilne pojawiły się jeszcze na każdej platformie mobilnej, ale z trendów wynika, że są one w przyszłości. Warto też zauważyć, że większość aplikacji mobilnych nie jest najnowocześniejszymi grami 3D, lecz przede wszystkim informacjami: wiadomości, poczta, rozkłady jazdy, sieci społecznościowe itp. Otwórz kilka stron na komórce, np. Gmail, Amazon lub Twitter, i stwierdzisz, że wydajność internetu mobilnego jest wystarczająca. Jeśli chodzi o gry, te podstawowe są już możliwe dzięki kanwom 2D, a technologia WebGL jest coraz dostępna w urządzeniach mobilnych. Zobacz Firefox 4. Do czasu ich powszechności pojawia się rosnąca rodzina platform, które kompilują aplikacje WebGL z aplikacjami natywnymi wykorzystującymi OpenGL, np. ImpactJS.

Dla programistów

Pamiętaj: reklamy natywne są łatwiejsze do utworzenia

Aplikacje natywne używają rozbudowanych języków programowania (np. Java, Objective C lub C++), które zostały opracowane z myślą o tworzeniu złożonych aplikacji i mają sprawdzone doświadczenia. Interfejsy API zaprojektowano z myślą o obsłudze dostępnej platformy. Aplikacje możesz łatwo debugować w emulatorach pulpitu, które przedstawiają bardzo blisko urządzenia docelowego.

To, co szczególnie utrudnia tworzenie stron internetowych, jest ogromna różnorodność przeglądarek i środowisk wykonawczych. Gdy aplikacja działa, nie jest dostępna funkcja gwarancyjna X. A nawet jeśli tak, to jak zaimplementuje go przeglądarka? Standardy są interpretowane.

Kontrut: łatwo jest tworzyć internet, zwłaszcza gdy jest ono kierowane na wiele urządzeń

Zajmijmy się najpierw podstawową technologią. To prawda, że standardy powstały w czasach, gdy w pierwszej kolejności powstały dokumenty, a nie aplikacje. JavaScript został utworzony i wdrożony w zaledwie 10 dni. Okazało się jednak, że mają większe możliwości, niż się wydaje – programiści stron internetowych nauczyli się wykorzystywać dobre elementy i pokonywać niewłaściwe elementy. Wzorce, które można teraz wykorzystywać do skalowalności, są teraz zrozumiałe. Standardy te wciąż pozostają bez zmian, a środki takie jak HTML5, CSS3 i EcmaScript Harmony polepszają wrażenia programistów. To, czy wolisz używać C++, Javy, czy JavaScriptu, należy do debaty religijnej, a także zależy od Twojego systemu operacyjnego. Ale możemy zdecydowanie uwzględnić JavaScript jako poważną konkurencję.

Z kolei fragmentację na przeglądarki/środowisko wykonawcze polega na tym, że wszystkie te środowiska istnieją w pierwszej kolejności. Gdy tworzysz aplikację na Androida w Javie, masz dostęp do pełnego portu do Objective-C, który obsługuje iOS. Wystarczy stworzyć aplikację internetową, która będzie działać na Androidzie i iOS, nie mówiąc już o WebOS, BlackBerry i Windows Mobile. I tak to jest. W praktyce musisz coś zmienić na każdej platformie, aby uzyskać optymalną jakość. W większości mobilnych systemów operacyjnych trzeba to jednak robić w przypadku reklam natywnych, ponieważ istnieją różne wersje i urządzenia.

Dobra wiadomość jest taka, że „fragmentacja” zawsze była stosowana w internecie i istnieją dobrze znane techniki radzenia sobie z nią. Co najważniejsze, zasada progresywnego ulepszania wymaga od programistów, by najpierw kierowali reklamy na podstawowe urządzenie, a następnie dodawały kolejne funkcje, które są dostępne na poszczególnych platformach. Mantra wykrywania funkcji również jest pomocna. Obecnie, aby wspierać elastyczne projektowanie witryn, korzystamy obecnie z bibliotek takich jak Modernizr. Dzięki przemyślanemu stosowaniu tych technik możesz zwiększyć swój zasięg na zdecydowaną większość urządzeń, nawet starsze telefony z podstawową przeglądarką, a nawet urządzenia o różnych formatach, takie jak zegarki czy telewizory, niezależnie od marki i systemu operacyjnego. Zobacz naszą prezentację z wieloma interfejsami na konferencji Google IO 2011, w której skupiliśmy się na różnych urządzeniach (telefon z podstawową przeglądarką, smartfon, tablet, komputer, telewizor) o tej samej bazie kodu, która opiera się na logice i znacznikach.

Wygląd i poczucie

Punkt: reklama natywna pasuje do wyglądu i sposobu działania platformy

Jedną z najważniejszych cech każdej platformy jest jej wygląd i działanie. Użytkownicy oczekują, że elementy sterujące będą prezentowane w spójny sposób i zmanipulowane w ten sam sposób. Niektóre idiomy różnią się w zależności od platformy. Na przykład: co się dzieje, gdy użytkownik przytrzymuje element (przez kilka sekund)? Plaformy mają standardowe idiomy do takich rzeczy i nie da się ich spełnić w pojedynczej aplikacji HTML5.

Dodatkowo wygląd i działanie platformy są koordynowane przez natywną bibliotekę oprogramowania na platformie, której widżety odzwierciedlają wygląd i działanie użytkowników. Jeśli skorzystasz z natywnych narzędzi, uzyskasz wiele oczekiwanych efektów wizualnych „bezpłatnie”.

Kontrast: sieć ma swój własny wygląd i sposób działania, a Ty możesz dostosować jej interfejs do platform, na których najbardziej Ci zależy

Jak wyjaśniliśmy w poprzedniej sekcji, celem tworzenia stron internetowych jest napisanie podstawowej wersji „uniwersalnego rozwiązania dla wszystkich” i stopniowe jej ulepszanie. Zazwyczaj ulepszenie zależy od konkretnych funkcji, ale można je również ulepszyć, kierując reklamy na platformy, na których najbardziej Ci zależy. Jest to rodzaj „wykrywania przeglądarki”, które jest czasami niechętne w społeczności internetowej, głównie dlatego, że istnieje wiele możliwych przeglądarek. Jeśli jednak obejrzysz 2 lub 3 platformy o bardzo wysokim priorytecie i chcesz włożyć więcej wysiłku, aby zwrócić uwagę na alternatywne rozwiązania, być może warto wybrać ten sposób.

Jeśli chodzi o wersję podstawową, internet ma własny wygląd i można nawet powiedzieć, że każda platforma mobilna ma własny „wygląd i sposób działania” ustanowiony przez domyślną przeglądarkę i środowisko sieciowe. „Wygląd i działanie strony” mogą być odpowiednie dla Twoich użytkowników. Pozwalają uzyskać większą spójność zarówno z przeglądaniem na komputerze, jak i z innymi urządzeniami, z którymi użytkownik korzysta. Jest też wiele popularnych aplikacji, które i tak nie obsługują natywnego wyglądu. Dotyczy to z pewnością gier (czy Twoja ulubiona gra mobilna jest zgodna z wyglądem i stylem Twojego systemu operacyjnego na urządzeniu mobilnym?), a nawet bardziej konwencjonalnymi, np. poznaj bardziej popularne natywne klienty Twittera na wybranej przez Ciebie platformie i zobacz, jak wiele różnych mechanizmów interfejsu użytkownika działa.

Wykrywalność

Uwaga: aplikacje natywne są łatwiejsze do znalezienia

Mechanizmy dystrybucji aplikacji, takie jak Android Market czy App Store firmy Apple, są w ostatnich latach niesamowicie popularne i są siłą napędową branży mobilnej. Każdy deweloper może przesłać swoją aplikację natywną do Marketplace, gdzie użytkownicy mogą ją odkryć, przeglądając, wyszukując i otrzymując rekomendacje. Świetne oceny i komentarze przekonają użytkowników do kliknięcia najważniejszego przycisku instalacji, jeśli prawidłowo wykonasz swoją pracę.

Kontrast: aplikacje internetowe są łatwiejsze do odkrycia

Internet jest prawdopodobnie najbardziej możliwym do znalezienia medium, jakie kiedykolwiek powstały. W skróconym adresie URL umieszczamy (przynajmniej teoretycznie) unikalny identyfikator wszystkich treści kiedykolwiek opublikowanych w internecie. Obejmuje on wszystkie aplikacje opublikowane w standardowych witrynach. Wyszukiwarki ułatwiają sprawdzanie, czy treści i inne strony internetowe mogą zawierać linki do nich, w tym katalogi aplikacji internetowych podobnych do mobilnych platform handlowych. Każda osoba może udostępniać aplikacje internetowe znajomym, dodając do nich linki w e-mailach i wiadomościach w sieciach społecznościowych. Linki można też wysyłać w SMS-ach, dzięki czemu użytkownicy urządzeń mobilnych będą mogli go kliknąć i uruchomić aplikację w przeglądarce.

Nie mamy jeszcze takiego samego platformy handlowej, w którym użytkownicy mogą oceniać i komentować aplikacje, ale to się zmienia. Czytaj dalej...

Zarabianie

Ważne: można zarabiać na reklamach natywnych

„6-latka tworzy aplikację w porze obiadowej i sprzedaje milion kopii za 3 USD za sztukę”. Obecnie często można znaleźć taki nagłówek, więc nic dziwnego, że zarówno duże, jak i małe firmy zaczynają zarabiać na urządzeniach mobilnych. Platformy mobilne zapewniają kilku możliwości bezpośredniego pobierania opłat za aplikacje. Najprostszy sposób to płatność jednorazowa, która odblokuje aplikację na zawsze. Na niektórych platformach dostępne są również mechanizmy płatności i subskrypcji w aplikacji, które są ściśle zintegrowane w spójny, bezpieczny mechanizm. Te nowsze formy płatności umożliwiają programistom przekształcanie popularnej aplikacji w długoterminowe źródło przychodów.

Oprócz płatności za aplikację możesz zarabiać także za pomocą tradycyjnych modeli internetowych, takich jak reklamy i sponsorowanie.

Kontrast: zawsze można było zarabiać w internecie, a możliwości są coraz większe.

Internet nie byłby siłą napędową nowoczesnej branży, jeśli nie miałby zbyt wielu okazji do zarabiania. Mimo że mechanizmy bezpośredniego „płatności za wykorzystanie” jeszcze się nie rozkwitały, istnieją różne obszary, w których takie rozwiązania oparte na subskrypcji faktycznie się sprawdziły. Przykłady to m.in. Google Apps, produkty firmy 37Signals oraz wersje premium różnych usług poczty e-mail. Co więcej, płatności bezpośrednie nie są jedynym sposobem na zarabianie na aplikacjach internetowych. Istnieje możliwość reklamowania się online, linków do witryn partnerskich, sponsorowania i wzajemnej promocji innych produktów i usług.

Niewątpliwą zaletą takiego rozwiązania jest to, że twórca stron internetowych powinien poczuć się pewniej przy płatnościach. Nie można przesłać adresu URL do natywnych platform handlowych. Co powinien zrobić programista stron internetowych? Wystarczy, że utworzysz natywną „aplikację z kodem”. W przypadku każdej platformy, na którą chcesz kierować reklamy, utwórz pustą aplikację natywną zawierającą tylko widok witryny. W widoku internetowym umieszczasz prawdziwą aplikację. Potem po prostu przesyłasz ją do różnych sklepów (i miejmy nadzieję, że napływają pieniądze). Obecnie na głównych platformach handlowych są setki, a może nawet tysiące aplikacji internetowych. Niektóre z nich są tak sprytnie zaznajomione, że w ogóle nie znamy ich aplikacji.

Wadą jest to, że kompilacja danych na obu platformach jest obciążana. Z pomocą może tu pomóc istniejąca platforma, np. PhoneGap. Co więcej, istnieją usługi internetowe, takie jak PhoneGap Build i Apparatio. Skieruj te witryny do repozytorium kodu, a wyświetli się aplikacja na Androida, aplikacja na iOS itp., którą będzie można przesłać do odpowiednich sklepów. Nie musisz instalować natywnych pakietów SDK na komputerze – do stworzenia tych aplikacji wystarczył edytor kodu i przeglądarka.

Czy platformy handlowe kiedykolwiek będą obsługiwać aplikacje internetowe bezpośrednio, bez konieczności ich natywnego tworzenia? Jeszcze nie jest jasne. Wiemy, że sklep Chrome Web Store powstał w zeszłym roku i chociaż jest to sklep komputerowy, wzbudził on zainteresowanie wśród innych dostawców przeglądarek i jest częścią trendu dotyczącego katalogów aplikacji internetowych, w tym również wersji na urządzenia mobilne. koncepcja sklepu internetowego jest stosunkowo młoda, ale wyniki są obiecujące.

Podsumowanie

Dobrze byłoby w tym miejscu ogłosić zwycięzcę, ale na razie nie ma wyraźnego zwycięzcy. Niektóre aplikacje najlepiej sprawdzają się w przypadku reklam natywnych, a inne – w internecie. Stos sieciowy może się rozwijać, ale jeśli chodzi o możliwości i jakość działania, aplikacje natywne też szybko się poruszają. Jeśli w większości mobilnych systemów operacyjnych technologie internetowe nie staną się podstawowym elementem większości mobilnych systemów operacyjnych, warto wziąć pod uwagę przede wszystkim rozwiązania natywne.

Jedną z metod wspomnianych w tym artykule są aplikacje hybrydowe. Dla niektórych deweloperów może to być najlepszym kompromisem. W przypadku niektórych deweloperów może to być rozwiązanie typu „Web View” z możliwością wyświetlania reklam oraz z komponentami natywnymi związanymi z konkretną platformą, tam gdzie nie jest.

Wybierając ścieżkę internetową, pamiętaj o standardach sieciowych i zasadzie stopniowego udoskonalania jej treści. Internet to technologia, która wie, jak kierować reklamy na wiele różnych urządzeń i systemów operacyjnych. Nazwa „fragmentacja” czy „różnorodność” jest znana w internecie, a deweloperzy mogą korzystać ze wszystkich jej wcześniejszych rozwiązań.