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



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

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

Klasy Obiekty Dziedziczenie i zaawansowane cechy Objective-C

Programowanie urządzeń mobilnych Apple Materiały dydaktyczne. Michał Dudkiewicz Błażej Zyglarski

Temat 13. Czujniki Dlaczego Twój Smartfon jest taki smart?

Programowanie obiektowe

Programowanie dla ios

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

dr inż. Piotr Czapiewski Tworzenie aplikacji w języku Java Laboratorium 1

Aplikacje w środowisku Java

Programowanie dla iphone projektowanie interfejsu użytkownika

Materiał. Typy zmiennych Instrukcje warunkowe Pętle Tablice statyczne Funkcje Wskaźniki Referencje Tablice dynamiczne Typ string Przeładowania funkcji

Programowanie obiektowe

Programowanie obiektowe

Programowanie dla ios

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

KLASA UCZEN Uczen imię, nazwisko, średnia konstruktor konstruktor Ustaw Wyswietl Lepszy Promowany

Zaawansowane aplikacje internetowe

Wykład 4 Delegat (delegate), właściwości indeksowane, zdarzenie (event) Zofia Kruczkiewicz

Aplikacje w środowisku Java

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

Aplikacje w środowisku Java

Każdy z nich posiada swoje parametry. W przypadku silnika może to być moc lub pojemność, w przypadku skrzyni biegów można mówić o skrzyni

Praca w środowisku Visual Studio 2008, Visual C

2 Przygotował: mgr inż. Maciej Lasota

Programowanie dla ios

Projektowanie aplikacji internetowych laboratorium

Wstęp do Programowania, laboratorium 02

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych.

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

Platforma.NET. Laboratorium nr 1 Podstawy języka C#

Technologie obiektowe

KLASY, INTERFEJSY, ITP

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

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

Politechnika Poznańska Wydział Budowy Maszyn i Zarządzania

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

> C++ dziedziczenie. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk. Wydział Inżynierii Metali i Informatyki Przemysłowej

Zaawansowane programowanie w języku C++ Klasy w C++

Scenariusz lekcji. Scenariusz lekcji 1 TEMAT LEKCJI: 2 CELE LEKCJI: 2.1 Wiadomości: 2.2 Umiejętności: 3 METODY NAUCZANIA: 4 ŚRODKI DYDAKTYCZNE:

Programowanie obiektowe zastosowanie języka Java SE

Wprowadzenie do programowania i programowanie obiektowe

Aplikacje WWW - laboratorium

Laboratorium 1 - Programowanie proceduralne i obiektowe

Mechanizm dziedziczenia

Programowanie komputerowe. Zajęcia 1

Tworzenie i wykorzystanie usług sieciowych

I. WSTĘP. Przykład 1. Przykład 2. Programowanie czyli tworzenie programów komputerowych (aplikacji komputerowych)

Zaawansowane programowanie w C++ (PCP)

Programowanie II. Lista 3. Modyfikatory dostępu plik TKLientBanku.h

Programowanie proceduralne w języku C++ Podstawy

Wykład 5 Okna MDI i SDI, dziedziczenie

Podział programu na moduły

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

C++ wprowadzanie zmiennych

Dziedziczenie. Streszczenie Celem wykładu jest omówienie tematyki dziedziczenia klas. Czas wykładu 45 minut.

Wykład 8: klasy cz. 4

TEMAT : KLASY DZIEDZICZENIE

Ciekawym rozwiązaniem służącym do obsługi zdarzeń dla kilku przycisków w ramach jednej aktywności może być następujący kod:

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

Programowanie obiektowe - zadania

Programowanie obiektowe

UML a kod w C++ i Javie. Przypadki użycia. Diagramy klas. Klasy użytkowników i wykorzystywane funkcje. Związki pomiędzy przypadkami.

Funkcje i instrukcje języka JavaScript

Przechowywanie danych w IOS

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji.

Laboratorium 7 Blog: dodawanie i edycja wpisów

Wstęp do programowania INP003203L rok akademicki 2018/19 semestr zimowy. Laboratorium 2. Karol Tarnowski A-1 p.

Programowanie obiektowe

GUI - projektowanie interfejsów cz. II

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Aplikacje RMI

Zad.30. Czy można utworzyć klasę, która implementuje oba interfejsy?

Laboratorium 1. Programowanie II - Kierunek Informatyka. dr inż. Janusz Słupik. Gliwice, Wydział Matematyki Stosowanej Politechniki Śląskiej

Wykład Ćwiczenia Laboratorium Projekt Seminarium

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

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

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44

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

Podstawy programowania. Wprowadzenie

Część 4 życie programu

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

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8

2) W wyświetlonym oknie należy zaznaczyć chęć utworzenia nowej aplikacji (wygląd okna może się różnić od powyższego); kliknąć OK

A Zasady współpracy. Ocena rozwiązań punktów punktów punktów punktów punktów

Programowanie w C++ Wykład 5. Katarzyna Grzelak. 26 marca kwietnia K.Grzelak (Wykład 1) Programowanie w C++ 1 / 40

Rys. 1. Główne okno programu QT Creator. Na rysunku 2 oznaczone zostały cztery przyciski, odpowiadają kolejno następującym funkcjom:

Programowanie Obiektowo Zorientowane w języku c++ Przestrzenie nazw

C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie. C++ - dziedziczenie C++ - DZIEDZICZENIE.

Podstawy i języki programowania

Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny Politechnika Śląska

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

Wyjątki (exceptions)

1 Podstawy c++ w pigułce.

> C++ dynamiczna alokacja/rezerwacja/przydział pamięci. Dane: Iwona Polak. Uniwersytet Śląski Instytut Informatyki

TEMAT : KLASY POLIMORFIZM

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje w roku akademickim 2012/2013. Przedmioty kierunkowe

Transkrypt:

Temat 1. Podstawy Środowiska Xcode i wprowadzenie do języka Objective-C Wymagana wiedza wstępna: 1) Student musi 1) Znać język C 2) Znać zasady zarządzania pamięcią w komputerze 3) Znać pojecie wskaźnika 4) Znać podstawowe narzędzia tworzenia aplikacji konsolowych w C 2) Student powinien 1) Znać język C++ 2) Znać podstawy programowania obiektowego 3) Student może 1) Znać język Java lub C# Cel dydaktyczny 1) Student musi 1) Umieć stworzyć projekt aplikacji konsolowej w Xcode z wykorzystaniem Objective-C 2) Umieć skompilować i uruchomić program w Xcode 3) Skorzystać z podstawowych klas i funkcji Objective-C 4) Nauczyć się zasad wywoływania metod w Objective-C 5) Znać zasady implementacji obiektów w Objective-C 6) Znać podstawowe proste typy danych oraz podstawowe obiektowe typy danych 2) Student powinien 1) Umieć zaimplementować własną klasę w Objective-C 2) Rozumieć różnicę między metodami klasy a metodami obiektu 3) Umieć operować interfejsami 4) Znać zasady dziedziczenia 5) Rozumieć różnicę między metodami klasy a obiektu 6) Znać zasady dotyczące wiązań w Objective-C 3) Student może 1) Umieć tworzyć i wykorzystywać metody fabrykujące Zakres tematyczny i laboratorium. Niniejsze zajęcia wprowadzają studenta do świata jęyzka Objective-C, który oparty jest na znanych wcześniej standardach języków C i C++. Student nauczy się tutaj podstawowej obsługi środowiska Xcode i napisze proste programy z wykorzystaniem tego jezyka Poruszane zagadnienia: C jako podstawa Objective-C Nazewnictwo plików Dodawanie plików nagłówkowych Obiektowe typy danych - klasa a obiekt Interfejs (*.h) Implementacja (*.m) Dziedziczenie jako sposób na zbudowanie hierarchii obiektów Programowanie Urządzeń Mobilnych Apple - materiały do laboratorium - 1/6

Zasady dotyczące nazewnictwa klas w projektach Objective-C Prefiksy jako odpowiednik paczek z języka Java Zarezerwowane prefiksy Apple Typowanie (silne, słabe), typ id Metody instancji (-) i ich zakres działania Metody klas (+) i ich zakres działania Słowa kluczowe sygnatury Obiekty jako wskaźniki Właściwości obiektu Ustawianie i pobieranie stanu właściwości obiektu z wykorzystaniem syntaktyki "." Metody fabrykujące Wiązania późne w ObjectiveC Załączniki 1. Prezentacja_1.pdf - slajdy prezentacji wykładu 2. Pokaz Xcode.mp4 - film pokazujący jak stworzyć pierwszy projekt w Xcode Zadania na Laboratorium Zadanie 1 Stwórz nowy projekt Xcode. Jako typ wybierz aplikację konsolową. Wypisz na standardowe wyjście napis Hello Xcode! Podpowiedzi. 1) Aplikację tworzymy wbierając Create a new Xcode project w ekranie startowym Xcode. 2) W kolejnym oknie Xcode możemy wybrać odpowiedni typ aplikacji. W niniejszym zadaniu wybieramy Command Line Tool z sekcji OSX. Programowanie Urządzeń Mobilnych Apple - materiały do laboratorium - 2/6

3) Standardowo zostanie stworzona zwykła aplikacja C, dlatego należy zwrócić uwagę, aby na kolejnym ekranie kreatora wybrać aplikację typu Foundation 4) Kod pełnej aplikacji (czyli zawartość pliku *.m) powinna wyglądać tak #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { Programowanie Urządzeń Mobilnych Apple - materiały do laboratorium - 3/6

NSLog(@"Hello, Xcode!"); return 0; Zadanie 2 Stwórz klasę Objective-C, MaszynaLosujaca, posiadającą metodę -(int)losuj:(int)zakres, losującą z zadanego zakresu liczby i wypisz 20 takich liczb na standardowe wyjście. Podpowiedzi 1) Do losowania użyj funkcji arc4random 2) Klasa MaszynaLosujaca powinna dziedziczyc z klasy NSObject. -(int)losuj:(int)zakres{ return arc4random()%zakres; 3) Kod źródłowy prawidłowego pliku nagłówkowego #import <Foundation/Foundation.h> @interface MaszynaLosujaca : NSObject -(int)losuj:(int)zakres; @end 4) Kod źródłowy klasy #import "MaszynaLosujaca.h" @implementation MaszynaLosujaca -(int)losuj:(int)zakres{ return arc4random()%zakres; @end 5) Tworzenie obiektu klasy MaszynaLosujaca * m = [[MaszynaLosujaca alloc]init]; 6) Wywoływanie metod na obiekcie klasy [m losuj:43]; 7) Kompletny kod pliku main.m #import <Foundation/Foundation.h> Programowanie Urządzeń Mobilnych Apple - materiały do laboratorium - 4/6

#import "MaszynaLosujaca.h" int main(int argc, const char * argv[]) { @autoreleasepool { MaszynaLosujaca * m = [[MaszynaLosujaca alloc]init]; for(int i =0;i<20;i++){ int l = [m losuj:43]; printf("%d\n",l); return 0; Zadanie 3 Napisz program Lotto, który wylosuje bez powtórzeń 6 liczb z 49. Użyj do tego celu własnej klasy MaszynaLotto z metodą -(NSNumber)losuj. Podpowiedzi 1) Do przechowywania numerów do wylosowania wykorzystaj NSMutableArray. Zadeklarują ją jako właściwość klasy, @property(nonatomic) NSMutableArray * numery; 2) Nie zapomnij o użyciu dyrektywy @synthesize żeby wygenerować metody typu get i set dla tego pola. @synthesize numery; 3) Zainicjalizuj pole numery we własnoręcznie stworzonym inicjalizatorze klasy. -(id)init{ self= [super init]; if(self){ self.numery= [[NSMutableArray alloc] initwithcapacity:49]; for(int i = 1;i<=49;i++){ [self.numery addobject:[nsnumber numberwithint:i]]; return self; 4) Losując obiekt z tej tablicy pamiętaj o jego usunięciu, tak aby w tablicy przy każdym losowaniu zostawało mniej elementów. Programowanie Urządzeń Mobilnych Apple - materiały do laboratorium - 5/6

-(NSNumber*)losuj{ int w= arc4random()%self.numery.count; NSNumber * n = [self.numery objectatindex:w]; [self.numery removeobject:n]; return n; Zadania samodzielne Zadanie 1 Napisz program, który będzie realizował zadanie kalkulatora (dodawanie, odejmowanie, mnożenie i dzielenie. Każde działanie ma być pobrane ze standardowego wejścia. Dla każdego działania ma być stworzony obiekt klasy Działanie i przekazany do obiektu klasy Kalkulator. Programowanie Urządzeń Mobilnych Apple - materiały do laboratorium - 6/6