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