Różnorodność mobilnych systemów operacyjnych ograniczenie czy szansa
Łukasz Korzeniowski, FancyFon
Konspekt
• Parę słów o FancyFon• Platformy mobilne• Projekt Pakk• Jak okiełznać różnorodność platform?• Ograniczenie czy szansa?
FancyFon – co robimy?
• Inna strona mobilności• FAMOC – zarządzanie urządzeniami mobilnymi– Backup/restore– Wipe– Polityki (haseł, VPN, konfiguracja WiFi)– Zdalny dostęp
• Nie tylko telefony• Oprogramowanie mobilne na zamówienie
Platformy mobilne – co jest na rynku?
Platformy mobilne - fakty
• Gdzie jest Nokia i RIM, a gdzie będzie?
źródło: http://www.allaboutsymbian.com/news/item/12858_IDC_smartphone_shipment_figure.php
Pakk – co to takiego?
• Klient: Vodafone Węgry
• Przeznaczenie: self-support dla klientów końcowych
• Funkcjonalność:– Backup/restore danych– Zarządzanie usługami– Wewnętrzne
repozytorium aplikacji– Śledzenie stanu konta
Pakk – top40 urządzeń
• Początkowe założenie – Symbian, Java• Top40 od Vodafone – 90% Java, 10% Symbian• Rzeczywistość:– Java: 42%– Symbian: 26%– Android: 32%
Pakk – wyzwania
• Głęboka integracja z systemem (backup, integracja przez SMS)
• Rozdzielczość ekranu• Różne możliwości urządzeń• Aplikacja z limitowanym dostępem• Opór niektórych producentów telefonów
Pakk Java
• Czego się spodziewaliśmy?– Problemy z testowaniem:
• dużo producentów i modeli (Nokia S40 – ok. 200 modeli)
• brak części telefonów z listy top40
– Duży koszt poprawy błędów
• Co nas zaskoczyło?– Problem z dostępnością telefonów na
rynku– Aż tak duże różnice w działaniu
aplikacji między urządzeniami
Pakk Java - development
• Nokia S40 5th, 6th – OK• Sony Ericsson, w miarę dobra implementacja
J2ME• Samsung, LG – co telefon to inny świat• Naruszone założenia specyfikacji JTWI• Drobne problemy przy uruchomieniu na S60• Nie udało się uruchomić na Bada OS
Pakk – Java (2)
• Zalety:– Stosunkowo krótki czas wytworzenia– Powszechny język programowania
• Problemy:– API nie działające zgodnie ze specyfikacją– Rozmiar aplikacji– Zróżnicowanie wielkości ekranu– Zróżnicowanie możliwości przeglądarki– Różna reprezentacja obiektów (np. kontakt)– Wysoki koszt testów– Problem z konfiguracją APN (Nokia) oraz uprawnień aplikacji –
negatywny wpływ na wrażenia użytkownika!!!
Pakk – Android
• Czego się spodziewaliśmy?– Szybki development– Przewidywalne zachowanie systemu– Duże zróżnicowanie modeli (głównie ekran)– Potencjalne problemy z „brandowanymi”
telefonami– Problemy z wsteczną kompatybilnością
(Android 2.1 vs 1.6)• Co nas zaskoczyło?
– Nie zawsze prawidłowa implementacja API systemowego (kontakty)
– Nietypowe zachowanie przeglądarki w HTC (user-agent)
Pakk – Android (2)
• Zalety:– Wielozadaniowy system operacyjny – można więcej– Duża swoboda aplikacji (szeroki dostęp do systemu)– Popularny język programowania– Szybkość tworzenia aplikacji– Automatyczna dostępność aplikacji na tablety
• Problemy:– Różnice w zachowaniu API na różnych modelach telefonów
(raczej incydentalne)– Pewne nienaruszalne założenia (np. sposób instalacji aplikacji) –
ograniczenie możliwości– Nienajlepsza dokumentacja
Pakk – Symbian
• Czego się spodziewaliśmy?– Ciężki development, szczególnie
interfejs użytkownika– Duża liczba urządzeń i wersji systemu– Niespójność systemu na różnych
urządzeniach– Wszystko da się zaimplementować
• Co nas zaskoczyło?– Dużo większa pracochłonność niż
zakładana– Bardziej skomplikowane rozwiązania
niż na Android
Pakk – Symbian
• Zalety:– API pozwalające na dostęp do każdego elementu systemu– W nowych telefonach możliwość tworzenia aplikacji w Qt
• Wady:– Dużo wyższa pracochłonność niż na innych platformach (bez użycia
Qt)– Archaiczny język i środowisko programistyczne– Ukryte API– Skomplikowany system podpisów– „Sztuczki i kruczki” zarówno w systemie jak w środowisku– Zróżnicowanie między wersjami Symbiana– Zróżnicowanie między urządzeniami
Pakk – iPhone
• Czego się spodziewaliśmy?– Szybki development– Uboższa funkcjonalność– Bogaty graficznie
• Co nas zaskoczyło?– Naprawdę szybki development – Drobne błędy w funkcjonowaniu iOS
Pakk – iPhone
• Zalety:– Niewielka liczba urządzeń i wersji systemu– Szybki development– „Błyszczący” interfejs użytkownika– Automatyczna dostępność aplikacji dla iPad
• Wady:– Nietypowy język programowania– Konieczność posiadania sprzętu Apple– Ograniczone API do dostępu do elementów systemu
(np. skrzynka SMS)
Pakk – inne platformy
• BlackBerry – zależy od klientów• Windows Phone 7 – jeszcze nie dziś• Bada – niski priorytet• Windows Mobile – na pewno nie• Palm (WebOS) – na pewno nie
Platformy - porównanieJava Android Symbian iPhone
Język Java (J2ME) Java („Java SE”)
C++ Objective C
Niezbędne kompetencje
Ogólna Java Ogólna Java C++, duże doświadczenie w Symbian
Objective C
Kanały dystrybucji Własny, niezależne sklepy
Android Market, własny
Ovi Store, własny
App Store
Koszt wytworzenia Wysoki Niski Wysoki Niski
Bariera wejścia Sprzęt Apple
Garść dobrych rad
• Proste aplikacje• Nie wchodzić głęboko w system• Ograniczyć docelową grupę urządzeń• Posiadać telefony referencyjne• Nie zakładać zgodności między urządzeniami
Nadzieja na przyszłość?
• Wybuch smartfonów – koniec „feature phones”
Nadzieja na przyszłość?
• Biblioteki dostępne na kilku platformach– LWUIT– XStream– OpenGL
Źródło: http://www.rovio.com
Nadzieja na przyszłość?
• Aplikacje pisane w ActionScript:– Android– iPhone (z użyciem Packager
for iPhone)– BlackBerry PlayBook
Nadzieja na przyszłość?
• HTML 5– Tworzenie aplikacji w
HTML/CSS/JavaScript– Aplikacje „offline”– Write once run
anywhere– PhoneGap
(phonegap.com)
źródło: http://miniapps.co.uk/cardflip/
Ograniczenie czy szansa?
• Dla każdego coś miłego• Można iteracyjnie• Dobór platformy do projektu• Dynamika rynku• Google App Inventor – każdy może napisać
aplikację (http://appinventor.googlelabs.com/about/)
Dziękuję za uwagę
Top Related