SlideShare a Scribd company logo
1 of 66
Download to read offline
EESTEC Competition for AndroidTM
WELCOME
TO THE FIRST SESSION OF
ECA Android Basics Online Seminar
Introduction
Host:
Angelos Karatsidis - ECA Main Coordinator
Speaker:
Goran Djonovic - Android Developer
EESTEC Competition for Android
- 504 Idea Submissions...
- 413 Teams…
- 717 Individuals…
- 54 countries…
- 6 continents!
EESTEC Online Seminar
- Project organized by EESTEC International
- Integrates the training goal of ECA
- Part 1: “Intro to Android Basics”
- Topics tailored to your needs
- Next session: Sunday, 11th January
SPEAKER INTRODUCTION
Goran Djonovic - Software Engineer
Execom: www.execom.eu
Twitter: @gdjonovic – fastest way to ask question and get answer
Email: djonovic.g@gmail.com
LinkedIn: http://www.linkedin.com/in/gdjonovic
Slide share: http://www.slideshare.net/gorandjonovic
Git hub: https://github.com/gdjonovic
Blog: http://gdjonovic.me
I did this before...
I do this a lot...
Let’s APP the world!
Questions ?
AGENDA
- How to start
- What is android all about
- Impact of mobile
- It’s (NOT) all about the code
- Android basics
- Good app ideas
Before we start
- Link to slides will be provided with
recording of this talk
- We use crowdcast
-
Google it out
How to start learning
Books (ain't nobody got time for that right? :))
Effective Java by Joshua Bloch
Android Programming: Pushing the Limits by Erik Hellman
http://developer.android.com/index.html
coursera.org
udemy.com
youtube.com
edx.org
/ 11
Android Architecture
/ 11
How start development
● Install java
● Download eclipse ADT or Android Studio
● Unlock developer options (if you have device)
● Start making some apps!
http://developer.android.com/sdk/index.html
It’s not just about mobile
What is mobile development
Wiki says: “Mobile application development is the process by which
application software is developed for low-power handheld devices, such as
personal digital assistants, enterprise digital assistants or mobile phones”
WHAT DO YOU THINK?
/ 11
The fastest technology adoption in
history!!!
/ 16
Source : http://www.moweble.com/career-opportunities-in-mobile-apps-development.html
PCs Vs. Smartphones
Source: http://www.businessinsider.com/smartphones-versus-pcs-2013-8
You want to build some cool app
What course should you take?
•Introduction to Psychology
•Introduction to Business
•Introduction to Android/iPhone/Windows Phone
•Introduction to Marketing
•Introduction to Design
All of the above ☺
3 Principles of Marketing
•Principle of Customer Value
•Principle of Differentiation
•Principle of Segmentation, Targeting, and
Positioning
Question: What is fair value?
Understand your users (Psychology)
•User groups
•Backgrounds
•Context
•Way of interaction
•Needs
Make your app look nice (Design)
•Colors
•UI elements
•Blend with OS
•Attract user attention
•….
Operational Excellence
(Android programming)
This is what you as a developer need to provide
•Make the app fast and easy to use
•Save power
•Protect data and the users
•No bugs
•Keep it simple
•Don’t be evil :)
DESIGNING FOR
ANDROID
What about all those
different devices out there?
What is fragmentation you ask ☺
•The Blessing
•The Curse
•Let’s look at the study done by OpenSignalMaps.
Over 6 months they've been logging the new devices that download
OpenSignalMaps. They've looked at model, brand, API level (i.e. the
version of Android) and screen size…
…. And what did they find out
/ 24
3997 distinct devices!!!
/ 24
What about resolutions?
/ 24
Start with 240x320px
/ 24
Then we have 320x480px
/ 24
400x800px
/ 24
And then 480x854px
/ 24
Also common 720x1280px
/ 24
And at the and 1080x1920px Full-HD
/ 24
Minimum Vs. Maximum
/ 24
Vs.
27 time more pixels
Where to start
•Current flagship model
•Most common resolution
•Start with small
… It depends
/ 24
Density independent pixel DIP
/ 24
Density Buckets
/ 24
Tap target
/ 24
Icon size
/ 24
Scale independent pixel - SIP
/ 24
Designing UI and Designing Interaction
•Go to http://developer.android.com/design/index.html
•Make important things fast
•If it looks the same, it should act the same
•Only show what I need when I need it
/ 24
Material Design
ANDROID BASICS
Android concepts
•Activity – visual user interface focused on a single thing a user can do
•Service – no visual interface – they run in the background
•Broadcast receiver – receive and react to broadcast announcements
•Content provider – allow data exchange between applications
•Intent
•Manifest
48
Applications
•Written in Java
•Each application runs in its own process
•Each process has its own separate VM
•Each application is assigned a unique Linux user ID – by default files of
that application are only visible to that application (can be explicitly
exported)
49
50
Activities
•Basic component of most applications
•Most applications have several activities that start each other as needed
•Each is implemented as a subclass of the base Activity class
Understanding
the lifecycle
51
What about those fragments?
http://developer.android.com/guide/components/fragments.html
53
Activities – The View
•Each activity has a default window to draw in (although it may prompt
for dialogs or notifications)
•The content of the window is a view or a group of views (derived from
View or ViewGroup)
•Example of views: buttons, text fields, scroll bars, menu items, check
boxes, etc.
•View(Group) made visible via Activity.setContentView() method.
54
Services
•Does not have a visual interface
•Runs in the background indefinitely
•Examples
• Network Downloads
• Playing Music
• TCP/UDP Server
•You can bind to a an existing service and control its operation
55
Broadcast Receivers
•Receive and react to broadcast announcements
•Extend the class BroadcastReceiver
•Examples of broadcasts:
• Low battery, power connected, shutdown, timezone changed, etc.
• Other applications can initiate broadcasts
56
Content Providers
•A content provider presents data to external applications
•Makes some of the application data available to other applications
•It’s the only way to transfer data between applications in Android (no
shared files, shared memory, pipes, etc.)
•Extends the class ContentProvider;
•Other applications use a ContentResolver object to access the data
provided via a ContentProvider
57
Intents
•An intent is an Intent object with a message content.
•Activities, services and broadcast receivers are started by
intents. ContentProviders are started by ContentResolvers
58
Shutting down components
•Activities
• Can terminate itself via finish();
• Can terminate other activities it started via finishActivity();
•Services
• Can terminate via stopSelf(); or Context.stopService();
•Content Providers
• Are only active when responding to ContentResolvers
•Broadcast Receivers
• Are only active when responding to broadcasts
59
Android Manifest
• Its main purpose in life is to declare the components to the system:
<?xml version="1.0" encoding="utf-8"?>
<manifest . . . >
<application . . . >
<activity android:name="com.example.project.FreneticActivity"
android:icon="@drawable/small_pic.png"
android:label="@string/freneticLabel"
. . . >
</activity>
. . .
</application>
</manifest>
WHAT ABOUT
IDEAS?
How do people use phones
Source: http://hbr.org/2013/01/how-people-really-use-mobile
How to get great idea
- Look around you
- Look at some global trends
- Find the problem (that you can relate to)
- Investigate/Think/Create
- Solve the problem
AGENDA
- How to start
- What is android all about
- Impact of mobile
- It’s (NOT) all about the code
- Android basics
- Good app ideas
Contact
Competition for Android
competition.eestec.net
eca-cp@eestec.net
Let’s APP the world!
Questions ?
THANK YOU ALL! :)
See you again on 11th of January 2015
HAPPY HOLIDAYS

More Related Content

Similar to Eca online-seminar-session-1.pptx

Basics of Android
Basics of Android Basics of Android
Basics of Android sabi_123
 
Android Mobile App Development basics PPT
Android Mobile App Development basics PPTAndroid Mobile App Development basics PPT
Android Mobile App Development basics PPTnithya697634
 
Android Application Development Training by NITIN GUPTA
Android Application Development Training by NITIN GUPTA Android Application Development Training by NITIN GUPTA
Android Application Development Training by NITIN GUPTA NITIN GUPTA
 
Synapse india reviews on android application
Synapse india reviews on android applicationSynapse india reviews on android application
Synapse india reviews on android applicationsaritasingh19866
 
android development training in mumbai
android development training in mumbaiandroid development training in mumbai
android development training in mumbaifaizrashid1995
 
Synapseindia android apps application development
Synapseindia android apps application developmentSynapseindia android apps application development
Synapseindia android apps application developmentSynapseindiappsdevelopment
 
Matteo Gazzurelli - Introduction to Android Development - Have a break edition
Matteo Gazzurelli - Introduction to Android Development - Have a break editionMatteo Gazzurelli - Introduction to Android Development - Have a break edition
Matteo Gazzurelli - Introduction to Android Development - Have a break editionDuckMa
 
Android Workshop Part 1
Android Workshop Part 1Android Workshop Part 1
Android Workshop Part 1NAILBITER
 
Android Seminar BY Suleman Khan.pdf
Android Seminar BY Suleman Khan.pdfAndroid Seminar BY Suleman Khan.pdf
Android Seminar BY Suleman Khan.pdfNomanKhan869872
 
C maksymchuk android
C maksymchuk androidC maksymchuk android
C maksymchuk androidsdeconf
 
Android development
Android developmentAndroid development
Android developmentmkpartners
 
Matteo Gazzurelli - Andorid introduction - Google Dev Fest 2013
Matteo Gazzurelli - Andorid introduction - Google Dev Fest 2013Matteo Gazzurelli - Andorid introduction - Google Dev Fest 2013
Matteo Gazzurelli - Andorid introduction - Google Dev Fest 2013DuckMa
 

Similar to Eca online-seminar-session-1.pptx (20)

Basics of Android
Basics of Android Basics of Android
Basics of Android
 
Android Mobile App Development basics PPT
Android Mobile App Development basics PPTAndroid Mobile App Development basics PPT
Android Mobile App Development basics PPT
 
Android Application Development Training by NITIN GUPTA
Android Application Development Training by NITIN GUPTA Android Application Development Training by NITIN GUPTA
Android Application Development Training by NITIN GUPTA
 
Android tutorial beginner
Android tutorial beginnerAndroid tutorial beginner
Android tutorial beginner
 
Synapse india reviews on android application
Synapse india reviews on android applicationSynapse india reviews on android application
Synapse india reviews on android application
 
android development training in mumbai
android development training in mumbaiandroid development training in mumbai
android development training in mumbai
 
Synapseindia android apps application development
Synapseindia android apps application developmentSynapseindia android apps application development
Synapseindia android apps application development
 
Matteo Gazzurelli - Introduction to Android Development - Have a break edition
Matteo Gazzurelli - Introduction to Android Development - Have a break editionMatteo Gazzurelli - Introduction to Android Development - Have a break edition
Matteo Gazzurelli - Introduction to Android Development - Have a break edition
 
Android Applications
Android ApplicationsAndroid Applications
Android Applications
 
Android ppt
Android pptAndroid ppt
Android ppt
 
Android ppt
Android ppt Android ppt
Android ppt
 
Android Workshop Part 1
Android Workshop Part 1Android Workshop Part 1
Android Workshop Part 1
 
Android Seminar BY Suleman Khan.pdf
Android Seminar BY Suleman Khan.pdfAndroid Seminar BY Suleman Khan.pdf
Android Seminar BY Suleman Khan.pdf
 
C maksymchuk android
C maksymchuk androidC maksymchuk android
C maksymchuk android
 
Android
AndroidAndroid
Android
 
Intro to android (gdays)
Intro to android (gdays)Intro to android (gdays)
Intro to android (gdays)
 
Android development first steps
Android development   first stepsAndroid development   first steps
Android development first steps
 
Fun Food
Fun FoodFun Food
Fun Food
 
Android development
Android developmentAndroid development
Android development
 
Matteo Gazzurelli - Andorid introduction - Google Dev Fest 2013
Matteo Gazzurelli - Andorid introduction - Google Dev Fest 2013Matteo Gazzurelli - Andorid introduction - Google Dev Fest 2013
Matteo Gazzurelli - Andorid introduction - Google Dev Fest 2013
 

More from Goran Djonovic

Teaching kids programming
Teaching kids programmingTeaching kids programming
Teaching kids programmingGoran Djonovic
 
Project a day 2 introduction to android studio
Project a day 2   introduction to android studioProject a day 2   introduction to android studio
Project a day 2 introduction to android studioGoran Djonovic
 
Project a day 2 android application fundamentals
Project a day 2   android application fundamentalsProject a day 2   android application fundamentals
Project a day 2 android application fundamentalsGoran Djonovic
 
Project a day 1 making a great app
Project a day 1   making a great appProject a day 1   making a great app
Project a day 1 making a great appGoran Djonovic
 
Project a day 1 introduction to project a
Project a day 1   introduction to project aProject a day 1   introduction to project a
Project a day 1 introduction to project aGoran Djonovic
 
Project a day 1 introduction to android
Project a day 1   introduction to androidProject a day 1   introduction to android
Project a day 1 introduction to androidGoran Djonovic
 
Project a day 1 desinging android ui
Project a day 1   desinging android uiProject a day 1   desinging android ui
Project a day 1 desinging android uiGoran Djonovic
 
Project a day 1 career in mobile development
Project a day 1   career in mobile developmentProject a day 1   career in mobile development
Project a day 1 career in mobile developmentGoran Djonovic
 
Project a day 3 services
Project a day 3   servicesProject a day 3   services
Project a day 3 servicesGoran Djonovic
 

More from Goran Djonovic (12)

Teaching kids programming
Teaching kids programmingTeaching kids programming
Teaching kids programming
 
Project a day 4 all
Project a day 4   allProject a day 4   all
Project a day 4 all
 
Project a day 2 introduction to android studio
Project a day 2   introduction to android studioProject a day 2   introduction to android studio
Project a day 2 introduction to android studio
 
Project a day 2 android application fundamentals
Project a day 2   android application fundamentalsProject a day 2   android application fundamentals
Project a day 2 android application fundamentals
 
Project a day 1 making a great app
Project a day 1   making a great appProject a day 1   making a great app
Project a day 1 making a great app
 
Project a day 1 introduction to project a
Project a day 1   introduction to project aProject a day 1   introduction to project a
Project a day 1 introduction to project a
 
Project a day 1 introduction to android
Project a day 1   introduction to androidProject a day 1   introduction to android
Project a day 1 introduction to android
 
Project a day 1 desinging android ui
Project a day 1   desinging android uiProject a day 1   desinging android ui
Project a day 1 desinging android ui
 
Project a day 1 career in mobile development
Project a day 1   career in mobile developmentProject a day 1   career in mobile development
Project a day 1 career in mobile development
 
Project a day 3 services
Project a day 3   servicesProject a day 3   services
Project a day 3 services
 
Stc ftn-wp7-intro
Stc ftn-wp7-introStc ftn-wp7-intro
Stc ftn-wp7-intro
 
Flatland
FlatlandFlatland
Flatland
 

Recently uploaded

Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxnada99848
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 

Recently uploaded (20)

Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptx
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 

Eca online-seminar-session-1.pptx

  • 1.
  • 2. EESTEC Competition for AndroidTM WELCOME TO THE FIRST SESSION OF ECA Android Basics Online Seminar
  • 3. Introduction Host: Angelos Karatsidis - ECA Main Coordinator Speaker: Goran Djonovic - Android Developer
  • 4. EESTEC Competition for Android - 504 Idea Submissions... - 413 Teams… - 717 Individuals… - 54 countries… - 6 continents!
  • 5. EESTEC Online Seminar - Project organized by EESTEC International - Integrates the training goal of ECA - Part 1: “Intro to Android Basics” - Topics tailored to your needs - Next session: Sunday, 11th January
  • 6. SPEAKER INTRODUCTION Goran Djonovic - Software Engineer Execom: www.execom.eu Twitter: @gdjonovic – fastest way to ask question and get answer Email: djonovic.g@gmail.com LinkedIn: http://www.linkedin.com/in/gdjonovic Slide share: http://www.slideshare.net/gorandjonovic Git hub: https://github.com/gdjonovic Blog: http://gdjonovic.me
  • 7. I did this before...
  • 8. I do this a lot...
  • 9. Let’s APP the world! Questions ?
  • 10.
  • 11. AGENDA - How to start - What is android all about - Impact of mobile - It’s (NOT) all about the code - Android basics - Good app ideas
  • 12. Before we start - Link to slides will be provided with recording of this talk - We use crowdcast -
  • 14. How to start learning Books (ain't nobody got time for that right? :)) Effective Java by Joshua Bloch Android Programming: Pushing the Limits by Erik Hellman http://developer.android.com/index.html coursera.org udemy.com youtube.com edx.org / 11
  • 16. How start development ● Install java ● Download eclipse ADT or Android Studio ● Unlock developer options (if you have device) ● Start making some apps!
  • 18. It’s not just about mobile
  • 19. What is mobile development Wiki says: “Mobile application development is the process by which application software is developed for low-power handheld devices, such as personal digital assistants, enterprise digital assistants or mobile phones” WHAT DO YOU THINK? / 11
  • 20. The fastest technology adoption in history!!! / 16 Source : http://www.moweble.com/career-opportunities-in-mobile-apps-development.html
  • 21. PCs Vs. Smartphones Source: http://www.businessinsider.com/smartphones-versus-pcs-2013-8
  • 22. You want to build some cool app What course should you take? •Introduction to Psychology •Introduction to Business •Introduction to Android/iPhone/Windows Phone •Introduction to Marketing •Introduction to Design All of the above ☺
  • 23. 3 Principles of Marketing •Principle of Customer Value •Principle of Differentiation •Principle of Segmentation, Targeting, and Positioning Question: What is fair value?
  • 24. Understand your users (Psychology) •User groups •Backgrounds •Context •Way of interaction •Needs
  • 25. Make your app look nice (Design) •Colors •UI elements •Blend with OS •Attract user attention •….
  • 26. Operational Excellence (Android programming) This is what you as a developer need to provide •Make the app fast and easy to use •Save power •Protect data and the users •No bugs •Keep it simple •Don’t be evil :)
  • 28. What about all those different devices out there?
  • 29. What is fragmentation you ask ☺ •The Blessing •The Curse •Let’s look at the study done by OpenSignalMaps. Over 6 months they've been logging the new devices that download OpenSignalMaps. They've looked at model, brand, API level (i.e. the version of Android) and screen size… …. And what did they find out / 24
  • 33. Then we have 320x480px / 24
  • 37. And at the and 1080x1920px Full-HD / 24
  • 38. Minimum Vs. Maximum / 24 Vs. 27 time more pixels
  • 39. Where to start •Current flagship model •Most common resolution •Start with small … It depends / 24
  • 45. Designing UI and Designing Interaction •Go to http://developer.android.com/design/index.html •Make important things fast •If it looks the same, it should act the same •Only show what I need when I need it / 24
  • 48. Android concepts •Activity – visual user interface focused on a single thing a user can do •Service – no visual interface – they run in the background •Broadcast receiver – receive and react to broadcast announcements •Content provider – allow data exchange between applications •Intent •Manifest 48
  • 49. Applications •Written in Java •Each application runs in its own process •Each process has its own separate VM •Each application is assigned a unique Linux user ID – by default files of that application are only visible to that application (can be explicitly exported) 49
  • 50. 50 Activities •Basic component of most applications •Most applications have several activities that start each other as needed •Each is implemented as a subclass of the base Activity class
  • 52. What about those fragments? http://developer.android.com/guide/components/fragments.html
  • 53. 53 Activities – The View •Each activity has a default window to draw in (although it may prompt for dialogs or notifications) •The content of the window is a view or a group of views (derived from View or ViewGroup) •Example of views: buttons, text fields, scroll bars, menu items, check boxes, etc. •View(Group) made visible via Activity.setContentView() method.
  • 54. 54 Services •Does not have a visual interface •Runs in the background indefinitely •Examples • Network Downloads • Playing Music • TCP/UDP Server •You can bind to a an existing service and control its operation
  • 55. 55 Broadcast Receivers •Receive and react to broadcast announcements •Extend the class BroadcastReceiver •Examples of broadcasts: • Low battery, power connected, shutdown, timezone changed, etc. • Other applications can initiate broadcasts
  • 56. 56 Content Providers •A content provider presents data to external applications •Makes some of the application data available to other applications •It’s the only way to transfer data between applications in Android (no shared files, shared memory, pipes, etc.) •Extends the class ContentProvider; •Other applications use a ContentResolver object to access the data provided via a ContentProvider
  • 57. 57 Intents •An intent is an Intent object with a message content. •Activities, services and broadcast receivers are started by intents. ContentProviders are started by ContentResolvers
  • 58. 58 Shutting down components •Activities • Can terminate itself via finish(); • Can terminate other activities it started via finishActivity(); •Services • Can terminate via stopSelf(); or Context.stopService(); •Content Providers • Are only active when responding to ContentResolvers •Broadcast Receivers • Are only active when responding to broadcasts
  • 59. 59 Android Manifest • Its main purpose in life is to declare the components to the system: <?xml version="1.0" encoding="utf-8"?> <manifest . . . > <application . . . > <activity android:name="com.example.project.FreneticActivity" android:icon="@drawable/small_pic.png" android:label="@string/freneticLabel" . . . > </activity> . . . </application> </manifest>
  • 61. How do people use phones Source: http://hbr.org/2013/01/how-people-really-use-mobile
  • 62. How to get great idea - Look around you - Look at some global trends - Find the problem (that you can relate to) - Investigate/Think/Create - Solve the problem
  • 63. AGENDA - How to start - What is android all about - Impact of mobile - It’s (NOT) all about the code - Android basics - Good app ideas
  • 65. Let’s APP the world! Questions ?
  • 66. THANK YOU ALL! :) See you again on 11th of January 2015 HAPPY HOLIDAYS