maja82008

Sun i Apple: bitwa o Javę na wyspie iPhone

W ciągu 24h od release’u iPhone SDK inżynierzy Sun’a zbadali platformę Apple aby stwierdzić, czy da się na niej zaimplementować Javę. Po burzliwej, całonocnej analizie stwierdzili, że jest to możliwe i postanowiono zaimplementować na iPhone technologię J2ME. O ile można się było spodziewać takiego obrotu spraw ze strony Sun’a, nie bardzo wiadomo jakie będzie stanowisko samego Apple.

Nie wiadomo dlaczego wybór Sun’a padł właśnie na Java ME. Powszechnie uważa się, że jest ona dość ograniczona i nie daje możliwości korzystania z nawet ułamka najciekawszej funkcjonalności oferowanej przez iPhone’y. Sun będzie musiał wprowadzić kilka dodatkowych API, aby developerzy mogli rozwinąć skrzydła, a aplikacje Javy na iPhone nie pozostawały w tyle za innymi technologiami. Dziwne jednak, że nie zdecydowali się wspierać od początku swojego Java FX Mobile, które ma szansę w przyszłości zastąpić J2ME. Ponadto, J2ME często krytykowana i ma kiepską opinię.

Apple w tej chwili w pełni kontroluje swoją platformę i całe środowisko skupione wokół iPhone’a. SDK jest dostępne w tej chwili tylko na Mac OS X, więc aby tworzyć aplikacje na ten telefon, trzeba mieć Mac’a. Ruch ten spowodowany jest chęcią jego popularyzacji. Ponadto, użytkownicy w tej chwili mogą pobierać i instalować aplikacje jedynie ze specjalnego sklepu. Pozwala to Apple’owi kontrolować jakie aplikacje są dostępne użytkownikom. Podnosi to poziom bezpieczeństwa tej technologii, ale jednocześnie znacznie ogranicza użytkowników i developerów.

Gdyby na iPhone udało się pisać, instalować i uruchamiać aplikacje napisane w Javie, Apple straciłby tą kontrolę. Programy można byłoby pisać używając konkurencyjnych wobec Apple rozwiązań, a także nie można byłoby kontrolować co instalują użytkownicy. Jeśli Apple pozwoli Sun’owi zaimplementować J2ME na iPhone, Apple może stracić. Warto zwrócić uwagę na fakt, że Apple’owi nie zależy na otwartości swojego rozwiązania.

W licencji iPhone SDK można przeczytać, iż zabronione jest tworzenie aplikacji korzystających z interpretowanych runtime’ów. Oznacza to, że programiści nie mogą portować technologii takich jak Python, Ruby czy .NET na iPhone’y. Klauzula ta nie znalazła się w licencji przypadkowo. Polityka Apple może nie być więc przychylna Sun’owi.

maja12008

Programowanie na Apple iPhone – Linki

Tym razem kilka podstawowych linków dla tych, którzy chcieliby rozpocząć swoją przygodę z programowaniem na Apple iPhone:

  1. Materiały źródłowe
  2. Galerie aplikacji
  3. Blogi i newsy
  4. Fora dyskusyjne
  5. Wiki
kwietnia292008

Google Android nie całkiem taki open-source

Google twierdzi, że Android jest nowoczesną, otwartą technologią. Stara się także zdobyć przychylność środowiska open-source. Jednak jak możemy przeczytać tutaj, w licencji SDK ukrytych jest kilka kruczków, stojących jawnie w sprzeczności z zasadami otwartego oprogramowania.

Z posta wynika m. in. :

  • Nie można korzystać z kodu źródłowego zawartego w SDK
  • Google twierdzi ze większość kodu będzie na Apache 2.0
  • Google może cofnąć licencję, jeśli stwierdzi, że to co programiści tworzą za pomocą SDK jest sprzeczne z interesami Google

Wygląda na to, że Google Android jest tak otwarty, jak otwarta była Java zanim Sun zrobił ją w pełni open-source. Sun bardzo długo kontrolował Javę, lecz dopiero zmuszony przez społeczność podjął się jej uwolnienia. Google zapewne idzie tą samą drogą, pomimo oficjalnych zapewnień co do swojego przywiązania do społeczności open-source.

Czym jest zatem ta licencja na Android SDK? Wiadomo że Linux’owa część Androida jest na GPL, a także wiele bibliotek Javy pochodzi z projektów skupionych wokół Apache Foundation i korzysta z licencji Apache 2.0. Nie wiadomo jak będzie z kodem samego Google. Z pewnością w tej chwili SDK nie można uznać za prawdziwie open-source.

kwietnia242008

Walka Googlephone vs iPhone?

Producenci telefonów komórkowych testują prototypy pierwszej fali do certyfikacji FFC, modele do publicznej sprzedaży trafią zapewne już w 2008 roku – czy można mówić o walce Google vs Apple, gPhone vs iPhone? Dyskusja rozpoczęła się wraz z publikacją iPhone SDK (software development kit).

Czy powstanie walka na linii Android-Iphone? Czy producenci będą musieli wybierać między dwoma różnymi SDK determinującymi zastosowanie i funkcjonalność telefonu? Co wybiorą użytkownicy? Jaki będzie ruch obecnych dominantów takich jak Nokia, Sony Ericsson, Samsung, Siemens czy LG?

Z jednej strony, serwis AndroidGuys twierdzi że pierwsza generacja smartfonów korzystających z Androida będzie obarczona licznymi bugami problemami z jakością oraz niedużym wsparciem oprogramowania. Iphone też miał początkowe trudności, a bugi zdarzają się zawsze.

Droidworks wylicza istotne różnice między tymi dwoma platformami. Apple Iphone to tzw. high-end smartphone (chociaż nie wszyscy się z tym zgadzają) zintegrowany z oprogramowaniem charakterystycznym Maców oraz sklepem iTunes. Z kolei Android oparty jest na rozwiązaniach otwartych, łatwo skalowalnych. W skali globalnej zobaczymy zapewne więcej ‘telefonów Googla’ na rynkach rozwijających się (Indie, Chiny) głównie ze względu na cenę licencji, osprzętu, dystrybucję. Polska również może należeć do krajów, gdzie iPhone będzie drogim gadżetem a ‘zwykłe’ smartfony obsłużą Androida – na przykład nie wymaga on ani touchscreena ani pełnej klawiatury QWERTY (ale obsługuje).

Zaletą Apple’a jest dbałość o markę, jakość czy promocja, support. W Polsce firma nie jest rozpoznawana tak, jak na zachodzie – u nas dodatkowo czynnikiem jest cena. W USA, Anglii czy Niemczech użytkowników stać na dowolny gadget i o zakupie decydują inne cechy. Android może nie być tak rozpoznawalny, niektórzy posiadacze telefonów działających na SDK Googla mogą nawet nie wiedzieć, że posiadają “Googlefona” – różni producenci mogą stworzyć inne oprogramowanie oraz interfejs użytkownika, Android jest bardziej uniwersalny od iPhona. Google i Apple stawiają na inny model biznesowy i prawdopodobnie obie firmy zostaną zwycięzcami boomu telefonów komórkowych. Tylko kto straci?

Producentów Google Phone’a będzie wiele, Apple tylko jeden. Pojedynek nie jest bezpośredni, dotyczy nieco innego modelu dystrybucji i tworzenia sprzętu, oprogramowania. Ale czy użytkownicy będą posiadali dwie komórki – gadżet Apple’a oraz platformę Open Handset Alliance?

kwietnia152008

Android SDK: Emulator, czyli jak to będzie wyglądać

Zanim zaczniemy serię tutoriali przybliżającą Wam tajniki platformy, przyjrzymy się najpierw co oferować może działający telefon wyposażony w Androida. Opiszemy pokrótce podstawowe aplikacje dostępne w bieżącym SDK a także jakie ustawienia środowiskowe mamy do dyspozycji.

Najpierw należy ściągnąć najnowsze SDK w wersji dla naszego systemu operacyjnego i rozpakować na dysku. Na potrzeby tego artykułu przyjmiemy, że systemem jest Windows XP, a SDK zainstalujemy w katalogu C:\Android.

Po rozpakowaniu uruchamiamy emulator poleceniem:

C:\Android\emulator.exe

Android Menu

Emulator tworzy wirtualną maszynę udającą telefon. Następnie ładowany jest do niej specjalnie zmodyfikowany Linux wraz ze wszystkimi bibliotekami i sterownikami, co może potrwać nawet kilka minut. Na początku pojawia się napis “ANDROID” a potem zastępuje go animowana “czerwona kropka” sygnalizująca ładowanie systemu. Nie musimy się niecierpliwić ani martwić, że coś się powiesiło – aplikacja będzie gotowa, gdy pojawi nam się menu z tapetą i zegarem. Gdy ukaże nam się menu główne, w dolnym prawym rogu klikamy na “All”. W menu pojawią się wszystkie zainstalowane aplikacje. Wybierzmy Browser.
Przeglądarka WWW

Domyślnie strona startowa przeglądarki www ustawiona jest na http://google.com. Wybierzmy z menu Go to, a pojawi się lista zakładek i pole edycyjne, pozwalające wpisać adres strony, którą chcemy odwiedzić. Możemy wpisać np pap.pl a pojawi się nam strona Polskiej Agencji Prasowej. Ekran emulatora działa jak touchpad, toteż możemy przesuwać widok strony przeciągając myszą po ekranie. Na linki i elementy formularzy możemy zwyczajnie klikać i wprowadzać dane.

Do dyspozycji w menu mamy oczywiście zakładki, historię, odświeżanie, zoom, listę otwartych okien/stron i parę innych. Do poprzedniej strony możemy wrócić klikając strzałkę w lewo czyli standardowy przycisk powrotu.

Aby wyjść z aplikacji, klikamy czerwony przycisk odłóż słuchawkę.


Kontakty Android

Czym byłby telefon bez książki adresowej? W głównym menu na liście aplikacji, obok przeglądarki dostępna jest pozycja Contacts. Po uruchomieniu tej aplikacji, pojawia się (na razie pusta) lista kontaktów. Nowe kontakty możemy dodać oczywiście z menu.

Aplikacja Dialer służy do.. telefonowania :) Po jej uruchomieniu pojawia się “cyferblat” i pole edycyjne, gdzie możemy wybrać numer, na który chcemy zadzwonić.



Android dialer

Aplikacja Maps to oczywiście znane nam wszystkim Mapy Google. Podobnie jak w przypadku przeglądarki WWW, możemy poruszać się po mapie używając wirtualnego touchpada lub strzałek na klawiaturze. Podwójne kliknięcie centruje mapę na wskazanym miejscu. W menu dostępny jest zoom. W pierwszej chwili może się wydawać, że poruszanie się po mapie jest kłopotliwe i nie zawsze trafiamy tam gdzie zamierzaliśmy, ale wystarczy się przyzwyczaić do interfejsu, a nawigowanie po mapie stanie się bardzo łatwe.


Android mapa
Dla programistów, którzy chcieliby zacząć pisać aplikacje na Androida, najciekawszym narzędziem będzie Dev Tools. Składa się ono z kilku mniejszych aplikacji :

  • Development Settings
  • Exception Browser
  • Instrumentation
  • Media Scanner
  • Package Browser
  • Pointer Location
  • Preffered Packages
  • XMPP settings (Gtalk settings)

Exception Browser wyświetla listę wyjątków, które “wyleciały” z uruchamianych wcześniej aplikacji. Pozwala to np. przyjrzeć się dlaczego napisana przez nas aplikacja napotkała na błąd. Dla każdego wyjątku wyświetlany jest cały stack trace.




Pointer Location pozwala protestować zachowanie touchpada.Package Browser zawiera listę zainstalowanych aplikacji. Dla każdej aplikacji, można wyświetlić informacje na temat każdego publicznego Activity, jakie jest przez nią udostępniane.


Android Package

XMPP settings (Gtalk settings) pozwala skonfigurować swoje konto GTalk. Możemy dzięki temu prowadzić rozmowy chat bezpośrednio z telefonu.Development Settings zawiera ustawienia pomagające dostosować system do pracy w trybie debugowania oraz możliwość włączenia dodatkowych informacji na ekranie o statusie systemu.Dostępne ustawienia:

  • Debug app – debugowana apliacja
  • Wait for debbuger
  • Show running processes – pokazuje w prawym górnym rogu ekranu listę działających procesów w systemie
  • Show screen updates – na fioletowo zaznacza zmiany w buforze ekranu, pomocne przy tworzeni aplikacji graficznych, animacji
  • App process limit (no limit, 1, 2) – pozwala ograniczyć maksymalną liczbę procesów, pomocne do testowania zachowania naszej aplikacji, gdy w systemie jest mało pamięci
  • Immidiately destroy activities
  • Show CPU usage – pokazuje zużycie procesora
  • Show background
  • Show sleep state on LED
  • Window animation scale (1,2,5,10,off) – poziom szczegółów animacji interfejsu, przenikające okna itd
  • Hinting (light, medium)
  • Show GTalk service connection status



ustawienia Androida

kwietnia112008

Google wyrzuca XMPP z Android SDK i zastępuje go GTalk’iem

Czym jest XMPP?

XMPP jest protokołem, który pozwala budować sieci komunikatorów internetowych. Szerszemu gronu użytkowników technologia ta znana jest jako jabber. Protokół pozwala przesyłać wiadomości, informacje o kontaktach i ich statusach, a nawet pliki i media (np. VoIP).

Jedną z największych zalet samego protkokołu XMPP jest możliwość “zaembedowania” go wewnątrz protokołu HTTP, dzięki czemu udaje się omijać firewalle, co daje mu przewagę nad innymi rozwiązaniami jak np GaduGadu czy ICQ. Użycie HTTP odbiega od standardowego modelu: zwykle klient HTTP wysyła żadanie do serwera, serwer je przetwarza i wysyła odpowiedź do klienta, po czym zamyka połączenie. Taki model nie nadaje się do implementacji usług typu chat, toteż zmodyfikowano go tak, że serwer po wysłaniu odpowiedzi nie zamyka połączenia. Na trwającym nadal połączeniu może dosyłać do klienta dochodzące wiadomości, zmieny statusów jego kontaktów itd. Gdyby nie to, klient musiałby co kilka sekund pytać się serwera o nowe wiadomości i update kontaktów.

Tę ciekawą funkcjonalność ostatnio wykorzystuje się do budowania usług webowych, wymagających ciągłego dostępu do informacji. Można np napisać aplikację webową wyświetlającą bieżące kursy akcji – wystarczy zrobić klienta XMPP, który otwiera połączenie do usługi, a serwer wysyła zmiany cen na bieżąco, dzięki czemu klient takiej usługi zawsze będzie poinformowany natychmiast. Podobny model oferuje technologia Comet.

XMPP jest przez wielu widziany jako “następca HTTP”, albo przynajmniej jego rozszerzenie i dlatego powołano XMPP Standards Foundation, organizację mającą na celu propagowanie, standaryzowanie i wynajdywanie nowych możliwych zastosowań tej technologii.

Google dodaje XMPP

Wielu developerów ucieszyło się, gdy w Android SDK znalazła się obsługa XMPP. Zaczęły powstawać aplikacje oparte na załączonych w SDK bibliotekach. Uznawano nawet pewną przewagę Androida nad innymi techonologiami właśnie ze względu na wbudowaną możliwość komunikacji poprzez XMPP.

Google wyrzuca XMPP i wstawia GTalkService

Ku zaskoczeniu (i głównie rozczarowaniu) entuzjastów Androida, Google zdecydował się w najnowszym SDK zamienić XMPP na GTalkService. Spowodowało to popsucie kodu istniejących już aplikacji. Ale co gorsza odebrano to jako sygnał, iż Google rezygnuje ze wspierania XMPP na Androdzie. Powodów może być kilka, mowi się np o tym, że Google woli GTalka domyślnie na telefonach wyposażonych w Androida, zamiast darmowego jabbera, inni wskauja na to, iż operatorzy GSM mogą być niezadowoleni, jesli ich użytkownicy zamiast wysyłać płatne SMSy zaczną przesyłać wiadomości jabberem.

Oczywiście, developerzy mogą używać istniejących już bibliotek takich jak Smack, ale to zwiększa rozmiar aplikacji, ponadto wielu programistów uważa, iż tak fundamentalna funkcjonalność powinna być częścią SDK, co ułątwiło by sam proces projektowania i implementacji aplikacji.

Ostatecznie okazało się, że głównym powodem, dla którego Google zrezygnował z XMPP jest ogromne zużycie baterii do jakiego dochodzi, gdy telefon jest cały czas połączony z serwerem. Telefon utrzymując otwarte połączenie zużywa sporo energii na obsługę komunikacji radiowej. Ponadto XMPP oparty jest o XML, przez co komunikaty są niepotrzebnie duże. Jest to problem samego XMPP, a jego rozwiązaniem może się okazać specjalna, być może binarna wersja protokołu XMPP zoptymalizowana na platformy mobile.

Tymczasem uczestnicy projektu OpenIntents podjęli już pierwsze działania mające na celu zreimplementowanie wyrzuconego fragmentu API.

kwietnia92008

Google Android, Samsung i nowe SDK

Ostatnio coraz więcej pojawia się w sieci informacji o komórkach Google’a i Open Handset Alliance. Google wypuścił nowe SDK (m5-rc15), wolne od błędów z obsługą plików *.bmp i z uaktualnioną dokumentacją. Ogłoszono także otwarcie projektu Apps for Android, o czym pewnie większość już wie. Ma on za zadanie zaprezentować bardziej rozbudowane programy, napisane zgodnie z zaleceniami i filozofią platformy, wykorzystując jak najlepiej jej architekturę i dostępne API.

Warto sięgnąć po najnowszy numer Software Developer`s Journal. W cyklu “Programowanie platform mobilnych” pojawił się artykuł Google Android. Można się zapoznać z celami i założeniami systemu, jak również uzyskać pomoc w tworzeniu pierwszych aplikacji.

google androidJeśli chodzi o urządzenia – pogłoski na temat przyszłych produktów zdementował Dell, ale Samsung nie ukrywa planów rozpoczęcia produkcji aż dwóch modeli z logo Google na obudowie, o czym pisaliśmy w poprzedniej notce – czyżby Gphone?. Pierwszy, lepiej wyposażony, miałby pojawić się we wrześniu, drugi, uboższy, w połowie grudnia.
Te urządzenia, w stosunku do produktu Alienware, z pewnością będą bardziej atrakcyjne, znając możliwości stylistów Samsunga. Na blogu technologicznym BBC przedstawiono telefon 3G z ekranem dotykowym oraz procesorem 300MHz, który posiadał oraz Androida na pokładzie. Można było na nim podziwiać usługę Google StreetView oraz wspomaganą biblioteką OpenGL ES grę Quake.

Źródło: http://www.pdaclub.pl/view.php?news_id=13763.