Android Development Slides


Published on

These are slides that accompanied a talk on Android application development.

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Android Development Slides

  1. 1. Welcome... to Google IO 11; ooops... sorry, GTUG welcomes you to the Android launchFriday, May 6, 2011
  2. 2. Location: San Francisco, CaliforniaFriday, May 6, 2011
  3. 3. nah!! just Kidding...Friday, May 6, 2011
  4. 4. Google Uganda - Android Developer Launch Kampala, Uganda May, 2011Friday, May 6, 2011
  5. 5. Android Awesomeness Victor Miclovich, Android developer + enthusiast twitter:@vicmiclovich http://thekuyuproject.orgFriday, May 6, 2011
  6. 6. Introducing Android Devices Fun and Easy to use communication on the go Online You won’t get lost You can get rid of keysFriday, May 6, 2011
  7. 7. Fun and Easy to use Cool graphics lots of power under the hood for gamingFriday, May 6, 2011
  8. 8. Key-lessness lose the key pad... new devices designed to be touch- screen compatible; Android takes it a notch higher: multitouchFriday, May 6, 2011
  9. 9. Communication Gmail And obviously: Web browser, Basic BT, etc.Friday, May 6, 2011
  10. 10. Online connectivity... Android OS is designed to enable device connectivity to the networked worldFriday, May 6, 2011
  11. 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. 12. Application Development $> Assumptions $> Framework $> Piecing the UI together $> Basic networking $> Services (RESTful web service intro)Friday, May 6, 2011
  13. 13. Assumptions You’ve read the handout or have it close by to guide you...Friday, May 6, 2011
  14. 14. About Android }-*->F-workFriday, May 6, 2011
  15. 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. 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
  17. 17. Isn’t that easy?Friday, May 6, 2011
  18. 18. How? ? ? ? ? ? how?Friday, May 6, 2011
  19. 19. Android UIs 2 ways of working magic with apps-->>Friday, May 6, 2011
  20. 20. One way is... through a declarative approach...Friday, May 6, 2011
  21. 21. Declarative user interface <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=" 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. 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 doFriday, May 6, 2011
  23. 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 buttonFriday, May 6, 2011
  24. 24. user interface design...Friday, May 6, 2011
  25. 25. Android UID Views LayoutsFriday, May 6, 2011
  26. 26. Views Everything you see through your screen is a viewFriday, May 6, 2011
  27. 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. 28. Layouts Organize views group view components togetherFriday, May 6, 2011
  29. 29. Examples Layouts LinearLayouts TableLayouts FrameLayout RelativeLayout AbsoluteLayout (using (x,y) coord. system)Friday, May 6, 2011
  30. 30. Notes Layouts are resizable (expand with content) expand with the different device sizes (better graphics rendering that supports) Layouts are customizableFriday, May 6, 2011
  31. 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. 32. Prerequisites Java programming Read the handout watch out for things like the application life cycle, etc. Ask questions at the endFriday, May 6, 2011
  33. 33. CodeFriday, May 6, 2011
  34. 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. 35. ¿Tip! When looking thru’ documentation, start with the specific less abstract view/class or layout then look at what it inherits from parent classFriday, May 6, 2011
  36. 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 dataFriday, May 6, 2011
  37. 37. ActivitiesFriday, May 6, 2011
  38. 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
  39. 39. IntentsFriday, May 6, 2011
  40. 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 serviceFriday, May 6, 2011
  41. 41. NoteActivities and BroadcastReceivers describe what intents they can service in their IntentFilters through the AndroidManifest.xml fileFriday, May 6, 2011
  42. 42. BroadcastReceiversFriday, May 6, 2011
  43. 43. BroadcastReceivers components designed to respond to Broadcast Intents also, apps can create and broadcast their own Intents as well.Friday, May 6, 2011
  44. 44. ServersFriday, May 6, 2011
  45. 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
  46. 46. ContentProvidersFriday, May 6, 2011
  47. 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 typeFriday, May 6, 2011
  48. 48. Other issues of great importance...Friday, May 6, 2011
  49. 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. 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
  51. 51. Going forward...Friday, May 6, 2011
  52. 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. 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
  54. 54. AssetsFriday, May 6, 2011
  55. 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 assetsFriday, May 6, 2011
  56. 56. The Networked world...Friday, May 6, 2011
  57. 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 InternetFriday, May 6, 2011
  58. 58. The End... More might come in the future, (coming soon) vicmiclovich{at}gmail.comFriday, May 6, 2011