WPAM. W4 Apple iphone OS. Piotr Gawrysiak. -BY-SA Piotr Gawrysiak. Politechnika Warszawska Instytut Informatyki Zakład Systemów Informacyjnych

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

Programowanie dla ios

Programowanie dla ios

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

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

Programowanie dla iphone projektowanie interfejsu użytkownika

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

OBC01/TOPMOB Projektowanie w języku Objective-C

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

Programowanie dla ios

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Systemy operacyjne na platformach mobilnych 3 Wstęp do systemu Android

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

Projekt inżynierski uwagi

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

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

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

tel. (+48 81) /22 fax (+48 81) Cel przedmiotu

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Tworzenie natywnych aplikacji na urządzenia mobilne - PhoneGap Tomasz Margalski

Navroad XARO + mapa SYGIC Europa

Spis treści. Od autorów / 9

Wstęp do Informatyki. Klasyfikacja oprogramowania

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

INŻYNIERIA OPROGRAMOWANIA

WPAM. Wstęp do programowania aplikacji mobilnych. Piotr Gawrysiak.

Tomasz Grześ. Systemy zarządzania treścią

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

MonoGame. Wieloplatformowe gry w C# Mateusz Cicheński

INŻYNIERIA OPROGRAMOWANIA

CMS, CRM, sklepy internetowe, aplikacje Web

System komputerowy. Sprzęt. System komputerowy. Oprogramowanie

Android - wprowadzenie. Łukasz Przywarty

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

Bose SoundTouch 10 Czarny Ultimate Audio Konin kategoria: TOP > Bose > Głośniki > Bezprzewodowe

watermark TABLET LARK FreeMe GPS

Formaty plików. graficznych, dźwiękowych, wideo

Temat 1. Podstawy Środowiska Xcode i wprowadzenie do języka Objective-C

SIECI KOMPUTEROWE I TECHNOLOGIE INTERNETOWE

Konspekt pracy inżynierskiej

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

ROZDZIAŁ I. BUDOWA I FUNKCJONOWANIE KOMPUTERA PC

Programowanie Urządzeń Mobilnych. Część II: Android. Wykład 2

Program jest ciągle uaktualniany tak, aby zawsze uwzględnić najnowszą wersję ios SDK.

Xylect. Xylect. Program doboru produktów Xylem

Szczegółowy Opis Przedmiotu Zamówienia

Instrukcja instalacji oprogramowania dla środowiska Windows

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Android tworzenie aplikacji mobilnych

Specyfikacja dla Zadania 1: Kurs programowania sterowników PLC dla uczniów grupy I w ZSP nr 2 w Brzesku.

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

System do komunikacji on-line

Systemy operacyjne dla telefonów komórkowych i urządzeń typu smartphone

INSTRUKCJA UŻYTKOWNIKA

Programowanie dla ios

Systemy baz danych w zarządzaniu przedsiębiorstwem. W poszukiwaniu rozwiązania problemu, najbardziej pomocna jest znajomość odpowiedzi

Tworzenie aplikacji na platformie Android

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

Szczegółowy opis zamówienia:

Navroad YANOSIK DVR. Opis produktu. Link do produktu:

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

Języki i paradygmaty programowania doc. dr inż. Tadeusz Jeleniewski

PROJEKT WSPÓŁFINANSOWANY ZE ŚRODKÓW UNII EUROPEJSKIEJ W RAMACH EUROPEJSKIEGO FUNDUSZU SPOŁECZNEGO OPIS PRZEDMIOTU. studia pierwszego stopnia

SYSTEM OPERACYJNY. Monika Słomian

Windows Mobile. Andy Wigley, Daniel Moth, Peter Foot, Microsoft Mobile Development Handbook, Microsoft Press 2007

OpenLaszlo. OpenLaszlo

edycja 1 opracowany zgodnie z Zarządzeniami Wewnętrznymi PWr. nr 14/2012 i 15/2012 i 34/2012

Marlena Plebańska. Nowoczesny e-podręcznik

Systemy Geoinformatyczne

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

Generated by Foxit PDF Creator Foxit Software For evaluation only. System Szablonów

Prezentacja specjalności studiów II stopnia. Inteligentne Technologie Internetowe

Materiał dystrybuowany na licencji CC-BY-SA

czas trwania (ilość semestrów/ dni oraz godzin) cena szkolenia/ os. lub grupę 2 semestry/ ok. 28 dni / razem 196 godzin 7000 PLN za osobę

Język JAVA podstawy. wykład 1, część 2. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

PRZEWODNIK PO PRZEDMIOCIE

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński

Wstp do programowania BlackBerry w jzyku C++ na platformie Mac OS

Wykład Ćwiczenia Laboratorium Projekt Seminarium

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Platforma wymiany informacji e- science.pl, jako skuteczne narzędzie współpracy. Mateusz Tykierko

GSMONLINE.PL. Nokia Lumia pierwszy tablet Nokii Nokia zaprezentowała dziś pierwszy tablet - Nokia Lumia 2520.

Wspomaganie pracy w terenie za pomocą technologii BlackBerry MDS. (c) 2008 Grupa SPOT SJ

Warsztaty szkoleniowe. Technologia SafetyLon w systemach związanych z bezpieczeństwem funkcjonalnym Narzędzia SafetyLon Moduł 4.5.

PRZYJĘTE ZASADY GRY...3 ZAŁOŻENIA PROJEKTU...4 CZYM JEST I DLACZEGO QT?...5 DIAGRAM KLAS...7 DIAGRAM GRY SINGLE PLAYER...8 DIAGRAM MULTIPLAYERA...

Biorąc udział w projekcie, możesz wybrać jedną z 8 bezpłatnych ścieżek egzaminacyjnych:

prosty, kompletny system zarządzania Twoimi wydarzeniami

Dokumentacja projektu QUAIKE Architektura oprogramowania

Programowanie obiektowe zastosowanie języka Java SE

Przechwytywanie obrazu przy wykorzystaniu funkcji systemu Windows 10.

Programowanie w C. dr inż. Stanisław Wszelak

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA

Architektura systemu e-schola

SMART Notebook rodzina produktów

Specjalność: (ASI) Systemy informatyczne w automatyce Stopień studiów i forma: I stopień, stacjonarna Kod przedmiotu: Grupa kursów:

ABC systemu Windows 2016 PL / Danuta Mendrala, Marcin Szeliga. Gliwice, cop Spis treści

KARTA KURSU. Projektowanie aplikacji mobilnych

A2W II Miracast Dongle

Transkrypt:

WPAM W4 Apple iphone OS Piotr Gawrysiak pgawrysiak@supermedia.pl Politechnika Warszawska Instytut Informatyki Zakład Systemów Informacyjnych -BY-SA Piotr Gawrysiak 2011

Reinventing the phone? Apple iphone został po raz pierwszy zaprezentowany publicznie podczas MacWorld Expo w 2007 roku - czyli zaledwie (?) trzy i pół roku temu. Typowe flagowe modele telefonów i urządzeń Nokia (koniec 2006) Nokia E61, N770 (Internet Tablet)

Steve Jobs i efekt RDF Oczywiście pamiętać należy iż Steve Jobs otaczany jest przez pole zakłóceń rzeczywistości ( reality distortion field ) Wiele z technologii wymienionych przez Jobsa w keynote jako invented by Apple istniało dużo wcześniej np. Ekran dotykowy multitouch Gestures (pinch to zoom itd.) Wykorzystanie akcelerometru w urządzeniu mobilnym HTML email client Pierwsze wersje iphone cechowały także zastanawiające braki funkcjonalne (np. copy-paste, multitasking, bluetooth, aplikacje itp.).

Rodzina ios System operacyjny ios (poprzednio iphone OS) oraz koncepcja dotykowego interfejsu użytkownika to nie tylko iphone! ipod Touch iphone bez modułu GSM ipad, ipad2 ipod Touch nadmuchany do rozmiarów kartki A4 (z ew. modułem GSM) Różnice (pomiędzy ipod Touch i iphone, szczególnie w przypadku nowszych generacji, są dla twórcy aplikacji niewielkie) pierwsza wersje ipod Touch nie posiadała głośnika, dopiero czwarta wyposażona jest w kamerę i akcelerometr itd.

iphone - ewolucja platformy sprzętowej Źródło: Wikipedia

iphone - ewolucja platformy sprzętowej

iphone z punktu widzenia użytkownika iphone jaki jest każdy widzi, niemniej jednak warto podkreślić kilka cech użytkowych: Urządzenie jest elementem większej infrastruktury opartej o produkty Apple, w tym w szczególności program itunes (który m.in. niezbędny jest do uruchomienia telefonu) itunes jest właściwie jedynym mechanizmem (pomijając jailbreaking itp.) pozwalającym na transfer danych zawierających treści cyfrowe (content) DRM 4.1 Interfejs użytkownika oparty jest o koncepcję indywidualnych aplikacji, które w niewielkim jedynie stopniu współpracują ze sobą: do wersji 4.0 systemu jedynie niektóre wbudowane aplikacje (np. ipod) mogły działać współbieżnie, od wersji 4.0 pozostałe aplikacje 2.0 mogą udawać iż działają współbieżnie system plików urządzenia jest niedostępny dla użytkownika, każda aplikacja ma dostęp jedynie do własnego katalogu danych w ramach sandbox wymiana danych pomiędzy aplikacjami jest zadaniem nietrywialnym

ios z punktu widzenia twórcy aplikacji ios został zaprojektowany przez twórców systemu Mac OS X dla twórców aplikacji wykorzystujących standardowe biblioteki Mac OS (Objective-C, Cocoa) jest to środowisko naturalne ios Mac OS X Ponieważ ios tworzono od podstaw, można było zrezygnować z tych elementów, które w przypadku systemu Mac OS X służą zapewnieniu zgodności z istniejącymi już aplikacjami (np. Carbon, Java).

CoreOS Jądro systemu operacyjnego i podstawowa warstwa HAL Podstawowe usługi systemu operacyjnego (nie związane z interfejsem użytkownika): System (LibSystem) Wątki, obsługa sieci, system plików, locale, zarządzanie pamięcią itp. Security Framework (Security.framework) Certyfikaty, hasła, keychain, szyfrowanie danych itp. External Accessory Framework (ExternalAccessory.framework, ios 3) Komunikacja z urządzeniami zewnętrznymi (w praktyce DDK) poprzez Bluetooth lub złącze dock

Core Services Większość użytkowych usług systemu operacyjnego Dużo różnorodnych funkcji przykłady: Address Book (obługa bazy kontaktów) CFNetwork (obsługa sieci HTTP, HTTPS, FTP, SLL/TLS) Core Data (wsparcie dla wzorca projektowego MVC) Core Foundation (zarządzanie danymi - strings, streams, arrays, sets itp.) Core Location (geolokalizacja) Core Media (niskopoziomowa obsługa dźwięku i wideo) Core Telephony (dostęp do danych z modułu GSM) Event Kit (dostęp do danych kalendarza) In App Purchase (transakcje poprzez konto itunes użytkownika) SQLite (relacyjna baza danych) System Configuration ( reachability interfaces ocena

Media Usługi wspierające odtwarzanie wideo, tworzenie grafiki (2D i 3D) oraz odtwarzanie dźwięku: Grafika: wsparcie dla grafiki wektorowej (Core Graphics aka Quartz) i animacji 2D (Core Animation), OpenGL ES (sprzętowo akcelerowana grafika 3D/2D), obsługa czcionek wektorowych (Core Text), biblioteki do odczytu i zapisu popularnych formatów graficznych, dostęp do zdjęć i filmów w galerii użytkownika Wideo: odtwarzanie i nagrywanie filmów (obsługa niskopoziomowa Core Media), formaty: H264 (640x480, 320x240), MPEG-4 (640x480) mov, mp4, m4v, 3gp Dźwięk: nagrywanie i odtwarzanie dźwięku oraz sterowanie modułem wibracji, zarówno wysokopoziomowe jak i niskopoziomowe, zgodność z OpenAL (gry), wsparcie dla

Cocoa Touch Przede wszystkim obsługa interfejsu użytkownika UIKit (UIKit.framework): Tworzenie i obsługa elementów interfejsu (view controllers) Obsługa zdarzeń Cut, copy, paste Obsługa kamery Dane z sensorów (akcelerometr) itd. MapKit mapa, wbudowywalna w aplikacje GameKit wsparcie dla gier sieciowych iad Framework (ios 4) wsparcie dla reklam bannerowych Address Book Framework tworzenie, edycja i wybór kontaktów

Bezpośrednia komunikacja nie zachodzi pomiędzy view i model Intermedium Model, View, Controller MVC (Model, View, Controller) - wzorzec projektowy pozwalający na separację interfejsu użytkownika od logiki biznesowej czy też logiki przetwarzania danych Model dane i logika biznesowa aplikacji Controller interakcja z użytkownikiem (odbieranie zdarzeń, informowanie modelu o zmianach, odpowiednie modyfikowanie interfejsu view) View elementy interfejsu użytkownka

View Controllers Standardowe obiekty UIViewController zapewniają wsparcie dla typowych operacji związanych z przeglądaniem danych (np. przewijanie, zaznaczanie wierszy tabeli itp.) zajmujących pełny ekran urządzenia np.:

View Controllers

View Controllers

Tworzenie aplikacji Narzędzia jakie stoją do naszej dyspozycji zależą od tego, czy mamy do czynienia z urządzeniem jailbroken czy też nie Jeśli tak dostępnych jest wiele narzędzi i języków programowania, także on device ale nasza aplikacja dystrybuowana może być jedynie nieoficjalnymi kanałami (np. Cydia) Jeśli nie pozostaje nam oficjalny SDK, a to oznacza w praktyce Xcode + iphone Simulator + Objective-C (ew. C / C++ jeśli nasza aplikacja nie będzie intensywnie wykorzystywać Cocoa Touch: czytaj będzie to gra) A co jeśli chcemy jednocześnie przygotować wersję np. dla Androida i Windows Phone 7? Jest jeszcze jedno rozwiązanie (nb. początkowo było to jedyne rozwiązanie przed wprowadzeniem SDK i AppStore) aplikacje sieciowe (WebApps) Przeglądarka ios (Safari) posiada zestaw rozszerzeń

ios Web Apps

Objective-C Dziedziczy wszystkie cechy języka C bez wprowadzania zawiłości znanych z C++ Model obiektowy oparty o komunikaty (Smalltalk) typy nie są sprawdzane podczas kompilacji Ułatwienia (szczególnie w Objective-C 2.0) znane z języków takich jak Java (iteratory, wyjątki) Dość niskopoziomowy (np. zarządzanie main.m pamięcią nie w pełni fraction.h automatyczne ) Nieco egzotyczna składnia np.: fraction.m

ios SDK Do tworzenia aplikacji potrzebujemy SDK Xcode (środowisko IDE wraz z kompilatorem i edytorem kodu źródłowego), Interface Builder (narzędzie projektowania elementów widoków), Simulator (środowisko wykonania aplikacji technicznie rzecz biorąc nie jest to emulator, albowiem wykonywany jest kod natywny x86) Wszystkie powyższe narzędzia wymagają komputera Mac z procesorem Intel SDK dostępne za darmo ze stron Apple (developer.apple.com) ale aby móc uruchamiać aplikacje na rzeczywistym urządzeniu musimy zarejestrować się jako developer to kosztuje 99 USD

Stanford Programming Course Bodajże najlepszy dostępny obecnie kurs online tworzenia aplikacji dla ios http://www.stanford.edu/class/cs193p (slajdy, materiały pomocnicze, kod źródłowy) Sam wykład (w postaci nagrań wideo) dostępny poprzez itunes w ramach usługi itunesu uniwersytetu Stanforda (licencja CC-BY-SA)

Cdn.