You are on page 1of 42

UPB - Facultatea ETTI

2022 - 2023

Programarea pe Platforma Android


(PPA)

Titular curs: Conf. dr. ing. Eduard-Cristian POPOVICI


Suport curs: http://discipline.elcom.pub.ro/saim/ppa
https://curs.upb.ro/2022/course/view.php?id=10678
https://www.facebook.com/groups/ppa2223 !!!!!!!
UPB - ETTI 26.02.2023 1
Programare pe Platforma Android (PPA)

Context info

SAIM Lab (sala A110) – Facebook https://www.facebook.com/etti.saim

Curs liber ales an 3 DAAI – Facebook https://www.facebook.com/daai.saim

Curs optional an 2 PPA – site curs http://discipline.elcom.pub.ro/saim/ppa

Competitia MobilPRO (editia a VI-a 2019: 15-17.03.2019)

– site http://mobilpro.lse.org.ro/

– Facebook https://www.facebook.com/mobilproetti

Moodle

https://curs.upb.ro/2022/course/view.php?id=10678

UPB - ETTI 2
Programare pe Platforma Android (PPA)
External resources
Web tutorials:
Android developer guides (official)
https://developer.android.com/guide/
https://developer.android.com/training/basics/firstapp/ - First app =>
https://developer.android.com/guide/topics/ui/index.html - User interface =>

Java / Android Tutorials – vogella.com (by Lars Vogel)


https://www.vogella.com/tutorials/java.html
https://www.vogella.com/tutorials/JavaIntroduction/article.html
https://www.vogella.com/tutorials/JavaXML/article.html

Android Tutorials (Google Developers Training)


https://developers.google.com/training/android/
Build Your First Android App in Java =>
More Android codelabs

UPB - ETTI 3
Programare pe Platforma Android (PPA)
External resources
Video tutorials:
Android Studio
How to Make an Android App for Beginners
+ Java Basics for Android Development - Part 1 , Part 2
Android Studio For Beginners Part 1 (My First App +), Part 2 (Quick App Launcher),
Part 3 (Lists, Layouts & Images example), Part 4 (+ SQLite) (2017)
Android App Development for Beginners (2018 Edition): Part 1, (Android Studio 3.0 setup),
Part 2 (Android Studio's Layout Editor), Part 3 & Part 4 (write Kotlin code in Android Studio)
Android Tutorial | Learn Android Development – YouTube,
Android Developers YouTube channel
Android Studio Tutorial For Beginners - 1 | Android Tutorial , 2 | Android Training

UPB - ETTI 4
Programare pe Platforma Android (PPA)
External resources
Online courses:
Android Developer
https://developer.android.com/courses
- Kotlin
https://developer.android.com/courses/android-basics-kotlin/course
https://developer.android.com/courses/kotlin-android-fundamentals/overview

Other Android free courses


- Flutter - Build apps for any screen https://flutter.dev/
https://docs.flutter.dev/get-started/install

UPB - ETTI 5
Programare pe Platforma Android (PPA)
External resources
Online:
Android MVC & MVP
https://www.techyourchance.com/mvp-mvc-android-1/ - Android MVP & MVC
https://android.jlelse.eu/android-mvp-for-beginners-25889c500443 - Android MVP for Beginners
Android Architecture – AndroidPub A simple guide for MVC, MVP and MVVM on Android projects
Android health app Design , building the ListView with MVC

Android Development Blogs


https://www.techyourchance.com/category/android-development/
https://android.jlelse.eu/
https://blog.aritraroy.in/ - Android Apps To Dev Skills, What Android Development Taught Me
http://blog.teamtreehouse.com/ Java Basics for Android Development - Part 1 , Part 2

UPB - ETTI 6
Programare pe Platforma Android (PPA)
External resources
Books:
Head First Android 1st & 2nd edition (download)
http://discipline.elcom.pub.ro/saim/ppa/Head.First.Android.Development.Jul.2012.pdf
cod sursa: https://github.com/dogriffiths/HeadFirstAndroid
http://discipline.elcom.pub.ro/saim/ppa/Head-First-Android-Development%202015.pdf
cod sursa: https://github.com/dogriffiths/HeadFirstAndroid2ndEdition

Free eBook – Android Development for Human Beings

The Busy Coder's Guide to Android Development – CommonsWare

Android Programming Cookbook

UPB - ETTI 7
Programare pe Platforma Android (PPA)

Content

UPB - ETTI 8
Programare pe Platforma Android (PPA)

Content

1. Android Platform Architecture & Development Roadmaps

2. Android Development Basics 1

3. Android Development Basics 2

4. Case Study: Android Application Development 1 (Calculator)

5. Case Study: Android Application Development 2 (SQLite)

6. Advanced Android Development (more APIs)

UPB - ETTI 9
Programare pe Platforma Android (PPA)

Android Platform Architecture

UPB - ETTI 10
Android Platform Architecture
Android Tutorial – Vogella
Android Tutorial – Vogella http://www.vogella.com/tutorials/Android/article.html

Android platform components

UPB - ETTI 11
Programare pe Platforma Android (PPA)

Android Development Roadmaps

UPB - ETTI 12
Programare pe Platforma Android (PPA)

https://roadmap.sh/
roadmaps

UPB - ETTI 13
https://roadmap.sh/devops

ELEMENTE DE
INGINERIE
SOFTWARE

UPB - ETTI 14
Programare pe Platforma Android (PPA)

https://roadmap.sh/android

UPB - ETTI 15
Programare pe Platforma Android (PPA)

UPB - ETTI 16
Programare pe Platforma Android (PPA)

UPB - ETTI 17
Programare pe Platforma Android (PPA)

https://medium.com/javarevisited/kotlin-vs-java-which-is-the-best-choice-for-android-app-development-7c9fc782d2c9

UPB - ETTI 18
Programare pe Platforma Android (PPA)

Java is better for:


• Large applications with lots of features and functionality that need to
function across all platforms, including Android, iOS, Windows, or Linux.
• Java has mature libraries that support this type of application development
well.

Kotlin is better for:


• Apps where performance matters a lot, such as those that need to run
smoothly on older Android phones or ones that are used for photo editing.
• Kotlin has a more streamlined and efficient design than Java, so it will
perform better in these types of situations, especially when scaling is
concerned.

• Apps that need to maintain platform independence and be cross-compiled


for multiple platforms as well as Android.
• Kotlin can perform these functions while Java cannot due to its use of
bytecode which can only compile code for one specific platform at once.

UPB - ETTI 19
Programare pe Platforma Android (PPA)

https://github.com/skydoves/android-developer-roadmap

https://getstream.io/blog/android-developer-roadmap/
Languages
Android OS
GITHUB
The Android Platform
App Manifest

https://getstream.io/blog/android-developer-roadmap-part-2/
In part two, we’ll cover the next three sections of our Android Roadmap:
App Components
Intents
App Entry Points

UPB - ETTI 20
Programare pe Platforma Android (PPA)

https://speakerdeck.
com/arifaizin/android
-developer-roadmap-
dilo-solo-x-sandec

UPB - ETTI 21
Programare pe Platforma Android (PPA)

https://speakerdeck.
com/arifaizin/android
-developer-roadmap-
dilo-solo-x-sandec

UPB - ETTI 22
Programare pe Platforma Android (PPA)

https://harisbashir231.
medium.com/flutter-
roadmap-resource-
guide-2021-
c2ea56949ab0

FLUTTER

UPB - ETTI 23
Programare pe Platforma Android (PPA)

https://github.com/Jahidul007
/Flutter_Roadmap

FLUTTER

UPB - ETTI 24
Programare pe Platforma Android (PPA)

ELEMENTE DE
INGINERIE
SOFTWARE

UPB - ETTI 25
Programare pe Platforma Android (PPA)

ELEMENTE DE
INGINERIE
SOFTWARE

UPB - ETTI 26
FIGMA
Programare pe Platforma Android (PPA)

https://ui4free.com/diagram/
designer-roadmap-figma-
template.htm

UPB - ETTI 27
Programare pe Platforma Android (PPA)

Android Development Basics

UPB - ETTI 28
Programare pe Platforma Android (PPA)
Java / Android code

UPB - ETTI 29
Programare pe Platforma Android (PPA)
XML / Android example code
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@color/myColor">

<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/main_input"
android:inputType="numberSigned|numberDecimal"/>

<RadioGroup
android:id="@+id/radioGroup1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/editText1"
android:layout_below="@+id/editText1">

UPB - ETTI 30
Programare pe Platforma Android (PPA)
Java vs Kotlin

UPB - ETTI 31
Programare pe Platforma Android (PPA)

Case Study: Android Application


Development 1 (Calculator)

UPB - ETTI 32
Programare pe Platforma Android (PPA)

Introduction to Android development: TouchCalculator


http://www.codeproject.com/Articles/104931/Introduction-to-Android-development-TouchCalculato
http://www.codeproject.com/Articles/104931/Introduction-to-Android-development-TouchCalculato?display=Print

TouchCalculator Bare Bones User Displaying Applying Style


MockUp Interface The Keypad To Our Keypad

UPB - ETTI 33
Programare pe Platforma Android (PPA)

Case Study: Android Application


Development 2 (SQLite)

UPB - ETTI 34
Programare pe Platforma Android (PPA)

Android SQLite Tutorials


Android SQLite Example – Java Code Geeks
http://examples.javacodegeeks.com/android/core/database/sqlite/sqlitedatabase/android-sqlite-example/

A Simple Android SQLite Example – Code Project


http://www.codeproject.com/Articles/783073/A-Simple-Android-SQLite-Example

Android SQLite database and content provider – Dartmouth


http://www.cs.dartmouth.edu/~campbell/cs65/lecture15/lecture15.html

Android SQLite Database Tutorial – Tutorials Point


http://www.tutorialspoint.com/android/android_sqlite_database.htm

An Android SQLite Database Tutorial – Techotopia


http://www.techotopia.com/index.php/An_Android_SQLite_Database_Tutorial

UPB - ETTI 35
Programare pe Platforma Android (PPA)

Android SQLite Tutorials


Android SQLite Example – Java Code Geeks
http://examples.javacodegeeks.com/android/core/database/sqlite/sqlitedatabase/android-sqlite-example/

UPB - ETTI 36
Programare pe Platforma Android (PPA)

Advanced Android Development


(more APIs)

UPB - ETTI 37
Programare pe Platforma Android (PPA)

Laborator

UPB - ETTI 38
Programare pe Platforma Android (PPA)

Organizare laborator:

1. Dezvoltarea aplicatiilor Android in mediul Android Studio. Crearea primei aplicatii


Android (de efectuat INVIDIVUAL pe laptopul propriu !!!)
+ Start Etapa 1 mini-proiecte – formarea echipelor, alegerea / conturarea temelor
(saptamanile 1-2 sem II – 27.02 – 12.03)

2. Constructia unei interfete grafice simple in Android (INVIDIVUAL pe laptopul propriu !!!)
+ Detaliere Etapa 1 mini-proiecte – finalizarea alegerii / cerintelor temelor
(saptamana 3 sem II – 13.03 – 19.03)

3. Alte aspecte ale programarii pe platforma Android (in echipe in laborator sala A110)
+ Versiunea 1 Prezentare Powerpoint - se trimite INAINTE de lucrarea a 3-a (in Moodle)
(saptamanile 4-5 sem II – bonusuri urcare/Moodle si prezentare)

UPB - ETTI 39
Programare pe Platforma Android (PPA)

Organizare laborator:

4. Prezentari Versiunea a 2-a mini-proiecte (in echipe in laborator sala A110)


!!! Prezentarea Powerpoint se trimite INAINTE de lucrarea a 4-a in Moodle
(saptamanile 6-7 sem II – bonusuri urcare/Moodle si prezentare)

5. Lucrul la mini-proiecte (in echipe acasa)


Organizam sesiuni online pe Teams pentru consultatii – la cerere, de comun acord
(saptamanile 8-10 sem II – 17.04 – 07.05 – incluzand Paste + 1 Mai)

6. Prezentari Versiunea a 3-a mini-proiecte


SAU participare la Sesiunea de Comunicari Stiintifice Studentesti = NOTA FINALA 10
!!! Prezentarea Powerpoint se trimite INAINTE de lucrarea a 6-a in Moodle
(saptamanile 11-12 sem II – 8.05 – 21.05)

7. Prezentari Versiunea finala mini-proiecte – prezentare finala


!!! Prezentarea Powerpoint se trimite INAINTE de lucrarea a 7-a in Moodle
(saptamanile 13-14 sem II – 22.05 – 31.05 – joi 01.06 e zi libera)

UPB - ETTI 40
Programare pe Platforma Android (PPA)

Evaluare

UPB - ETTI 41
Programare pe Platforma Android (PPA)

Mod evaluare

20 puncte – realizarea la timp a echipelor, prezentarilor etc

2 x 20 puncte – evaluarea prezentarilor la lucrarile 3 si 4 (in echipe)


(prezentarea ideii de aplicatie si documentarea punctului de start)
- linkuri tutorial etc
2 x 20 puncte – evaluarea prezentarilor la lucrarile 6 si 7 (FINALA)
(prezentarea aplicatiei in stadiul final, in special codurile noi)
- schite/mockups Figma/Adobe XD etc
- prototip Android (interfata, coduri specifice)
- linkuri etc
Diverse alte bonusuri
(participare concursuri, Sesiune Comunicari etc)

UPB - ETTI 42

You might also like