"Programowanie Systemów Mobilnych"
  AREU609  LABORATORIUM    '2017
        

Termin: 09:15-11:00 Środa parzysta i nieparzysta
Miejsce:
Lab. 2.3 / C16
Prowadzący:  
dr Marek Piasecki
Konsultacje:
Pn. 09:15-11:00,  Czw. 09:15-11:00

Terminarz spotkań - oceny zadań:

Zadania laboratoryjne:



Laboratorium (A0)  -  Konfiguracja środowiska Android Studio
Zapoznanie się ze środowiskiem programistycznym:
  1. Pobierz materiały pomocnicze rozdziały 2-6 z darmowego podręcznika
    "Android Studio Development Essentials" z portalu Techotopia.
  2. Zapoznaj się z rozdziałem 2 a następnie użyj SDK Manager
    aby sprawdzić/zainstalować/odinstalować odpowiednie Android SDK
    ( tzn. oprogramowanie platformy, przykłady, narzędzia, dokumentację, itp.)
    dla wybranej wersji systemu Android (API level)
  3. Zapoznaj się z rozdziałem nr 5 i użyj Virtual Device Manager aby utworzyć nową instancję emulatoratora dla wersji API skonfigurowanej w zadaniu (b)
  4. Na podstawie instrukcji z rozdziału nr 3, przetestuj proces tworzenia / kompilacji / uruchamiania przykładowej aplikacji "Blank Activity".
    Do testów, wykorzystaj urządzenie wirtualne (emulator) utworzone w zadaniu (d).
  5. Użyj narzędzie Device Monitor (DDMS) oraz jego okna: Devices, FileExplorer, Emulator Control oraz LogCat, do obserwacji stanu emulatora (lub rzeczywistego urządzenia) oraz testowanej aplikacji.
  • Instalacja Android Studio dla systemów operacyjnych Windows, MacOSX i Linux


Archiwalne materiały dla środowiska Eclipse ADT (2014-07-02):

 
Laboratorium (A1)   -  Analiza cyklu życia Aktywności w aplikacji Android.
Pobierz z Internetu, rozpakuj, zaimportuj i przetestuj w środowisku Android Studio przykładową  aplikację 03-1-LifeCycleDemoarchiwum V. Matosa,
a następnie spróbuj wykonać własną wersję takiej aplikacji, która będzie sygnalizować zmiany wewnętrznego stanu Aktywności, poprzez wyświetlanie powiadomień za pomocą obiektów klasy Toast:.
      Toast.makeText(this, "onCreate", 1).show();
zaimplementuj w ten sposób działanie metod obsługujących wybrane podstawowe wydarzenia:  onCreate, onStart, onResume, onSaveInstanceState, onPause, onStop, onDestroy, onRestart.

Podpowiedź:
To zadanie będzie łatwiejsze gdy wykorzystasz opcję menu
    Code > Override Methods…      (skrót Ctrl+O)
dostępną w środowisku Android Studio.

Zaobserwuj i zanotuj sekwencje komunikatów Toast wyświetlanych po::
  1. Kliknięciu programowego przycisku FINISH
  2. Kliknięciu sprzętowego przycisku BACK
  3. Kliknięciu sprzętowego przycisku HOME
  4. Kliknięciu przycisku połączenia telefonicznego (CALL - zielona słuchawka)
  5. Przytrzymaniu przycisku odłożenia słuchawki (HANG-UP -  czerwona słuchawka)
  6. Otrzymaniu tekstowej wiadomości SMS (z innego emulatora lub telefonu)
  7. Po otrzymaniu połączenia głosowego (z innego emulatora lub telefonu).
Za każdym razem wróć do tego samego podtsawowego stanu "running",
poprzez otwarcie okna z listą zainstalowanych aplikacji (launch pad),
i przywrócenie/uruchomienie aplikacji, klikając na jej ikonie.

Zaobserwowane sekwencje komunikatów opisz i skomentuj, w formie sprawozdania, w pliku o nazwie:  Laboratorium_1.txt  lub  Laboratorium_1.pdf

Materiały/slajdy pomocnicze:
       - Android Application's Life Cycle
   
 
Laboratorium (A2)   -   Implementacja aplikacji wykonującej proste obliczenia
  1. Wzorując się na wskazówkach:
    - z zestawu slajdów Android Devlopment Introduction  (ze stron nr: 32-39)
    - lub przykładowego kalkulatora napiwku omówionego w podrozdziale nr 2.3.2
       z książki "Unlocking Android",
    napisz własny program "Kalkulatora/Przelicznika kursu walut". Jako punkt startowy można wykorzystać domyślny szablon  Empty Activity

  2. Wykorzystaj widok "Android Monitor" (Alt+6) lub narzędzie Android Device Monitor, oraz wydruki kontrolne wykonywane za pomocą  poleceń:
            Log.i( "TAG", "Tekst komunikatu");
    do śledzenia działania programu i sygnalizowania stanu programu lub błędów.

 
Laboratorium (A3)  -  ANDROID -  Ćwiczenia z projektowaniem UI
Oprogramuj jednoekranową aplikację (single Activity app) demonstrującą wykorzystanie komponentów dziedziczących po klasie View (Layouts, Widgets) do skonstruowania interfejsu użytkownika:
  1. Program demostrujący różne możliwości zmian koloru/rozmiaru/typu czcionki tekstów wyświetlanych w etykietach lub oknach edycyjnych, jako rezultat klikania na różnych przyciskach lub wyboru różnych opcji menu.

  2. Aplikacja standardowego kalkulatora arytmetycznego, z zestawem klawiszy numerycznych oraz klawiszy podstawowych operacji arytmentycznych (+,-,*,/).

 
Laboratorium (A4)  -  ANDROID -  aplikacje złożone z wielu okien/aktywności
Oprogramuj złożoną wielo-okienkową aplikację, demonstrującą wykorzystanie obiektów klasy Intent oraz metody startActivity(...) do uruchamiania własnych oraz wbudowanych aktywności systemu Android (takich jak: Contacts, PhoneDialer, WebBrowser, GoogleMap). Klikanie przycisków umieszczonych w głównym oknie/aktywności tego programu powinno powodować:   
  1. Wyświetlenie listy kontaktów zapisanych w telefonie (a w wersji zaawansowanej: wybór jednego z kontaktów).
  2. Napisanie wiadomości SMS, której treść oraz odbiorca (numer telefonu) będą wprowadzane za pomocą dwóch pól EditText.
  3. Wyświetlenie mapy (GoogleMap) dla miejsca, którego współrzędne geograficzne tzn. długość i szerokość geograficzna będą wprowadzane w polach EditText.
Przykładowe instrukcje takich wywołań można znależć w prezentacji Android Intents na stronach nr: 13-15, 18-20.
  1. Ostatni przycisk powinien uruchamiać nową dodatkową aktywność, w całości napisaną przez studenta, za pomocą metody startActivityForResult(...).
    Aktywność ta będzie otrzymywać parametry z okna głównego (a po zakończeniu działania zwracać wynik) w obiekcie klasy Bundle.
Wykorzystanie obiektów klasy Bundle do przekazywania argumentów jest omówione w wyżej wymienionej prezentacji na stronach nr 43-46, a przykładowa aplikacja realizująca funkcjonalność sumowania dwóch otrzymanych liczb, jest zaprezentowana na stronach nr 48-59.   




Android

Laboratorium (A_Projekt)  -   ANDROID -  wybrane rozszerzenie
  • Temat tego dodatkowego zadania projektowego jest proponowany przez studenta.

  • Każdy ze studentów wybiera jeden z poniżej wymienionych aspektów technologii mobilnych, który nie był ćwiczony w ramach laboratoriów A0 - A4:
    1. mobilna baza danych (SQLite)
    2. wbudowane sensory smartfonów: akcelerometr, żyroskop, magnetometr, gps
    3. grafika 3D lub generowanie animacji na smartfonach (np.OpenGL ES)
    4. komunikacja Bluetooth pomiędzy urządzeniami mobilnymi lub komputerem
  • Student wykorzystuje termin przeznaczony na  laboratorium oznaczone A_Projekt
    oraz okres 6 tygodni przeznaczonych na realizację lab. Projekt / iOS_1 / WP_1,
    na zbudowanie własnej/autorskiej aplikacji demonstrującej wybrany aspekt technologii.




iOS
Archiwalne materiały laboratorium '2015: "Programowanie  iOS 7 w języku Objective-C" ►

Aktualne laboratorium '2016: 
▼  "Programowanie aplikacji iOS 10 w języku Swift

Laboratorium ( iOS_1 )  -  Platforma Apple iOS + przykładowa aplikacja
Zapoznanie się z platformą Apple iOS 10 oraz środowiskiem programistycznym XCode8:
  1. Korzystając z instrukcji opisanych w rozdziale nr 16, e-podręcznika z Techotopii,
    Chapter 16. Creating an Interactive iOS 10 App
    zapoznaj się ze sposobem tworzenia projektów dla systemów iOS 10
    oraz zaimplementuj własną aplikację "Konwerter waluty".

    Jeżeli nie znasz środowiska XCode, to rozdział nr 4: A Guided Tour of Xcode 8
    zawiera krótkie wprowadzenie: jak stworzyć nowy projekt, graficznie projektować interfejs użytkownika oraz jak testować programy na emulatorze smartfonu iPhone.

  2. Wykorzystaj emilator iPhone oraz narzędzia XCode do przetestowania aplikacji.

  3. W ramach rozszerzenia - na wyższą ocenę - na podstawie doświadczeń z realizacji zadania (a) oprogramuj aplikację arytmetycznego kalkulatora
    (z operacjami: +,-,*,/,=) oraz interfejsem użytkownika i funkcjonalnościami podobnymi do kalkulatora z laboratorium A3.
Materiały pomocnicze:

Wybrane prezentacje przedmiotu/kursu "Developing iOS 10 Apps with Swift"
prowadzonego dla studentów na Uniwersytecie Stanford (CS193P)
   - Wykład 1 - Introduction to iOS 10, Xcode 8 and Swift 3  (video 1h 23min),
   - Wykład 2 - MVC, iOS, Xcode - demonstration (video 1h 25min),
      Te wykłady zawierają instrukcje krok-po-kroku jak wykonać aplikację kalkulatora.
 
  - Dokumentacja online języka Swift Swift 3.0.1 documentation
     oraz podręcznik w wersji PDF: "Swift 3.0 programming language".

  - Kurs iOS 10 App Development Essentials (w języku Swift) z portalu Techotopia,






Windows Phone7.x / 8.x
Windows 10 Mobile

Archiwalne materiały laboratorium '2015: "Programowanie Windows Phone 7.0 / 7.5 / 7.8" ►


Aktualne laboratorium '2017:
"Programowanie aplikacji dla Windows 10 Mobile

Laboratorium (WP_1)  -  Platforma Windows 10 Mobile + przykładowa aplikacja
Zapoznanie się z platformą Microsoft Windows 10 Mobile, koncepcją UWP (Universal Windows Platform), językami C#, XAML, oraz środowiskiem VisualStudio 2015 / 2017
  1. Przestudiuj wybrane prezentacje z portalu Get started with Windows apps:
      - instrukcję: Create a "Hello, world" app (XAML)  oraz krótkie video
      - 12-minutowy tutorial z witryny Channel 9:  UWP BMI  Calculator

  2. Bazując na wskazówkach z w/w prezentacji, zaimplementuj własną aplikację "Konwerter waluty", podobną jak dla systemów Android oraz iOS.

  3. W ramach rozszerzenia - na wyższą ocenę - rozbuduj program z zadania (b) do postaci kalkulatura arytmetycznego z podstawowymi operacjami (z operacjami: +,-,*,/,=) i funkcjonalnościami analogicznymi jak w zadaniach  z laboratoriów  A_3 lub  iOS_1.
Materiały pomocnicze:

Uwaga: do nauki programowania prostych aplikacji UWP można wykorzystać również niektóre kursy programowania aplikacji dla starszej wersji systemu Windows 8.1: