Sie sind auf Seite 1von 58

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

Das könnte Ihnen auch gefallen