Programowanie dla ios



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

Rozpoznawanie dotyku

Programowanie dla ios

Programowanie dla ios

Programowanie dla ios. ISWD Semestr 2, 2015/ październik 2015

Programowanie dla ios

Programowanie dla ios

SpriteKit. Biblioteka do tworzenia gier wbudowana w SDK. Wspiera grafikę 2D w oparciu o sprite y

Temat 4. Storyboard i element interfejsu użytkownika Gra w kulki- część 1

Programowanie dla ios

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.)

OBC01/TOPMOB Projektowanie w języku Objective-C

Programowanie dla iphone projektowanie interfejsu użytkownika

Programowanie dla ios

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

Dzięki szkoleniu. Dni: 3. Opis: Adresaci szkolenia

Instrukcja obsługi funkcji specjalnych szablonu C01 v.1.0

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

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

MasterEdytor. Podprogram pomocniczy do programu mpfotoalbum 1.2 INSTRUKCJA

VectraPortal. VectraPortal. wersja Instrukcja użytkownika Podstawowa funkcjonalność serwisu. [czerwiec 2016]

Tworzenie prezentacji w MS PowerPoint

Programowanie na poziomie sprzętu. Programowanie w Windows API

BUDOWA APLIKACJI NA PLATFORMĘ IPHONE/IPAD. dr inż. Marcin Tomana

Programowanie dla iphone Storyboarding i własne elementy interfejsu użytkownika

JavaFX. Technologie Biznesu Elektronicznego. Wydział Informatyki i Zarządzania Politechnika Wrocławska

Praca z widokami i nawigacja w pokazie

Inkscape. Narzędzia informatyki

Android poradnik programisty

Konspekt pracy inżynierskiej

Wstęp 7 Rozdział 1. OpenOffice.ux.pl Writer środowisko pracy 9

Programowanie aplikacji dla Sklepu Windows w języku C#

Programowanie aplikacji na iphone. Wstęp do platformy ios. Łukasz Zieliński

Unity. Platforma do tworzenia gier dla różnych systemów docelowych, m.in.: Windows, macos, ios, Android, Powstała w 2005 r., obecnie wersja 5.3.

Spis treści. Lekcja 1: PowerPoint informacje podstawowe 1. Lekcja 2: Podstawy pracy z prezentacjami 36. Umiejętności do zdobycia w tej lekcji 36

Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.3

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

Programowanie obiektowe

Lista wprowadzonych zmian w systemie Vario v. 3.3 od wydania do wydania

WYMAGANIA EDUKACYJNE. Witryny i Aplikacje Internetowe klasa I

Praca w środowisku Visual Studio 2008, Visual C

Informatyka Edytor tekstów Word 2010 dla WINDOWS cz.3

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

Instrukcja użytkownika ARSoft-WZ3

konspekt pojedynczy slajd sortowanie slajdów strona notatek 1. Widok normalny/konspekt 2. Widok sortowania slajdów 3.

Projekt inżynierski uwagi

ROZDZIAŁ I. BUDOWA I FUNKCJONOWANIE KOMPUTERA PC

Pliki zorganizowano w strukturze drzewiastej odzwierciedlając strukturę logiczną aplikacji:

Ikona aplikacji. Ikona aplikacji to grafika wyświetlająca się na ekranie ipada. Służy do uruchomienia aplikacji Salesbook.

Pierwsze kroki z easy Soft CoDeSys Eaton Corporation. All rights reserved.

Projektowanie aplikacji internetowych Tworzenie własnego portalu Internetowego przy użyciu oprogramowania SharePoint Services

Programowanie urządzeń mobilnych. projekt 6 ( )

Część I Rozpoczęcie pracy z usługami Reporting Services

Specyfikacja implementacyjna aplikacji mobilnej

Zacznij Tu! Poznaj Microsoft Visual Basic. Michael Halvorson. Przekład: Joanna Zatorska

Edycja strony: W edycję danej strony wchodzimy poprzez naciśnięcie opcji

Instrukcja obsługi programu Do-Exp

Podręcznik użytkownika programu. Ceremonia 3.1

Ulotka. Zmiany w wersji Comarch ERP e-pracownik 1 Zmiany w wersji

Platformy Programowania

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Sterbox e-pilot Dla iphone/ipad/ ANDROID

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

WASM AppInventor Lab 3. Rysowanie i animacja po kanwie PODSTAWY PRACY Z KANWAMI

Tomasz Greszata - Koszalin

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

Dokumentacja systemu NTP rekrut. Autor: Sławomir Miller

Specyfikacja funkcjonalna

INSTRUKCJA PODŁĄCZENIA KAMERY IP SERII LV VSS

ECDL/ICDL Zaawansowana grafika menedżerska i prezentacyjna Sylabus, wersja 2.0

MonoGame. Wieloplatformowe gry w C# Mateusz Cicheński

Rozdział 1. Przegląd bramofonu SAFE

Analiza i przetwarzanie obrazo w

Efektywne tworzenie aplikacji webowych z wykorzystaniem AngularJS, HTML5 i JavaScript

Microsoft PowerPoint 2003 efektywne tworzenie i prezentacji multimedialnych

Projektowanie Skinów w programie Taboret2

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

Komputery I (2) Panel sterowania:

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Podstawy technologii cyfrowej i komputerów

Aplikacja Dodatkowe zakładki Shoper Appstore REALIZACJA

Wymagania systemowe dla Qlik Sense. Qlik Sense June 2018 Copyright QlikTech International AB. Wszelkie prawa zastrzeżone.

Dźwięk w IOS. Wykład 8. Programowanie aplikacji mobilnych na urządzenia Apple (IOS i ObjectiveC) #import "Fraction.h" #import <stdio.

etrader Pekao Podręcznik użytkownika Strumieniowanie Excel

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

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1

Informatyka Arkusz kalkulacyjny Excel 2010 dla WINDOWS cz. 1

Instrukcja użytkownika programu QImport (wydanie I r.)

1. Dockbar, CMS + wyszukiwarka aplikacji Dodawanie portletów Widok zawartości stron... 3

Plan. Raport. Tworzenie raportu z kreatora (1/3)

Pytania do programu Power Point

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

Tworzenie bazy danych na przykładzie Access

Wizualne systemy programowania. Wykład 11 Grafika. dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD

Dodatek. Instrukcja instalacji i konfiguracji. dla Subiekt nexo. Wersja:

Oprogramowanie. DMS Lite. Podstawowa instrukcja obsługi

Szczegółowy opis zamówienia:

Budowa aplikacji z graficznym interfejsem użytkownika - GUI (Graphic User Interface)

Transkrypt:

ISWD, Instytut Informatyki Politechnika Poznańska Programowanie dla ios Technologie Programistyczne 23.10.2013

Urządzenia ios Urządzenie Data prezentacji iphone 9.01.2007/06.2007 ipod touch 5.09.2007 iphone 3G 9.06.2008 ipod touch 2 gen 9.09.2008 iphone 3GS 8.06.2009 ipod touch 3 gen 9.09.2009 ipad 27.01.2010/04.2010 iphone 4 4.06.2010 ipod touch 4 gen 1.09.2010 ipad 2 2.03.2011 iphone 4S 4.10.2011

Urządzenia ios Urządzenie Data prezentacji new ipad 7.03.2012 iphone 5, ipod touch 5 gen 11.09.2012 ipad mini, ipad 4 23.10.2012 iphone 5S, 5C 10.09.2013 ipad Air, ipad mini retina 22.10.2013

Dane techniczne

Dane techniczne System operacyjny: okrojona wersja Mac OS X Mobilna wersja przeglądarki Safari Początkowe wspierane tylko aplikacje webowe Od czerwca 2008 dostępne SDK Dystrybucja aplikacji poprzez AppStore

SDK wymagany Mac z procesorem Intela SDK jest darmowe Do dystrybucji aplikacji należy wykupić subskrypcję Developer Program ($100 rocznie) Duże ograniczenia SDK

Architektura systemu Cocoa Touch Media Core Services Core OS

Architektura systemu Core OS, Core Services - podstawowe interfejsy: typy danych dostęp do plików dostęp do sieci wątki...

Architektura systemu Media: grafika 2D i 3D OpenGL ES, Quartz obsługa audio i wideo Core Audio Core Animation

Cocoa Touch UIKit interfejs użytkownika runtime obsługa zdarzeń API sprzętowe Foundation klasy podstawowe kolekcje wrapery dla usług systemowych podzbiór Cocoa Foundation

Na co uważać Różne wersje aplikacji dla iphone/ipod i ipad - wersje uniwersalne Różne rozdzielczości ekranu Ograniczenia wersji systemu, np. brak ios 4 dla pierwszego iphone i ipod

Narzędzia programistyczne Xcode język - ObjectiveC

Emulator

Model aplikacji Generalnie aplikacje powinny być typu Model-View-Controler obsługa zdarzeń aplikacja powinna: zainicjalizować swoje zmienne w zdarzeniu applicationdidfinishlaunching obsłużyć błąd braku pamięci applicationdidreceivememorywarning posprzątać po sobie - applicationwillterminate

Typy aplikacji Window-Based application View-Based application Tab Bar application Navigation-Based application Utility application OpenGL ES application

Okno i widok Aplikacja jest tworzona za pomocą delegacji Każda aplikacja ma tylko jedno okno (Window) Elementy na ekranie umieszczone są w widokach (View), może ich być wiele Niektóre widoki mogą się obracać

Hello World Tworzymy nowy projekt w XCode Window-Based Application

Kod aplikacji

Deklaracja Kod delegacji

Implementacja Kod delegacji

Efekt

Kontrolki Dostępny jest standardowy zestaw kontrolek

Kontrolery Dostępne kontrolery

i widoki Widoki danych

Pozostałe elementy UI

TeachTool obliczanie punktacji w skali 6-stopniowej obliczanie wyniku egzaminu dyplomowego dwa widoki wybierane przez TabBar

TeachTool tworzymy nowy projekt Window-based Application

dodajemy klasę kontrolera

tworzymy klasę PunktacjaViewController

podobnie dodajemy klasę EgzaminViewController

w delegacie aplikacji dodajemy outlet do kontrolera zakładek

otwieramy MainWindow.xib w Interface builderze dodajemy do okna TabBar Controller

wybieramy pierwszą zakładkę ustawiamy jej plik zasobów w inspektorze

ustawiamy własności zakładki

wiążemy outlet z delegacji z kontrolerem zakładek

edytujemy PunktacjaViewController

edytujemy PunktacjaViewController

projektujemy widok dodajemy powiązania

edytujemy EgzaminViewController

Działająca aplikacja

SatFinder

Aplikacja SatFinder Jak ustawić antenę satelitarną? Wyliczenie na podstawie długości i szerokości geograficznej oraz pozycji satelity Korzysta z GPS

SatFinder

Obsługa GPS

Nowy Teach Tool ios7, Xcode 5

TeachTool 2 Tylko obliczanie skali ocen Możliwość zdefiniowania progów Progi zapamiętywane w pliku Szablon aplikacji typu Utility

Nowy projekt

Nowy projekt

Ustawienia projektu

Aplikacja Utility

Projektujemy widok główny

Tworzymy outlety Włączamy Assistant Editor Przeciągamy z Ctrl na plik nagłówkowy

Outlety i akcje

Kod implementacyjny

Kod implementacyjny

Widok ustawień osadzamy TableView zmieniamy na statyczny

Po edycji ustawiamy 6 wierszy dodajemy kontrolki: UIText UILabel UIButton UIBarButton

Dodajemy gniazdka Aby obsłużyć tabelkę klasa musi obsługiwać protokół UITableViewDataSource i delegację UITableViewDelegate

Kod implementacyjny

Katalog Lego

Gdzie kupić klocki 1?

Gdzie kupić klocki 2?

Gdzie kupić klocki 3?

Gdzie kupić klocki 4?

Katalog Lego Informacje o zestawach przechowywane lokalnie w bazie danych Parser strony shop.lego.com pod Windows Dane eksportowane do bazy sqlite Ceny ze sklepu Lego i Allegro

Strona Lego

Parser Parsujemy zestawy wg kategorii Jeżelli zestaw jest w kilku kategoriach zapamiętujemy to Opis zestawu jest pamiętany jako HTML Dodatkowo parsujemy polski sklep internetowy

SQLite Kompaktowa baza danych napisana w C Public Domain implementuje większość funkcji z SQL-92 wykorzystywany w wielu systemach i aplikacjach

Schemat bazy danych

Nowy projekt projekt w Xcode 4 aplikacja typu nawigacyjnego

Nowy projekt

Nowy projekt

Ustawienia projektu Nazwa Docelowa platforma Ikony: zwykła 57x57 px retina 114x114 px ekran startowy

Biblioteka SQLite w zakładce Build Phases dodajemy bibliotekę libsqlite3.dylib tworzymy bazę (np. wtyczka do FireFox) do projektu dodajemy plik z bazą

Kontroler głównego widoku

Kontroler głównego widoku Przy pierwszym uruchomieniu bazę danych należy skopiować do katalogu roboczego W przyszłości aktualizacja bazy danych

Kontroler głównego widoku

Kontroler głównego widoku

Kontroler głównego widoku

Kontroler głównego widoku

Kontroler widoku kategorii

Kontroler widoku kategorii

Kontroler widoku kategorii

Kontroler widoku kategorii

Kontroler widoku kategorii

Klasa zestawu

Klasa zestawu

Klasa zestawu

Kontroler widoku zestawu

Kontroler widoku zestawu

Widok zestawu

Efekt

Rozpoznawanie dotyku

Wielodotyk Ekran urządzenia ios jest w stanie rozpoznać do 5 punktów dotyku Zdarzenia są obsługiwane w kolejce Przekazywanie zdarzeń nie jest automatyczne

Metody obsługujące touchesbegan gdy palec dotknie ekranu przekazuje informacje o każdym punkcie dotyku touchesmoved gdy palec przesuwa się po ekranie touchesended gdy palec się podniesie touchescancelled gdy nastąpi przerwanie, np. telefon

Przykład

Przykład Domyślnie widoki nie reagują na wielodotyk Zmieniamy opcję widoku

Metoda touchesbegan

touchesmoved

touchesended

Rozpoznawanie pozycji

Gesty Od ios 4 specjalna klasa do rozpoznawania gestów UIGestureRecognizer i jej specjalizacje UITapGestureRecognizer UIPinchGestureRecognizer UIPanGestureRecognizer UISwipeGestureRecognizer UIRotationGestureRecognizer UILongPressGestureRecognizer

Obsługa gestu Definiujemy klasę do obsługi Przekazujemy jej referencję do metody, która ma być wywołana po wykryciu gestu Niektóre gesty są pojedyncze (tap) inne ciągłe (swipe, pan)

Przykład

Przykład

Pickery

Pickery Odpowiedniki ComboBox ów Specjalizowany DatePicker Ogólny UIPickerView

Przykład Definiujemy gniazdka i wtyczki Projektujemy widok

Efekt

UIPickerView Uniwersalny picker Wymaga podania klasy stanowiącej źródło danych Klasa musi realizować protokół UIPickerViewDataSource Najlepiej gry realizuje go kontroler widoku

UIPickerViewDataSource Musi posiadać metody: numberofcomponentsinpickerview numberofrowsincomponent titleforrow

Przykład

Klasa kontrolera

Klasa kontrolera

Klasa kontrolera

Multitasking

Multitasking Do wersji ios 4 był ograniczony do aplikacji systemowych Aplikacja może znajdować się w jednym ze stanów: Na wierzchu - aktualnie wyświetlana aktywna nieaktywna W tle Zawieszona

Czas życia aplikacji Uruchomienie - wywoływana jest metoda didfinishlaunchingwithoptions W momencie uzyskania ekranu wywoływana jest metoda applicationdidbecomeactive Jeżeli aplikacja od razu trafia do tła wywoływana jest metoda applicationdidenterbackground

Czas życia aplikacji Aplikacja ma 5 sekund na zakończenie metody Może zyskać więcej czasu wywołując metodę beginbackgroundtaskwithexpiration i endbackgroundtask

Czas życia aplikacji Gdy aplikacja ma wyjść z tła wywoływana jest metoda applicationwillenterforeground a potem applicationdidbecomeactive Gdy aplikacja ma być zakończona wywoływana jest metoda applicationwillterminate

Czas życia aplikacji Wszystkie aplikacje tworzone w Xcode 4 są domyślnie aplikacjami działającymi w tle Można to zmienić poprzez ustawienia aplikacji poprzez edycję pliku Info.plist

Multitasking Jest dostępny od iphone a 3GS i ios 4. W innym wypadku aplikacje kończą działanie Można sprawdzić w kodzie, czy multitasking jest dostępny

Powiadomienia Aplikacja w tle nie ma dostępu do ekranu Jedyny mechanizm to lokalne powiadomienia Lokalne w przeciwieństwie do zdalnych - serwerowych

Przykład Nowy projekt typu SingleView Powiadomienie ma być wyświetlone 10 s po przejściu w tło Dodajemy plik dźwiękowy Modyfikujemy metodę applicationdidenterbackground

Storyboarding

Storyboarding Scenorys Nowe podejście do projektowania widoków w Xcode 4.2

Projekt Tworzymy nowy projekt typu Single View Application

Opcje projektu

Widok projektu

Edytor

Projekt startowego widoku

Dodajemy nowy ViewController

Dwa widoki

Projekt widoków

Edycja przejścia (segue) Przeciągamy z Ctrl na kolejny widok

Zdefiniowane przejście

Dwa przejścia

Opcje przejścia Style przejścia: Push Modal Custom Animacja przejścia: Default Cover vertical Flip horizontal Cross Dissolve Partial curl

Klasa kontrolera Dodajemy klasę kontrolera dla drugiego widoku

Klasa kontrolera

Klasa kontrolera

Storyboarding Można pisać własne klasy kontrolujące przejścia Za przejścia mogą być odpowiedzialne różne kontrolery widoku Są zdarzenia związane z przejściami Przejścia można wywoływać programowo

Grafika 2D

Grafika 2D Biblioteka odpowiedzialna - Quartz Napisana w C Typowo rysujemy na obiekcie klasy UIView Operujemy na punktach klasy CGPoint - lewy-górny narożnik ma współrzędne (0,0) typ CGFloat Klasy CGRect i CGSize

Kontekst graficzny Konieczny do rysowania Uzyskujemy wywołując metodę UIGraphicsGetCurrentContext Otrzymujemy obiekt typu CGContextRef

Kolory Klasa CGColorRef Przechowuje kolor i informacje o przestrzeni kolorów Do wyboru RGBA, CMYK lub odcienie szarości Można tworzyć kolory z klasy UIColor, ale nie można korzystać z nich bezpośrednio

Przykład Nowy projekt typu SingleView Dodajemy klasę dziedziczącą po UIView Jako klasę implementującą widok w pliku XIB wybieramy naszą klasę Odkomentowujemy metodę drawrect

Edytujemy metodę drawrect

Wykorzystanie klasy UIColor

Rysowanie ścieżki

Rysowanie prostokąta

Rysowanie elipsy

Wypełnienie kolorem

Rysowanie łuku

Rysowanie krzywej Bezier

Waluty

Waluty Program wyświetlający aktualne kursy podstawowych walut (predefiniowane EUR, USD, GBP, CHF) kursy FOREX kursy w kantorze internetowym kursy w banku Interesują nas kursy sprzedaży

Waluty Dane wyświetlane w formie tabelarycznej z podziałem na sekcje Odświeżane po wyświetleniu aplikacji lub na żądanie

Źródło danych Serwis systemowy napisany w C# uruchomiony na serwerze Windows 2003 Server Parsuje strony kantorów internetowych i banku co 2 minuty Zapisuje i udostepnia plik RSS z kursami

Źródło danych

RSS Rich Site Summary Really Simple Syndication Format plików XML do publikowania treście w Internecie Wspierany przez.net

RSS

Aplikacja ios Widok tabelaryczny Oparta na scenorysie (w przyszłości wyświetlanie szczegółów walut) Na razie tylko wersja iphone

Tworzymy projekt

Tworzymy projekt

Ikona i startup

Edytujemy scenorys usuwamy widok (View) z szablonu wstawiamy widok tabelaryczny (Table View) wstawiamy prototyp komórki (Table View Cell)

Edytujemy scenorys Edytujemy zawartość prototypu komórki 3 etykietki UILabel obrazek UIImage niewidzialny przycisk nad ostatnią etykietą

Dodajemy klasę Klasa dziedziczy po UITableViewCell Będzie obsługiwała pojedynczą komórkę tabeli

Dodajemy klasę

Dodajemy klasę

Tworzymy powiązania wracamy do scenorysu we własnościach komórki zaznaczamy klasę, która ją obsługuje otwieramy edytor pomocniczy (Assistant Editor) przeciągamy z Ctrl z elementów interfejsu na nagłówek klasy

Tworzymy powiązania

Tworzymy powiązania Dodajemy jeszcze dwie metody obsługujące formatowanie

Implementujemy klasę

Implementujemy klasę

Dodajemy klasę Klasa Currency do obsługi pojedynczego kursu waluty

Dodajemy klasę

Implementujemy kontroler

Implementujemy kontroler

Implementujemy kontroler

Obsługa odświeżania

Parsowanie RSS

Parsowanie RSS

Parsowanie RSS

Obsługa tabeli

Obsługa tabeli

Obsługa tabeli

Developer Portal

ios Developer Portal

ios Developer Portal Certyfikat główny Numer UDID urządzenia Identyfikatory aplikacji Provisioning profile

Certyfikat główny

Numery UDID

Identyfikatory aplikacji

Profile

Dostępne API akcelerometry pozycjonowanie (GPS, triangulacja) Google Maps OpenGL XML przeglądarka webowa SQLLite aparat

Obracane widoki

Obracane widoki UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeRight UIInterfaceOrientationLandscapeLeft

Obracany widok Bez dodatkowych zmian nie bardzo działa

Size inspector Umożliwia ustawienie automatycznego wyrównywania Obroty można obsługiwać programowo

Obsługa obrotu Przeciążamy metodę willanimaterotationtointerfaceorientation

Program MFI Made For i(phone, Pod, Pad) Możliwość projektowania akcesoriów podłączanych bezpośrednio do urządzeń

AppStore

Do zobaczenia