SlideShare ist ein Scribd-Unternehmen logo
1 von 58
Downloaden Sie, um offline zu lesen
Welcome... to Google IO 11; ooops...
                                       sorry,
                      GTUG welcomes you to the Android launch




Friday, May 6, 2011
Location: San Francisco, California




Friday, May 6, 2011
nah!! just Kidding...




Friday, May 6, 2011
Google Uganda - Android Developer Launch
                             Kampala, Uganda
                                 May, 2011




Friday, May 6, 2011
Android Awesomeness

          Victor Miclovich, Android developer + enthusiast
          twitter:@vicmiclovich
          http://cwezi.com
          http://mspoti.com
          http://storyspaces.org
          http://thekuyuproject.org
Friday, May 6, 2011
Introducing Android Devices

                Fun and Easy to use
                communication on the go
                Online
                You won’t get lost
                You can get rid of keys




Friday, May 6, 2011
Fun and Easy to use
                      Cool graphics




                                      lots of power under the hood for
                                                  gaming




Friday, May 6, 2011
Key-lessness
    lose the key pad... new devices designed to be touch-
      screen compatible; Android takes it a notch higher:
                          multitouch




Friday, May 6, 2011
Communication
                      Gmail




 And obviously:
 Web browser,
   Basic BT,
      etc.


Friday, May 6, 2011
Online connectivity...

   Android OS is designed to enable device
     connectivity to the networked world




Friday, May 6, 2011
A-O-B
                                                            very true... Android OS
                                                            lays out hardware
                                                            requirements and
                                                            conditions that phone
                                                            manufacturers should
                                                            follow in order to have
                                                            well optimized
                                                            operations




                      Lots of power under the hood >>> in comes “App
                      development”




Friday, May 6, 2011
Application Development
          $> Assumptions
          $> Framework
          $> Piecing the UI together
          $> Basic networking
          $> Services (RESTful web service intro)




Friday, May 6, 2011
Assumptions


                You’ve read the
                handout or have it
                close by to guide you...




Friday, May 6, 2011
About Android }-*->F-work




Friday, May 6, 2011
What is a mobile app?

         a set of user interfaces arranged to form a pattern

                      these patterns tend to accomplish tasks!!!




Friday, May 6, 2011
How to design an app?
                Start with an idea
                Research the idea (ask around: UCD)
                Concept it (use storyboards, write! write!)
                Prototype it
                Start coding
                Iterate (repeat step 1 or 2)



Friday, May 6, 2011
Isn’t that easy?




Friday, May 6, 2011
How?
                        ?
                        ?
                        ?
                        ?
                        ?
                      how?

Friday, May 6, 2011
Android UIs


                      2 ways of working magic with apps-->>




Friday, May 6, 2011
One way is...



                through a declarative approach...




Friday, May 6, 2011
Declarative user interface
                      <?xml version="1.0" encoding="utf-8"?>
                      <LinearLayout
                        xmlns:android="http://schemas.android.com/apk/
                      res/android"
                        android:orientation="vertical"
                        android:layout_width="fill_parent"
                        android:layout_height="fill_parent">
                        <TextView
                        	android:layout_width="fill_parent"
                        	android:layout_height="fill_parent"
                        	android:text="@string/splash"
                        />
                      </LinearLayout>




Friday, May 6, 2011
another way is to...

                                                  examples:
                                                     *swing
                      use a programmatic approach...
                                                      *gwt

       Google advises programmers to choose option 1)
                            why?
                      ->It is cleaner + keeps your code easy to maintain
                      ->In case you make app changes, it is easy to do


Friday, May 6, 2011
what to do?

                You’ll use both approaches
                      Declarative approach to describe how something
                      looks or appears such what a button should look like
                      Programmatic approach to give life to the UI
                      component such as a button




Friday, May 6, 2011
user interface design...




Friday, May 6, 2011
Android UID


                      Views
                      Layouts




Friday, May 6, 2011
Views



                Everything you see through your screen is a view




Friday, May 6, 2011
Examples of Views

                                        ImageView (image)
                TextView (text)         MapView (to view
                ButtonView (buttons)    maps)

                ListView (lists)        WebView (embedded
                                        web + webkit
                EditView (text boxes)   rendering)




Friday, May 6, 2011
Layouts


                Organize views
                group view components together




Friday, May 6, 2011
Examples Layouts

                LinearLayouts
                TableLayouts
                FrameLayout
                RelativeLayout
                AbsoluteLayout (using (x,y) coord. system)




Friday, May 6, 2011
Notes


                Layouts are resizable (expand with content)
                      expand with the different device sizes (better
                      graphics rendering that supports)
                Layouts are customizable




Friday, May 6, 2011
What else in Android?

                Services that will run in the background
                Intents and broadcasting (that support in-app
                notification and instructions)
                lots of crazy cool stuff... just need to dig deeper than
                45 minutes! lol!




Friday, May 6, 2011
Prerequisites

                Java programming
                Read the handout
                      watch out for things like the application life cycle, etc.
                      Ask questions at the end




Friday, May 6, 2011
Code


Friday, May 6, 2011
Layout parameters

                Specify the way layouts appear
                Basically in your xml files:
                      android:layout_height = “ <some height>”
                      android:layout_width = “ <some width>”




Friday, May 6, 2011
¿Tip!

              When looking thru’ documentation, start with the
              specific less abstract view/class or layout then look
              at what it inherits from parent class




Friday, May 6, 2011
App components (java classes)
                                     analogous to a screen
                Activities
                                      respond to broadcast intents/
                BroadcastReceivers
                                                 msgs
                Services
                ContentProviders     tasks that run in the background

                                     apps can share data


Friday, May 6, 2011
Activities




Friday, May 6, 2011
an activity (-ies)
                a UI screen or what appears before the user as whole
                An Activity is also a java class
                Activities can also be
                      faceless
                      in a floating window
                      just return a value (boolean or other)



Friday, May 6, 2011
Intents




Friday, May 6, 2011
Intents
                Intents help describe what you want done (verb words
                + objects)
                      Pick photo from album
                      Delete music
                      Make a call
                Android matches Intent with Activity (object) that can
                best provide a service



Friday, May 6, 2011
Note

Activities and BroadcastReceivers describe what intents
    they can service in their IntentFilters through the
              AndroidManifest.xml file




Friday, May 6, 2011
BroadcastReceivers




Friday, May 6, 2011
BroadcastReceivers


                components designed to respond to Broadcast Intents


                also, apps can create and broadcast their own Intents
                as well.




Friday, May 6, 2011
Servers




Friday, May 6, 2011
Services

                These are components that run in the background...
                      A music player keeps running even when you choose
                      to start looking through your gallery
                      You can type a message while listening to music
                      Download a pdf while browsing Youtube
                      etc.



Friday, May 6, 2011
ContentProviders




Friday, May 6, 2011
ContentProviders
                A ContentProvider enables sharing of data across
                different apps
                      some apps can poll the address book
                      an app could use your gallery photos, etc.
                Provides a single unified API for
                      CRUD operations
                Content is represented by a URI and MIME type


Friday, May 6, 2011
Other issues of great importance...




Friday, May 6, 2011
Persisting data

                Some apps need to cache or store data inside of the
                phone (email, messages, attachments via bluetooth,
                etc.)
                Android provides a couple of ways to store your data
                      as a flat file
                      in a database (SQLite)



Friday, May 6, 2011
Note


                There are lots of useful APIs to interact with the
                database, file system, etc.
                Android is powerful and quite large
                Look around to see what you can do with it...




Friday, May 6, 2011
Going forward...




Friday, May 6, 2011
Packaging

                Android apps are packaged in .apk files
                Everything needed to run your app is found in the apk
                It also includes your application manifest file (where
                permissions for activities and other predefined settings
                are saved up) {look at handout for more info in app}




Friday, May 6, 2011
Resources

                Android defines resources an app uses in the res/ folder
                      res/layout (contains layout rules)

                      res/drawable (for drawing)

                      res/anim (for animations your app might need)

                      res/values (externalized values for strings, colors, styles and lots more)

                      res/xml (general xml files that are needed at run time such as a settings.xml file, etc.)

                      res/raw (binary files like sound are defined in there)




Friday, May 6, 2011
Assets




Friday, May 6, 2011
Assets

                A lot similar to resources (from slides before)
                Any kind of file can be stored (make sure it doesn’t
                complete the SD card memory or other)
                Differences are:
                      assets are read only
                      InputStream class (methods) access assets



Friday, May 6, 2011
The Networked world...




Friday, May 6, 2011
so much to say...

                Trending way of development
                      use an API to expose a service your mobile app can
                      use
                      Your app can persist data in a database if network is
                      unavailable
                      Apps are so much fun when connected to the
                      Internet



Friday, May 6, 2011
The End...
                                More might come in the future,
                      http://cwezi.com/trainings (coming soon)


                               vicmiclovich{at}gmail.com




Friday, May 6, 2011

Weitere ähnliche Inhalte

Was ist angesagt?

MOBILE APPLICATIONS DEVELOPMENT -ANDROID BY SIVASANKARI
MOBILE APPLICATIONS DEVELOPMENT -ANDROID BY SIVASANKARIMOBILE APPLICATIONS DEVELOPMENT -ANDROID BY SIVASANKARI
MOBILE APPLICATIONS DEVELOPMENT -ANDROID BY SIVASANKARI
SivaSankari36
 
Introduction to Mobile Application Development
Introduction to Mobile Application DevelopmentIntroduction to Mobile Application Development
Introduction to Mobile Application Development
shikishiji
 

Was ist angesagt? (20)

Introduction to mobile application development
Introduction to mobile application developmentIntroduction to mobile application development
Introduction to mobile application development
 
Mobile operating system
Mobile operating systemMobile operating system
Mobile operating system
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to android
 
Introduction to Android ppt
Introduction to Android pptIntroduction to Android ppt
Introduction to Android ppt
 
Android ppt
Android pptAndroid ppt
Android ppt
 
Android testing
Android testingAndroid testing
Android testing
 
Mobile Application Development Process
Mobile Application Development ProcessMobile Application Development Process
Mobile Application Development Process
 
Android Operating System
Android Operating SystemAndroid Operating System
Android Operating System
 
Introduction to Mobile Application Development
Introduction to Mobile Application DevelopmentIntroduction to Mobile Application Development
Introduction to Mobile Application Development
 
Android Application Development
Android Application DevelopmentAndroid Application Development
Android Application Development
 
Android studio
Android studioAndroid studio
Android studio
 
Android studio ppt
Android studio pptAndroid studio ppt
Android studio ppt
 
Development of Mobile Application -PPT
Development of Mobile Application -PPTDevelopment of Mobile Application -PPT
Development of Mobile Application -PPT
 
Android architecture
Android architectureAndroid architecture
Android architecture
 
Android Operating System (Androrid OS)
Android Operating System (Androrid OS)Android Operating System (Androrid OS)
Android Operating System (Androrid OS)
 
Google Maps in Android
Google Maps in AndroidGoogle Maps in Android
Google Maps in Android
 
MOBILE APPLICATIONS DEVELOPMENT -ANDROID BY SIVASANKARI
MOBILE APPLICATIONS DEVELOPMENT -ANDROID BY SIVASANKARIMOBILE APPLICATIONS DEVELOPMENT -ANDROID BY SIVASANKARI
MOBILE APPLICATIONS DEVELOPMENT -ANDROID BY SIVASANKARI
 
iOS Introduction For Very Beginners
iOS Introduction For Very BeginnersiOS Introduction For Very Beginners
iOS Introduction For Very Beginners
 
Introduction to Mobile Application Development
Introduction to Mobile Application DevelopmentIntroduction to Mobile Application Development
Introduction to Mobile Application Development
 
Android Platform Architecture
Android Platform ArchitectureAndroid Platform Architecture
Android Platform Architecture
 

Andere mochten auch

Andere mochten auch (9)

Introduction to Android development - Presentation
Introduction to Android development - PresentationIntroduction to Android development - Presentation
Introduction to Android development - Presentation
 
Android Development: The Basics
Android Development: The BasicsAndroid Development: The Basics
Android Development: The Basics
 
Android slides
Android slidesAndroid slides
Android slides
 
Comparative study of different mobile operating system- Modern Operation Syst...
Comparative study of different mobile operating system- Modern Operation Syst...Comparative study of different mobile operating system- Modern Operation Syst...
Comparative study of different mobile operating system- Modern Operation Syst...
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android Development
 
Android Development - NOTE TAKING APP FROM SCRATCH
Android Development - NOTE TAKING APP FROM SCRATCHAndroid Development - NOTE TAKING APP FROM SCRATCH
Android Development - NOTE TAKING APP FROM SCRATCH
 
Introduction to Android and Android Studio
Introduction to Android and Android StudioIntroduction to Android and Android Studio
Introduction to Android and Android Studio
 
Android vs iPhone - Differences in UI Patterns and Design
Android vs iPhone - Differences in UI Patterns and DesignAndroid vs iPhone - Differences in UI Patterns and Design
Android vs iPhone - Differences in UI Patterns and Design
 
Presentation on Android operating system
Presentation on Android operating systemPresentation on Android operating system
Presentation on Android operating system
 

Ähnlich wie Android Development Slides

Modern mobile development overview
Modern mobile development overviewModern mobile development overview
Modern mobile development overview
Dima Maleev
 
Porting iPhone Apps to Windows Phone 7
Porting iPhone Apps to Windows Phone 7Porting iPhone Apps to Windows Phone 7
Porting iPhone Apps to Windows Phone 7
Wes Yanaga
 
GT Logiciel Libre - Convention Systematic 2011
GT Logiciel Libre - Convention Systematic 2011GT Logiciel Libre - Convention Systematic 2011
GT Logiciel Libre - Convention Systematic 2011
Stefane Fermigier
 
iOS 7 UI Transition Guide
iOS 7 UI Transition GuideiOS 7 UI Transition Guide
iOS 7 UI Transition Guide
Evgeny Belyaev
 
Technical seminar report on
Technical seminar report onTechnical seminar report on
Technical seminar report on
Balveer Rathore
 
Functional Requirements Of System Requirements
Functional Requirements Of System RequirementsFunctional Requirements Of System Requirements
Functional Requirements Of System Requirements
Laura Arrigo
 

Ähnlich wie Android Development Slides (20)

Beginning Android Development
Beginning Android DevelopmentBeginning Android Development
Beginning Android Development
 
Pycon2011 android programming-using_python
Pycon2011 android programming-using_pythonPycon2011 android programming-using_python
Pycon2011 android programming-using_python
 
Using design pattern for mobile
Using design pattern for mobileUsing design pattern for mobile
Using design pattern for mobile
 
Html5 investigation
Html5 investigationHtml5 investigation
Html5 investigation
 
ITP / SED Day 2
ITP / SED Day 2ITP / SED Day 2
ITP / SED Day 2
 
Developing for Mobility
Developing for MobilityDeveloping for Mobility
Developing for Mobility
 
Computer project work
Computer project workComputer project work
Computer project work
 
iOS7-User-Experience-Shootout
iOS7-User-Experience-ShootoutiOS7-User-Experience-Shootout
iOS7-User-Experience-Shootout
 
Mobility
MobilityMobility
Mobility
 
Modern mobile development overview
Modern mobile development overviewModern mobile development overview
Modern mobile development overview
 
Porting iPhone Apps to Windows Phone 7
Porting iPhone Apps to Windows Phone 7Porting iPhone Apps to Windows Phone 7
Porting iPhone Apps to Windows Phone 7
 
Seminar Android - Pengenalan PhoneGap
Seminar Android - Pengenalan PhoneGapSeminar Android - Pengenalan PhoneGap
Seminar Android - Pengenalan PhoneGap
 
Windows phone 7 application development
Windows phone 7 application developmentWindows phone 7 application development
Windows phone 7 application development
 
Final ppt (mobile os)
Final ppt (mobile os)Final ppt (mobile os)
Final ppt (mobile os)
 
Research on Comparative Study of Different Mobile Operating System_Part-1
Research on Comparative Study of Different Mobile Operating System_Part-1Research on Comparative Study of Different Mobile Operating System_Part-1
Research on Comparative Study of Different Mobile Operating System_Part-1
 
GT Logiciel Libre - Convention Systematic 2011
GT Logiciel Libre - Convention Systematic 2011GT Logiciel Libre - Convention Systematic 2011
GT Logiciel Libre - Convention Systematic 2011
 
iOS 7 UI Transition Guide
iOS 7 UI Transition GuideiOS 7 UI Transition Guide
iOS 7 UI Transition Guide
 
Abstract
AbstractAbstract
Abstract
 
Technical seminar report on
Technical seminar report onTechnical seminar report on
Technical seminar report on
 
Functional Requirements Of System Requirements
Functional Requirements Of System RequirementsFunctional Requirements Of System Requirements
Functional Requirements Of System Requirements
 

Mehr von Victor Miclovich (7)

Django Girls Mbale [victor's sessions]
Django Girls Mbale [victor's sessions]Django Girls Mbale [victor's sessions]
Django Girls Mbale [victor's sessions]
 
Google devfest makerere university
Google devfest makerere universityGoogle devfest makerere university
Google devfest makerere university
 
Okfest
OkfestOkfest
Okfest
 
Story spaces pitch
Story spaces pitchStory spaces pitch
Story spaces pitch
 
Mobile communities and innovation
Mobile communities and innovationMobile communities and innovation
Mobile communities and innovation
 
Crowdmapping
CrowdmappingCrowdmapping
Crowdmapping
 
Build Apps
Build AppsBuild Apps
Build Apps
 

Kürzlich hochgeladen

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Kürzlich hochgeladen (20)

Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
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
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 

Android Development Slides

  • 1. Welcome... to Google IO 11; ooops... sorry, GTUG welcomes you to the Android launch Friday, May 6, 2011
  • 2. Location: San Francisco, California Friday, May 6, 2011
  • 4. Google Uganda - Android Developer Launch Kampala, Uganda May, 2011 Friday, May 6, 2011
  • 5. Android Awesomeness Victor Miclovich, Android developer + enthusiast twitter:@vicmiclovich http://cwezi.com http://mspoti.com http://storyspaces.org http://thekuyuproject.org Friday, May 6, 2011
  • 6. Introducing Android Devices Fun and Easy to use communication on the go Online You won’t get lost You can get rid of keys Friday, May 6, 2011
  • 7. Fun and Easy to use Cool graphics lots of power under the hood for gaming Friday, May 6, 2011
  • 8. Key-lessness lose the key pad... new devices designed to be touch- screen compatible; Android takes it a notch higher: multitouch Friday, May 6, 2011
  • 9. Communication Gmail And obviously: Web browser, Basic BT, etc. Friday, May 6, 2011
  • 10. Online connectivity... Android OS is designed to enable device connectivity to the networked world Friday, May 6, 2011
  • 11. A-O-B very true... Android OS lays out hardware requirements and conditions that phone manufacturers should follow in order to have well optimized operations Lots of power under the hood >>> in comes “App development” Friday, May 6, 2011
  • 12. Application Development $> Assumptions $> Framework $> Piecing the UI together $> Basic networking $> Services (RESTful web service intro) Friday, May 6, 2011
  • 13. Assumptions You’ve read the handout or have it close by to guide you... Friday, May 6, 2011
  • 15. What is a mobile app? a set of user interfaces arranged to form a pattern these patterns tend to accomplish tasks!!! Friday, May 6, 2011
  • 16. How to design an app? Start with an idea Research the idea (ask around: UCD) Concept it (use storyboards, write! write!) Prototype it Start coding Iterate (repeat step 1 or 2) Friday, May 6, 2011
  • 18. How? ? ? ? ? ? how? Friday, May 6, 2011
  • 19. Android UIs 2 ways of working magic with apps-->> Friday, May 6, 2011
  • 20. One way is... through a declarative approach... Friday, May 6, 2011
  • 21. Declarative user interface <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/ res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:layout_width="fill_parent" android:layout_height="fill_parent" android:text="@string/splash" /> </LinearLayout> Friday, May 6, 2011
  • 22. another way is to... examples: *swing use a programmatic approach... *gwt Google advises programmers to choose option 1) why? ->It is cleaner + keeps your code easy to maintain ->In case you make app changes, it is easy to do Friday, May 6, 2011
  • 23. what to do? You’ll use both approaches Declarative approach to describe how something looks or appears such what a button should look like Programmatic approach to give life to the UI component such as a button Friday, May 6, 2011
  • 25. Android UID Views Layouts Friday, May 6, 2011
  • 26. Views Everything you see through your screen is a view Friday, May 6, 2011
  • 27. Examples of Views ImageView (image) TextView (text) MapView (to view ButtonView (buttons) maps) ListView (lists) WebView (embedded web + webkit EditView (text boxes) rendering) Friday, May 6, 2011
  • 28. Layouts Organize views group view components together Friday, May 6, 2011
  • 29. Examples Layouts LinearLayouts TableLayouts FrameLayout RelativeLayout AbsoluteLayout (using (x,y) coord. system) Friday, May 6, 2011
  • 30. Notes Layouts are resizable (expand with content) expand with the different device sizes (better graphics rendering that supports) Layouts are customizable Friday, May 6, 2011
  • 31. What else in Android? Services that will run in the background Intents and broadcasting (that support in-app notification and instructions) lots of crazy cool stuff... just need to dig deeper than 45 minutes! lol! Friday, May 6, 2011
  • 32. Prerequisites Java programming Read the handout watch out for things like the application life cycle, etc. Ask questions at the end Friday, May 6, 2011
  • 34. Layout parameters Specify the way layouts appear Basically in your xml files: android:layout_height = “ <some height>” android:layout_width = “ <some width>” Friday, May 6, 2011
  • 35. ¿Tip! When looking thru’ documentation, start with the specific less abstract view/class or layout then look at what it inherits from parent class Friday, May 6, 2011
  • 36. App components (java classes) analogous to a screen Activities respond to broadcast intents/ BroadcastReceivers msgs Services ContentProviders tasks that run in the background apps can share data Friday, May 6, 2011
  • 38. an activity (-ies) a UI screen or what appears before the user as whole An Activity is also a java class Activities can also be faceless in a floating window just return a value (boolean or other) Friday, May 6, 2011
  • 40. Intents Intents help describe what you want done (verb words + objects) Pick photo from album Delete music Make a call Android matches Intent with Activity (object) that can best provide a service Friday, May 6, 2011
  • 41. Note Activities and BroadcastReceivers describe what intents they can service in their IntentFilters through the AndroidManifest.xml file Friday, May 6, 2011
  • 43. BroadcastReceivers components designed to respond to Broadcast Intents also, apps can create and broadcast their own Intents as well. Friday, May 6, 2011
  • 45. Services These are components that run in the background... A music player keeps running even when you choose to start looking through your gallery You can type a message while listening to music Download a pdf while browsing Youtube etc. Friday, May 6, 2011
  • 47. ContentProviders A ContentProvider enables sharing of data across different apps some apps can poll the address book an app could use your gallery photos, etc. Provides a single unified API for CRUD operations Content is represented by a URI and MIME type Friday, May 6, 2011
  • 48. Other issues of great importance... Friday, May 6, 2011
  • 49. Persisting data Some apps need to cache or store data inside of the phone (email, messages, attachments via bluetooth, etc.) Android provides a couple of ways to store your data as a flat file in a database (SQLite) Friday, May 6, 2011
  • 50. Note There are lots of useful APIs to interact with the database, file system, etc. Android is powerful and quite large Look around to see what you can do with it... Friday, May 6, 2011
  • 52. Packaging Android apps are packaged in .apk files Everything needed to run your app is found in the apk It also includes your application manifest file (where permissions for activities and other predefined settings are saved up) {look at handout for more info in app} Friday, May 6, 2011
  • 53. Resources Android defines resources an app uses in the res/ folder res/layout (contains layout rules) res/drawable (for drawing) res/anim (for animations your app might need) res/values (externalized values for strings, colors, styles and lots more) res/xml (general xml files that are needed at run time such as a settings.xml file, etc.) res/raw (binary files like sound are defined in there) Friday, May 6, 2011
  • 55. Assets A lot similar to resources (from slides before) Any kind of file can be stored (make sure it doesn’t complete the SD card memory or other) Differences are: assets are read only InputStream class (methods) access assets Friday, May 6, 2011
  • 57. so much to say... Trending way of development use an API to expose a service your mobile app can use Your app can persist data in a database if network is unavailable Apps are so much fun when connected to the Internet Friday, May 6, 2011
  • 58. The End... More might come in the future, http://cwezi.com/trainings (coming soon) vicmiclovich{at}gmail.com Friday, May 6, 2011