SlideShare a Scribd company logo
1 of 26
Download to read offline
ANTONIS KALIPETIS - MOBILE LEAD, SOURCELAIR
AKALIPETIS@SOURCELAIR.COM, @AKALIPETIS

ANDROID WORKSHOP 1
W H AT T H E S E
WORKSHOPS ARE
NOT FOR
• Being a pro in two weeks
!

• Learning without trying
!

• Knowing everything out

there
W H AT W E A R E G O I N G T O L E A R N

• General knowledge of the platform
• Simple application creation
• Learn how to search
GOOGLE IS YOUR FRIEND
A N D S TA C K O V E R F L O W T O O !
AGENDA
• Intro to OOP and Java
• Intro to the Android Platform
• Setting up Android Studio
• Running a simple application
• Creating a simple layout
OBJECT ORIENTED PROGRAMMING

WHY U ROCK SO HARD?
• Code decoupling, enforces code reusability
• Associates data structures with their related methods
• Makes real-world object representation easier
L E T ’ S S A Y I T ’ S A B L U E P R I N T, I T ’ S A W A Y T O R E P R E S E N T D A TA

A CLASS
C E R TA I N D A TA R E P R E S E N TA T I O N , I N M E M O R Y !

OBJECT
CLASS
EXTENSION

• Classes can extend other

classes
• They inherit their

attributes and methods
• Can extend only one

class
public class Car {
public int maxSpeed;
public int currentSpeed;

!

public void accelerate(int speed) {
int tmpSpeed = currentSpeed + speed;
if (tmpSpeed < maxSpeed) {
currentSpeed = tmpSpeed;
} else {
currentSpeed = maxSpeed;
}
}

}

!

public class Truck extends Car {
public int trailers;
public int maxTrailers;

!

}

public void addTrailer() {
if (trailers < maxTrailers) {
trailers++;
}
}
F U N C T I O N A L I T Y PA C K S - A C T I O N D E S C R I P T I O N S

I N T E R FA C E S
public class Car {
// …
}
!

public interface MilitaryUnit {
abstract void startShooting();
}
!

public class MilitaryCar extends Car implements
MilitaryUnit {
@Override
public void startShooting() {
System.out.println("Bang, Bang!");
}
}
SOME OOP LANGUAGES
• C++
• Ruby
• Python
• C#
• VB.NET
• ...And, wait for it...
LET’S DIVE INTO…

J AVA !
J AVA
AT A G L A N C E

C-like syntax
Created in Sun Microsystems
Now acquired by Oracle
public class HelloWorldJava {
public static void main(String[] args) {
System.out.prinln("Hello, World!”);
}
}
G R E AT T H I N G S A B O U T J A V A

• Garbage collector, (almost) good bye memory leaks!
• Shit happens, except exceptions!
• Platform independent, runs on JVM, (or maybe

Dalvik!)
“Have a break, have a KitKat.”
– K I T K AT
EXPLORING THE WORLD OF

ANDROID
W H AT I S
ANDROID
Complete software stack
Operating System
Middleware
Key Applications
Open Source
Developed by the Open
Handset Alliance
Fastest growing market
Platform with the most
devices activations
ANDROID

BOTTOMS UP
ACTIVITY

• Creates a window, so that

the user can interact with
the app
• Can communicate with the

system
• Controls the hierarchy of

the user interface
ACTIVITY
LIFECYCLE

• Save state
• Know when in foreground
• Know when it is possible to

be garbage collected by
the system
L E T ’ S S TA R T O U R …
FIRST APP!
WHAT CAN I PLAY WITH?

C R E AT E S O M E M O R E V I E W S , E V E N
T R Y T O D Y N A M I C A L LY C H A N G E
THEM USING A BUTTON!

More Related Content

Viewers also liked (9)

EESTEC Android Workshops - Recap
 EESTEC Android Workshops - Recap EESTEC Android Workshops - Recap
EESTEC Android Workshops - Recap
 
Circle
CircleCircle
Circle
 
Rectangle by jessie and payton
Rectangle by jessie and paytonRectangle by jessie and payton
Rectangle by jessie and payton
 
buscador
 buscador  buscador
buscador
 
Celiac disease
Celiac diseaseCeliac disease
Celiac disease
 
Account Planning Portfolio (Draft) - Jason Potteiger
Account Planning Portfolio (Draft) - Jason PotteigerAccount Planning Portfolio (Draft) - Jason Potteiger
Account Planning Portfolio (Draft) - Jason Potteiger
 
EESTEC Android Workshops - 101 Java, OOP and Introduction to Android
EESTEC Android Workshops - 101 Java, OOP and Introduction to AndroidEESTEC Android Workshops - 101 Java, OOP and Introduction to Android
EESTEC Android Workshops - 101 Java, OOP and Introduction to Android
 
EESTEC Android Workshop 3
EESTEC Android Workshop 3EESTEC Android Workshop 3
EESTEC Android Workshop 3
 
The Persian Gulf War
The Persian Gulf WarThe Persian Gulf War
The Persian Gulf War
 

Similar to EESTEC Android Workshop 1

ooc - A hybrid language experiment
ooc - A hybrid language experimentooc - A hybrid language experiment
ooc - A hybrid language experiment
Amos Wenger
 
Continuous integration by Rémy Virin
Continuous integration by Rémy VirinContinuous integration by Rémy Virin
Continuous integration by Rémy Virin
CocoaHeads France
 
Android Scripting
Android ScriptingAndroid Scripting
Android Scripting
Juan Gomez
 

Similar to EESTEC Android Workshop 1 (20)

Hacking with the Raspberry Pi and Windows 10 IoT Core
Hacking with the Raspberry Pi and Windows 10 IoT CoreHacking with the Raspberry Pi and Windows 10 IoT Core
Hacking with the Raspberry Pi and Windows 10 IoT Core
 
High quality Front-End
High quality Front-EndHigh quality Front-End
High quality Front-End
 
Ignite your app development with Angular, NativeScript and Firebase
Ignite your app development with Angular, NativeScript and FirebaseIgnite your app development with Angular, NativeScript and Firebase
Ignite your app development with Angular, NativeScript and Firebase
 
Effective Android Development
Effective Android Development Effective Android Development
Effective Android Development
 
Applets
AppletsApplets
Applets
 
The Pharo Evolution
The Pharo EvolutionThe Pharo Evolution
The Pharo Evolution
 
Java1 in mumbai
Java1 in mumbaiJava1 in mumbai
Java1 in mumbai
 
Crash Wars - The handling awakens
Crash Wars  - The handling awakensCrash Wars  - The handling awakens
Crash Wars - The handling awakens
 
New Era of Software with modern Application Security v1.0
New Era of Software with modern Application Security v1.0New Era of Software with modern Application Security v1.0
New Era of Software with modern Application Security v1.0
 
Android development orientation for starters v2
Android development orientation for starters v2Android development orientation for starters v2
Android development orientation for starters v2
 
CocoaConf DC - Automate with Swift - Tony Ingraldi
CocoaConf DC -  Automate with Swift - Tony IngraldiCocoaConf DC -  Automate with Swift - Tony Ingraldi
CocoaConf DC - Automate with Swift - Tony Ingraldi
 
ooc - A hybrid language experiment
ooc - A hybrid language experimentooc - A hybrid language experiment
ooc - A hybrid language experiment
 
ooc - A hybrid language experiment
ooc - A hybrid language experimentooc - A hybrid language experiment
ooc - A hybrid language experiment
 
200,000 Lines Later: Our Journey to Manageable Puppet Code
200,000 Lines Later: Our Journey to Manageable Puppet Code200,000 Lines Later: Our Journey to Manageable Puppet Code
200,000 Lines Later: Our Journey to Manageable Puppet Code
 
مدخل برمجة صعيدي جيكس
مدخل برمجة صعيدي جيكس مدخل برمجة صعيدي جيكس
مدخل برمجة صعيدي جيكس
 
Android - Android Application Configuration
Android - Android Application ConfigurationAndroid - Android Application Configuration
Android - Android Application Configuration
 
Continuous integration by Rémy Virin
Continuous integration by Rémy VirinContinuous integration by Rémy Virin
Continuous integration by Rémy Virin
 
Building Robotics Application at Scale using OpenSource from Zero to Hero
Building Robotics Application at Scale using OpenSource from Zero to HeroBuilding Robotics Application at Scale using OpenSource from Zero to Hero
Building Robotics Application at Scale using OpenSource from Zero to Hero
 
Android Scripting
Android ScriptingAndroid Scripting
Android Scripting
 
Eclipse the Rich Client Platform - Jeff McAffer, Eclipse Architect, IBM
Eclipse the Rich Client Platform - Jeff McAffer, Eclipse Architect, IBMEclipse the Rich Client Platform - Jeff McAffer, Eclipse Architect, IBM
Eclipse the Rich Client Platform - Jeff McAffer, Eclipse Architect, IBM
 

Recently uploaded

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 

EESTEC Android Workshop 1

  • 1. ANTONIS KALIPETIS - MOBILE LEAD, SOURCELAIR AKALIPETIS@SOURCELAIR.COM, @AKALIPETIS ANDROID WORKSHOP 1
  • 2. W H AT T H E S E WORKSHOPS ARE NOT FOR • Being a pro in two weeks ! • Learning without trying ! • Knowing everything out there
  • 3. W H AT W E A R E G O I N G T O L E A R N • General knowledge of the platform • Simple application creation • Learn how to search
  • 4. GOOGLE IS YOUR FRIEND A N D S TA C K O V E R F L O W T O O !
  • 5. AGENDA • Intro to OOP and Java • Intro to the Android Platform • Setting up Android Studio • Running a simple application • Creating a simple layout
  • 7. • Code decoupling, enforces code reusability • Associates data structures with their related methods • Makes real-world object representation easier
  • 8. L E T ’ S S A Y I T ’ S A B L U E P R I N T, I T ’ S A W A Y T O R E P R E S E N T D A TA A CLASS
  • 9. C E R TA I N D A TA R E P R E S E N TA T I O N , I N M E M O R Y ! OBJECT
  • 10. CLASS EXTENSION • Classes can extend other classes • They inherit their attributes and methods • Can extend only one class
  • 11. public class Car { public int maxSpeed; public int currentSpeed; ! public void accelerate(int speed) { int tmpSpeed = currentSpeed + speed; if (tmpSpeed < maxSpeed) { currentSpeed = tmpSpeed; } else { currentSpeed = maxSpeed; } } } ! public class Truck extends Car { public int trailers; public int maxTrailers; ! } public void addTrailer() { if (trailers < maxTrailers) { trailers++; } }
  • 12. F U N C T I O N A L I T Y PA C K S - A C T I O N D E S C R I P T I O N S I N T E R FA C E S
  • 13. public class Car { // … } ! public interface MilitaryUnit { abstract void startShooting(); } ! public class MilitaryCar extends Car implements MilitaryUnit { @Override public void startShooting() { System.out.println("Bang, Bang!"); } }
  • 14. SOME OOP LANGUAGES • C++ • Ruby • Python • C# • VB.NET • ...And, wait for it...
  • 16. J AVA AT A G L A N C E C-like syntax Created in Sun Microsystems Now acquired by Oracle
  • 17. public class HelloWorldJava { public static void main(String[] args) { System.out.prinln("Hello, World!”); } }
  • 18. G R E AT T H I N G S A B O U T J A V A • Garbage collector, (almost) good bye memory leaks! • Shit happens, except exceptions! • Platform independent, runs on JVM, (or maybe Dalvik!)
  • 19. “Have a break, have a KitKat.” – K I T K AT
  • 20. EXPLORING THE WORLD OF ANDROID
  • 21. W H AT I S ANDROID Complete software stack Operating System Middleware Key Applications Open Source Developed by the Open Handset Alliance Fastest growing market Platform with the most devices activations
  • 23. ACTIVITY • Creates a window, so that the user can interact with the app • Can communicate with the system • Controls the hierarchy of the user interface
  • 24. ACTIVITY LIFECYCLE • Save state • Know when in foreground • Know when it is possible to be garbage collected by the system
  • 25. L E T ’ S S TA R T O U R … FIRST APP!
  • 26. WHAT CAN I PLAY WITH? C R E AT E S O M E M O R E V I E W S , E V E N T R Y T O D Y N A M I C A L LY C H A N G E THEM USING A BUTTON!