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

EESTEC Android Workshops - Recap
 EESTEC Android Workshops - Recap EESTEC Android Workshops - Recap
EESTEC Android Workshops - RecapAntonis Kalipetis
 
Rectangle by jessie and payton
Rectangle by jessie and paytonRectangle by jessie and payton
Rectangle by jessie and paytonMrsRBrown
 
Account Planning Portfolio (Draft) - Jason Potteiger
Account Planning Portfolio (Draft) - Jason PotteigerAccount Planning Portfolio (Draft) - Jason Potteiger
Account Planning Portfolio (Draft) - Jason PotteigerJason 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 AndroidAntonis Kalipetis
 
The Persian Gulf War
The Persian Gulf WarThe Persian Gulf War
The Persian Gulf Warctorchin
 

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

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 CoreNick Landry
 
High quality Front-End
High quality Front-EndHigh quality Front-End
High quality Front-EndDavid Simons
 
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 FirebaseJen Looper
 
Effective Android Development
Effective Android Development Effective Android Development
Effective Android Development Sergii Zhuk
 
The Pharo Evolution
The Pharo EvolutionThe Pharo Evolution
The Pharo EvolutionESUG
 
Crash Wars - The handling awakens
Crash Wars  - The handling awakensCrash Wars  - The handling awakens
Crash Wars - The handling awakensŽeljko Plesac
 
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.0Dinis Cruz
 
Android development orientation for starters v2
Android development orientation for starters v2Android development orientation for starters v2
Android development orientation for starters v2Joemarie Amparo
 
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 IngraldiTony Ingraldi
 
ooc - A hybrid language experiment
ooc - A hybrid language experimentooc - A hybrid language experiment
ooc - A hybrid language experimentAmos Wenger
 
ooc - A hybrid language experiment
ooc - A hybrid language experimentooc - A hybrid language experiment
ooc - A hybrid language experimentAmos Wenger
 
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 CodeDavid Danzilio
 
مدخل برمجة صعيدي جيكس
مدخل برمجة صعيدي جيكس مدخل برمجة صعيدي جيكس
مدخل برمجة صعيدي جيكس Hesham Hanafi
 
Continuous integration by Rémy Virin
Continuous integration by Rémy VirinContinuous integration by Rémy Virin
Continuous integration by Rémy VirinCocoaHeads France
 
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 HeroAlex Barbosa Coqueiro
 
Android Scripting
Android ScriptingAndroid Scripting
Android ScriptingJuan Gomez
 
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, IBMmfrancis
 

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

Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 

Recently uploaded (20)

Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 

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!