Zagadnienia wstępne
Transkrypt
Zagadnienia wstępne
WSTĘP DO PROGRAMOWANIA APLIKACJI MOBILNYCH DLA SYSTEMU ANDROID Zagadnienia wstępne Wykorzystane materiały: SDJ (różne numery); mat. UW; StatCounter i inne APLIKACJE MOBILNE Co to jest urządzenie mobilne? APLIKACJE 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? APLIKACJE MOBILNE 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 APLIKACJE MOBILNE 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) APLIKACJE MOBILNE Tablety APLIKACJE MOBILNE 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 APLIKACJE MOBILNE 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 APLIKACJE MOBILNE Oczekiwania użytkowników APLIKACJE MOBILNE 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. APLIKACJE MOBILNE 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) APLIKACJE MOBILNE Systemy operacyjne dla urządzeń mobilnych – 2011 r. Źródło: StatCounter, opracowanie danych: http://www.pingdom.com APLIKACJE MOBILNE 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 APLIKACJE MOBILNE Symbian OS APLIKACJE MOBILNE 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 APLIKACJE MOBILNE 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 APLIKACJE MOBILNE 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 APLIKACJE MOBILNE 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 APLIKACJE MOBILNE 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 APLIKACJE MOBILNE Dlaczego Android (w kontekście dewelopera)? APLIKACJE MOBILNE 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)? APLIKACJE MOBILNE 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