WSTĘP DO PROGRAMOWANIA APLIKACJI MOBILNYCH DLA SYSTEMU ANDROID Zagadnienia wstępne Wykorzystane materiały: SDJ (różne numery); mat. UW; StatCounter i inne
Co to jest urządzenie mobilne? Wikipedia: Przenośne urządzenie elektroniczne pozwalające na przetwarzanie, odbieranie oraz wysyłanie danych bez konieczności utrzymywania przewodowego połączenia z siecią Urządzenie mobilne może być przenoszone przez użytkownika bez konieczności angażowania dodatkowych środków Typowym zastosowaniem może być odbieranie i wysyłanie poczty elektronicznej oraz przeglądanie stron sieci WWW za pomocą aplikacji mobilnych
Co to jest aplikacja mobilna? Oprogramowanie, które jest przeznaczone dla urządzeń mobilnych: telefonów komórkowych (telefonów działających w oparciu o telefonię komórkową) palmtopów / PDA (komputerów kieszonkowych) smartfonów (połączenie telefonu komórkowego z komputerem kieszonkowym) tabletów (przenośnych komputerów z ekranem dotykowym) odtwarzaczy MP3/MP4 przenośnych konsoli do gier Z tej listy będą nas interesowały smartfony i tablety.
Smartfony Przenośne urządzenie telefoniczne integrujące w sobie m.in: telefon komórkowy e-mail organizer przeglądarka internetowa aplikacje biurowe często również aparat fotograficzny, akcelerometr, GPS itp.. Zazwyczaj posiadają systemy operacyjne umożliwiające instalację nowych aplikacji Pierwszy smartfon: IBM Simon (1992 r.) Pierwszy poważny smartfon: Nokia 9210 Communicator (2000 r.)
Smartfony c.d. Kamienie milowe w rozwoju smartfonów Nokia 9210 Communicator (2000 r.) Apple IPhone (2007) Apple itunes App Store (2008) Pierwsze smartofony oparte na Androidzie (2008/2009)
Tablety Przenośny komputer osobisty z ekranem dotykowym Zwykle nie posiada możliwości telefonowania, choć są modele posiadające gniazdo karty SIM w celu transmisji danych za pośrednictwem komórkowych sieci cyfrowych Pierwsze koncepcje powstały w XIX wieku (!), długo przed powstaniem pierwszych komputerów; pierwsze poważniejsze koncepcje: lata 60-te XX w. Kamienie milowe: Microsoft Tablet PC (2000) Apple Ipad 1 (2010) / 2 (2011) / 3 (planowany na marzec 2012) Motorola Xoom (początek 2011) Asus Transformer Prime (koniec 2011)
Użytkownicy urządzeń mobilnych Jeden system dla urządzeń skierowanych do różnych grup użytkowników: najczęściej jest to odbiorca masowy druga co do liczebności grupa: odbiorcy biznesowi Źródło: 2011 consumer report, nielsen
Użytkownicy tabletów 80% użytkowników tabletów uważa, że tablety poprawiły im proporcje praca / czas wolny 35% użytkowników tabletów używa ich w łazience :D Źródło: Staples, 2011
Oczekiwania użytkowników Dostępność system musi pozwalać wykonywać połączenia i wymieniać informacje funkcjonalności te muszą być dostępne w każdej chwili krótki czas startu systemu a tak naprawdę system nie powinien się nigdy wyłączać długi czas działania na baterii Niezawodność urządzenie mobilne jest dużo bardziej osobiste niż komputer nie można pozwolić na utratę danych system nie powinien się zawieszać ani wyrzucać poważnych błędów za wszelką cenę unikanie restartu urządzenia
Oczekiwania użytkowników c.d. Bezpieczeństwo Nikt nie ukradnie osobistych danych Dane nie zostaną zniszczone przez żaden złośliwy program Programy będą ze sobą dobrze koegzystować Interaktywność wygodny, prosty i estetyczny interfejs duża responsywność ekranów dotykowych wskazane różne gadżety - akcelerometr, GPS... łatwa i intuicyjna obsługa podstawowych funkcjonalności możliwość rozszerzania funkcjonalności - instalowania nowych aplikacji w możliwie prosty sposób prosta synchronizacja danych z PC i innymi urządzeniami mobilnymi
Wymagania użytkowników a ograniczenia techniczne Wymagania wobec urządzeń mobilnych: niewielka waga i rozmiary brak konieczności częstego ładowania szybkie ładowanie niska cena Odpowiedź na wymagania: stosunkowo niska rozdzielczość ekranów mało pamięci RAM procesor o niedużej wydajności (najczęściej ARM RISC)
Systemy operacyjne dla urządzeń mobilnych 2011 r. Źródło: StatCounter, opracowanie danych: http://www.pingdom.com
Systemy operacyjne dla urządzeń mobilnych sprzedaż urządzeń w III kwartale 2011 Źródło: http://www.gartner.com/it/page.jsp?id=1848514
Symbian OS Wywodzi się z systemu EPOC dla palmtopów firmy PSION Psion, Nokia, Ericsson i Motorola założyli w 1999 r. firmę Symbian Pierwszy Symbian 6.0 w 2000 roku (numerek odziedziczył po EPOCu) W 2008 Nokia przejęła większość udziałów i przekształciła firmę w fundacje Symbian Najnowsza wersja: Nokia Belle Podstawowe języki programowania: do 2010 r: Symbian C++ od 2010: standardowy C++ wraz z Qt można używać też innych języków (Python, Java ME,.NET )
Windows CE -> Mobile -> Phone Protoplasci: Windows CE (1996, rozwijany do dziś), Pocket PC 2000-2002 (2000) Windows Mobile 2003, Windows Mobile 5 (2005), 6 (2007), 6.5 (2010) Wersja dla smartfonów: Windows Phone 7 (2010) niekompatybilny z wcześniejszymi używa interfejsu METRO Języki programowania: C#, VB Sliverlight XNA Wgrany pakiet Office
Windows 8 Planowany na 2012 r. Wspólny system dla komputerów desktopowych i urządzeń mobilnych (na tych drugich ma być używany interfejs METRO) Nie oznacza to, że aplikacje desktopowe nagle zaczną działać na urządzeniach mobilnych wymagana będzie rekompilacja dla procesorów ARM Planowana rezygnacja z menu start Consumer preview: luty 2012
ios Wywodzi się z systemu Mac Os X, do 2010 r. iphone OS Oryginalnie powstał dla iphone a, później rozszerzony do obsługi ipoda, ipada i Apple TV Najnowsza wersja: ios 5 (jesień 2011) Zamknięty system, brak możliwości instalacji aplikacji spoza AppStore (można to obejść jailbreakingiem ) Dość kosztowna możliwość dystrybucji aplikacji (99 USD rocznie) Język programowania: Objective-C Wymagany komputer Mac z procesorem Intela Prosty, czytelny, bardzo sprawnie działający interfejs użytkownika
Android W lipcu 2005 roku Google kupuje firmę Android Inc., produkującą oprogramowanie dla urządzeń mobilnych Premiera systemu i pierwsze smartfony: połowa 2008 Oparty na Linuksie, z własną maszyną wirtualną Dalvik Język programowania: Java, z możliwością wstawek w C++ System otwarty, umożliwia instalowanie aplikacji spoza Marketu Dostępne źródła systemu Wersje 3.x przeznaczone wyłącznie na tablety Najnowsza wersja: 4.03 ujednolicenie systemu dla smartfonów i tabletów
Inne systemy / platformy RIM BlackBerry OS uzależniony od usługi (BIS / BES) u operatora sieci komórkowej przeznaczony głównie do zastosowań biznesowych Bada OS dla smartfonów Samsunga z serii Wave MeeGo zastosowany w Nokii N9 ma być zastąpiony przez Tizen (2012) Bada dla smartfonów Samsunga z serii Wave webos początkowo (2009) stosowany w smartfonach Palm w 2010 przejęty przez HP i stosowany w tabletach tej firmy
Dlaczego Android (w kontekście dewelopera)? Jeden z nowszych systemów, intensywnie się rozwijający Stosunkowo mało dobrych aplikacji (w porównaniu z ios), szczególnie na tablety duża (niepowtarzalna?) szansa na wykorzystanie luki rynkowej! Tani dostęp do konta deweloperskiego (25USD), umożliwiającego dystrybucję aplikacji poprzez Market Możliwość swobodnej dystrybucji aplikacji bez pośrednictwa Marketu SDK działa pod różnymi systemami (Win/Mac/Linux) Duże możliwości dostosowywania UI (widżety, ikony) Stosunkowo tanie urządzenia największa dynamika wzrostu liczby urządzeń Stosunkowo łatwy i popularny język programowania JAVA Duża i dobrze zorganizowana społeczność Często istnieje możliwość instalacji alternatywnych ROM-ów Na złość Apple owi ;)
Dlaczego NIE Android (w kontekście dewelopera)? Mnogość wersji SDK, niespójna numeracja Mnogość konfiguracji sprzętowych Aplikacje zwykle są dość tanie trudno zarobić Android rzadko jest kojarzony z zastosowaniami biznesowymi Aplikacje stosunkowo łatwo scrackować i instalować bez pośrednictwa Marketu Często nie lubiany język programowania Nie najlepsza dokumentacja SDK (choć nie jest aż tak źle) Czasem konieczność stosowania dziwnych (z punktu widzenia programisty jednowątkowego ) konstrukcji programistycznych Powolny emulator urządzenia, dużo łatwiej testować na rzeczywistym urządzeniu