Programowanie aplikacji dla technologii mobilnych. mgr inż. Anton Smoliński

Podobne dokumenty
Programowanie aplikacji dla technologii mobilnych. mgr inż. Anton Smoliński

PYTANIA - Programowanie aplikacji dla technologii mobilnych

Zdarzenia Klasa Application Powiadomienia Toast AlertDialog

Programowanie aplikacji dla technologii mobilnych. mgr inż. Anton Smoliński

Dodanie nowej formy do projektu polega na:

Dynamiczne i wydajne tworzenie interfejsu. Piotr Michałkiewicz

protected void onsaveinstancestate(bundle outstate); protected void onrestoreinstancestate(bundle savedinstancestate);

Rysowanie. Rysowanie - podstawy

Android poradnik programisty

Laboratorium programowania urządzeń mobilnych

Podstawowe kontrolki i ich obsługa

Spis treści. S t r o n a 2

Politechnika Poznańska, Instytut Informatyki, TWO/GE. Programowanie dla ios

Laboratorium 9 (Więcej Aktywności, w Androidzie)

Agenda. Implicit intents Wyświetlanie obrazków Menu Ikona aplikacji Praca z kolekcjami i ListView Własny widok

Czym jest MIT App Inventor. App Inventor jest to zbiór bloków jako język programowania używany do tworzenia mobilnych aplikacji na androida.

Sztuka Projektowania Aplikacji Mobilnych

Aplikacje WWW - laboratorium

I. Spis treści I. Spis treści... 2 II. Kreator szablonów Tworzenie szablonu Menu... 4 a. Opis ikon Dodanie nowego elementu...

Systemy operacyjne na platformach mobilnych

Kurs programowania 2 - listy

Programowanie aplikacji mobilnych

GLKit. Wykład 10. Programowanie aplikacji mobilnych na urządzenia Apple (IOS i ObjectiveC) #import "Fraction.h" #import <stdio.h>

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych

Aktywności są związane z ekranem i definiują jego wygląd. Dzieje się to poprzez podpięcie do aktywności odpowiedniego widoku.

Utworzenie aplikacji mobilnej Po uruchomieniu Visual Studio pokazuje się ekran powitalny. Po lewej stronie odnośniki do otworzenia lub stworzenia

dr Artur Bartoszewski dr Artur Bartoszewski - Aplikacje mobilne - Wykład

Programowanie obiektowe

Informatyka I. Interfejs GUI wysokiego poziomu. Biblioteka Swing. Programowanie zdarzeniowe. Politechnika Warszawska Wydział Transportu 2018

ROZDZIAŁ 1. PRZEGLĄD BRAMOFONU SAFE...

- Narzędzie Windows Forms. - Przykładowe aplikacje. Wyższa Metody Szkoła programowania Techniczno Ekonomiczna 1 w Świdnicy

Visual Basic for Applications. Formatki tworzenie,

Rys. 3. Kod elementów na stronie po dodaniu kontrolek podstawowych.

Layouty. Kilka layoutów

uczyć się bez zagłębiania się w formalnym otoczeniu,

[Android] Podstawy programowania

Instrukcja użytkowania

Aplikacje w środowisku VBA. Visual Basic for Aplications

Aplikacje mobilne. Pliki zasobów, grafiki, menu, podpinanie zdarzeń. dr Tomasz Jach Instytut Informatyki, Uniwersytet Śląski

Lokalizacja Oprogramowania

Biblioteka Windows Forms

Android tworzenie aplikacji mobilnych

Wprowadzenie do programowania aplikacji mobilnych

Microsoft.NET: ASP.NET MVC + Entity Framework (Code First)

Podstawowe elementy GUI cz. 2 i 3 - zadania

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

Fragmenty są wspierane od Androida 1.6

Aplikacja (oprogramowanie) będzie umożliwiać przygotowanie, przeprowadzenie badania oraz analizę wyników według określonej metody.

Rys.2.1. Drzewo modelu DOM [1]

Warszawa, Wytyczne dla projektu Biblioteka GUI

akademia androida Składowanie danych część VI

Obrazek 1: Interfejs DT. DT Help File v1.3

Programowanie obiektowe

Laboratorium 8 ( Android -pierwsza aplikacja)

Minimalna wspierana wersja systemu Android to zalecana 4.0. Ta dokumentacja została wykonana na telefonie HUAWEI ASCEND P7 z Android 4.

Wybieramy File->New->Project Wybieramy aplikację MFC->MFC Application jak na rysunku poniżej:

Aplikacje WWW - laboratorium

5.4. Tworzymy formularze

Założenia projektu: Projekt ma zadanie pokazać praktyczne zastosowanie App Inventor 2, poprzez stworzenie prostej aplikacji do nauki słówek.

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1

Temat 3. Projektowanie interfejsu użytkonwnika Kalkulator pierwszy program dla IOS

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

Programowanie urządzeń mobilnych. dr inż. Juliusz Mikoda

Tworzenie nowego rysunku Bezpośrednio po uruchomieniu programu zostanie otwarte okno kreatora Nowego Rysunku.

Program szkoleniowy. 24 h dydaktycznych (18 h zegarowych) NAZWA SZCZEGÓŁY CZAS

Aplikacje WWW. Laboratorium z przedmiotu Aplikacje WWW - zestaw 01

Podręcznik użytkownika programu. Ceremonia 3.1

Zasady programowania Dokumentacja

5.4. Efekty specjalne

Laboratorium Programowanie urządzeń mobilnych

Supermakler: Nowe funkcjonalności

Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz

Expo Composer Garncarska Szczecin tel.: info@doittechnology.pl. Dokumentacja użytkownika

Wykład 03 JavaScript. Michał Drabik

Referat Pracy Dyplomowej

Roger Access Control System. Aplikacja RCP Point. Wersja oprogramowania : 1.0.x Wersja dokumentu: Rev. C

akademia androida Sensory część V Mobile Applications Developers

Programowanie dla Androida. Ubiquitous

Dokumentacja panelu Klienta

Komputery I (2) Panel sterowania:

2. Kliknij Insert->Userform. Jeżeli Toolbox nie pojawi się automatycznie, kliknij View -> Toolbox. Otrzymany widok powinien być jak poniżej.

Laboratorium - Funkcje urządzeń mobilnych - Android oraz ios

16) Wprowadzenie do raportowania Rave

Powiadomienia w systemie Android

Przewodnik Google Cloud Print

Prosta książka telefoniczna z wykorzystaniem zapisu do pliku

Kleos Mobile Android

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

Wstęp - Prosta aplikacja internetowa w technologii Java EE 5. Programowanie komponentowe 1

Grafika w aplikacjach lp. Jak zmienić kolor tła?

Visual Studio instalacja

przedmiot kilka razy, wystarczy kliknąć przycisk Wyczaruj ostatni,

Instrukcja użytkowania. Ładowanie urządzenia

Podstawy technologii cyfrowej i komputerów

Programowanie w środowisku graficznym GUI

Tworzenie prezentacji w MS PowerPoint

Adobe InDesign lab.1 Jacek Wiślicki, Paweł Kośla. Spis treści: 1 Podstawy pracy z aplikacją Układ strony... 2.

xmlns:prism= c. <ContentControl prism:regionmanager.regionname="mainregion" />

Programowanie dla iphone projektowanie interfejsu użytkownika

Transkrypt:

Programowanie aplikacji dla technologii mobilnych mgr inż. Anton Smoliński

Agenda Material Design Material Design dla Androida Pryncypia Material Design Rodzaje Layoutów Kontrolki interakcji Eventy Animacje 2

Material Design 3

Material Design dla Androida Od wersji 5.0 (API 21) Android wspiera Material Design jako główny temat systemu i aplikacji. Android dostarcza takie elementy jak: A new theme New widgets for complex views New APIs for custom shadows and animations Dodatkowo zawiera domyślne palety kolorów, animacje i przejścia między aktywnościami 4

Material Design dla Androida Wprowadzono oś Z przy definiowaniu elementów, dzięki czemu można: Ustawiać cienie (im większa wartość Z, tym większy będzie cień) Przykrywać jedne kontrolki innymi API umożliwiające tworzenie animacji dla: Reakcja na touch Event Pokazywanie i chowanie elementów Zmiana pomiędzy aktywnymi aktywnościami Bardziej naturalne animacje obrotu Animacja zmiany właściwości kontrolki Wykorzystywanie animacji jako elementu drawable 5

Pryncypia Material Design Pryncypia są stworzonymi przez specjalistów UX Google zasadami, leżącymi u podstaw projektowania aplikacji Na fundamencie pryncypiów powinno budować się bardziej specyficzne wytyczne dotyczące konkretnych aplikacji Są stworzone celem dbania o interesy użytkownika końcowego Enchant Me Oczaruj mnie Simplify My Life Uprość mi życie Make Me Amazing Zrób to niesamowicie 6

Pryncypia Material Design Enchant Me Oczaruj mnie Wywołaj u użytkownika zachwyt nietypowymi decyzjami Ładne ekrany, dopracowane animacje, odpowiednie dźwięki tworzą dobry humor. Rzeczywiste obiekty dają więcej satysfakcji, niż przyciski w menu. Pozwól użytkownikowi dotykać obiektów i nimi manipulować jest to bardziej intuicyjne oraz podwyższa emocjonalne spełnienie 7

Pryncypia Material Design Enchant Me Oczaruj mnie Pozwól użytkownikowi na personalizację Ludzie lubią dodawać do interfejsu coś od siebie by czuć się bardziej komfortowo i że wszystko jest pod kontrolą. Prócz zwykłych ustawień dodaj kilka opcji do zabawy. Wykorzystaj użytkownika Dostosowuj aplikację do potrzeb użytkownika zamiast kazać mu za każdym razem wykonywać to samo. Stwórz opcję ostatnio wybranych zachować czy ustawień 8

Pryncypia Material Design Simplify My Life Uprość mi życie Bądź lakoniczny Używaj krótkich, prostych komunikatów Obrazy są odbierane szybciej niż słowa Korzystaj z obrazów i ikon gdyż są efektywniejsze niż słowa Podejmuj decyzje za użytkownika, lecz daj mu ją zatwierdzić Uprość maksymalnie komunikację próbując przewidzieć co chce zrobić użytkownik, jednak ostateczną decyzję pozostaw jemu 9

Pryncypia Material Design Simplify My Life Uprość mi życie Pokazuj tylko to co jest najważniejsze Ludzie nie mogą przetworzyć od razu dużej ilości informacji, przeprowadź więc dekompozycję danych i schowaj te które w danym momencie nie są istotne Użytkownik powinien wiedzieć gdzie się znajduje Użytkownik nie może mieć wrażenia że się zgubił, ekrany powinny różnić się między sobą a animacje wskazywać związek pomiędzy nimi 10

Pryncypia Material Design Simplify My Life Uprość mi życie Nie wolno utracić danych użytkownika Zapisuj dane, na stworzenie których użytkownik poświęcił swój czas Podobne obiekty powinny zachowywać się tak samo Przyzwyczaj użytkownika że jeśli coś tak samo wygląda, działa tak samo Przerywaj użytkownikowi tylko w bardzo ważnych sytuacjach Ludzie nie lubią być odrywani od aktualnych czynności 11

Pryncypia Material Design Make Me Amazing Zrób to niesamowicie Korzystaj ze znanych schematów Ludzie nie czytają instrukcji, tylko próbują sami dojść jak coś działa, wykorzystuj to co już wiedzą Nic nie jest winą użytkownika Nie obwiniaj użytkownika za błędy, lecz pomóż usunąć trudną sytuację Pamiętaj o feedbacku Nawet dla najmniej istotnych elementów aplikacji 12

Pryncypia Material Design Make Me Amazing Zrób to niesamowicie Wykonaj za użytkownika brudną robotę Pozwól nawet amatorom poczuć się jak profesjonalista, w łatwy sposób udostępniaj elementy o których istnieniu użytkownik mógłby w ogóle nie wiedzieć Ważne akcje powinny wykonywać się szybko Nie wszystkie akcje są równie ważne te najważniejsze muszą móc szybko się znajdywać i wykonywać 13

Rodzaje Layoutów 14

Rodzaje Layoutów Layout określa wizualną strukturę interfejsu Są przechowywane w plikach XML w zasobach projektu (/res/layout) Parametry poszczególnych elementów są dziedziczone Są ładowane automatycznie Mogą zawierać obiekty, inne layouty lub odwołania 15

Rodzaje Layoutów Linear layout Makieta, gdzie kolejne elementy są ustawiane pod sobą, lub obok siebie. Jeżeli obiektów jest więcej niż dostępnej przestrzeni ekranu, ekran można scrollować Dwa obiekty nie mogą być obok siebie, niezależnie od tego jak szeroki jest wiersz 16

Rodzaje Layoutów Relative layout Poszczególne elementy są pozycjonowane na siebie nawzajem, lub elementu rodzicielskiego Jeden obiekt Relative Layout może zastąpić kilka obiektów Linear Layout 17

Rodzaje Layoutów Web-View Możliwość umieszczenia kodu HTML jako części layoutu Nie ma możliwości przeglądarki tylko wyświetla kod HTML Tylko dla aplikacji on-line Ładuje i wyświetla stronę www 18

Rodzaje Layoutów List View Dynamiczna makieta gdy nie znamy ilości elementów Wyświetla wszystkie elementy z tzw. Adaptera Elementy są w liście z możliwością ich przewijania 19

Rodzaje Layoutów Grid View Dynamiczna makieta gdy nie znamy ilości elementów Wyświetla wszystkie elementy z tzw. Adaptera Elementy są umieszczone w siatce, z możliwością jej przewijania 20

Rodzaje Layoutów Adapter może wyświetlać elementy macierzy, w tym celu należy wykorzystać klasę ArrayAdapter: ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.r.layout.simple_list_item_1, mystringarray); ListView listview = (ListView) findviewbyid(r.id.listview); listview.setadapter(adapter); 21

Rodzaje Layoutów Adapter może zawierać jakąś kolekcję danych (np. bazę danych), aby go wykorzystać należy wówczas użyć klasy SimpleCursorAdapter: String[] fromcolumns = {ContactsContract.Data.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER}; int[] toviews = {R.id.display_name, R.id.phone_number}; SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.person_name_and_number, cursor, fromcolumns, toviews, 0); ListView listview = getlistview(); listview.setadapter(adapter); 22

Input controls 23

Input controls Kontrolki umożliwiają interakcje pomiędzy użytkownikiem a aplikacją. Android posiada szereg różnych kontrolek, które twórca aplikacji może użyć do komunikacji z użytkownikiem końcowym Kontrolki posiadają swoje parametry Kontrolki reagują także na Eventy (a raczej Eventy na to, co dzieje się z kontrolkami) 24

Input controls Button Aby przycisk reagował na dotyk można: 1. Stworzyć metodę: public void sendmessage(view view) { } Oraz przypisać ją do parametru: android:onclick="sendmessage" 2. Stworzyć onclicklistner: Button button = (Button) findviewbyid(r.id.button_send); button.setonclicklistener(new View.OnClickListener() { public void onclick(view v) { // Do something in response to button click } }); 25

Input controls Text Field Umożliwia użytkownikowi wprowadzenie tekstu Można podłączyć autouzupełnienie (za pomocą adaptera) Można zmienić rodzaj wyświetlanej klawiatury (text, textemailadress, texturi, number, phone) Można ustalić zachowanie kontrolki (textcapsentences, textcapwords, textautocorrect, textpassword, textmultiline) 26

Input controls Checkbox public void oncheckboxclicked(view view) { boolean checked = ((CheckBox) view).ischecked(); switch(view.getid()) { case R.id.checkbox_meat: if (checked) // Put some meat on the sandwich else // Remove the meat break; case R.id.checkbox_cheese: if (checked) // Cheese me else // I'm lactose intolerant break; } 27

Input controls Toggle Button ToggleButton toggle = (ToggleButton) findviewbyid(r.id.togglebutton); toggle.setoncheckedchangelistener(new CompoundButton.OnCheckedChangeListener() { public void oncheckedchanged(compoundbutton buttonview, boolean ischecked) { if (ischecked) { // The toggle is enabled } else { // The toggle is disabled } } }); 28

Input controls Spinner Należy wykorzystać Adapter celem dodania elementów do listy (np. ArrayAdapter) Obsługa za pomocą Listnera OnItemSelectedListener public void onitemselected(adapterview<?> parent, View view, int pos, long id) { // An item was selected. You can retrieve the selected item using // parent.getitematposition(pos) } public void onnothingselected(adapterview<?> parent) { } 29

Input controls Pickers Łatwy sposób na wybranie daty/czasu Korzystają z okien dialogowych Aby zmienić należy utworzyć własny obiekt i go zmienić w metodzie oncreatedialog 30

Input controls Interakcje z obiektami wykonuje się za pomocą eventów: onclick() kliknięcie onlongclick() przytrzymanie onfocuschange() zmiana aktywnego elementy (przy poruszaniu się za pomocą przycisków) onkey() wciśnięcie przycisku ontouch() dotknięcie (lub puszczenie, lub gest) oncreatecontextmenu() podczas tworzenia menu kontekstowego zazwyczaj związane z LongClikc 31

Animacje 32

Animacje Api Androida umożliwia tworzenie animacji poprzez: Animacja właściwości Animacja widoku Animacja zasobów Drawable OpenGL ES 33

Animacje Animacja właściwości Działa poprzez zmianę właściwości obiektów Posiada tryb linear lub non-linear (jedna po drugiej, czy nachodzące na siebie) Nie ma ograniczeń odnośnie animowanego obiektu 34

Animacje Animacja widoku Możliwość animacji kontrolek View (i jej dzieci) Definiowanie animacji jako kodu XML Proste tworzenie i przypisywanie animacji do obiektu (poprzez zmianę parametrów obiektu) 35

Animacje Animacja drawable Wczytywanie zasobów drawable w odstępach pokladkowych Nakładanie na siebie elementów drawable jak rolka w filmie Animacja może być wyświetlana tylko w aktywnym oknie 36

Animacje OpenGL ES OpenGL ES 1.0 and 1.1 - This API specification is supported by Android 1.0 and higher. OpenGL ES 2.0 - This API specification is supported by Android 2.2 (API level 8) and higher. OpenGL ES 3.0 - This API specification is supported by Android 4.3 (API level 18) and higher. OpenGL ES 3.1 - This API specification is supported by Android 5.0 (API level 21) and higher. Zewnętrzna biblioteka! 37

Koniec! mgr inż. Anton Smoliński 38