PROJEKT INŻYNIERSKI AKADEMIA GÓRNICZO-HUTNICZA IM. STANISŁAWA STASZICA W KRAKOWIE

Wielkość: px
Rozpocząć pokaz od strony:

Download "PROJEKT INŻYNIERSKI AKADEMIA GÓRNICZO-HUTNICZA IM. STANISŁAWA STASZICA W KRAKOWIE"

Transkrypt

1 AKADEMIA GÓRNICZO-HUTNICZA IM. STANISŁAWA STASZICA W KRAKOWIE Wydział Inżynierii Metali i Informatyki Przemysłowej PROJEKT INŻYNIERSKI pt. Opracowanie aplikacji dla systemu Apple ios do obróbki zdjęć z użyciem frameworka Cocoa Touch oraz Quartz 2D Imię i nazwisko dyplomanta: Adrian Malina Kierunek studiów: Informatyka Stosowana Profil dyplomowania: Systemy Informatyki Przemysłowej Nr albumu: Opiekun: dr Magdalena Kopernik Podpis dyplomanta: Podpis opiekuna: Kraków 2012

2 Oświadczam, świadomy(- a) odpowiedzialności karnej za poświadczenie nieprawdy, że niniejszy projekt inżynierski wykonałem(- am) osobiście i że nie korzystałem(- am) ze źródeł innych niż wymienione w pracy. Kraków, dnia... Podpis dyplomanta... Strona 2

3 Spis treści: 0. Wstęp 4 Część I teoretyczna 1. System operacyjny Apple ios Historia systemu ios Architektura systemu ios 7 2. Środowisko Xcode 4 oraz język Objective-C Środowisko programistyczne Xcode Język Objective-C Przekazywanie komunikatów Interfejs i implementacja Akcesory Tworzenie obiektów Zarządzanie pamięcią Instruments Cel projektu 19 Część II projekt aplikacji do obróbki grafiki 4. Frameworki użyte w projekcie Cocoa Touch Quartz 2D Core Image Opis aplikacji Interfejs programu Struktura programu Okno pobierania zdjęcia z aparatu lub galerii Dostępne filtry graficzne Testowanie aplikacji i dyskusja wyników Wnioski i podsumowanie 37 Spis ilustracji 38 Spis tabel 38 Bibliografia 39 Strona 3

4 0. Wstęp Rosnąca popularność urządzeń mobilnych przyczyniła się do powstania nowoczesnych systemów operacyjnych wyposażonych w zestaw zaawansowanych środowisk programistycznych i frameworków służących do zwiększania efektywności pracy programisty nad projektem zapewniając sprawdzoną i stabilną funkcjonalność. Pomimo wcześniejszego istnienia kilku rozbudowanych systemów operacyjnych przeznaczonych dla urządzeń mobilnych (takich jak BlackBerry OS, czy Windows Mobile) prawdziwy wzrost popularności tych urządzeń przyniósł Apple iphone zaprezentowany na konferencji Macworld w 2007 roku. Początkowo nie wyróżniał się on na tle konkurencji, wręcz był on funkcjonalnie zacofany w stosunku do istniejących produktów (włączając w to brak możliwości instalowania zewnętrznych aplikacji), jednak spójny wygląd, oraz wyjątkowo prosta obsługa przyczyniły się do ponad sześciu milionów aparatów pierwszej generacji. Udostępnienie SDK (ang. Software Development Kit) zintegrowanego z IDE XCode oraz wprowadzenie cyfrowego modelu dystrybucji oprogramowania App Store przyczyniło się do gwałtownego rozwoju rynku aplikacji mobilnych. Tylko w pierwszych stu dniach działania usługi App Store osiągnięto wynik 200 milionów pobrań aplikacji. Skuteczność tego modelu dystrybucji oprogramowania natychmiast zauważyła konkurencja otwierając Google Android Market, Nokia Ovi Store czy też BlackBerry App World, jednak to Apple wciąż pozostaje niekwestionowanych liderem jeśli chodzi o przychód ze sprzedaży. O potędze rynku aplikacji mobilnych może świadczyć fenomen gry Angry Birds pobranej ponad pół miliarda razy. Framework Cocoa Touch wraz ze zintegrowanym środowiskiem programistycznym XCode oraz język Objective-C stały się obok Android SDK najbardziej pożądanymi umiejętnościami na rynku programowania urządzeń mobilnych, spychając królującą dotychczas Javę ME. Przedstawiona praca opisuje realizację projektu aplikacji do obróbki graficznej z wykorzystaniem warstwy systemu graficznego Quartz realizującego obsługę grafiki dwuwymiarowej. Strona 4

5 Część I - Teoretyczna Strona 5

6 1. System Operacyjny Apple ios 1.1 Historia systemu ios System Apple ios wywodzi się bezpośrednio z systemu Apple Mac OS X [1], który przeznaczony jest na komputery typu Macintosh. Początkowo były one wyposażone w procesory IBM PowerPC typu RISC, jednak z powodu problemów z dostawami, oraz wysoką ceną zostały one wyposażone w procesory o architekturze Intel x86. Mac OS X był nowym systemem [2], odcinającym się od architektury Mac OS Classic. Wywodzi się on z projektu NeXT przeznaczonego dla stacji roboczych, który to był oparty o architekturę Mach oraz 4.4BSD (Rysunek 1.). Jako natywny język programowania użyto obiektowo zorientowanego Objective-C. NeXT BSD 4.4 Rhapsody (1997) MacOS X (1999) ios (2007) Rysunek 1. Schemat rozwoju systemu ios (opracowanie własne na podstawie Kernelthread [2]). W 1997 roku podupadająca firma Apple postanowiła ponownie zatrudnić Steve a Jobsa, który postanowił wykupić swoją firmę NeXT Inc., po czym rozpoczął rozwój systemu Rapsody mającego być kontynuacją systemu Mac OS Classic przeznaczonego dla komputerów Macintosh. Duży nacisk położono na możliwość uruchamiania oprogramowania z klasycznej wersji systemu, jednocześnie wdrażając całkiem inną, Uniksową architekturę. Stabilna wersja systemu MacOS X 10.0 została wydana w 2001 roku. Mobilny system Apple ios, który początkowo nie posiadał nazwy własnej w prostej linii wywodzi się z biurkowego MacOS X. Został wydany w 2007 roku wraz z premierą pierwszego iphone a. Pierwsze wydanie ios systemu było zamknięte na aplikacje zewnętrze i nie posiadało publicznego SDK, co było główną przyczyną krytyki iphone a. Zestaw aplikacji ograniczał Strona 6

7 się jedynie do obsługi wiadomości tekstowych, kalendarza, galerii zdjęć, aparatu, kalkulatora, giełdy, map, pogody, notatek, zegara, telefonu, maila, przeglądarki internetowej i obsługi muzyki. Wraz z drugim wydaniem w 2008 roku Apple upubliczniło App Store a wraz z nim zestaw narzędzi programistycznych. Cyfrowy model dystrybucji oprogramowania stał się zamknięty, gdyż App Store jest jedyną, zgodną z licencją możliwością zainstalowania zewnętrznych aplikacji, jednak wysokie wymagania stawiane programistom w procesie akceptacji aplikacji do wirtualnego sklepu ograniczają dostępność do wadliwego, bądź złośliwego oprogramowania. 1.2 Architektura systemu ios Architektura systemu ios i MacOS X w dużej mierze jest wspólna, jednak wydzielono z Cocoa API warstwę dla urządzeń mobilnych Cocoa Touch, oraz uproszczono inne składniki systemu, bądź się ich pozbyto (jak np. maszyny wirtualnej Javy). System ios udostępnia cztery warstwy abstrakcji frameworków(rysunek 2.) [3], do których może odwoływać się programista. Cocoa Touch Media Services Core Services Core OS Jądro Środowisko jądra MACH System plików Sieć BSD Obsługa I/O Sterowniki Rysunek 2. Schemat budowy systemu ios (opracowanie własne na podstawie Techtopia [3]). Każda wyższa warstwa zwiększa poziom abstrakcji rozwiązania dostarczając przy tym narzędzia przyczyniające się do zmniejszenia nakładu pracy programisty oraz zredukowania objętości kodu, co bezpośrednio przyczynia się do poprawy jakości wytwarzanego oprogramowania. Strona 7

8 Przykładowo warstwa Cocoa Touch dostarcza framework Adress Book UI (AdressUI.framework) zapewniający integrację z książką adresową systemu. Tę samą funkcję może realizować framework Address Book (AdressBook.framework) z warstwy Core Services. Jednak wysoce abstrakcyjna warstwa z Cocoa Touch dostarcza nam domyślnie cztery kontrolery wraz z gotowym interfejsem graficznym do ich obsługi, których wywołanie i obsługa ogranicza się do kilku linijek kodu. Framework niższej warstwy abstrakcji ogranicza się jedynie do bezpośrednich odwołań do bazy danych książki adresowej pozostawiając nam realizację reszty zadań samodzielnie (np. stworzenie GUI). Warstwa Cocoa Touch jest najwyższą warstwą abstrakcji dostępną w systemie ios. Jej głównymi zadaniami są: obsługa rysowania elementów graficznego interfejsu użytkownika, zarządzanie cyklem życia aplikacji i wielozadaniowością oraz przechwytywanie i rozpoznawanie gestów wielodotykowych. Poza tym pozwala na integrację aplikacji z Mapami Google, książką adresową, obsługę wiadomości tekstowych i i, komunikację między wieloma urządzeniami, a także dostarcza możliwość włączenia do aplikacji reklam z platformy iad firmy Apple. Niższą warstwą jest warstwa multimedialna (ang. Media Services) zawierająca frameworki do renderowania grafiki i tekstu oraz obsługę audio. Do najważniejszych z nich można zaliczyć Core Animations, Core Audio, Core Text, OpenAL, OpenGL ES oraz (użyty w moim projekcie) Quartz 2D wraz z podlegającym mu frameworkiem Core Image, które dostarczają wydajne środowisko do renderowania grafiki 2D z użyciem GPU. Warstwa usług podstawowych (ang. Core Services) dostarcza najbardziej istotne usługi dla działania systemu, do których odwołują się warstwy wyższego poziomu. Kluczowymi frameworkami dostarczonymi przez Core Services są: Foundation Framework najważniejszy framework używany przy pracy z Objective- C. Jest zestawem klas mającym na celu przyśpieszenie pracy z językiem Objective-C. Klasy dostarczane przez niego rozpoczynają się od liter NS od nazwy systemu NextStep. Core Foundation Framework oparty o język C dostarcza podstawową funkcjonalność taką jak typy danych, kolekcje, praca ze Stringami, komunikację socketową i obsługę portów, wątki itp. Core Data Framework - zarządza modelem przechowywania danych. Zamiast pisać strukturę przechowywania danych ręcznie, modeluje się je z pomocą graficznych narzędzi Xcode. Przy wykonywaniu aplikacji wymodelowana struktura danych jest tworzona i zarządzana za pomocą tego frameworku. Dane są przechowywane przy Strona 8

9 pomocy bazy SQLite, a framework zapewnia sprawdzanie poprawności typów danych, sprawdzania spójności między relacjami, wsparcie dla grupowania, filtrowania i organizowania danych w pamięci. Core Location Framework zbiera informacje o położeniu za pomocą GPS, stacji bazowych GSM oraz sieci WiFi. Biblioteki SQLite dostarczają lekkie i wydajne środowisko SQL, którego obsługą zajmuje się Core Data Framework. Programista ios rzadko odwołuje się do warstwy Core Services bezpośrednio szukając rozwiązania prostszego, dostarczonego przez wyższe warstwy abstrakcji. Ostatnią warstwą jest warstwa bazowa systemu Core OS która odwołuje się bezpośrednio do sprzętu. Obsługuje urządzenia takie jak Akcelerometr, Bluetooth, a także zapewnia obsługę akcesoriów zewnętrznych wpinanych do urządzenia za pomocą 30- pinowego wejścia, bądź przez Bluetooth. Najważniejszą częścią tej warstwy jest System. System oparty jest o hybrydowe jądro Darwin (Tabela 1.) [4] przystosowane do pracy pod 32-bitową architekturą typu RISC ARM (ang. Advanced RISC Machine). Łączy ono mikrojądro Mach 3, oraz wiele elementów systemu 4.4BSD takich jak stos sieciowy, czy wirtualne systemy plików. Dzięki włączeniu krytycznych usług do jądra można zachować wysoką wydajność dla najważniejszych zadań (jak w jądrach monolitycznych). Natura mikrojądra natomiast zapewnia modułowość, bez potrzeby wkompilowania całej funkcjonalności do jądra opcjonalne moduły mogą działać w przestrzeni użytkownika. MACH BSD Mikrojądro Mach zarządza zasobami takimi jak użycie procesora, pamięci, planowanie wykonywania procesów oraz dostarcza infrastrukturę do komunikacji z innymi warstwami systemu operacyjnego. Warstwa BSD dostarcza obsługę systemów plików, sieci, systemu bezpieczeństwa UNIX, modelu procesów BSD (sygnały, ID procesów itp.), zgodność z API POSIX a oraz wątki POSIX owe pthreads. Tabela 1. Opis warstw jądra (opracowane na podstawie osxbook.com [4]) Poza UNIXowym hybrydowym jądrem warstwa System dostarcza zestaw narzędzi bazowych. Za pomocą biblioteki LibSystem (napisanej w języku C) mamy dostęp do obsługi wątków (POSIX), sieci (BSD), systemu plików, wejścia/wyjścia, usług DNS, informacji lokalizacyjnych, zarządzania pamięci czy też funkcji matematycznych. Strona 9

10 2. Środowisko Xcode 4 oraz język Objective-C W tym rozdziale zostały przedstawione dwa główne narzędzie do tworzenia aplikacji dla systemu ios środowisko programistyczne Xcode [5], wraz z jego narzędziami pomocniczymi, oraz język Objective-C przeznaczony do programowania w dedykowanym dla ios SDK. 2.1 Środowisko programistyczne Xcode Xcode [5] jest zintegrowanym środowiskiem programistycznym przeznaczonym do rozwoju oprogramowania na platformę MacOS X oraz ios. Poza edytorem kodu i kompilatorem zawiera narzędzia do debugowania, kontroli wersji, emulator urządzeń ios a, a także narzędzia do badania wydajności, diagnostyki połączeń sieciowych, Bluetooth, USB. Środowisko obsługuje wiele języków programowania w tym: C, C++, Objective-C, Java, Python, Ruby. Potrafi ono tworzyć pliki wykonywalne uruchamiające się jednocześnie na platformie PowerPC, a także Intel x86. W przypadku aplikacji na ios docelową architekturą jest ARM. Rysunek 3. Podstawowe narzędzia środowiska Xcode 4 (zrzut ekranu) Podstawowym zestawem aplikacji są: Xcode zintegrowane środowisko programistyczne. Instruments zestaw narzędzi debbugerskich. Dashcode narzędzie do tworzenia widgetów przystosowanych do systemowego Dashboarda (specjalnej przestrzeni, w której można je umieszczać), a także do tworzenia małych narzędzi dla przeglądarki Safari oraz Mobile Safari. Quartz Composer środowisko do programowania wizualnego. Efekty graficzne tworzy się składając z gotowych komponentów diagramy. Powstające kompozycje Strona 10

11 mogą być wyeksportowane do postaci wtyczki i użyte w zewnętrznych programach. Za pomocą akcji Automatora stworzony efekt może być zaaplikowany do dowolnego zdjęcia, filmu, czy też kontrolki w aplikacji. Niestety na chwilę obecną nie można ich użyć bezpośrednio przez SDK ios. W porównaniu do poprzednich wersji Xcode a wersja 4 została znacząco zmieniona [5]. Interfejs programu został zunifikowany. Wielookienkowy tryb pracy został sprowadzony do jednego okna roboczego. Projektant interfejsu aplikacji Interface Builder - został zintegrowany z głównym oknem aplikacji. Aby zaprogramować wybraną akcję (tzw. Outlet) wystarczy przeciągnąć kontrolkę do okna edytora klas. Moduł Assistant służący do modelowania baz danych pozwala na wizualne projektowanie struktury bazy. Co więcej każda zmiana w diagramie powoduje automatyczne generowanie kodu klas służących do obsługi danych. W gestii programisty pozostają jedynie ewentualne drobne poprawki. Okno programu Xcode 4 (Rysunek 4.) domyślnie składa się z kilku głównych paneli, choć jest w dużym stopniu konfigurowalne. Lewa strona górnego panelu służy do sterowania procesem wykonywania aplikacji można wybrać rodzaj kompilacji (Run, test, profile, analyse), zatrzymać aplikację, wybrać urządzenie docelowe (skonfigurowane urządzenie fizyczne, bądź też symulator), przeskakiwać między pułapkami. Prawa strona odpowiada za włączanie paneli środowiska. Nawigacja Edytor kodu Debuggowanie Biblioteki Inspektor Rysunek 4. Okno programu Xcode 4. Strona 11

12 Panel nawigacji (Rysunek 5.) [6] służy do przeglądania zasobów projektu. W zależności od wybranej ikony można nawigować w różny sposób: Rysunek 5. Panel nawigacji (ze strony ios Developer Library [6]). Project navigator pozwala na przeglądanie projektu wyświetlając jego zawartość jako pliki. Widok umożliwia tworzenie nowych plików, dołączanie frameworków do projektu, oraz przeglądanie plików wynikowych działania projektu. Symbol navigator dostarcza hierarchiczny schemat klas, metod, atrybutów i innych struktur związanych z paradygmatem programowania obiektowego. Pozwala na łatwą refaktoryzację oraz enkapsulację kodu. Search navigator wyszukiwarka fraz. Issue navigator pokazuje błędy i ostrzeżenia związane z kodem projektu a także proponuje rozwiązania problemów. Debug navigator zawiera podstawowe narzędzia debuggerskie. Breakpoints navigator pomaga w przeskakiwaniu między pułapkami podczas wykonywania programu. Log navigator dostarcza interfejs do przeglądania logów tworzonych podczas kompilacji oraz podczas czasu pracy aplikacji. Edytor kodu posiada wiele pomocniczych funkcjonalności przyspieszających pracę z kodem, takich jak automatyczne formatowanie kodu, generowanie wcięć, sugerowanie i poprawianie kodu oraz dostęp do dokumentacji online. Dzięki funkcji Assistant editor możemy podzielić okno edytora na dwie części i jednocześnie poruszać się po pliku nagłówkowym i implementacji w przypadku edycji klas. Uruchamiając plik widoku (.xib lub.nib) możemy w prosty sposób tworzyć akcje przeciągając jedynie wybraną kontrolkę (np. Button) do okna edycji klasy. Assistant uzupełni kod tworząc twz. outlet o wybranych parametrach. Co więcej Assistant editor pozwala na graficzne tworzenie modeli relacyjnych baz danych i ich późniejszy eksport w formie klas używających frameworka Core Data. Panel Inspektora wyświetla informacje o obecnie edytowanym pliku takie jak kodowanie, rodzaj znaków zakończenia linii czy też ścieżkę pliku. Strona 12

13 Panel Bibliotek (Rysunek 6.) [6] zawiera gotowe elementy, które można wykorzystać w tworzonym projekcie. Zakładka File Template zawiera gotowe schematy plików takich jak klasy, widoki, kontrolery. Code Snippets zawiera kawałki kodu, które można używać wielokrotnie, np. deklaracje struktur obiektowych (klasy, typy wyliczeniowe, unie, struktury), pętle, bloki wyjątków, bloki switch czy też alokowanie pamięci. Rysunek 6. Panel bibliotek (opracowanie własne na podstawie ios Developer Library [6]). Panel Objects jest zbiorem funkcji i kontrolek frameworka Cocoa Touch, które zostały opisane w Rozdziale 4.1. Panel Media dostarcza nam dostęp do zawartości multimedialnej projektu, takich jak pliki graficzne, audio i wideo. W nowym Xcode [7] wprowadzono także nowy kompilator Apple LLVM Compiler 2.0 dla języków C, Objective-C oraz C++, który jest znacznie szybszy od używanego wcześniej GCC. Podświetlanie składni oraz uzupełnianie kodu jest realizowane przez ten sam parser co podczas kompilacji, a nie przez wewnętrzny parser środowiska, dzięki czemu już podczas edycji kodu eliminujemy możliwe błędy kompilacji. 2.2 Język Objective-C Język Objective-C [8-10] powstał jako rozszerzenie obiektowe języka C za wzór przyjmując pierwszy w pełni język obiektowy Smalltalk. Aby odróżnić elementy obiektowe języka od klasycznej składni C użyto symboli nawiasów kwadratowych [] oraz Klasa składa się z dwóch plików pliku nagłówkowego.h (ang. header), oraz pliku.m (ang. implementation) zawierającego definicje metod. Do języka wprowadzono także własne typy na wzór typów z czystego C, z których najważniejszy jest id, będący referencją do obiektu. Dla programisty popularnych języków obiektowych jak Java, czy C++, których obiektowość jest oparta o język Simula składnia zaczerpnięta ze Smalltalka może wydawać się dziwna. Strona 13

14 2.2.1 Przekazywanie komunikatów W języku Objective-C nie wykonuje się operacji wywołując metody, a wysyła komunikaty. Aby wysłać komunikat method do obiektu object z argumentem argument należy użyć następującej składni: [obiect method:argument]; co odpowiada wywołaniu metody w C++: obiect -> method(argument); Możliwe jest także używanie komunikatów zagnieżdżonych (w przypadku więcej niż dwóch komunikatów przyjęto konwencję zapisywania ich w wielu linijkach): [obiect method:[obiect2 method2]]; Bardzo charakterystyczne jest przekazywanie komunikatów z wieloma parametrami. Wywołanie metody zdefiniowanej tak: -(int) zmienpolozeniex:(int)x Y:(int)y Z:(int)z; odbywa się następująco: [obiect zmienpolozeniex:5 Y:15 Z:25]; Takie przekazanie komunikatu nie ma swojego odpowiednika w języku C++ w wywoływaniu metody Interfejs i implementacja Pliki nagłówkowe i implementacja klasy przypomina tę znaną z języka C++. Obrazowy interfejs i implementację przedstawia Tabela 2. przyklad.h #ifndef przyklad h #define przyklad h C++ przyklad.cpp #include <iostream>; #include "przyklad.h"; class Przyklad { private: int zmienna; public: // metody statyczne static typ metodastatyczna(); // metody obiektu typ metoda(typ parametr, typ parametr2); }; typ Przyklad::metodaStatyczna(){ // ciało metody return zmienna; } typ Przyklad::metoda(typ parametr, typ parametr2){ // ciało metody return zmienna; } #endif Strona 14

15 przyklad.h #import Przyklad : NSObject{ //zmienne int zmienna; } // metody klasy +(typ)metodastatyczna; //metody obiektu -(typ)metoda:(typ)parametr Objective- C przyklad.m #import Przyklad +(typ) metodastatyczna{ // ciało metody return zmienna; } -(typ)metoda:(typ)parametr kilkaparametrow:(typ)parametr2{ // ciało metody return zmienna; Tabela 2. Porównanie schematycznego wyglądu klasy w językach C++ i Objective- C Słowo w języku Objective-C jest odpowiednikiem deklaracji w pliku nagłówkowym w języku C++ (nie należy go mylić ze słowem interface znanym z języków Java i C#, które deklarują abstrakcyjną reprezentację klasy w języku Objective-C odpowiedzialne są za to protokoły Podobnie jak w języku C++ zmienne i metody mają swój poziom widoczności (co określają Odpowiednikiem słowa kluczowego static w Objective-C jest symbol +. Metodę opatrzoną tym symbolem nazywamy metodą klasową Akcesory Tradycyjny zapis gettera i settera wygląda następująco: [obiekt setzmienna: (void)zmienna]; // setter wyjscie = [obiekt zmienna]; // getter Przyjęło się, iż nie używa się prefiksu get. Od wprowadzenia Objective-C 2.0 istnieje możliwość używania notacji z kropką: obiekt.zmienna = (typ)zmienna2; // setter wyjscie = obiekt.zmienna; // getter Należy pamiętać, iż w jednym projekcie powinno się używać jednej konwencji odwoływania się do obiektu. W języku Objective-C zmienne obiektu są zmiennymi prywatnymi w związku z czym trzeba utworzyć odpowiedni akcesor: -(typ) metoda:(typ)zmienna { return [self innametoda: zmienna]; } Strona 15

16 co odpowiadało by w C++: typ metoda (typ)zmienna { return this -> innametoda(zmienna); } Tworzenie obiektów Istnieją dwa główne sposoby tworzenia obiektów. Pierwszy z nich jest bardziej automatyczny i tworzy obiekty samozwalniające (ang. autorelease) się: typ* nowyobiekt = [typ zmienna]; Drugi zagnieżdżony sposób jest sposobem niskopoziomowym: typ* nowyobiekt = [[typ alloc] init]; Metoda alloc rezerwuje pamięć i instancję obiektu określonego typu, a metoda init dokonuje wstępnej konfiguracji obiektu, jak ustawianie zmiennych instancji. Używając typów wbudowanych Objective-C przeważnie nie znamy szczegółów tego procesu. Jednak wiele klas posiada wiele wersji metody init, np. klasa NSNumber: NSNumber* nowyobiekt = [[NSNumber alloc] initwithfloat:5.2]; Zarządzanie pamięcią W porównaniu do takich języków jak Java, czy C# Objective-C nie oferuje Garbage Collectora do 5-tej wersji ios SDK. Jeżeli alokujemy pamięć dla obiektu musimy pamiętać o zwalnianiu pamięci po zakończeniu pracy z obiektem. Do śledzenia alokacji i ewentualnych wycieków pamięci można użyć narzędzi Instruments opisanych w Rozdziale 2.3. Najprostsze operacje zarządzania pamięcią to alokowanie i zwalnianie pamięci (Rysunek 7. (a)). Do tego służą metody alloc oraz release: typ *nowyobiekt = [[typ alloc] init ]; // alokujemy pamięć [argument release]; // zwalniamy pamięć (a) (b) (1) (0) [obj alloc] [obj release] (1) (0) (0) [obj alloc] [obj autorelease] [obj release] (c) (1) (0) (1) (0) [obj alloc] [obj autorelease] [obj retain] [obj release] Rysunek 7. Sposoby zarządzania pamięcią (opracowanie własne). Strona 16

17 Aby zwolnić pamięć można oprócz release użyć metody autorelease, która zwalnia obiekt, ale nie robi tego natychmiastowo (Rysunek 7. (b)). Szary kwadrat oznacza, iż obiekt istnieje w pamięci, natomiast (1) oraz (0) określa czy istnieje dostęp do obiektu. Trzecia metoda (Rysunek 7. (c)). umożliwia alokację obiektu, skonfigurowanie go i automatyczne zwolnienie z pamięci, jednak dostęp do obiektu jest zachowywany przez metodę retain. Jest to przydatne w momencie kiedy chcemy uzyskać dostęp do obiektu ostatni raz. Po wywołaniu metody retain obiekt zostanie usunięty z pamięci. W Objective-C 2.0 został wprowadzony mechanizm odśmiecający pamięć nazywany Automatic Reference Counting. 2.3 Instruments Narzędzie Instruments składa się z wielu modułów(rysunek 8.) służących do badania jakości wytwarzanego oprogramowania, które przedstawia w formie wykresów, ale także umożliwia dostęp do dokładnych danych w formie logów tekstowych. Rysunek 8. Narzędzie Instruments dostępne moduły (zrzut ekranu). Moduły odpowiedzialne są za: Allocations śledzi alokowanie pamięci przez konkretne obiekty Strona 17

18 Leaks - poszukuje wycieków pamięci i prowadzi statystyki alokacji pamięci przez obiekty Activity Monitor monitor aktywności prowadzi statystyki dotyczące użycia procesora, pamięci, dysku czy sieci. Automation pozwala na tworzenie skryptów, które symulują interakcje z interfejsem użytkownika aplikacji Energy Diagnostics zbiera informacje na temat zużycia energii przez procesor, wyświetlacz, moduły Bluetooth, WiFi i GSM. Network Connections analizuje ruch sieciowy Core Animations bada wydajność renderowania animacji przy pomocy frameworka Core Animations OpenGL ES Analysis wyszukuje i analizuje problemy z wydajnością renderowania grafiki z użyciem OpenGL ES Instruments umożliwia śledzenie wykonywania programów dla urządzeń fizycznych z systemem ios oraz MacOS X, a także pozwala na pracę z symulatorem systemu ios. Strona 18

19 3. Cel projektu Celem niniejszego projektu jest stworzenie aplikacji do podstawowej obróbki zdjęć dla systemu ios z możliwością pobierania zdjęć z wbudowanej kamery bądź też z galerii zdjęć. W celu zrealizowania projektu posłużono się środowiskiem programistycznym Xcode 4 wraz z zainstalowanym ios SDK 5. Założono, iż interakcja między użytkownikiem a urządzeniem mobilnym ma być zrealizowana za pomocą frameworka Cocoa Touch, a stworzona aplikacja powinna być oparta o wzorzec projektowy Model-Widok-Kontroler. Renderowanie grafiki ma być zaimplementowane poprzez graficzne frameworki Quartz 2D oraz Cocoa Touch, a sama aplikacja ma umożliwiać pobieranie zdjęć bezpośrednio za pomocą aparatu wbudowanego w urządzenie. Strona 19

20 Część II - Projekt aplikacji do obróbki zdjęć Strona 20

21 4. Frameworki użyte w projekcie Założeniem przy projektowaniu aplikacji mobilnej na system ios było maksymalne wykorzystanie możliwości dostarczanych wraz z SDK firmy Apple a co za tym idzie zminimalizowanie implementacji własnych funkcji do niezbędnego minimum. Użyte SDK [3] w wersji 5-tej dostarcza ważną nowość przy projektowaniu aplikacji mianowicie framework Core Images, który wcześniej był dostępny jedynie dla biurkowej linii systemów Apple Mac OS X. 4.1 Cocoa Touch Framework Cocoa Touch jest obiektowym frameworkiem napisanym głównie w języku Objective-C służącym przede wszystkim do implementacji interakcji pomiędzy użytkownikiem a urządzeniem. Cocoa Touch implementuje wzorzec projektowy Model-Widok-Kontroler (Rysunek 8.) [12]. Model jest zestawem klas odpowiadających za reprezentację danych. Wszystkie funkcje operujące na zbiorach danych powinny być zawarte w nim. Model nie odpowiada za graficzną reprezentację danych, nie musi nawet wiedzieć, że takowa istnieje. Całość danych zawartych w modelu powinna być zhermetyzowana. Kontroler Model Widok Rysunek 9. Wzorzec projektowy Model- Widok- Kontroler [12]. Widok odpowiada za graficzną reprezentację programu w środowisku Xcode widok tworzy się za pomocą projektanta interfejsu Interface Buildera. Do stworzenia podstawowego interfejsu wystarczą proste operacje typu przeciągnij i upuść w tej pracy jedynie kilka widoków zostało wzbogaconych o własny kod. Większość interakcji realizuje wprowadzony przez SDK 5 Storyboard [13] narzędzie służące do tworzenia i dodawania interakcji za pomocą graficznego edytora. Storyboard (Rysunek 10.) rozwiązuje znaczną część problemów z nawigacją między widokami w projekcie występującymi w poprzednich wersjach SDK. Strona 21

22 Rysunek 10. Schemat widoków utworzonych za pomocą Storyboard (zrzut ekranu). Strona 22

23 Kontroler jest łącznikiem pomiędzy widokiem a reprezentacją danych. Odpowiedzialny jest za logikę aplikacji oraz za komunikację pomiędzy modelem a widokiem. Najważniejszą klasą w aplikacji jest klasa AppDelegate. Zawiera ona okno główne oraz domyślne metody mówiące o cyklu życia aplikacji. #import AppDelegate : UIResponder (strong, nonatomic) UIWindow Klasa ta domyślnie tworzy nową instancję okna, która automatycznie poszukuje głównego kontrolera widoków klasy RootViewController. Klasa ta nie jest niczym innym jak kontrolerem widoku utworzonego przez Storyboarda, który znajduje się w pliku MainStoryboard.storyboard, będącego plikiem XML. W przypadku tej aplikacji realizowany jest widok stron z klasy UIPageViewController. #import RootViewController : UIViewController (strong, nonatomic) UIPageViewController Framework Cocoa Touch dostarcza pokaźny zestaw domyślnych obiektów. Zawarte są w nim między innymi: Kontrolki: o Label etykieta tekstowa, o Button przycisk dotykowy, o Text Field pole tekstowe o Slider suwak, o Switch przełącznik stanu, Widoki: o Table View widok tabeli (wiersze), o Image View widok obrazka, o Text View widok tekstu, o Web View zagnieżdżony widok strony internetowej, o Map View widok mapy, Rozpoznawanie gestów: o Tap Guesture gest pukania, o Pinch Guesture - gest szczypania, Strona 23

24 o Rotation Guesture gest obracania, o Swipe Guesture gest przesuwania, o Pan Guesture gest rozsuwania palców, o Long Press Guesture gest długiego przytrzymania palców, Obiekty i kontrolery o View Controller kontroler widoku, o Table View Controller kontroler widoku tabeli, o Navigation Controller kontroler widoku nawigacji, o Tab Bar Controller kontroler widoku kart, o Page View Controller kontroler widoku stron, Aby móc określić interakcje między obiektem a jego graficzną formą należy nadać obiektowi ujście (ang. outlet) bądź akcję. Ujście pozwala na odwołanie się do obiektu w celu, np. zmiany jego właściwości (np. zmiana etykiety tekstowej), natomiast akcja pozwala na określenie, która metoda klasy może być wywoływana bezpośrednio z widoku. #import Filters : UIView { UISlider *rotate; // definicja obiektu (nonatomic, retain) IBOutlet UISlider *rotate; // ustawiamy outlet -(IBAction)doRotate:(id)sender; // definicja metody do której można przypisać akcję Po poprawnym ustaleniu w kodzie outletów oraz akcji możliwe będzie za pomocą projektanta interfejsów ustalenie interakcji (przez przeciągnięcie ikony plusa do odpowiedniej kontrolki w widoku). 4.2 Quartz 2D Framework Quartz 2D [14] jest dwuwymiarowym silnikiem renderującym dla systemów MacOS X dostarczającym podstawowych funkcji graficznych takich jak rysowanie prymitywów, przezroczystość, cienie, zarządzanie kolorami czy anty-aliasing. Pomimo, iż w projekcie nie został on bezpośrednio użyty to jest on podstawą dla innych frameworków systemu ios, takich jak Core Animation, Core Video, OpenGL ES oraz użyty w moim projekcie Core Images. Strona 24

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

Politechnika Poznańska, Instytut Informatyki, TWO/GE. Programowanie dla ios Politechnika Poznańska, Instytut Informatyki, TWO/GE Programowanie dla ios 13 stycznia 2012 Urządzenia ios Urządzenie Data prezentacji iphone 9.01.2007/06.2007 ipod touch 5.09.2007 iphone 3G 9.06.2008

Bardziej szczegółowo

Programowanie dla ios

Programowanie dla ios Programowanie dla ios 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

Bardziej szczegółowo

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

Programowanie aplikacji na iphone. Wstęp do platformy ios. Łukasz Zieliński Programowanie aplikacji na iphone. Wstęp do platformy ios. Łukasz Zieliński Plan Prezentacji. Programowanie ios. Jak zacząć? Co warto wiedzieć o programowaniu na platformę ios? Kilka słów na temat Obiective-C.

Bardziej szczegółowo

Programowanie dla ios

Programowanie dla ios Programowanie dla ios 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...

Bardziej szczegółowo

Programowanie dla ios

Programowanie dla ios 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

Bardziej szczegółowo

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

Temat 3. Projektowanie interfejsu użytkonwnika Kalkulator pierwszy program dla IOS Temat 3. Projektowanie interfejsu użytkonwnika Kalkulator pierwszy program dla IOS Wymagana wiedza wstępna: 1) Student musi 1) Umieć stworzyć projekt aplikacji konsolowej w XCode z wykorzystaniem Objective-C

Bardziej szczegółowo

Programowanie dla iphone projektowanie interfejsu użytkownika

Programowanie dla iphone projektowanie interfejsu użytkownika #import "Fraction.h" #import @implementation Fraction -(Fraction*) initwithnumerator: (int) n denominator: (int) d { self = [super init]; } if ( self ) { [self setnumerator: n anddenominator:

Bardziej szczegółowo

Klasy Obiekty Dziedziczenie i zaawansowane cechy Objective-C

Klasy Obiekty Dziedziczenie i zaawansowane cechy Objective-C #import "Fraction.h" #import @implementation Fraction -(Fraction*) initwithnumerator: (int) n denominator: (int) d { self = [super init]; } if ( self ) { [self setnumerator: n anddenominator:

Bardziej szczegółowo

OBC01/TOPMOB Projektowanie w języku Objective-C

OBC01/TOPMOB Projektowanie w języku Objective-C Szkolenie skierowane do: Programistów zaczynających pracę z platformą ios na urządzeniach iphone oraz ipad. Tematy zajęć: Dzień 1 1. Wprowadzenie Zarys historyczny NextStep oraz rozwój Apple ios Historia

Bardziej szczegółowo

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

GLKit. Wykład 10. Programowanie aplikacji mobilnych na urządzenia Apple (IOS i ObjectiveC) #import Fraction.h #import <stdio.h> #import "Fraction.h" #import @implementation Fraction -(Fraction*) initwithnumerator: (int) n denominator: (int) d { self = [super init]; } if ( self ) { [self setnumerator: n anddenominator:

Bardziej szczegółowo

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

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych PAŃSTWOWA WYŻSZA SZKOŁA ZAWODOWA W ELBLĄGU INSTYTUT INFORMATYKI STOSOWANEJ Sprawozdanie z Seminarium Dyplomowego Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Bardziej szczegółowo

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

Dzięki szkoleniu. Dni: 3. Opis: Adresaci szkolenia Kod szkolenia: Tytuł szkolenia: IOS/START Programowanie ios - szybki start Dni: 3 Opis: Adresaci szkolenia Szkolenie adresowane jest do programistów, którzy chcą od podstaw poznać język Objective- C oraz

Bardziej szczegółowo

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

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa 1 Java Wprowadzenie 2 Czym jest Java? Język programowania prosty zorientowany obiektowo rozproszony interpretowany wydajny Platforma bezpieczny wielowątkowy przenaszalny dynamiczny Rozumiana jako środowisko

Bardziej szczegółowo

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

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Język programowania prosty bezpieczny zorientowany obiektowo wielowątkowy rozproszony przenaszalny interpretowany dynamiczny wydajny Platforma

Bardziej szczegółowo

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

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans. GRZEGORZ FURDYNA Krótka Historia Co to jest NetBeans? Historia Wersje NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły NetBeans Profiler Narzędzie do projektowania GUI Edytor NetBeans

Bardziej szczegółowo

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

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8 Programowanie Urządzeń Mobilnych Laboratorium nr 7, 8 Android Temat 1 tworzenie i uruchamianie aplikacji z użyciem Android SDK Krzysztof Bruniecki 1 Wstęp Platforma Android jest opartym na Linuxie systemem

Bardziej szczegółowo

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

Temat 4. Storyboard i element interfejsu użytkownika Gra w kulki- część 1 Temat 4. Storyboard i element interfejsu użytkownika Gra w kulki- część 1 Wymagana wiedza wstępna: 1) Student musi 1) Umieć stworzyć projekt aplikacji konsolowej w XCode z wykorzystaniem Objective-C 2)

Bardziej szczegółowo

Java jako język programowania

Java jako język programowania Java jako język programowania Interpretowany programy wykonują się na wirtualnej maszynie (JVM Java Virtual Machine) Składnia oparta o język C++ W pełni zorientowany obiektowo (wszystko jest obiektem)

Bardziej szczegółowo

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

BUDOWA APLIKACJI NA PLATFORMĘ IPHONE/IPAD. dr inż. Marcin Tomana BUDOWA APLIKACJI NA PLATFORMĘ IPHONE/IPAD dr inż. Marcin Tomana ipod Touch ipod nano - najpopularniejsze urządzenie do odtwarzania muzyki - ograniczone jednak funkcje! ipod Touch - to możliwości prawie

Bardziej szczegółowo

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

Temat 1. Podstawy Środowiska Xcode i wprowadzenie do języka Objective-C 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

Bardziej szczegółowo

Dokument Detaliczny Projektu

Dokument Detaliczny Projektu Dokument Detaliczny Projektu Dla Biblioteki miejskiej Wersja 1.0 Streszczenie Niniejszy dokument detaliczny projektu(ddp) przedstawia szczegóły pracy zespołu projektowego, nad stworzeniem aplikacji bazodanowej

Bardziej szczegółowo

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

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę. Języki C i C++ to bardzo uniwersalne platformy programistyczne o ogromnych możliwościach. Wykorzystywane są do tworzenia systemów operacyjnych i oprogramowania użytkowego. Dzięki niskiemu poziomowi abstrakcji

Bardziej szczegółowo

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym

Plan. Wprowadzenie. Co to jest APEX? Wprowadzenie. Administracja obszarem roboczym 1 Wprowadzenie do środowiska Oracle APEX, obszary robocze, użytkownicy Wprowadzenie Plan Administracja obszarem roboczym 2 Wprowadzenie Co to jest APEX? Co to jest APEX? Architektura Środowisko Oracle

Bardziej szczegółowo

Android - wprowadzenie. Łukasz Przywarty 171018

Android - wprowadzenie. Łukasz Przywarty 171018 Android - wprowadzenie Łukasz Przywarty 171018 Ramowy plan prezentacji Czym jest Android: definicja, krótka historia. Architektura systemu. Architektura aplikacji. Właściwości systemu. Środowisko deweloperskie.

Bardziej szczegółowo

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody Obiektowy PHP Czym jest obiekt? W programowaniu obiektem można nazwać każdy abstrakcyjny byt, który programista utworzy w pamięci komputera. Jeszcze bardziej upraszczając to zagadnienie, można powiedzieć,

Bardziej szczegółowo

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

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 1. Wprowadzenie do aplikacji internetowych

Bardziej szczegółowo

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer; 14.3. Podstawy obsługi X Window 14.3. Podstawy obsługi X Window W przeciwieństwie do systemów Windows system Linux nie jest systemem graficznym. W systemach Windows z rodziny NT powłokę systemową stanowi

Bardziej szczegółowo

Plan. Aplikacja. Architektura aplikacji. Architektura aplikacji Tworzenie aplikacji Application Builder podstawy

Plan. Aplikacja. Architektura aplikacji. Architektura aplikacji Tworzenie aplikacji Application Builder podstawy Plan Podstawy narzędzia Application Builder, 2 budowa strony, kreatory Architektura Tworzenie Tworzenie formularza tabelarycznego Budowa strony 2 Architektura Aplikacja kolekcja stron połączonych ze sobą

Bardziej szczegółowo

Tworzenie oprogramowania

Tworzenie oprogramowania Tworzenie oprogramowania dr inż. Krzysztof Konopko e-mail: k.konopko@pb.edu.pl 1 Tworzenie oprogramowania dla systemów wbudowanych Program wykładu: Tworzenie aplikacji na systemie wbudowanym. Konfiguracja

Bardziej szczegółowo

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

Projektowanie, tworzenie aplikacji mobilnych na platformie Android Program szkolenia: Projektowanie, tworzenie aplikacji mobilnych na platformie Android Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Projektowanie, tworzenie aplikacji mobilnych

Bardziej szczegółowo

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

Zacznij Tu! Poznaj Microsoft 2012. Visual Basic. Michael Halvorson. Przekład: Joanna Zatorska Zacznij Tu! Poznaj Microsoft 2012 Visual Basic Michael Halvorson Przekład: Joanna Zatorska APN Promise, Warszawa 2013 Spis treści Wstęp...................................................................vii

Bardziej szczegółowo

Czym są właściwości. Poprawne projektowanie klas

Czym są właściwości. Poprawne projektowanie klas Z akcesorów get i set korzysta każdy kto programuje w C#. Stanowią one duże udogodnienie w programowaniu obiektowym. Zapewniają wygodę, bezpieczeństwo i znacząco skracają kod. Akcesory są ściśle związane

Bardziej szczegółowo

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery http://xqtav.sourceforge.net XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery dr hab. Jerzy Tyszkiewicz dr Andrzej Kierzek mgr Jacek Sroka Grzegorz Kaczor praca mgr pod

Bardziej szczegółowo

REFERAT PRACY DYPLOMOWEJ

REFERAT PRACY DYPLOMOWEJ REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i implementacja środowiska do automatyzacji przeprowadzania testów aplikacji internetowych w oparciu o metodykę Behavior Driven Development. Autor: Stepowany

Bardziej szczegółowo

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Instalacja SQL Server Express. Logowanie na stronie Microsoftu Instalacja SQL Server Express Logowanie na stronie Microsoftu Wybór wersji do pobrania Pobieranie startuje, przechodzimy do strony z poradami. Wypakowujemy pobrany plik. Otwiera się okno instalacji. Wybieramy

Bardziej szczegółowo

Wprowadzenie do Objective-C

Wprowadzenie do Objective-C 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

Bardziej szczegółowo

Forum Client - Spring in Swing

Forum Client - Spring in Swing Forum Client - Spring in Swing Paweł Charkowski. 0. Cel projektu Celem projektu jest próba integracji Spring Framework z różnymi technologiami realizacji interfejsu użytkownika, oraz jej ocena. Niniejszy

Bardziej szczegółowo

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

Część I Rozpoczęcie pracy z usługami Reporting Services Spis treści Podziękowania... xi Wprowadzenie... xiii Część I Rozpoczęcie pracy z usługami Reporting Services 1 Wprowadzenie do usług Reporting Services... 3 Platforma raportowania... 3 Cykl życia raportu...

Bardziej szczegółowo

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

Kurs programowania. Wstęp - wykład 0. Wojciech Macyna. 22 lutego 2016 Wstęp - wykład 0 22 lutego 2016 Historia Simula 67 język zaprojektowany do zastosowan symulacyjnych; Smalltalk 80 pierwszy język w pełni obiektowy; Dodawanie obiektowości do języków imperatywnych: Pascal

Bardziej szczegółowo

Konspekt pracy inżynierskiej

Konspekt pracy inżynierskiej Konspekt pracy inżynierskiej Wydział Elektryczny Informatyka, Semestr VI Promotor: dr inż. Tomasz Bilski 1. Proponowany tytuł pracy inżynierskiej: Komunikator Gandu na platformę mobilną Android. 2. Cel

Bardziej szczegółowo

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

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA Java w 21 dni / Rogers Cadenhead. Gliwice, cop. 2016 Spis treści O autorze 11 Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA Dzień 1. Rozpoczynamy przygodę z Javą 21 Język Java 21 Programowanie obiektowe 24 Obiekty

Bardziej szczegółowo

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

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy

Bardziej szczegółowo

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania

Bardziej szczegółowo

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC Akademia MetaPack Uniwersytet Zielonogórski Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC Krzysztof Blacha Microsoft Certified Professional Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC Agenda:

Bardziej szczegółowo

16) Wprowadzenie do raportowania Rave

16) Wprowadzenie do raportowania Rave 16) Wprowadzenie do raportowania Rave Tematyka rozdziału: Przegląd wszystkich komponentów Rave Tworzenie nowego raportu przy użyciu formatki w środowisku Delphi Aktywacja środowiska Report Authoring Visual

Bardziej szczegółowo

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski

Struktura systemu operacyjnego. Opracował: mgr Marek Kwiatkowski Struktura systemu operacyjnego Schemat budowy systemu operacyjnego model warstwowy Schemat budowy systemu operacyjnego części składowe Większość systemów operacyjnych opiera się o koncepcję jądra, która

Bardziej szczegółowo

REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja serwisu ogłoszeń z inteligentną wyszukiwarką

REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja serwisu ogłoszeń z inteligentną wyszukiwarką REFERAT PRACY DYPLOMOWEJ Temat pracy: Projekt i realizacja serwisu ogłoszeń z inteligentną wyszukiwarką Autor: Paweł Konieczny Promotor: dr Jadwigi Bakonyi Kategorie: aplikacja www Słowa kluczowe: Serwis

Bardziej szczegółowo

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

JavaFX. Technologie Biznesu Elektronicznego. Wydział Informatyki i Zarządzania Politechnika Wrocławska JavaFX - wprowadzenie JavaFX Wydział Informatyki i Zarządzania Politechnika Wrocławska Definicja JavaFX - wprowadzenie Definicja Historia JavaFX Script Rich Internet Application JavaFX - rodzina technologii

Bardziej szczegółowo

Podstawy technologii cyfrowej i komputerów

Podstawy technologii cyfrowej i komputerów BESKIDZKIE TOWARZYSTWO EDUKACYJNE Podstawy technologii cyfrowej i komputerów Budowa komputerów cz. 2 systemy operacyjne mgr inż. Radosław Wylon 2010 1 Spis treści: Rozdział I 3 1. Systemy operacyjne 3

Bardziej szczegółowo

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

PROE wykład 2 operacje na wskaźnikach. dr inż. Jacek Naruniec PROE wykład 2 operacje na wskaźnikach dr inż. Jacek Naruniec Zmienne automatyczne i dynamiczne Zmienne automatyczne: dotyczą kontekstu, po jego opuszczeniu są usuwane, łatwiejsze w zarządzaniu od zmiennych

Bardziej szczegółowo

CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu

CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu CUDA Median Filter filtr medianowy wykorzystujący bibliotekę CUDA sprawozdanie z projektu inż. Daniel Solarz Wydział Fizyki i Informatyki Stosowanej AGH 1. Cel projektu. Celem projektu było napisanie wtyczki

Bardziej szczegółowo

Instrukcja obsługi. Karta video USB + program DVR-USB/8F. Dane techniczne oraz treść poniższej instrukcji mogą ulec zmianie bez uprzedzenia.

Instrukcja obsługi. Karta video USB + program DVR-USB/8F. Dane techniczne oraz treść poniższej instrukcji mogą ulec zmianie bez uprzedzenia. Instrukcja obsługi Karta video USB + program DVR-USB/8F Dane techniczne oraz treść poniższej instrukcji mogą ulec zmianie bez uprzedzenia. Spis treści 1. Wprowadzenie...3 1.1. Opis...3 1.2. Wymagania systemowe...5

Bardziej szczegółowo

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

Java. język programowania obiektowego. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java język programowania obiektowego Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak 1 Język Java Język Java powstał w roku 1995 w firmie SUN Microsystems Java jest językiem: wysokiego

Bardziej szczegółowo

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

Programowanie w języku Swift : Big Nerd Ranch guide / Matthew Mathias, John Gallagher. Gliwice, cop Spis treści Programowanie w języku Swift : Big Nerd Ranch guide / Matthew Mathias, John Gallagher. Gliwice, cop. 2017 Spis treści Wprowadzenie 13 Poznawanie języka Swift 13 Dokąd zmierza Objective-C? 13 Przygotowania

Bardziej szczegółowo

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia ZP/ITS/11/2012 Załącznik nr 1a do SIWZ ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia Przedmiotem zamówienia jest: Przygotowanie zajęć dydaktycznych w postaci kursów e-learningowych przeznaczonych

Bardziej szczegółowo

Wykład Ćwiczenia Laboratorium Projekt Seminarium

Wykład Ćwiczenia Laboratorium Projekt Seminarium WYDZIAŁ ELEKTRONIKI KARTA PRZEDMIOTU Nazwa w języku polskim Języki programowania Nazwa w języku angielskim Programming languages Kierunek studiów (jeśli dotyczy): Informatyka - INF Specjalność (jeśli dotyczy):

Bardziej szczegółowo

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

Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.) Swift (pol. jerzyk) nowy język programowania zaprezentowany latem 2014 r. (prace od 2010 r.) przeznaczony do programowania zarówno pod ios jak i Mac OS X bazuje na logice Objective-C bez kompatybilności

Bardziej szczegółowo

Tworzenie prezentacji w MS PowerPoint

Tworzenie prezentacji w MS PowerPoint Tworzenie prezentacji w MS PowerPoint Program PowerPoint dostarczany jest w pakiecie Office i daje nam możliwość stworzenia prezentacji oraz uatrakcyjnienia materiału, który chcemy przedstawić. Prezentacje

Bardziej szczegółowo

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

JAVA. Java jest wszechstronnym językiem programowania, zorientowanym. apletów oraz samodzielnych aplikacji. JAVA Java jest wszechstronnym językiem programowania, zorientowanym obiektowo, dostarczającym możliwość uruchamiania apletów oraz samodzielnych aplikacji. Java nie jest typowym kompilatorem. Źródłowy kod

Bardziej szczegółowo

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej.

Podczas dziedziczenia obiekt klasy pochodnej może być wskazywany przez wskaźnik typu klasy bazowej. Polimorfizm jest filarem programowania obiektowego, nie tylko jeżeli chodzi o język C++. Daje on programiście dużą elastyczność podczas pisania programu. Polimorfizm jest ściśle związany z metodami wirtualnymi.

Bardziej szczegółowo

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

Tworzenie aplikacji Web Alicja Zwiewka. Page 1 Tworzenie aplikacji Web Alicja Zwiewka Page 1 Co to są web-aplikacje? Aplikacja internetowa (ang. web application) program komputerowy, który pracuje na serwerze i komunikuje się poprzez sieć komputerową

Bardziej szczegółowo

Dokument Detaliczny Projektu

Dokument Detaliczny Projektu Dokument Detaliczny Projektu Dla Biblioteki miejskiej Wersja 1.0 Streszczenie Niniejszy dokument detaliczny projektu(ddp) przedstawia szczegóły pracy zespołu projektowego, nad stworzeniem aplikacji bazodanowej

Bardziej szczegółowo

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static),

Obszar statyczny dane dostępne w dowolnym momencie podczas pracy programu (wprowadzone słowem kluczowym static), Tworzenie obiektów Dostęp do obiektów jest realizowany przez referencje. Obiekty w języku Java są tworzone poprzez użycie słowa kluczowego new. String lan = new String( Lancuch ); Obszary pamięci w których

Bardziej szczegółowo

Wprowadzenie do biblioteki klas C++

Wprowadzenie do biblioteki klas C++ Instrukcja laboratoryjna nr 7 Programowanie w języku C 2 (C++ poziom zaawansowany) Wprowadzenie do biblioteki klas C++ WxWidgets mgr inż. Lasota Maciej dr inż. Kaczmarek Tomasz dr inż. Wilk-Jakubowski

Bardziej szczegółowo

Wykład 8: klasy cz. 4

Wykład 8: klasy cz. 4 Programowanie obiektowe Wykład 8: klasy cz. 4 Dynamiczne tworzenie obiektów klas Składniki statyczne klas Konstruktor i destruktory c.d. 1 dr Artur Bartoszewski - Programowanie obiektowe, sem. 1I- WYKŁAD

Bardziej szczegółowo

COMARCH IT AKADEMIA. Programista VBA w Microsoft Excel (microbootcamp)

COMARCH IT AKADEMIA. Programista VBA w Microsoft Excel (microbootcamp) COMARCH IT AKADEMIA Programista VBA w Microsoft Excel (microbootcamp) Cele szkolenia 1. Poznanie zasad rzemiosła i sztuki programowania w VBA. 2. Zdobycie umiejętności czytania kodu ze zrozumieniem. 3.

Bardziej szczegółowo

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

Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. Laboratorium 1 Temat: Przygotowanie środowiska programistycznego. Poznanie edytora. Kompilacja i uruchomienie prostych programów przykładowych. 1. Przygotowanie środowiska programistycznego. Zajęcia będą

Bardziej szczegółowo

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

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java   1 / 8 Początki Javy Java została pierwotnie zaprojektowana dla telewizji interaktywnej, ale była to zbyt zaawansowaną technologią dla branży cyfrowej telewizji kablowej. James Gosling, Mike Sheridan i Patrick

Bardziej szczegółowo

System zarządzający grami programistycznymi Meridius

System zarządzający grami programistycznymi Meridius System zarządzający grami programistycznymi Meridius Instytut Informatyki, Uniwersytet Wrocławski 20 września 2011 Promotor: prof. Krzysztof Loryś Gry komputerowe a programistyczne Gry komputerowe Z punktu

Bardziej szczegółowo

Programowanie w języku Python. Grażyna Koba

Programowanie w języku Python. Grażyna Koba Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i

Bardziej szczegółowo

1.Wstęp. 2.Generowanie systemu w EDK

1.Wstęp. 2.Generowanie systemu w EDK 1.Wstęp Celem niniejszego ćwiczenia jest zapoznanie z możliwościami debuggowania kodu na platformie MicroBlaze oraz zapoznanie ze środowiskiem wspomagającym prace programisty Xilinx Platform SDK (Eclipse).

Bardziej szczegółowo

Diagram klas UML jest statycznym diagramem, przedstawiającym strukturę aplikacji bądź systemu w paradygmacie programowania obiektowego.

Diagram klas UML jest statycznym diagramem, przedstawiającym strukturę aplikacji bądź systemu w paradygmacie programowania obiektowego. Umiejętność czytania oraz tworzenia diagramów klas UML jest podstawą w przypadku zawodu programisty. Z takimi diagramami będziesz spotykał się w przeciągu całej swojej kariery. Diagramy klas UML są zawsze

Bardziej szczegółowo

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX) (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX) W informatyce występują ściśle obok siebie dwa pojęcia: sprzęt (ang. hardware) i oprogramowanie

Bardziej szczegółowo

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

SpriteKit. Biblioteka do tworzenia gier wbudowana w SDK. Wspiera grafikę 2D w oparciu o sprite y SpriteKit SpriteKit Biblioteka do tworzenia gier wbudowana w SDK Wspiera grafikę 2D w oparciu o sprite y SpriteKit HelloWorld SpriteKit HelloWorld SpriteKit AppDelegate identyczny jak w innych szablonach

Bardziej szczegółowo

To sposób w jaki użytkownik wchodzi w interakcje z systemem. Środowisko graficzne używa kombinacji graficznych elementów(przyciski, okna, menu) i

To sposób w jaki użytkownik wchodzi w interakcje z systemem. Środowisko graficzne używa kombinacji graficznych elementów(przyciski, okna, menu) i Aleksandra Dębiecka To sposób w jaki użytkownik wchodzi w interakcje z systemem. To sposób w jaki użytkownik wchodzi w interakcje z systemem. Środowisko graficzne używa kombinacji graficznych elementów(przyciski,

Bardziej szczegółowo

Języki i paradygmaty programowania - 1

Języki i paradygmaty programowania - 1 doc. dr inż. Tadeusz Jeleniewski e-mail: t.jeleniewski@neostrada.pl tadeusz.jeleniewski@pwr.edu.pl http://www.tjeleniewski.wstt.edu.pl Cele przedmiotu Umiejętność zastosowania i oceny przydatności paradygmatów

Bardziej szczegółowo

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

Tworzenie natywnych aplikacji na urządzenia mobilne - PhoneGap Tomasz Margalski Tworzenie natywnych aplikacji na urządzenia mobilne - PhoneGap Tomasz Margalski Agenda Dlaczego PhoneGap i co to jest? Możliwości PhoneGap Jak pisać aplikacje z PhoneGap? Konfiguracja i przykład aplikacji

Bardziej szczegółowo

<Nazwa firmy> <Nazwa projektu> Specyfikacja dodatkowa. Wersja <1.0>

<Nazwa firmy> <Nazwa projektu> Specyfikacja dodatkowa. Wersja <1.0> Wersja [Uwaga: Niniejszy wzór dostarczony jest w celu użytkowania z Unified Process for EDUcation. Tekst zawarty w nawiasach kwadratowych i napisany błękitną kursywą

Bardziej szczegółowo

Szczegółowy opis zamówienia:

Szczegółowy opis zamówienia: Szczegółowy opis zamówienia: Rok 2016 budowa stron w html5 (8h v + 4h ćw) 8 szt. html5 - zaawans. (7h v + 5h ćw) 8 szt. programowania w java script (9h v + 7h ćw) 8 szt. java script zaawans (8h v + 4h

Bardziej szczegółowo

Tutorial prowadzi przez kolejne etapy tworzenia projektu począwszy od zdefiniowania przypadków użycia, a skończywszy na konfiguracji i uruchomieniu.

Tutorial prowadzi przez kolejne etapy tworzenia projektu począwszy od zdefiniowania przypadków użycia, a skończywszy na konfiguracji i uruchomieniu. AGH, EAIE, Informatyka Winda - tutorial Systemy czasu rzeczywistego Mirosław Jedynak, Adam Łączyński Spis treści 1 Wstęp... 2 2 Przypadki użycia (Use Case)... 2 3 Diagramy modelu (Object Model Diagram)...

Bardziej szczegółowo

Mariusz Trzaska Modelowanie i implementacja systemów informatycznych

Mariusz Trzaska Modelowanie i implementacja systemów informatycznych Mariusz Trzaska Modelowanie i implementacja systemów informatycznych Notka biograficzna Dr inż. Mariusz Trzaska jest adiunktem w Polsko-Japońskiej Wyższej Szkole Technik Komputerowych, gdzie zajmuje się

Bardziej szczegółowo

INŻYNIERIA OPROGRAMOWANIA

INŻYNIERIA OPROGRAMOWANIA INSTYTUT INFORMATYKI STOSOWANEJ 2013 INŻYNIERIA OPROGRAMOWANIA Inżynieria Oprogramowania Proces ukierunkowany na wytworzenie oprogramowania Jak? Kto? Kiedy? Co? W jaki sposób? Metodyka Zespół Narzędzia

Bardziej szczegółowo

Programowanie Obiektowe GUI

Programowanie Obiektowe GUI Programowanie Obiektowe GUI Swing Celem ćwiczenia jest ilustracja wizualnego tworzenia graficznego interfejsu użytkownika opartego o bibliotekę Swing w środowisku NetBeans. Ponadto, ćwiczenie ma na celu

Bardziej szczegółowo

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

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Narzędzia i aplikacje Java EE Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Niniejsze opracowanie wprowadza w technologię usług sieciowych i implementację usługi na platformie Java EE (JAX-WS) z

Bardziej szczegółowo

Opis szybkiego uruchomienia programu APBSoft

Opis szybkiego uruchomienia programu APBSoft Opis szybkiego uruchomienia programu APBSoft www.telmatik.pl Program APBSoft należy instalować z otrzymanej płyty CD albo pobrać ze strony www.telmatik.pl. W drugim przypadku program dostarczany jest w

Bardziej szczegółowo

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

Wykład 3 Składnia języka C# (cz. 2) Wizualne systemy programowania Wykład 3 Składnia języka C# (cz. 2) 1 dr Artur Bartoszewski -Wizualne systemy programowania, sem. III- WYKŁAD Wizualne systemy programowania Metody 2 Metody W C# nie jest

Bardziej szczegółowo

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

Rys. 1. Główne okno programu QT Creator. Na rysunku 2 oznaczone zostały cztery przyciski, odpowiadają kolejno następującym funkcjom: 1. QT creator, pierwsze kroki. Qt Creator wieloplatformowe środowisko programistyczne dla języków C++, JavaScript oraz QML, będące częścią SDK dla biblioteki Qt. Zawiera w sobie graficzny interfejs dla

Bardziej szczegółowo

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

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018 Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy

Bardziej szczegółowo

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

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Object-oriented programming Najpopularniejszy obecnie styl (paradygmat) programowania Rozwinięcie koncepcji programowania strukturalnego

Bardziej szczegółowo

Analiza i projektowanie aplikacji Java

Analiza i projektowanie aplikacji Java Analiza i projektowanie aplikacji Java Modele analityczne a projektowe Modele analityczne (konceptualne) pokazują dziedzinę problemu. Modele projektowe (fizyczne) pokazują system informatyczny. Utrzymanie

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Laboratorium z przedmiotu Programowanie obiektowe - zestaw 02 Cel zajęć. Celem zajęć jest zapoznanie z praktycznymi aspektami projektowania oraz implementacji klas i obiektów z wykorzystaniem dziedziczenia.

Bardziej szczegółowo

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl Komputerowe Systemy Przemysłowe: Modelowanie - UML Arkadiusz Banasik arkadiusz.banasik@polsl.pl Plan prezentacji Wprowadzenie UML Diagram przypadków użycia Diagram klas Podsumowanie Wprowadzenie Języki

Bardziej szczegółowo

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

Java: otwórz okienko. Programowanie w językach wysokiego poziomu. mgr inż. Anna Wawszczak Java: otwórz okienko Programowanie w językach wysokiego poziomu mgr inż. Anna Wawszczak PLAN WYKŁADU klasy wewnętrzne, lokalne i anonimowe biblioteka AWT zestaw Swing JFrame JPanel komponenty obsługa zdarzeń

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Laboratorium 1. Wstęp do programowania w języku Java. Narzędzia 1. Aby móc tworzyć programy w języku Java, potrzebny jest zestaw narzędzi Java Development Kit, który można ściągnąć

Bardziej szczegółowo

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

Obiekt klasy jest definiowany poprzez jej składniki. Składnikami są różne zmienne oraz funkcje. Składniki opisują rzeczywisty stan obiektu. Zrozumienie funkcji danych statycznych jest podstawą programowania obiektowego. W niniejszym artykule opiszę zasadę tworzenia klas statycznych w C#. Oprócz tego dowiesz się czym są statyczne pola i metody

Bardziej szczegółowo

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu. Architektura Systemu Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu. Architektura jest zbiorem decyzji dotyczących: organizacji systemu komputerowego,

Bardziej szczegółowo

tel. (+48 81) 538 47 21/22 fax (+48 81) 538 45 80 Cel przedmiotu

tel. (+48 81) 538 47 21/22 fax (+48 81) 538 45 80 Cel przedmiotu 0-68 Lublin tel. (+48 8) 538 47 / fax (+48 8) 538 45 80 Przedmiot: Programowanie aplikacji Rok: 4 Semestr: 7 Rodzaj zajęć i liczba godzin: Studia stacjonarne Studia niestacjonarne Wykład 30 4 Ćwiczenia

Bardziej szczegółowo

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Program, to lista poleceń zapisana w jednym języku programowania zgodnie z obowiązującymi w nim zasadami. Celem programu jest przetwarzanie

Bardziej szczegółowo

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

Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Programowanie obiektowe i zdarzeniowe wykład 4 Kompozycja, kolekcje, wiązanie danych Obiekty reprezentują pewne pojęcia, przedmioty, elementy rzeczywistości. Obiekty udostępniają swoje usługi: metody operacje,

Bardziej szczegółowo

Międzyplatformowy interfejs systemu FOLANessus wykonany przy użyciu biblioteki Qt4

Międzyplatformowy interfejs systemu FOLANessus wykonany przy użyciu biblioteki Qt4 Uniwersytet Mikołaja Kopernika w Toruniu Wydział Matematyki i Informatyki Wydział Fizyki, Astronomii i Informatyki Stosowanej Agnieszka Holka Nr albumu: 187396 Praca magisterska na kierunku Informatyka

Bardziej szczegółowo