SlideShare ist ein Scribd-Unternehmen logo
1 von 39
Android
Lesson 1 by Callum Taylor

Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

@scruffyfox
Introduction
• All code and presentation slides can be
found over at
https://github.com/scruffyfox/AndroidCours
e
• Twitter/app.net/github: @scruffyfox

• http://(blog.)callumtaylor.net
Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

@scruffyfox
Introduction

https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

@scruffyfox
Introduction – Who am I?

Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

@scruffyfox
Introduction – Who am I?

Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

@scruffyfox
Introduction – What is this?

Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

@scruffyfox
Introduction – What is this?
• How to create an app from scratch
• The different technologies available +
pros/cons
• The different aspects of an app ranging
from text views to list views
Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

@scruffyfox
Introduction – So, why make an app?

Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

@scruffyfox
Introduction – So, why make an app?

Source: http://www.jana.com/assets/Mobile-web-vs-desktop-7-13.png

Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

@scruffyfox
Introduction – Statistics

OVER 1 BILLION
Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

@scruffyfox
Introduction – Statistics

Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

@scruffyfox
Introduction – Our apps

Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

@scruffyfox
Introduction – Our apps

(shameless plug)

Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

@scruffyfox
Introduction – Ways to develop
• Web technologies

Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

@scruffyfox
Introduction – Ways to develop
• Why HTML/JS is BAAAAAAAAAAAD

Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

@scruffyfox
Introduction – Ways to develop
• It‟s slow
• It‟s expensive
• It doesn‟t give a „native‟ feel

• It‟s slow
Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

@scruffyfox
Introduction – Ways to develop
• Native

Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

@scruffyfox
Oracle – Boo

Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

@scruffyfox
Introduction – Ways to develop
• Native

Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

@scruffyfox
OOP – What is OOP?
• Stands for Object orientated programming
language
• Often uses an “MVC” Style framework

Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

@scruffyfox
OOP – What is OOP?

Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

@scruffyfox
OOP – What is OOP?

Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

@scruffyfox
OOP – What is OOP?

Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

@scruffyfox
OOP – What is OOP?

Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

@scruffyfox
OOP – What is OOP?

Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

@scruffyfox
OOP – Extending

Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

@scruffyfox
OOP – Extending

Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

@scruffyfox
OOP – Methods

Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

@scruffyfox
Android – Fundamentals
Resources

Source files

Drawables
Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

Layouts
@scruffyfox
Android – Fundamentals

Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

@scruffyfox
Android – Fundamentals – IDE

Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

@scruffyfox
Android – Fundamentals
• An Android app is made up of Contexts,
mainly Activities and Fragments, and
layouts.

• Layouts are made up of Views

Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

@scruffyfox
Android – Fundamentals
• What is an activity?
A source file with a context which is
responsible for displaying and interacting
with the UI and UX of an app

Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

@scruffyfox
Android – Fundamentals

Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

@scruffyfox
Android – Fundamentals
• What is a View?
Something that is visible to the user and/or
displayed on the screen which serves a
specific purpose
View • TextView • ImageView • Button • EditText • ListView • GridView • CheckBox •
RadioButton • Spinner • VideoView • WebView • ProgressBar • ImageButton • SeekBar

Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

@scruffyfox
Android – Fundamentals

Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

@scruffyfox
Android – Fundamentals
• What is a Layout?
An extension of View which can contain one
or more child views and arrange them in a
specific layout
ViewGroup • FrameLayout • RelativeLayout • LinearLayout • AbsoluteLayout • ScrollView
(It should be ScrollLayout…)

Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

@scruffyfox
Android – Fundamentals

Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

@scruffyfox
Android – Demo

Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1

@scruffyfox

Weitere ähnliche Inhalte

Was ist angesagt?

Open source software for startups
Open source software for startupsOpen source software for startups
Open source software for startups
victorneo
 
Introducing Github and Octocats by Tony Bangratz
Introducing Github and Octocats by Tony BangratzIntroducing Github and Octocats by Tony Bangratz
Introducing Github and Octocats by Tony Bangratz
RailsGirls_RTM
 

Was ist angesagt? (12)

Top 10 programming langauges crossed decades
Top 10 programming langauges crossed decadesTop 10 programming langauges crossed decades
Top 10 programming langauges crossed decades
 
Git and GitHub for RallyOn
Git and GitHub for RallyOnGit and GitHub for RallyOn
Git and GitHub for RallyOn
 
ReviewNinja OSCON
ReviewNinja OSCONReviewNinja OSCON
ReviewNinja OSCON
 
OWF14 : Project & Community driving track : The PostgreSQL Project - An examp...
OWF14 : Project & Community driving track : The PostgreSQL Project - An examp...OWF14 : Project & Community driving track : The PostgreSQL Project - An examp...
OWF14 : Project & Community driving track : The PostgreSQL Project - An examp...
 
Candies for everybody: Hacking from 9 to 6
Candies for everybody: Hacking from 9 to 6Candies for everybody: Hacking from 9 to 6
Candies for everybody: Hacking from 9 to 6
 
Automated prometheus benchmarking pushing it to its limits until it breaks
Automated prometheus benchmarking   pushing it to its limits until it breaksAutomated prometheus benchmarking   pushing it to its limits until it breaks
Automated prometheus benchmarking pushing it to its limits until it breaks
 
Paving roads
Paving roadsPaving roads
Paving roads
 
Part 4 of Git, Illuminated
Part 4 of Git, IlluminatedPart 4 of Git, Illuminated
Part 4 of Git, Illuminated
 
Philippine Web Designers Organization at #BoomPH Social Media Day 2014
Philippine Web Designers Organization at #BoomPH Social Media Day 2014Philippine Web Designers Organization at #BoomPH Social Media Day 2014
Philippine Web Designers Organization at #BoomPH Social Media Day 2014
 
Open source software for startups
Open source software for startupsOpen source software for startups
Open source software for startups
 
Introducing Github and Octocats by Tony Bangratz
Introducing Github and Octocats by Tony BangratzIntroducing Github and Octocats by Tony Bangratz
Introducing Github and Octocats by Tony Bangratz
 
Don’t be a git
Don’t be a gitDon’t be a git
Don’t be a git
 

Ähnlich wie Android Course - Lesson1

Start! ATS programming
Start! ATS programmingStart! ATS programming
Start! ATS programming
Kiwamu Okabe
 
그렇게 커미터가 된다: Python을 통해 오픈소스 생태계 가르치기
그렇게 커미터가 된다: Python을 통해 오픈소스 생태계 가르치기그렇게 커미터가 된다: Python을 통해 오픈소스 생태계 가르치기
그렇게 커미터가 된다: Python을 통해 오픈소스 생태계 가르치기
Jeongkyu Shin
 
Teaching Outside The Box Handout
Teaching Outside The Box HandoutTeaching Outside The Box Handout
Teaching Outside The Box Handout
Alexandra M. Pickett
 

Ähnlich wie Android Course - Lesson1 (20)

Android Course - Lesson2
Android Course - Lesson2Android Course - Lesson2
Android Course - Lesson2
 
Android Course - Lesson3
Android Course - Lesson3Android Course - Lesson3
Android Course - Lesson3
 
Android course lesson1
Android course lesson1Android course lesson1
Android course lesson1
 
Data Structures for Text Editors
Data Structures for Text EditorsData Structures for Text Editors
Data Structures for Text Editors
 
Start! ATS programming
Start! ATS programmingStart! ATS programming
Start! ATS programming
 
Angular 1.X Community and API Decissions
Angular 1.X Community and API DecissionsAngular 1.X Community and API Decissions
Angular 1.X Community and API Decissions
 
How I become Go GDE
How I become Go GDEHow I become Go GDE
How I become Go GDE
 
Chile 2009 - US State Department Speaker program and INACAP "Best Practices i...
Chile 2009 - US State Department Speaker program and INACAP "Best Practices i...Chile 2009 - US State Department Speaker program and INACAP "Best Practices i...
Chile 2009 - US State Department Speaker program and INACAP "Best Practices i...
 
Resources
ResourcesResources
Resources
 
React Native Masterclass
React Native MasterclassReact Native Masterclass
React Native Masterclass
 
Introduction to R for Data Science :: Session 1
Introduction to R for Data Science :: Session 1Introduction to R for Data Science :: Session 1
Introduction to R for Data Science :: Session 1
 
An overview of JavaScript and Node.js
An overview of JavaScript and Node.jsAn overview of JavaScript and Node.js
An overview of JavaScript and Node.js
 
Riding on rails3 with full stack of gems
Riding on rails3 with full stack of gemsRiding on rails3 with full stack of gems
Riding on rails3 with full stack of gems
 
儲かるドキュメント
儲かるドキュメント儲かるドキュメント
儲かるドキュメント
 
그렇게 커미터가 된다: Python을 통해 오픈소스 생태계 가르치기
그렇게 커미터가 된다: Python을 통해 오픈소스 생태계 가르치기그렇게 커미터가 된다: Python을 통해 오픈소스 생태계 가르치기
그렇게 커미터가 된다: Python을 통해 오픈소스 생태계 가르치기
 
Modulesync- How vox pupuli manages 133 modules, Tim Meusel
Modulesync- How vox pupuli manages 133 modules, Tim MeuselModulesync- How vox pupuli manages 133 modules, Tim Meusel
Modulesync- How vox pupuli manages 133 modules, Tim Meusel
 
Teaching Outside The Box Handout
Teaching Outside The Box HandoutTeaching Outside The Box Handout
Teaching Outside The Box Handout
 
Podcasting With Language Learners
Podcasting With Language LearnersPodcasting With Language Learners
Podcasting With Language Learners
 
TypeScript 101 - We RISE Tech Conference
TypeScript 101 - We RISE Tech ConferenceTypeScript 101 - We RISE Tech Conference
TypeScript 101 - We RISE Tech Conference
 
How to not blow up spaceships
How to not blow up spaceshipsHow to not blow up spaceships
How to not blow up spaceships
 

Kürzlich hochgeladen

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Kürzlich hochgeladen (20)

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
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
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
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
 
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
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
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)
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 

Android Course - Lesson1

  • 1. Android Lesson 1 by Callum Taylor Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 @scruffyfox
  • 2. Introduction • All code and presentation slides can be found over at https://github.com/scruffyfox/AndroidCours e • Twitter/app.net/github: @scruffyfox • http://(blog.)callumtaylor.net Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 @scruffyfox
  • 3. Introduction https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 @scruffyfox
  • 4. Introduction – Who am I? Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 @scruffyfox
  • 5. Introduction – Who am I? Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 @scruffyfox
  • 6. Introduction – What is this? Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 @scruffyfox
  • 7. Introduction – What is this? • How to create an app from scratch • The different technologies available + pros/cons • The different aspects of an app ranging from text views to list views Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 @scruffyfox
  • 8. Introduction – So, why make an app? Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 @scruffyfox
  • 9. Introduction – So, why make an app? Source: http://www.jana.com/assets/Mobile-web-vs-desktop-7-13.png Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 @scruffyfox
  • 10. Introduction – Statistics OVER 1 BILLION Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 @scruffyfox
  • 11. Introduction – Statistics Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 @scruffyfox
  • 12. Introduction – Our apps Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 @scruffyfox
  • 13. Introduction – Our apps (shameless plug) Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 @scruffyfox
  • 14. Introduction – Ways to develop • Web technologies Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 @scruffyfox
  • 15. Introduction – Ways to develop • Why HTML/JS is BAAAAAAAAAAAD Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 @scruffyfox
  • 16. Introduction – Ways to develop • It‟s slow • It‟s expensive • It doesn‟t give a „native‟ feel • It‟s slow Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 @scruffyfox
  • 17. Introduction – Ways to develop • Native Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 @scruffyfox
  • 18. Oracle – Boo Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 @scruffyfox
  • 19. Introduction – Ways to develop • Native Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 @scruffyfox
  • 20. OOP – What is OOP? • Stands for Object orientated programming language • Often uses an “MVC” Style framework Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 @scruffyfox
  • 21. OOP – What is OOP? Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 @scruffyfox
  • 22. OOP – What is OOP? Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 @scruffyfox
  • 23. OOP – What is OOP? Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 @scruffyfox
  • 24. OOP – What is OOP? Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 @scruffyfox
  • 25. OOP – What is OOP? Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 @scruffyfox
  • 26. OOP – Extending Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 @scruffyfox
  • 27. OOP – Extending Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 @scruffyfox
  • 28. OOP – Methods Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 @scruffyfox
  • 29. Android – Fundamentals Resources Source files Drawables Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 Layouts @scruffyfox
  • 30. Android – Fundamentals Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 @scruffyfox
  • 31. Android – Fundamentals – IDE Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 @scruffyfox
  • 32. Android – Fundamentals • An Android app is made up of Contexts, mainly Activities and Fragments, and layouts. • Layouts are made up of Views Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 @scruffyfox
  • 33. Android – Fundamentals • What is an activity? A source file with a context which is responsible for displaying and interacting with the UI and UX of an app Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 @scruffyfox
  • 34. Android – Fundamentals Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 @scruffyfox
  • 35. Android – Fundamentals • What is a View? Something that is visible to the user and/or displayed on the screen which serves a specific purpose View • TextView • ImageView • Button • EditText • ListView • GridView • CheckBox • RadioButton • Spinner • VideoView • WebView • ProgressBar • ImageButton • SeekBar Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 @scruffyfox
  • 36. Android – Fundamentals Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 @scruffyfox
  • 37. Android – Fundamentals • What is a Layout? An extension of View which can contain one or more child views and arrange them in a specific layout ViewGroup • FrameLayout • RelativeLayout • LinearLayout • AbsoluteLayout • ScrollView (It should be ScrollLayout…) Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 @scruffyfox
  • 38. Android – Fundamentals Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 @scruffyfox
  • 39. Android – Demo Lesson 1 – https://github.com/scruffyfox/AndroidCourse/tree/Lesson-1 @scruffyfox

Hinweis der Redaktion

  1. My name is Callum Taylor I work for a company called
  2. 3 SIDED CUBE. I’m the lead android developer (only because I was the only Android developer) and have been for the last 3 years.
  3. This is a course that will hopefully teach you the fundamentals of Android development, mainly
  4. So, why make an app?If we substitute “app” with “website” we’ll be where we were during the late 90’s. Companies asking, well why do we need a website? What is it going to bring for us?It’s very expensive, so why bother?
  5. The answer is exactly the same. To get your brand/company/product out there!There is an incredible amount of users using mobile currently and that number is increasing every year, it will soon overtake computer usage. If you’re a company with a product, this is an incredible market to be tapping into.
  6. Over 1 billion Android activations over the last 4 years.
  7. In the last 4 years, we’ve had over 9 MILLION downloads over 7 apps. And there’s a whole bunch more that aren’t even included in this list.So this is a massive market to tap into.
  8. There are many ways to develop an application nowadays, one of the most popular is using web technologies.Phone gapHTML 5/JSTitatniumjQuery mobile.Titanium may not necessarilyfit with the others because it compiles to ‘native’, but the others are all based on using Web Views, HTML and Javascript to create apps.
  9. HTML Isn’t 100% bad, its actually very good at mocking up quick and dirty prototypes or proof of concepts.But it IS bad for creating an actual app that does more than just display content, and let me explain why
  10. - It is slow. Especially on Android.Android as you know runs using a JVM called Dalvik. And as you may already know, java in itself, is slow. Its running on an extra layer of abstraction on top of the processor. Adding an additional layer such as Javascript, can make it *that much slower* especially when attempting to do large lists.Its expensive. Not as in cost wise, but in memory.You’re using a webview, which in Android is very memory expensive, having to deal with parsing HTML and executing heavy javascript (even vanilla JS) adds to the memory usage of your appWhen using webviews, you’re essentially changing what the user is used to.Especially if you’re making a cross platform app for iOS and Android, you’ll end up compromising on the look of the app (one way or the other, or both) which ultimately leads to a bad user experience It is VERY slowYou’ll come to understand how List Views work in Android, and when you do, you’ll see why javascript lists are slow compared to native.
  11. The best way to create an Android app, or an app on any platform in this case, is to just use the tools that have been provided by the people who created the system.In Android’s case the primary framework uses Java. I say Java, its Java syntax, but the APIs are slightly different than Sun/Oracle’s java
  12. We don’t like Oracle.
  13. The framework also uses XML, but don’t worry, its not as bad as you may think.The framework, also has the option to use the NDK (Native development kit) which uses C++. But this is only used when creating low level things such as graphic intensive games, or image processing. You can’t create an app in C++ just because it’s a language you prefer. Unless you want to create a whole custom UI and behaviour for your app, in which case you may as well just fork Android,
  14. Before we start anything, we need to make sure we’re all on the same page when it comes to understanding how an Java works, and what an Object-Orientated programming language is.
  15. A very good analogy for OOP is something I learned during my Sixth form years, is the car.There are lots of different types of car, and each car has its own set of properties, much like how OOP works. Let’s brake (lol) this down.
  16. A very good analogy for OOP is something I learned during my Sixth form years, is the car.There are lots of different types of car, and each car has its own set of properties, much like how OOP works. Let’s brake (lol) this down.We haveThe steering wheelTyresBrakesChassisEngine.These are all ‘properties’ of a car. Every car (I hope) has one of these properties, but the properties are slightly different for each car, such as the engine speed, tyre size, chassis colour etc. The property values are different, but the properties are still the same.
  17. Let’s have a look at how that might look in Java code. Note I don’t actually use braces on the same line, I’m only doing it for compactibility sakes.You can see we have the 5 properties (currently they are just strings) of the car. We can now use this class to create different cars.
  18. Here we’ve made a honda and a BMW and set what properties they have. We could do this a million times with different properties for the different types of car.
  19. That was just a basic example. OOP Can become very complicated, in a good way. Say we wanted to have a motorbike, we could either create a new class with new properties, or we can find out what properties a car shares with a motorbike, and to make them share them.You can see that both have at least 2 wheels, 2 brakes, a chassis and an engine.
  20. We can actually extend our object to create sub-objects. It’s worth noting that in every OOP language, *every* class extends another class. In Java, the top most class you can extend from (which is the default if you don’t provide one) is Object.You can see here that we now have 3 objects. Our automobile class contains all of the properties that a car and a bike would have. But we also have 2 sub classes which have properties specific to that type of vehicle. All properties in Automobile are available in both of the sub classes.
  21. Here we can see in blue, the custom properties for that object specifically, and in orange, the inherited properties.
  22. Not only can you do properties, but you can do methods/functions. They work in exactly the same way as a property.
  23. The basic structure of an android app is as follows:You have your source files and your assets, assets being broken down into two main sections, drawables and layouts.
  24. Or a more folder representation highlighted in blue, our basic folders. We’ll get into what the other folders mean another time.
  25. For these lessons, we’re going to be using Android Studio, which is a fork of IntelliJ.Android Studio is currently in alpha release, but it is stable enough to start using.Here is your editor windowHere is your project structure windowAnd here is your debugging output window
  26. Sothe most important part of android development is the Activity/context. So, what is an activity?A source file with a context which is responsible for displaying and interacting with the UI and UX of an appBut more specifically, its something that you see on your phone.
  27. Here’s a visual example using the Twitter app.We can see here, this screen is an activity. It has 4 tabs which all hold different views (called fragments, we will get into this another time).When you click the menu icon and then settings, it opens another screen, the “settings” activity. This is another activity that has been opened up from the previous one.
  28. (Read from above)
  29. Everything highlighted in red, are views which make up this screen.Ranging from a TextView, to ImageView, to ButtonView. All have a specific job and do a specific task
  30. (Read from above)The most common layouts you will be using will be Relative Layouts and Linear Layouts.A linear layout is a layout that lays its children out linearly, for example, left to right horizontally, or top to bottom vertically.A relative layout lays its children out relative to the other views, you can specify which views are laid out in relation to its surrounding, for example, making one view be to the right of another view etc.
  31. Everything in red is probably a layout of some kind. I say probably because there’s a million and one ways to layout these views. My best guess would be that they have used a standard mixture of Relative Layouts and Linear Layouts.
  32. What we’re going to make!