laborator 5-paradigme de programaremike.tuiasi.ro/labpp5.pdf · laborator 5-paradigme de programare...

8
1 Laborator 5 - Paradigme de Programare Dezvoltarea unui GUI utilizând libSDL Graphics și platforma Kotlin-Native Kotlin ca și Python nu au avut din proiectare o bibliotecă specializată în oferirea de facilități necesare dezvoltării unor interfețe grafice. Deși încă în dezvoltare platforma Kotlin-Native oferă suport nativ pentru o gama variată de sisteme de operare precum: iOS Android Embedded ARM Windows x86 Windows x64 Linux x86 Linux x64 Pentru a obține o astfel de adaptabilitate dat fiind complexitatea limbajului mecanismul de compilare beneficiază de translări succesive între Kotlin, Java și platforma țintă, folosind suportul din Kotlin-Native care la rândul lui utilizează o serie de compilatoare multi-platformă (cross-platform) (De exemplu pentru a genera aplicații executabile de tip x64 pentru Windows, Kotlin-Native va utiliza mingw x64 cu GCC) Deoarece complexitatea medie a aplicațiilor specifice limbajelor moderne este mult peste exemplele foarte simple de utilizare s-a preferat crearea unei aplicații complexe din care vom analiza și modifica și în cadrul studierii altor concepte cum ar fi modelele de proiectare (design patterns). Pentru lucrare de laborator de azi veți găsi pe stație InteliJ instalat și cu două proiecte model deja instalate și configurate. Acestea vor trebui modificate prin adăugarea de noi componente sau abilități. Problema 1 Aici este prezentat un exemplu pentru realizarea componentei grafice utilizând SDL. Pornind de la modelul prezentat realizați unul dintre desenele sugerate mai jos: Un om din elemente grafice simple (cercuri, linii, pătrate, puncte) sau o schiță de mașină sau o casă sau un cadran de ceas. Problema 2 Modelul a fost pregătit pentru a studia maniera de tratare a evenimentelor în SDL. Se pleacă de la proiectul incipient al unui calculator de buzunar și se vor efectua următoarele operații. 1. Se modifică programul, astfel încât în obiectul GEdit să apară caracterele trimise de evenimentele de apăsare a tastelor. 2. Adăugați celelalte butoane cu digiții lipsă.

Upload: others

Post on 26-Oct-2019

25 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Laborator 5-Paradigme de Programaremike.tuiasi.ro/LabPP5.pdf · Laborator 5-Paradigme de Programare Dezvoltarea unui GUI utilizând libSDL Graphics și platforma Kotlin-Native Kotlin

1

Laborator 5 - Paradigme de ProgramareDezvoltarea unui GUI utilizând

libSDL Graphics și platforma Kotlin-Native

Kotlin ca și Python nu au avut din proiectare o bibliotecă specializată în oferirea defacilități necesare dezvoltării unor interfețe grafice. Deși încă în dezvoltare platformaKotlin-Native oferă suport nativ pentru o gama variată de sisteme de operare precum:

iOS Android Embedded ARM Windows x86 Windows x64 Linux x86 Linux x64

Pentru a obține o astfel de adaptabilitate dat fiind complexitatea limbajului mecanismulde compilare beneficiază de translări succesive între Kotlin, Java și platforma țintă,folosind suportul din Kotlin-Native care la rândul lui utilizează o serie de compilatoaremulti-platformă (cross-platform) (De exemplu pentru a genera aplicații executabile de tipx64 pentru Windows, Kotlin-Native va utiliza mingw x64 cu GCC)Deoarece complexitatea medie a aplicațiilor specifice limbajelor moderne este multpeste exemplele foarte simple de utilizare s-a preferat crearea unei aplicații complexedin care vom analiza și modifica și în cadrul studierii altor concepte cum ar fi modelelede proiectare (design patterns).

Pentru lucrare de laborator de azi veți găsi pe stație InteliJ instalat și cu două proiectemodel deja instalate și configurate. Acestea vor trebui modificate prin adăugarea de noicomponente sau abilități.

Problema 1Aici este prezentat un exemplu pentru realizarea componentei grafice utilizând SDL.Pornind de la modelul prezentat realizați unul dintre desenele sugerate mai jos: Un om din elemente grafice simple (cercuri, linii, pătrate, puncte) sau o schiță de mașină sau o casă sau un cadran de ceas.

Problema 2Modelul a fost pregătit pentru a studia maniera de tratare a evenimentelor în SDL. Sepleacă de la proiectul incipient al unui calculator de buzunar și se vor efectuaurmătoarele operații.1. Se modifică programul, astfel încât în obiectul GEdit să apară caracterele trimise de

evenimentele de apăsare a tastelor.2. Adăugați celelalte butoane cu digiții lipsă.

Page 2: Laborator 5-Paradigme de Programaremike.tuiasi.ro/LabPP5.pdf · Laborator 5-Paradigme de Programare Dezvoltarea unui GUI utilizând libSDL Graphics și platforma Kotlin-Native Kotlin

2

3. Adăugați suport pentru realizarea operațiilor de scădere, înmulțire și împărțire

Pentru a vă ajuta este prezentată mai jos și o diagramă de clase utilizată pentru aceastăproblemă (bazată pe modelul de proiectare bazat pe compunere recursivă (Composite -detalii la cursurile de paradigme)

Tema pentru acasă:

Terminați de rezolvat tot laboratorul și evident puteți aduce orice alte îmbunătățiri sauface orice modificări vă mai vin în cap pornind de la unul din proiectele puse ladispoziție.

1. Configurarea Intelij pentru Kotlin-Native și SDLAceastă secțiune este necesară pentru a instala și configura Intellij pentru a puteamodifica aplicația furnizată ca exemplu pentru a realiza tema pe acasă. În laboratoraceste configurări au fost deja realizate.

Se descarcă sursele proiectului de pe GIT: https://github.com/JetBrains/kotlin-native

Pentru a folosi platforma, trebuie realizat o operație de compilare urmând pașii precizațipe GIT pentru a obține folderul dist cu componentele binare ale compiler-ului Kotlin-Native.Pentru genera executabile din proiectele de bază, deși se pot folosi scripturile puse ladispoziție (prin gradlew), vom folosi IntelliJ IDEA. Vom presupune că există deja instalatacest IDE pe sistemul de lucru. Pentru cei cărora li se pare prea complicat acest proces

Page 3: Laborator 5-Paradigme de Programaremike.tuiasi.ro/LabPP5.pdf · Laborator 5-Paradigme de Programare Dezvoltarea unui GUI utilizând libSDL Graphics și platforma Kotlin-Native Kotlin

3

(ca și în cazul Graal VM) se poate lucra separat combinând prin scripturi la nivelconsolă părțile implicate în dezvoltarea unui executabil nativ conform instrucțiunilorpuse deja la dispoziție de către dezvoltatori.Pentru ca IntelliJ să poată fi folosit cu proiectele existente în kotlin-native, se va instalaGradle pentru a putea importa aceste proiecte în IDE, ulterior.

Se va importa în IntelliJ, proiectul gradle aferent unei aplicații pentru Windows EXE careafișează un MessageBox:

Apoi se selectează calea către varianta de gradle descărcată anterior:

Page 4: Laborator 5-Paradigme de Programaremike.tuiasi.ro/LabPP5.pdf · Laborator 5-Paradigme de Programare Dezvoltarea unui GUI utilizând libSDL Graphics și platforma Kotlin-Native Kotlin

4

Deoarece există unele incompatibilități minore la nivelul versiunii gratuite de IntelliJ,acesta va încerca să înlăture unele componente din proiect. Nu i se va permite acestlucru prin deschiderea dialogului corespunzător (vezi mai jos).

Acum se poate adăuga o configurație de tip Gradle:

Acum putem alege un nume pentru proiectul curent după cum este prezentat și în figură.

Page 5: Laborator 5-Paradigme de Programaremike.tuiasi.ro/LabPP5.pdf · Laborator 5-Paradigme de Programare Dezvoltarea unui GUI utilizând libSDL Graphics și platforma Kotlin-Native Kotlin

5

Se va utiliza ca parametru: “build”

În urma execuției cu succes, de această dată se creează executabilul nativ platformeițintă alese (win 32):

Acum aplicația rezultată poate fi lansată manual în execuție:

Page 6: Laborator 5-Paradigme de Programaremike.tuiasi.ro/LabPP5.pdf · Laborator 5-Paradigme de Programare Dezvoltarea unui GUI utilizând libSDL Graphics și platforma Kotlin-Native Kotlin

6

Adăugare biblioteci pentru dezvoltarea de aplicații utilizând libSDL

Se va utiliza librăria SDL x64.

Din ceea ce pune la dispoziție această bibliotecă vom utiliza pe moment numai ceea cese află în directoarele “include” și “lib”

Page 7: Laborator 5-Paradigme de Programaremike.tuiasi.ro/LabPP5.pdf · Laborator 5-Paradigme de Programare Dezvoltarea unui GUI utilizând libSDL Graphics și platforma Kotlin-Native Kotlin

7

În acest laborator sunt prezentate complet două probleme din care numai prima din elefolosește aceasta bibliotecă, proiectele sunt gata configurate deci pașii de mai jos suntutili numai în situația în care veți aplica modificările cerute în cadrul temei pe acasă.

Se va importa proiectul P1 din Gradle în IntelliJ, urmând pașii descriși anterior șifinalizând cu o configurație Gradle specifică proiectului:

În urma execuției (build), obținem o eroare, deoarece biblioteca SDL descărcatăanterior nu este găsită în folderele folosite de cross-compiler:

Adăugăm biblioteca în directoarele cross-compilerului.

Page 8: Laborator 5-Paradigme de Programaremike.tuiasi.ro/LabPP5.pdf · Laborator 5-Paradigme de Programare Dezvoltarea unui GUI utilizând libSDL Graphics și platforma Kotlin-Native Kotlin

8

Reluăm procesul de compilare a aplicației:

Acum se poate lansa aplicația creată din interiorul directorului specific.

Crearea unui proiectPentru a crea un proiect, pașii sunt identici cu cei prezentați mai sus, cu următoarelemici diferențe:1. Copiem folderul P1 într-altul cu un nume diferit (de exemplu MyProject, sub acelasi

folder “samples”).2. Ștergem din folderul P1, subfolderul “build”, subfolderul “.idea” și fișierul “P1.iml”.3. Modificăm în fișierele “build.gradle” și “gradle.properties” toate stringurile, din P1 în

MyProject.4. Redenumim folderul “P1Main” în “MyProjectMain”.5. Repetăm pasul 3 pentru fișierul “Info.plist” din “MyProjectMain\resources”.