Programowanie dla ios

Podobne dokumenty
Programowanie dla ios

Programowanie dla ios

Programowanie dla ios

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

Wprowadzenie do Objective-C

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

SWIFT. Zaawansowane Programowanie Obiektowe

Programowanie dla ios

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

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

SWIFT. Aplikacje Mobilne i Multimedialne

Programowanie dla ios

KOTLIN. Język programowania dla Androida

Programowanie w języku Swift : Big Nerd Ranch guide / Matthew Mathias, John Gallagher. Gliwice, cop Spis treści

OBC01/TOPMOB Projektowanie w języku Objective-C

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

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

JAVA W SUPER EXPRESOWEJ PIGUŁCE

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

Laboratorium 03: Podstawowe konstrukcje w języku Java [2h]

Programowanie dla ios

1 Podstawy c++ w pigułce.

Java Język programowania

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec

Programowanie obiektowe

Programowanie dla iphone projektowanie interfejsu użytkownika

Klasy Obiekty Dziedziczenie i zaawansowane cechy Objective-C

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

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

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

Programowanie w środowiskach graficznych. Wykład 3 Język C#

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

Języki i metodyka programowania. Język C# pętle, sterowanie, wyjątki

Kurs programowania. Wykład 1. Wojciech Macyna. 3 marca 2016

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Techniki programowania INP001002Wl rok akademicki 2018/19 semestr letni. Wykład 3. Karol Tarnowski A-1 p.

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

Strona główna. Strona tytułowa. Programowanie. Spis treści. Sobera Jolanta Strona 1 z 26. Powrót. Full Screen. Zamknij.

Klasy cd. Struktury Interfejsy Wyjątki

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

MATERIAŁY DO ZAJĘĆ II

Wykład 2 Składnia języka C# (cz. 1)

1 Podstawy c++ w pigułce.

Język ludzki kod maszynowy

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

Serwer WWW Apache. Plik konfiguracyjny httpd.conf Definiujemy m.in.: Aktualne wersje 2.4.6, , zakończony projekt

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

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016

Podstawy Programowania C++

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

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Programowanie obiektowe

4. Funkcje. Przykłady

Programowanie obiektowe

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Języki skryptowe w programie Plans

Microsoft IT Academy kurs programowania

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

Wykład 8: klasy cz. 4

Materiały do zajęć VII

Podstawowe elementy proceduralne w C++ Program i wyjście. Zmienne i arytmetyka. Wskaźniki i tablice. Testy i pętle. Funkcje.

Programowanie obiektowe

Wprowadzenie do projektu QualitySpy

Wykład 5: Klasy cz. 3

Wykład 5 Okna MDI i SDI, dziedziczenie

Programowanie obiektowe

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

Podstawy programowania skrót z wykładów:

Podstawy programowania. Podstawy C# Tablice

1. Które składowe klasa posiada zawsze, niezależnie od tego czy je zdefiniujemy, czy nie?

Programowanie obiektowe zastosowanie języka Java SE

Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak

C# 6.0 : kompletny przewodnik dla praktyków / Mark Michaelis, Eric Lippert. Gliwice, cop Spis treści

Kurs programowania. Wykład 3. Wojciech Macyna. 22 marca 2019

Kurs programowania. Wykład 2. Wojciech Macyna. 17 marca 2016

Laboratorium nr 12. Temat: Struktury, klasy. Zakres laboratorium:

Programowanie obiektowe. Materiały przygotował: mgr inż. Wojciech Frohmberg

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)

1 Atrybuty i metody klasowe

Dziedziczenie. dr Jarosław Skaruz

Wyrażenie include(sciezka_do_pliku) pozwala na załadowanie (wnętrza) pliku do skryptu php. Plik ten może zawierać wszystko, co może się znaleźć w

Tworzenie aplikacji w języku Java

Scenariusz Web Design DHTML na 10 sesji. - Strony statyczne I dynamiczne. - Dodawanie kodu VBScript do strony HTML. Rysunek nie jest potrzebny

Języki i techniki programowania Ćwiczenia 2

Język C++ Programowanie obiektowe

Podstawy Programowania Podstawowa składnia języka C++

Wstęp do programowania obiektowego. Wykład 1 Algorytmy i paradygmaty Podstawowe pojęcia PO

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

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

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

Materiały do laboratorium MS ACCESS BASIC

MonoGame. Wieloplatformowe gry w C# Mateusz Cicheński

Kurs WWW. Paweł Rajba.

Podstawy Programowania Obiektowego

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

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

Programowanie obiektowe

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu.

Programowanie współbieżne Wykład 8 Podstawy programowania obiektowego. Iwona Kochaoska

Transkrypt:

Programowanie dla ios

Trochę historii 1 kwietnia 1976 r. - zostaje założona firma Apple Computer Company przez Steve a Jobsa, Stevena Wozniaka i Ronalda Weyna a W lipcu 1976 rozpoczęłą się sprzedaż Apple I 3 stycznia 1977 r. - zostaje przekształcona w spółkę Apple Computers Inc. 16 kwietnia 1977 r. - Apple II

Trochę historii Premiera Macintosha 1984

Trochę historii W 1985 r. Steve Jobs odchodzi z Apple i zakłada firmę NeXT Inc.

Trochę historii Premiera NeXT a - 12 października 1988

Trochę historii Początek lat 90-tych jest bardzo trudny dla Apple 9 lutego 1997 r. Apple kupił NeXT Inc. razem ze Stevem Jobsem 15 sierpnia 1998 r. - premiera pierwszego imac a 24 marca 2001 r. - premiera Mac OS X

Trochę historii 23 października 2001 - premiera ipod a

Trochę historii 9 stycznia 2007 - premiera iphone a

Trochę historii 27 stycznia 2010 - premiera ipad a

Trochę historii 5 października 2011 r. zmarł Steve Jobs

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 iphone 6, iphone 6 Plus 9.10.2014 ipad Air 2, ipad mini 3 16.10.2014 ipad Pro, ipad mini 4 9.09.2015 iphone 6S, 6S Plus 9.09.2015

Urządzenia ios Urządzenie Data prezentacji ipad Pro 9.7 21.03.2016 iphone SE 21.03.2016 iphone 7, iphone 7 Plus 7.09.2016 ipad 2017 21.03.2017

Urządzenia pokrewne Apple TV - tvos Apple Watch - watchos

Dane techniczne Na powyższych urządzeniach nie można zainstalować ios 10

Dane techniczne Kompatybilne z ios 10

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 w miarę nowy Mac z procesorem Intela SDK jest darmowe Do dystrybucji aplikacji należy wykupić subskrypcję Developer Program: Standard - $100 rocznie, Enterprise - $299 rocznie, University - $0 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 aktualnej wersji ios dla niektórych urządzeń

Narzędzia programistyczne Xcode języki: ObjectiveC Swift

Emulator

Wprowadzenie do Objective-C

Historia rozszerzenie składni C o elementy obiektowe powstał na początku lat 80-tych zainspirowany SmallTalk iem wstecznie kompatybilny z C

Historia Steve Jobs po odejściu z Apple założył firmę Next Next wykupił licencję na Objective-C, który został językiem programowania systemu NextStep Next został wykupiony przez Apple, a NextStep stał się podstawą Mac OS X

Objective-C składnia nieobiektowa zgodna z C składnia obiektowa pochodząca ze SmallTalk Przesyłanie komunikatów, a nie wywoływanie metod Obsługa wyjątków

Objective-C dziedziczenie tylko pojedyncze zamiast interfejsów protokoły kategorie - podobne jak metody rozszerzające w.net zarządzanie pamięcią: zliczanie referencji

Objective-C słowa kluczowe zaczynają się od @ programując dla ios i Mac OS wszystkie klasy dziedziczą po NSObject podobnie jak w C: pliki nagłówkowe *.h pliki implementacyjne *.m sugerowana notacja wielbłądzia (camel) settablecellvalue

Plik nagłówkowy Atrybuty/pola Operacje/metody Kolejność zawsze taka sama

Plik implementacyjny Wszystkie metody z pliku nagłówkowego są publiczne - przed metodą oznacza, że jest to metoda instancji klasy + oznacza metodę klasy (metoda statyczna) metody prywatne można dopisać w pliku.m

Metoda w nawiasach na początku typ metody, np. (void) nazwa metody argumenty oddzielone : i oznaczone etykietami oraz typem, np.: argument z etykietą description typu wskaźnik na NSString

Metoda metoda tableview typu wskaźnik na UITableViewCell 2 argumenty: typu wskaźnik na UITableView o etykiecie cellforrowatindexpath typu wskaźnik na NSIndexPath o etykiecie indexpath

Przesłanie komunikatu czyli wywołanie metody [adresat komunikat] adresatem może być obiekt lub klasa z argumentem i kilkoma

Własności ważną rolę odgrywają własności (properties) ukryte metody setter i getter w przykładzie równowążne metodom code do pobrania danych i setcode do podstawienia składnia kropkowa

Selektory wskaźniki do metod umożliwia dynamiczne wywoływanie metod

Dziedziczenie tylko pojedyncze klasa może implementować wiele protokołów wszystkie metody są wirtualne

Zarządzanie pamięcią nie ma Garbage collection (jest w Mac OS X) można wykorzystać ARC (od ios 5) [[object alloc] init]; //konstruktor

Typy szablonów aplikacji Master-Detail Application Page-Based Application Single View Application Tabbed Application Game

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 2009 Tworzymy nowy projekt w XCode Window-Based Application

Kod aplikacji

Deklaracja Kod delegacji

Implementacja Kod delegacji

Efekt

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

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

TIOBE index

Podobieństwa do Objective-C typy podstawowe operatory użycie nawiasów klamrowych {} użycie nawiasów kwadratowych [] (tablice) operator przypisania =, porównania == podobne instrukcje (pętle, warunkowe) dziedziczenie metod klas i instancji słowo kluczowe self

Różnice vs Objective-C nie trzeba używać ; brak plików nagłówkowych silne typowanie przeciążanie operatorów nowy operator === porównujący obiekty pełne wsparcie Unicode w string inferencja typów programowanie generyczne typy funkcyjne

Różnice vs Objective-C domyślnie nie ma wskaźników przypisanie nie zwraca wartości brak konieczności używania break w instrukcji switch (instrukcja fallthrough) zmienne i stałe są zawsze inicjalizowane przepełnienie zakresu jest wykrywane, chyba, że użyjemy specjalnych operatorów, np. &+, &-

Playground xcode zawiera moduł Playground służy on do sprawdzania na żywo jak działa kod Swift

Playground Można na różne sposoby wizualizować działanie kodu

Playground Można korzystać z większości API, np. UIKit

Zmienne i stałe Słowa kluczowe let i var let definiuje stałą var definiuje zmienną podstawienie wartości określa typ zmiennej/stałej dzięki inferencji typów

Zmienne i stałe Nazwy zmiennych mogą zawierać dowolne znaki Unicode oprócz: spacji symboli matematycznych linii i prostokątów Nie mogą się zaczynać od cyfry

Typy podstawowe Int8 UInt8 Int (Int32, Int64) UInt (UInt32, UInt64) Double (64 bity - 15 cyfr) Float (32 bity - 6 cyfr) String Bool (true lub false)

Typy podstawowe Dla których ma to sens mają własności max i min Można stosować aliasy nazw typów

Operatory Podstawowe operatory: +,-,*,/,% (modulo) Operatory złożone: +=, -=, *=, /=, %=, &&, Od Swift 3 nie ma operatorów inkrementacyjnych: ++, Operatory porównania: ==, >, <, >=, <=,!= Operatory zakresu: x y, x..<y Operatory bitowe: &,, ^, <<, >>, &=, =, ^=, <<=, >>=

Operatory typów Operator is sprawdza, czy obiekt jest danego typu i ma wartość boolowską Operator as? rzutuje obiekt na typ opcjonalny, a gdy jest to niemożliwe podstawia nil Operator as! wymusza rzutowanie na typ, a jeżeli jest niemożliwe to występuje błąd wykonania Operator as można stosować przy rzutowaniu w górę

Zmienne i stałe wartości nigdy nie są domyślnie konwertowane do innych typów - trzeba stworzyć nową wartość wartości w stringach można osadzać łatwiej typy opcjonalne (nullowe) - dodajemy? wtedy zmienna może mieć wartość nil

Tablice i słowniki Deklaruje się je za pomocą nawiasów kwadratowych Dostęp do elementów też przez nawiasy Słowniki klucz:wartość Aby utworzyć puste korzystamy ze składni konstruktorów

Krotki Wartości można grupować w krotki (tuples) Krotka może zawierać dowolną kombinację typów Krotkę można zdekomponować na składowe

Krotki niepotrzebne wartości można zastąpić podkreśleniem do składowych można się odwołać przez indeks

Krotki składowe mogą mieć swoje etykiety

Instrukcje instrukcje warunkowe if i switch warunek musi być zawsze boolowski pętle for-in, for, while, do-while

Instrukcja warunkowa Jeżeli chcemy sprawdzić, czy zmienna ma wartość w instrukcji warunkowej można wykorzystać operator let

Instrukcja switch Nie jest ograniczona do typów prostych Nie jest ograniczona do równości Musi być wyczerpująca - klauzula default

Instrukcja switch W przeciwieństwie do innych języków Swift automatycznie kończy switch po znalezieniu pasującego przypadku Można użyć break, gdy tego potrzeba Można to zmienić instrukcją fallthrough

Instrukcja for-in Umożliwia iterowanie po tablicach i słownikach

Pętle while, do-while for..<

Pętle przerwanie pętli - break zakończenie bieżącego przebiegu - continue

Funkcje Do deklaracji funkcji służy słowo kluczowe func Argumenty oddzielone przecinkami, poprzedzone etykietami i dwukropkiem Typ funkcji po argumentach oddzielony ->

Funkcje Argumenty funkcji mogą mieć etykiety Trzeba z nich wtedy korzystać w trakcie wywołania Argumenty mogą mieć wartości domyślne

Funkcje Funkcja może mieć wiele wartości, identyfikowanych przez etykiety lub indeks

Funkcje Liczba argumentów funkcji może być zmienna pod warunkiem, że są tego samego typu

Funkcje Domyślnie argumenty są przekazywane jako stałe - nie można ich modyfikować Można to zmienić deklarując argument jako zmienną Nie zmienia to wartości poza funkcją

Funkcje Argumenty wyjściowe można uzyskać przez słowo kluczowe inout Przekazywany argument musi być wtedy poprzedzony &

Funkcje zagnieżdżone Funkcje mogą się zagnieżdżać Funkcja zagnieżdżona ma dostęp do zmiennych funkcji zewnętrznej

Funkcje są typem pierwszej klasy Funkcja może być traktowana jak inne typy Funkcje mogą przekazywać funkcję i być przekazywane jako argument

Funkcje i domknięcia Funkcje są szczególnymi przypadkami domknięć (closure) Domknięcia to segmenty kodu, które mogą być wywoływane wielokrotnie Domknięcie jest tworzone pomiędzy nawiasami klamrowymi { } wersja uproszczona

Obiekty i klasy Klasa jest deklarowana słowem kluczowym class Wszystko zdefiniowane wewnątrz klasy jest jej elementem składowym (pola, metody, własności)

Konstruktor klasy Metoda zaczynająca się od init, nie posiadająca typu Jeżeli obiekt jest kosztowny może posiadać destruktor deinit

Dziedziczenie Tylko pojedyncze Składnia jak w C++/C# - klasa nadrzędna po :

Przeciążanie metod Własności Tylko ze słowem kluczowym override Własności mogą mieć getter i setter klasa nadrzędna nowa wartość

Własności Jeżeli własność nie wymaga obliczania, ale wymaga sprawdzenia przed lub po zmianie, można wykorzystać sekcje willset i didset

Typy wyliczeniowe Deklarowane przez słowo kluczowe enum typ bazowy Typem bazowym może być Int, String lub typy zmiennoprzecinkowe

Typy wyliczeniowe Zmienną wyliczeniową można utworzyć z typu bazowego Typ wyliczeniowy może nie mieć typu bazowego

Typy wyliczeniowe składowe typu wyliczeniowego mogą mieć skojarzone ze sobą wartości mogą się one różnić w ramach jednego typu

Struktury Są podobne do klas Przekazywane zawsze przez wartość (klasy przez referencję) Słowo kluczowe struct

Protokoły metoda będzie zmieniać obiekt Odpowiednik interfejsów Słowo kluczowe protocol Mogą być adaptowane (implementowane) przez klasy struktury i wyliczenia

Protokoły Protokoły mogą być używane jak każdy inny typ

Typy generyczne Podobnie jak w innych językach deklarowane za pomocą < > Generyczne mogą być funkcje, metody, klasy, typy wyliczeniowe i struktury

Typy generyczne Typ generyczny może stawiać wymagania, np. co do realizacji protokołów z użyciem słowa kluczowego where

Rozszerzenia Dodawanie nowej funkcjonalności do istniejących klas Można dodać do klasy nawet nowe protokoły Słowo kluczowe extension

Rozszerzenia Dodawanie własności

Rozszerzenia Dodawanie konstruktora Domyślne konstuktory Struktura Dodany konstruktor Wywołanie

Rozszerzenia Dodawanie metody

Rozszerzenia Dodawanie indeksu

Rozszerzenia Dodawanie typu zagnieżdżonego

Typy generyczne Podobnie jak w innych językach deklarowane za pomocą < > Generyczne mogą być funkcje, metody, klasy, typy wyliczeniowe i struktury

Typy generyczne Typ generyczny może stawiać wymagania, np. co do realizacji protokołów z użyciem słowa kluczowego where

Wyjątki Aby zgłosić wyjątek musimy zadeklarować typ zgodny z protokołem Error

Wyjątki Do zgłoszenia wyjątku służy instrukcja throw, a słowo kluczowe throws informuje, że funkcja może zgłosić wyjątek

Wyjątki Do przechwycenia wyjątku służy instrukcja do-catch i instrukcja try

Wyjątki Instrukcja try ma swoją wersję opcjonalną try?

Wyjątki Zgłoszenie wyjątku można zablokować instrukcją try!

Przeciążanie operatorów Można przeciążać operatory dla własnych typów

Dodawanie operatorów Można stworzyć własne operatory

Hello World 2015

Hello World

Hello World

Pierwsza aplikacja Prosty konwerter wartości ze stopni Celsjusza na Fahrenheita Szablon Single View Application

Konwerter Otwieramy scenorys Dodajemy pole tekstowe, guzik i etykietkę

Konwerter Ustawienia Auto Layout

Klasa AppDelegate

Klasa ViewController

Konwerter Tworzymy gniazdka

Konwerter Uzupełniamy metodę Dodajemy chowanie klawiatury

Konwerter

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

Do zobaczenia