Wczoraj zakończyła konferencja Google I/O 2010. Obok masy nowości związanych z produktami Google nie mogło zabraknąć informacji na temat Androida. Przede wszystkim, co było do przewidzenia ogłoszono wersję 2.2 (Froyo). Just-In-Time Compiler, Apps On SD Card czy nowy, zmieniony Market to jedne z ważniejszych zmian. Nie będę opisywał wszystkich nowości związanych z tą wersją systemu (polecam wpis na oficjalnym blogu: Android 2.2 and developers goodies) ale chciałbym się skupić na dwóch bardzo ciekawych zmianach: Cloud To Device Messaging API oraz udoskonaleniu przeglądarki.
Cloud To Device Messaging API
Jedna z nowych rzeczy, która zrobiła na mnie duże wrażenie. API daje możliwość wysyłania poprzez “chmurę” wiadomości do urządzenia. Nie przyglądałem się jeszcze dokumentacji ale w skrócie pozwala ono zdalnie wywołać Intentna urządzeniu (bardzo dobrze przedstawione jest to w keynocie, który znajduje się poniżej; za pomocą dodatku do przeglądarki Chrome wysłana zostaje na telefon pozycja z Google Maps). API znacznie ułatwi aktualizację danych w aplikacjach, w których istotne jest aby dane były jak najnowsze. Przykładem mogą być wszelkie aplikacje do twitter, blipa, komunikatory internetowe itd. Albo chociażby aplikacje pozwalające w łatwy sposób przesyłać dane z komputera na telefon. Przykład: słuchamy ciekawego radia na Last.fm na komputerze stacjonarnym, jednym kliknięciem możemy włączyć to samo radio na telefonie i wyjść z domu :)
Zmiany w aplikacji przeglądarki
Od dawna nie jest tajemnicą, że Google pracuje nad systemem operacyjnym, którym głównym elementem będzie Chrome jako środowisko do uruchamiania (web)aplikacji. Google bardzo mocno pracuje nad przyśpieszaniem JavaScriptu (bardzo dobry wpis na Coding Horror na temat JavaScript: JavaScript: The Lingua Franca of the Web) w oparciu którego, buduje swoje wszystkie aplikacje. Zdaje się, że rok temu też na Google I/O podczas prezentacji Google Wave padło pytanie czy powstanie natywna aplikacja na Androida. Odpowiedz była negatywna. Generalnie wszystko sprowadza się do tego, że aplikacje będą uruchamiane w ramach przeglądarki. Przeglądarka w wersji 2.2 systemu (ciekawe czy kiedyś zacznie się nazywać Chrome) staje się najszybszą mobilną przeglądarką jeżeli chodzi o obsługę JavaScriptu dzięki wprowadzeniu silnika renderującego V8 wykorzystywanego w Chrome. I co najciekawsze developerzy aplikacji webowych uruchamianych w przeglądarce dostają możliwość korzystania z urządzeń w telefonie, takich jak aparat czy akcelerometr!
Fragment Google I/O 2010 - Keynote Day 2 dotyczący Androida
PS Mam nadzieję, że aktualizacja bloga będzie się odbywała częściej :)
Blog został trochę zaniedbany ale niestety doba cały czas ma 24 godziny a roboty nie ubywa. Tym razem krótki wpis dotyczący błędu, który można napotkać podczas rozwijania aplikacji z geolokalizacją. Jeżeli korzystamy z metody requestLocationUpdates i nie udaje nam się wysłać pozycji geograficznej do emulatora przy pomocy DDMS a konkretnie zakładki Emulator Control
związane jest to z polskim formatem liczb w systemie. Istnieją dwa rozwiązania.
Rozwiązanie 1. Wysyłanie pozycji przez linię poleceń.
Jako, że telnet nie jest instalowany w systemie Vista domyślnie to należy go dodać.
Rozwiązanie 2. Zmiana formatu liczb w systemie na angielski.
Należy wybrać Panel Sterowania > Zegar, język i region, zakładka Formaty i wybrać Angielski. Oczywiście popsuje nam to wszystkie daty i liczby w systemie.
PS Prawdopodobnie problem występuje również w systemie Windows XP.
PS2 W bliżej nieokreślonym terminie powstanie tutorial w jaki sposób tworzyć aplikacje lokalizacyjne :)
Eclipse zawiera wiele fajnych funkcji ułatwiających pisanie kodu, które na pierwszy rzut oka nie są widoczne. Jedną z takich funkcji jest funkcji jest możliwość wygenerowania metod danej klasy, które można przeciążyć lub implementować. Aby się do niej dostać wystarczy wybrać z menu Source > Override/Implement Methods. Po zaznaczeniu interesujących nas metod klikamy OK a metody dodają sie do aktualnie edytowanego pliku źródłowego.
Po paru wpisach dotyczących zorganizowania samego środowiska dla rozwijania aplikacji na Androida warto byłoby przejść do konkretniejszych rzeczy.
Podstawą każdej aplikacji są aktywności (activities). Aktywność w odniesieniu do aplikacji z systemu Windows jest to jedno okno, na którym wyświetlają się kontroliki, z których korzysta użytkownik. Czyli kompleksowa aplikacja składa się ze zbioru aktywności, z którego każda aktywność ma swoją funkcję. Aktywność najcześciej obejmuje cały ekran. Od strony kodu wygląda to tak, że aktywnością jest klasa dziedzicząca po klasie Activity. W jednym z wczesniejszych postów stworzyliśmy pierwszą aplikację Hello World. Podczas tworzenia projektu w Eclipse automatycznie stworzyła sie pierwsza aktywność w katalogu src.
package androidblog.app;
import android.app.Activity;
import android.os.Bundle;
public class Aplikacja1 extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
Automatycznie również przeciążona jest metoda onCreate (linia 9), która jest wywołana po stworzeniu aktywności. Więcej »
Przed dwoma dniami Google udostępniło nową wersję SDK dla systemu w wersji 1.5. Nie jest to jeszcze finalne wersja ale zawiera większość funkcji, które będzie zawierało oficjalne wydanie, które ukaże się pod koniec miesiąca. Lista zmian jest bardzo długa, z ciekawszych rzeczy na pewno trzeba wymienić:
klawiaturę ekranową,
nagrywanie filmów oraz bezpośredni upload na YouTube,
upload zdjęć na Picasę,
widgety na domowym ekranie,
Live Folder,
oraz sporo nowych Intentów i masę poprawek dotyczących szybkości i poprawności działania aplikacji.
Firma Rhomobile ogłosiła konkurs, w którym główną nagrodą jest 10.000$. Chodzi o stworzenie aplikacji na urządzenia mobilne w opraciu o Rhodes framework. W skrócie jest to wieloplatformowy framework pozwalający tworzyć aplikacje m.in. dla iPhone’a, Symbiana, WM i oczywiście dla Androida. Aplikacja musi wykorzystywać jedną z funkcji telefonu, PIM, GPS lub wbudowaną kamerę. Aby wziąć udział w konkursie nalezy zarejestrować się do jutra (15.04.2009) na stronie http://rhohub.com/contest. Aplikację należy stworzyć do 24 maja br. Więcej informacji na stronie konkursu.
Android Market jest miejscem gdzie programiści mogą udostępniać za darmo lub sprzedawać swoje aplikacje. Użytkownicy mogą je pobierać, oceniać i komentować.
Na dzień dzisiejszy darmowe aplikacje mogą pobierać użytkownicy z następujących krajów: Australia, Austria, Czechy, Holandia, Niemcy, Polska, Singapur, USA, Wielka Brytania, Włochy.
Aktualnie aplikacje płatne dostępne są tylko dla użytkowników z Austrii, Niemiec, USA i Wielkiej Brytanii.
Sklep dostępny jest z poziomu urządzenia (nie jest dostępny z emulatora). Ale możliwy jest również dostęp przez przeglądarkę dzięki Cyrket Android Application Browser.
Aby móc dodać swoją aplikację do Marketu przede wszystkim należy się zarejestrować na stronie Developer Singup. Opłata rejestracyjna wynosi $25. Opłata wprowadzona w celu uniknięcia spamu, poza tym przy applestorowych $100 wygląda przystępnie :)
Cena aplikacji musi się zawierać w przedziale $0.99 - $200. Przy każdym zakupie twórca aplikacji dostaje 70% ceny. Wydaje się że ograniczenie powinno zniknąć. $200 za oprogramowanie to dość mało. Jeżeli na rynku pojawią się netbooki czy notebooki z Androidem wymagania developerów mogą stać się o wiele większe.
Aby stworzyć jakąkolwiek aplikację dla systemu Android najpierw trzeba zainstalować i skonfigurować środowisko programistyczne Eclipse, pobrać SDK oraz zainstalować plugin dla Eclipse’a. Poniższy opis dotyczy systemu Microsoft Vista 32bit ale raczej nie powinno być wielkich rozbieżności względem innych systemów z rodziny Windows.
Wymagane jest aby w systemie zainstalowano Java SE Development Kit (JDK) w wersji 5 lub 6. Do pobrania ze strony http://java.sun.com/javase/downloads.
Najpierw pobieramy wymagane paczki
Eclipse IDE. Na początek wystarczy wersja Eclipse IDE for Java Developers (wersja dla systemu Windows) - http://www.eclipse.org/downloads.
Warto na tym etapie dodać zmienną środowiskową w systemie. W tym celu klikamy prawym przyciskiem myszy na Mój komputer > Właściwości >Zaawansowane ustawienia systemu > Zmienne środowiskowe w sekcji Zmienne systemowe edytujemy zmienną Path i dodajemy na końcu adres do katalogu tools w katalogu SDK czyli np. c:\androidsdk\tools
Instalacja Eclipse IDE i Android Development Tools
ADT jest zestawem narzędzi znacznie ułatwiających rozwijanie aplikacji w Eclipse. Dodaje narzędzia do debugowania, tworzenia interfejsu itp.
Paczkę z Eclipse rozpakowujemy do katalogu np. c:\eclipse.
Po uruchomieniu wybieramy Help > Software Updates… następnie zakładkę Available Software. Klikamy Add site… i wpisujemy
http://dl-ssl.google.com/android/eclipse/
Po odświeżeniu repozytorium wybieramy Developer Tools i klikamy Install…
Po pobraniu ADT i restarcie Eclipse należy skonfigurować plugin. W tym celu wybieramy Window > Preferences. W sekcji Android wybieramy katalog, w którym znajduje się SDK czyli c:\androidsdk.
Tym sposobem zainstalowaliśmy i skonfigurowaliśmy środowisko do tworzenia aplikacji dla platformy Android.
Przed paroma tygodniami Era wprowadziła do sprzedaży pierwszy w Polsce telefon komórkowy z systemem Android, HTC Dream (zwany też Era G1). A już za kilka miesięcy w sieci Plus GSM będzie do kupienia HTC Magic. Na świecie pojawia się coraz więcej telefonów z tym systemem. LG, Motorola, Samsung już w tym roku planują wprowadzenie pierwszych modeli. Już pierwsze wyniki sprzedaży T-Mobile (Android phone takes 20% of T-Mobile contracts) wskazują, że Android będzie silnym graczem na rynku systemów operacyjnych dla urządzeń mobilnych.
Niniejszy blog poświęcony będzie aspektom tworzenia oprogramowania dla systemu Android. Od bardzo podstawowych spraw jak instalowanie IDE, do bardziej złozynych aby ostatecznie tworzyć aplikacje i zarabiać na nich w Android Market :)