android app development (basics)

Post on 02-Jul-2015

126 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Introduction to Android Platform Development. Contains architecture, design and development principles and code examples

TRANSCRIPT

Mobile applicationdevelopment

Android introduction

Alberto Rubalcaba

Oracle Certified Professional, Java SE Programmer

¿What is Android?

Open source, open platform for mobile development

All the SDK, API and platform source is available

No need for licence or app review

You can replace any system app with your own

Official development site: developer.android.com

How it works?

Components architecture model

Every component provides his interface

Java programming

Useful programming tips

Avoid creating objects

Use native functions

Prefer static

Avoid internal getter o setter

Declare constants final

Avoid floats and enums

Android Architecture

Project architecture

Design principles

Delight me in surprising

Real objects are more fun than buttons and menus

Let me make it mine

Get to know me

Keep it brief

Pictures are faster than words

Decide for me, but let me have the final say

http://developer.android.com/design/get-started/principles.html

App components

Activities

Services

Content providers

Broadcast receivers

Activity life cycle

Services

Perform long operations on background

Runs trough applications

A component can bind to a service to interact with and performinterprocess communication (IPC)

Service statesStarted

Bound

http://developer.android.com/guide/components/services.html

Content providers

Manages access to structured set of data

Provide mechanisms for defining data security

Connects data in one process with code running in another process

http://developer.android.com/guide/topics/providers/content-providers.html

Broadcast receivers

Send broadcasts across applications

Registered by the context of the application dynamically

Registered statically in the android manifest

http://developer.android.com/reference/android/content/BroadcastReceiver.html

Intents

Abstract description of an operation to be performed

Can be used to start activities, send broadcasts, start or bind services

Intent structureAction. The general action to be performed

Data. The data to operate on, such a record on contacts, as a URI

Category. Gives additional information about the action to execute

Type. Specifies an explicit type (MIME types) of the intent data

Extras. This is a Bundle of additional information

http://developer.android.com/reference/android/content/Intent.html

Application Context

Interface to global information about an application environment

Abstract class whose implementation is provided by Android system

Allows access to application-specific resources and classes

Calls for application-level operations such as launching activities, broadcasting and receiving intents

http://developer.android.com/reference/android/content/Context.html

Bundle

Mapping to String values to various Parcelable types (Serializable)

Has methods to put <key,value>’s to the map

Has methods to get <key,value>’s from the map

Has a method to clear() the whole map

http://developer.android.com/reference/android/os/Bundle.html

Manifest

All applications must have a manifest in the root directory

Presents essential information the system must have before runningthe app

It names the java package for the application

It describes the components of the application

It determines which processes will host application components

Declares permissions to access protected parts of the API

http://developer.android.com/guide/topics/manifest/manifest-intro.html

User interface

Built using View and ViewGroup objects

A View is an object that draws something on the screen to interactwith

A ViewGroup is an object that holds other View’s and ViewGroup’sobjects in order to define the layout of the app

http://developer.android.com/guide/topics/ui/index.html

User interface layout

User interface layout

The effective way to define your layout is via XML

The name of the XML element is respective to the Android class itrepresents

http://developer.android.com/guide/topics/ui/declaring-layout.html

Example

Layouts

Defines the visual structure for a user interface

After declaring a layout in XML, it should be saved in the res/layoutproject directory

When you compile your app, each layout is compiled into a View resource

The layout should be loaded in the Activity.onCreate(Bundle b) method

Call setContentView(R.layout.my_view)

Common Layouts

Linear layout

Relative layout

Web view

List view

Grid view

Input controls

Interactive components in your UI

Just add the control to the xml

http://developer.android.com/guide/topics/ui/controls.html

Common controls

Event listeners

Event listener example

Menus

Common UI component

Appears when the user touch the menu soft/hard button

Types of menusOptions menu and action bar

Context menu and contextual action menu

Pop up menu

http://developer.android.com/guide/topics/ui/menus.html

Defining a menu in XML

Defined in res/menu

Inflate the menu in the onCreate(Bundle b) method

Easier to visualize the menu structure in XML

Separates the content of the menu from the behavioral code

Allows to create alternative menu configurations

Allows to create submenus

Menu example

Handling menu events

Dialogs

AlertDialog

DatePickerDialog

TimePickerDialog

CustomDialogs

http://developer.android.com/guide/topics/ui/dialogs.html

Dialogs (1)

Dialogs contentTitle

Optional, should be used only when the content area is occupied by a detailed message, list or custom layout

Content areaThis can display a message, a list or a custom layout

Action buttonsThere should be no more than 3 action buttons in a dialog

Dialogs (2)

The alertDialog.Builder class provides API’s that allow you to createan AlertDialog with the kinds of contents, including custom layouts

Dialogs (3)

To add action buttons call the setPositiveButton() and setNegativeButton() methods

Dialogs (4)

Traditional single-choice list

Persistent single-choice list (radio buttons)

Persistent multiple-choice list (check boxes)

Toasts

Provides a simple feedback about an operation in a small popup

Fills the amount of space required for the message

http://developer.android.com/guide/topics/ui/notifiers/toasts.html

Toasts (1)

Instantiate a Toast object with one of the makeToast() methods

This method takes three parametersApplication context

String message

Toast duration (millis)

Custom Toasts

You can create customized layout for your toast notification

Define a view XML layout

Pass the root view object to the setView(View) method

Custom Toasts

You must use the ID of your custom layout to inflate it from the XML

Sensors

Sensors (1)

Sensor framworkSensorManager

Sensor

SensorEvent

SensorEventListener

http://developer.android.com/guide/topics/sensors/index.html

Sensors (2)

Identifying sensorsGet the sensor service

Get the sensor that you are looking for

Sensors (3)

• Monitoring events

Let’s code

top related