SlideShare uma empresa Scribd logo
1 de 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

Mais conteúdo relacionado

Mais procurados

Top 10 programming langauges crossed decades
Top 10 programming langauges crossed decadesTop 10 programming langauges crossed decades
Top 10 programming langauges crossed decadeszarigatongy
 
ReviewNinja OSCON
ReviewNinja OSCONReviewNinja OSCON
ReviewNinja OSCONdfarr219
 
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...Paris Open Source Summit
 
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 6Alberto López Martín
 
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 breaksHarsh Agarwal
 
Part 4 of Git, Illuminated
Part 4 of Git, IlluminatedPart 4 of Git, Illuminated
Part 4 of Git, Illuminatedjessitron
 
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 2014Philippine Web Designers Organization
 
Open source software for startups
Open source software for startupsOpen source software for startups
Open source software for startupsvictorneo
 
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 BangratzRailsGirls_RTM
 
Don’t be a git
Don’t be a gitDon’t be a git
Don’t be a gitdmanners87
 

Mais procurados (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
 

Semelhante a Android Course - Lesson1

Android Course - Lesson2
Android Course - Lesson2Android Course - Lesson2
Android Course - Lesson2Callum Taylor
 
Android Course - Lesson3
Android Course - Lesson3Android Course - Lesson3
Android Course - Lesson3Callum Taylor
 
Android course lesson1
Android course lesson1Android course lesson1
Android course lesson13sidedcube
 
Data Structures for Text Editors
Data Structures for Text EditorsData Structures for Text Editors
Data Structures for Text Editorsosfameron
 
Start! ATS programming
Start! ATS programmingStart! ATS programming
Start! ATS programmingKiwamu Okabe
 
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 DecissionsDavid Rodenas
 
How I become Go GDE
How I become Go GDEHow I become Go GDE
How I become Go GDEEvan Lin
 
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...Alexandra M. Pickett
 
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 1Goran S. Milovanovic
 
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.jsLuciano Mammino
 
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 gemsAndy Wang
 
그렇게 커미터가 된다: Python을 통해 오픈소스 생태계 가르치기
그렇게 커미터가 된다: Python을 통해 오픈소스 생태계 가르치기그렇게 커미터가 된다: Python을 통해 오픈소스 생태계 가르치기
그렇게 커미터가 된다: Python을 통해 오픈소스 생태계 가르치기Jeongkyu Shin
 
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 MeuselPuppet
 
Podcasting With Language Learners
Podcasting With Language LearnersPodcasting With Language Learners
Podcasting With Language LearnersSeth dickens
 
TypeScript 101 - We RISE Tech Conference
TypeScript 101 - We RISE Tech ConferenceTypeScript 101 - We RISE Tech Conference
TypeScript 101 - We RISE Tech ConferenceFrances Coronel
 
How to not blow up spaceships
How to not blow up spaceshipsHow to not blow up spaceships
How to not blow up spaceshipsSabin Marcu
 

Semelhante a 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
 

Último

Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
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
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 

Último (20)

Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.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?
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 

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

Notas do Editor

  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!