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 app design document
Mobile app design documentMobile app design document
Mobile app design document
Neeru Seth
 
android layouts
android layoutsandroid layouts
android layouts
Deepa Rani
 
Android resource
Android resourceAndroid resource
Android resource
Krazy Koder
 

Was ist angesagt? (20)

Android - Graphics Animation in Android
Android - Graphics Animation in AndroidAndroid - Graphics Animation in Android
Android - Graphics Animation in Android
 
Android auto
Android autoAndroid auto
Android auto
 
Android UI
Android UIAndroid UI
Android UI
 
Mobile app design document
Mobile app design documentMobile app design document
Mobile app design document
 
Introduction to Android and Android Studio
Introduction to Android and Android StudioIntroduction to Android and Android Studio
Introduction to Android and Android Studio
 
android layouts
android layoutsandroid layouts
android layouts
 
Android app development ppt
Android app development pptAndroid app development ppt
Android app development ppt
 
Android ppt
Android pptAndroid ppt
Android ppt
 
ReactJS presentation.pptx
ReactJS presentation.pptxReactJS presentation.pptx
ReactJS presentation.pptx
 
Deep Dive into the AOSP
Deep Dive into the AOSPDeep Dive into the AOSP
Deep Dive into the AOSP
 
Performance testing of mobile apps
Performance testing of mobile appsPerformance testing of mobile apps
Performance testing of mobile apps
 
Introduction to angular with a simple but complete project
Introduction to angular with a simple but complete projectIntroduction to angular with a simple but complete project
Introduction to angular with a simple but complete project
 
HTTP request and response
HTTP request and responseHTTP request and response
HTTP request and response
 
Embedded Android : System Development - Part I
Embedded Android : System Development - Part IEmbedded Android : System Development - Part I
Embedded Android : System Development - Part I
 
React native
React nativeReact native
React native
 
Android Automotive
Android AutomotiveAndroid Automotive
Android Automotive
 
Android resource
Android resourceAndroid resource
Android resource
 
PPT on Android
PPT on AndroidPPT on Android
PPT on Android
 
Android framework design and development
Android framework design and developmentAndroid framework design and development
Android framework design and development
 
Android Internals
Android InternalsAndroid Internals
Android Internals
 

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
 
Android studio
Android studioAndroid studio
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

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Kürzlich hochgeladen (20)

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
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
 
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
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 

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