This shows you the differences between two versions of the page.
moby:android:01 [2020/05/28 16:52] radu.ciobanu created |
moby:android:01 [2020/07/16 15:39] (current) radu.ciobanu |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ===== 1 - Crearea unei aplicații Android ===== | + | {{:moby:android:an_banner.png?nolink&250|}} |
- | TODO | + | ===== Sesiunea 1 - Crearea unei aplicații Android ===== |
+ | |||
+ | Bine ați venit la workshop-ul de Android organizat de MobyLab. Acest workshop se bazează pe cursurile [[https://developer.android.com/courses/fundamentals-training/overview-v2|Android Developer Fundamentals]] oferite de Google, care au ca scop final pregătirea programatorilor pentru certificarea [[https://developers.google.com/certification/associate-android-developer|Associate Android Developer]]. | ||
+ | |||
+ | ==== Structura workshop-ului ==== | ||
+ | |||
+ | În acest workshop, vom învăța concepte de bază de programare Android și vom implementa o serie de aplicații, pornind de la clasicul Hello World și mergând până la aplicații complexe. | ||
+ | |||
+ | Cursul Android Developer Fundamentals este împărțit în 4 unități principale, compuse dintr-un total de 10 lecții. Fiecare lecție va fi prezentată într-o sesiune de workshop, care va dura 1-2 ore. Fiecare lecție conține unul sau mai multe set de slide-uri, unul sau mai multe capitole de concepte și unul sau mai multe exerciții de tip „hands-on” (numite „codelabs”). În timpul întâlnirilor noastre, vom trece prin slide-uri și vom prezenta exemple practice ale elementelor prezentate, dar sunteți încurajați să citiți singuri capitolele de concepte și să faceți exercițiile propuse, deoarece vă vor ajuta să vă exersați și perfecționați skill-urile de Android. | ||
+ | |||
+ | Componența unităților și a lecțiilor este următoarea: | ||
+ | |||
+ | * **Unitatea 1** - Introducere | ||
+ | * **Lecția 1** - Crearea unei aplicații Android | ||
+ | * **Lecția 2** - Activități și Intent-uri | ||
+ | * **Lecția 3** - Testare și debugging | ||
+ | |||
+ | * **Unitatea 2** - Experiența utilizatorului | ||
+ | * **Lecția 4** - Interacțiunea cu utilizatorul | ||
+ | * **Lecția 5** - Experiența utilizatorului | ||
+ | * **Lecția 6** - Testare de UI | ||
+ | |||
+ | * **Unitatea 3** - Procesare în background | ||
+ | * **Lecția 7** - Procesare în background | ||
+ | * **Lecția 8** - Alarme și planificatoare | ||
+ | |||
+ | * **Unitatea 4** - Stocarea datelor utilizatorului | ||
+ | * **Lecția 9** - Preferințe și setări | ||
+ | * **Lecția 10** - Stocare de date | ||
+ | |||
+ | ==== Organizare ==== | ||
+ | |||
+ | Programul pe zile al workshop-ului poate fi găsit [[https://ocw.cs.pub.ro/courses/moby#program|aici]]. În zilele cu workshop-ul, vom avea două întâlniri (în care se vor parcurge aceleași noțiuni), astfel încât să poată să participe cât mai multă lume. Astfel, ne vom întâlni de la ora **11:00** și de la ora **17:00**. Pentru cei care nu vor putea participa, sesiunile de workshop vor fi înregistrate și vor putea fi accesate și asincron. | ||
+ | |||
+ | Pe partea administrativă, vom folosi platforma Microsoft Teams. Puteți găsi [[https://www.youtube.com/watch?v=2zB2jiCxxuQ|aici]] un tutorial despre modul de utilizare a platformei. Vom avea câte un canal pentru fiecare sesiune de workshop, unde vor avea loc întâlnirile și unde vom putea avea discuții, veți putea pune întrebări, etc. | ||
+ | |||
+ | ==== Concursuri ==== | ||
+ | |||
+ | În cadrul workshop-ului, vom avea două concursuri care se vor solda cu premii surpriză din partea [[https://www.smartrdi.net|SmartRDI]]. | ||
+ | |||
+ | === Concurs de proiecte === | ||
+ | |||
+ | Pentru primul concurs, vi se va cere (**opțional**) să implementați un proiect în Android care să aibă următoarele specificații: | ||
+ | * să aibă cel puțin două ecrane (unul pentru o afișare simplă de date, altul pentru afișarea unei liste de elemente) | ||
+ | * să descarce sau să încarce date de la sau către un server (pentru această cerință, puteți căuta servere publice care expun API-uri pe care aplicația voastră poate să le consume, cum ar fi cele de [[https://github.com/toddmotto/public-apis|aici]], sau puteți să vă scrieți propriul server) | ||
+ | * să persiste datele într-o bază de date locală. | ||
+ | |||
+ | În rest, este la latitudinea voastră ce va face aplicația, cum va arăta, și ce biblioteci sau framework-uri va folosi (încurajăm folosirea de tehnologii noi precum Firebase sau ARCore). Cele mai interesante proiecte vor fi invitate într-o sesiune de demo, iar cele mai bune trei vor fi premiate. Juriul va include atât membri din mediul academic (precum [[https://cs.pub.ro/index.php/people/userprofile/ciprian_dobre|Ciprian Dobre]] sau [[https://cs.pub.ro/index.php/people/userprofile/florin_pop|Florin Pop]], profesori în cadrul Facultății de Automatică și Calculatoare), cât și din industrie ([[https://ro.linkedin.com/in/radu-corneliu-marin-62897b59|Radu Marin]], Android Community Lead la [[https://www.cognizantsoftvision.com|Cognizant Softvision]]). | ||
+ | |||
+ | === Quiz === | ||
+ | |||
+ | Începând cu a doua sesiune de workshop, vom avea câte un quiz live cu întrebări despre conceptele studiate în sesiunea precedentă, folosind platforma [[https://kahoot.it|Kahoot]]. Quiz-ul va puncta atât răspunsurile corecte, cât și viteza de răspuns. Primii zece clasați de la fiecare quiz vor primi câte 10, 9, 8, ... și respectiv 1 punct. La finalul workshop-ului, primii trei clasați în clasamentul general din fiecare interval de workshop vor fi premiați. | ||
+ | |||
+ | ==== Unitatea 1 ==== | ||
+ | |||
+ | Această unitate, formată din primele trei sesiuni de workshop, acoperă elemente precum instalarea Android Studio, înțelegerea structurii unui proiect Android, crearea unei aplicații, crearea de activități în Android, testarea aplicațiilor, precum și folosirea bibliotecii Android Support Library. Vom trece prin aceste elemente într-un mod logic și cursiv. Astfel, vom începe prin implementarea unei aplicații cu o singură activitate, apoi vom crea o aplicație cu mai multe ecrane care transmite date între activități. În final, vom învăța cum putem folosi biblioteca Android Support Library pentru a oferi compatibilitate cu versiuni mai vechi de Android în aplicația noastră. | ||
+ | |||
+ | ==== Lecția 1 ==== | ||
+ | |||
+ | Prima lecție este formată din cinci componente și parcurge următoarele subiecte: | ||
+ | * instalarea Android Studio | ||
+ | * crearea unui proiect Android | ||
+ | * rularea unei aplicații Android într-un emulator sau pe un dispozitiv mobil real | ||
+ | * crearea unui layout cu elemente UI precum liste derulabile | ||
+ | * găsirea de materiale despre Android. | ||
+ | |||
+ | Așa cum am spus și mai sus, fiecare parte a unei lecții poate avea asociat un //concept chapter// și zero sau mai multe //codelab//-uri. Pe lângă acestea, există câte o prezentare pentru fiecare. | ||
+ | |||
+ | <note important> | ||
+ | **Ce conține o //prezentare//?** | ||
+ | |||
+ | Slide-uri cu cele mai utile concepte din lecția abordată. | ||
+ | </note> | ||
+ | |||
+ | <note tip> | ||
+ | **Ce conține un //concept chapter//?** | ||
+ | |||
+ | Noțiuni teoretice necesare pentru a înțelege mai în detalu materia predată și pentru a putea completa exercițiile practice. | ||
+ | </note> | ||
+ | |||
+ | <note> | ||
+ | **Ce conține un //codelab//?** | ||
+ | |||
+ | Exerciții practice în format de tutorial care trec prin toate conceptele prezentate într-o sesiune. | ||
+ | </note> | ||
+ | |||
+ | ==== Introducere în Android ==== | ||
+ | |||
+ | În această primă parte a sesiunii, vom încerca să înțelegem motivația pentru dezvoltarea de aplicații Android. | ||
+ | |||
+ | <note important> | ||
+ | **//Prezentare//** | ||
+ | |||
+ | [[https://docs.google.com/presentation/d/1r6ciWRQLM-cKwbW4xBxP4xBUB-PYKWCQVbcO-3Nz-g0/edit#slide=id.g116d7d9d49_3_13|1.0 Introduction to Android]] | ||
+ | </note> | ||
+ | |||
+ | <note tip> | ||
+ | **//Concept chapter//** | ||
+ | |||
+ | [[https://google-developer-training.github.io/android-developer-fundamentals-course-concepts-v2/unit-1-get-started/lesson-1-build-your-first-app/1-0-c-introduction-to-android/1-0-c-introduction-to-android.html|1.0 Introduction to Android]] | ||
+ | </note> | ||
+ | |||
+ | ==== Prima noastră aplicație Android ==== | ||
+ | |||
+ | În a doua parte, vom încerca să înțelegem procesul de dezvoltare de aplicații Android. | ||
+ | |||
+ | <note important> | ||
+ | **//Prezentare//** | ||
+ | |||
+ | [[https://docs.google.com/presentation/d/1oJmfFQBKlFpuNGaGI1uf1WR1wcKLg8XSFzd8QQhMK0Q/edit#slide=id.g116d7d9d49_3_13|1.1 Your first Android app]] | ||
+ | </note> | ||
+ | |||
+ | <note tip> | ||
+ | **//Concept chapter//** | ||
+ | |||
+ | [[https://google-developer-training.github.io/android-developer-fundamentals-course-concepts-v2/unit-1-get-started/lesson-1-build-your-first-app/1-1-c-your-first-android-app/1-1-c-your-first-android-app.html|1.1 Your first Android app]] | ||
+ | </note> | ||
+ | |||
+ | <note> | ||
+ | **//Codelab//** | ||
+ | |||
+ | [[https://codelabs.developers.google.com/codelabs/android-training-hello-world/#0|1.1 Android Studio and Hello World]] | ||
+ | </note> | ||
+ | |||
+ | ==== Layout-uri și resurse UI ==== | ||
+ | |||
+ | În a treia componentă a sesiunii, vom adăuga elemente UI interactive unei aplicații Android și vom analiza gama de elemente UI disponibile. | ||
+ | |||
+ | <note important> | ||
+ | **//Prezentare//** | ||
+ | |||
+ | [[https://docs.google.com/presentation/d/10ARO1cnG0E34igbyPZfyV2rr_skdHtHKMsnbvGoYUKY/edit#slide=id.g116d7d9d49_3_13|1.2 Layouts and resources for the UI]] | ||
+ | </note> | ||
+ | |||
+ | <note tip> | ||
+ | **//Concept chapter//** | ||
+ | |||
+ | [[https://google-developer-training.github.io/android-developer-fundamentals-course-concepts-v2/unit-1-get-started/lesson-1-build-your-first-app/1-2-c-layouts-and-resources-for-the-ui/1-2-c-layouts-and-resources-for-the-ui.html|1.2 Layouts and resources for the UI]] | ||
+ | </note> | ||
+ | |||
+ | <note> | ||
+ | **//Codelabs//** | ||
+ | |||
+ | [[https://codelabs.developers.google.com/codelabs/android-training-layout-editor-part-a/#0|1.2A Your first interactive UI]] | ||
+ | |||
+ | [[https://codelabs.developers.google.com/codelabs/android-training-layout-editor-part-b/#0|1.2B The layout editor]] | ||
+ | </note> | ||
+ | |||
+ | ==== Elemente vizuale de tip text și derulabile ==== | ||
+ | |||
+ | În acestă parte, vom înțelege impactul pe care îl au diferitele metode de a adăuga conținut derulabil asupra performanței unei aplicații Android. | ||
+ | |||
+ | <note important> | ||
+ | **//Prezentare//** | ||
+ | |||
+ | [[https://docs.google.com/presentation/d/175zGL-zyK9qWotipn5mZm_kWh0ygeJZhs2EsDPDHX-4/edit#slide=id.g116d7d9d49_3_13|1.3 Text and scrolling views]] | ||
+ | </note> | ||
+ | |||
+ | <note tip> | ||
+ | **//Concept chapter//** | ||
+ | |||
+ | [[https://google-developer-training.github.io/android-developer-fundamentals-course-concepts-v2/unit-1-get-started/lesson-1-build-your-first-app/1-3-c-text-and-scrolling-views/1-3-c-text-and-scrolling-views.html|1.3 Text and scrolling views]] | ||
+ | </note> | ||
+ | |||
+ | <note> | ||
+ | **//Codelab//** | ||
+ | |||
+ | [[https://codelabs.developers.google.com/codelabs/android-training-text-and-scrolling-views/#0|1.3 Text and scrolling views]] | ||
+ | </note> | ||
+ | |||
+ | ==== Resurse de auto-educare ==== | ||
+ | |||
+ | În final, vom prezenta modurile în care programatorii (sau viitorii programatori) Android se pot auto-educa. | ||
+ | |||
+ | <note important> | ||
+ | **//Prezentare//** | ||
+ | |||
+ | [[https://docs.google.com/presentation/d/1JcWzzbQ-6Z4dzCYHje6_gOaf_S_EdWVH3gTARSYQp_o/edit#slide=id.g116d7d9d49_3_13|1.4 Resources to help you learn]] | ||
+ | </note> | ||
+ | |||
+ | <note tip> | ||
+ | **//Concept chapter//** | ||
+ | |||
+ | [[https://google-developer-training.github.io/android-developer-fundamentals-course-concepts-v2/unit-1-get-started/lesson-1-build-your-first-app/1-4-c-resources_to_help_you_learn/1-4-c-resources_to_help_you_learn.html|1.4 Resources to help you learn]] | ||
+ | </note> | ||
+ | |||
+ | <note> | ||
+ | **//Codelab//** | ||
+ | |||
+ | [[https://codelabs.developers.google.com/codelabs/android-training-available-resources/#0|1.4 Available resources]] | ||
+ | </note> | ||
+ | |||
+ | ====== ====== | ||
+ | |||
+ | {{:moby:android:smartrdi_an.png?nolink&300|}} |