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

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

Dodanie nowej formy do projektu polega na:

Dynamiczne i wydajne tworzenie interfejsu. Piotr Michałkiewicz

Android poradnik programisty

Rysowanie. Rysowanie - podstawy

Podstawowe kontrolki i ich obsługa

Laboratorium programowania urządzeń mobilnych

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

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

Aplikacje WWW - laboratorium

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

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.

Kurs programowania 2 - listy

Sztuka Projektowania Aplikacji Mobilnych

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

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

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

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

Podstawowe elementy GUI cz. 2 i 3 - zadania

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

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

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

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

Fragmenty są wspierane od Androida 1.6

akademia androida Składowanie danych część VI

Visual Basic for Applications. Formatki tworzenie,

Instrukcja użytkowania

[Android] Podstawy programowania

Aplikacje w środowisku VBA. Visual Basic for Aplications

Lokalizacja Oprogramowania

Biblioteka Windows Forms

Android tworzenie aplikacji mobilnych

Wprowadzenie do programowania aplikacji mobilnych

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

Aplikacje WWW - laboratorium

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

Rys.2.1. Drzewo modelu DOM [1]

1 LINQ. Zaawansowane programowanie internetowe Instrukcja nr 1

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

Warszawa, Wytyczne dla projektu Biblioteka GUI

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

Aplikacje WWW. Laboratorium z przedmiotu Aplikacje WWW - zestaw 01

Podręcznik użytkownika programu. Ceremonia 3.1

Programowanie obiektowe

Laboratorium 1. Wzorce oprogramowania lab1, Zofia Kruczkiewicz

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

Programowanie dla Androida. Ubiquitous

Laboratorium 8 ( Android -pierwsza aplikacja)

Layouty. Kilka layoutów

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

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

5.4. Tworzymy formularze

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

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

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

Agenda. Activity cd Layouty Jednostki Dialogi LogCat Drugie Activity i Intents Serializacja Własne widoki Menu

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

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

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

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

Programowanie Multimediów. Programowanie Multimediów JAVA. wprowadzenie do programowania (3/3) [1]

Programowanie w środowisku graficznym GUI

Zasady programowania Dokumentacja

Programowanie dla iphone projektowanie interfejsu użytkownika

Przewodnik Szybki start

5.4. Efekty specjalne

Laboratorium Programowanie urządzeń mobilnych

Warsztaty v2 Layout y i widget y. Tomasz Wachowski Kamil Snopek Jan Romaniak

Zaawansowane aplikacje internetowe - laboratorium

Supermakler: Nowe funkcjonalności

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

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

Wykład 03 JavaScript. Michał Drabik

Programowanie komponentowe. Przykład 1 Bezpieczeństwo wg The Java EE 5 Tutorial Autor: Zofia Kruczkiewicz

Referat Pracy Dyplomowej

akademia androida Sensory część V Mobile Applications Developers

Dokumentacja panelu Klienta

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

Szczegółowy opis zamówienia:

Komputery I (2) Panel sterowania:

16) Wprowadzenie do raportowania Rave

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

Powiadomienia w systemie Android

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

Kleos Mobile Android

Prosta książka telefoniczna z wykorzystaniem zapisu do pliku

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

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

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

Pryncypia Material Design - PYTANIE Czym jest Material Design? Co wprowadza? 14

Rodzaje Layoutów 15

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 16

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 17

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 18

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 19

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 20

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 21

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); 22

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); 23

Rodzaje Layoutów - pytanie Jakie mamy rodzaje Layoutów w androidzie? 24

Input controls 25

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) 26

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 } }); 27

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) 28

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; } 29

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 } } }); 30

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) { } 31

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 32

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 33

Input controls - pytanie Jakimi dwoma metodami można przypisać akcję do kontrolki? 34

Animacje 35

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

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 37

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) 38

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 39

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! 40

Animacje - pytanie Jaki rodzaj animacji jest najmniej obciąża zasoby urządzenia? 41

Koniec! mgr inż. Anton Smoliński 42