piątek, 25 lutego 2011

Pierwsza mobilna aplikacja dla MeeGo

Witam. Podobnie jak w przypadku poprzednich dwóch postów, dzisiaj również ostrzegam :-), że nie będzie nic odkrywczego względem oficjalnego Wiki dla programistów MeeGo. Pomimo tego, że sporo korzystam z materiałów tam zawartych, to moje wpisy nie są ich tłumaczeniami, ale raczej opisem własnych doświadczeń z testowania dostępnych tam poradników.

Tym razem będzie o tym jak napisać, skompilować i uruchomić swoją pierwszą aplikacje mobilną dla MeeGo. Wpis ten jest mocno inspirowany następującą stroną na Wiki MeeGo:
http://wiki.meego.com/SDK/Docs/1.1/Creating_Hello_World.

Zakładam na początek, że mamy już zainstalowane środowisko wdrożeniowe i uruchomieniowe oraz, że została przeprowadzona wymagana konfiguracja Qt Creatora.

W pierwszym momencie - zapewne jak się nie trudno domyśleć, należy uruchomić Qt Creatora. W następnym kroku przystępujemy do stworzenia nowego projektu wybierając odpowiednio w menu PlikNowy plik lub projektMobilna aplikacja Qt. Potwierdzamy klikając Wybierz… .

Określamy następnie nazwę projektu i wybieramy jego docelową lokalizację.

W kolejnym kroku wybieramy jako wersję Qt tą dostępną po instalacji MeeGo SDK.

Możemy również zmienić domyślne nazwy plików, ale skoro ma to być tylko aplikacja testowa polecam pozostawienie tych zaproponowanych przez kreatora.

Ostatecznie dostajemy ogólne podsumowanie nowo utworzonego projektu:

Prawdopodobnie Qt Creator otworzy się w trybie projektowania interfejsu, dlatego przełączamy się do trybu Edycji kodu źródłowego. Posługując się nawigatorem projektu otwieramy plik main.cpp i zamieniamy jego zawartość na następującą:
#include <qapplication>
#include <qlabel>
#include <qsysteminfo>
using namespace QtMobility;

int main(int argc, char *argv[])
{
  QApplication app(argc, argv);
  QSystemInfo s;
  QLabel *label = new QLabel(QObject::tr("hello").
    append(s.currentCountryCode()));
  label->show();
  label->resize(100,30);
  return app.exec();
}

Teraz należy wyedytować plik z ustawieniami projektu *.pro dodając do niego następujące wpisy:
CONFIG += mobility
MOBILITY += systeminfo

Aby zapisać wszystkie wprowadzone zmiany najlepiej skorzystać z menu PlikZachowaj wszystko.

Przed uruchomieniem przygotowanej aplikacji należy najpierw przejść do zakładki Projekty i tam na zakładce Produkty docelowe wybrać MeeGo i Uruchom.

Tutaj należy określić jedynie Device configuration, gdzie powinniśmy wskazać na skonfigurowane wcześniej środowisko uruchomieniowe (jak to zrobić pisałem we wpisie "MeeGo SDK - Konfiguracja Qt Creator", w sekcji "Dostęp do środowiska uruchomieniowego MeeGo"). U mnie to jest akurat: MeeGo NetBook Emulator. Oczywiście należy pamiętać o tym, aby wystartować wybrane środowisko uruchomieniowe MeeGo. Możemy to zrobić wpisując w konsoli polecenie tego typu:
sudo mad remote -r meego-netbook-ia32-qemu-1.1.2-runtime poweron

Po tym wszystkim możemy uruchomić projekt klikając na zielony "trójkącik" symbolizujący start aplikacji. Prawdopodobnie w konsoli Qt Creatora zobaczymy komunikat podobny do tego:
Cleaning up remote leftovers first ...
Initial cleanup done.
Files to deploy: /home/rafal/qthello-build-meego/rrpmbuild/qthello-0.0.1-1.i586.rpm.
Deployment finished.
Starting remote application.
access control disabled, clients can connect from any host
Could not find Hal
Could not find Hal
Teoretycznie teraz powinniśmy zobaczyć w testowym środowisku MeeGo wystartowaną aplikację. Ja niestety na pierwszy rzut oka nie dostrzegłem żadnych zmian. Po kilku kliknięciach w interfejs zauważyłem, że aplikacja jest jednak uruchomiona, ale znajduje się "w tle". Aby zobaczyć ją na pełnym ekranie wystarczy kliknąć na pierwszą zakładkę - tą z domkiem, symbolizującą strefę MyZones (widać to na rysunku poniżej).

Teraz już powinniśmy zobaczyć naszą pierwszą mobilną aplikację dla MeeGo :-D :

Czy miałem podczas wykonywania tych kroków jakieś błędy? Tak, był jeden, ale był on związany z tym, że próbowałem uruchomić aplikację w Qt Creatorze nie mając wcześniej wystartowanego środowiska testowego. Dostałem wówczas taki komunikat:
Cleaning up remote leftovers first ...
Error running initial cleanup: Nie można połączyć się z hostem.
Jeśli będą pojawiać się inne komunikaty i inne błędy, polecam najpierw upewnić się, że Qt Creator poprawnie łączy się z środowiskiem uruchomieniowym MeeGo. Można to sprawdzić przechodząc odpowiednio do NarzędziaOpcjeProjektyMeeGo Device Configuration i tam wybierając z listy wcześniej przygotowaną konfigurację możemy skorzystać z opcji Test. Jeśli tutaj wszystko pójdzie OK, nie powinno być problemów z wystartowaniem aplikacji.

Mamy już pierwszą aplikację. Co dalej? Czekam na sugestie czytelników o czym chcieli by poczytać :-).

0 komentarze:

Prześlij komentarz