introducción a la programación en android

10
Principio Open/Closed • Un ORM portable, ligero y eficaz • Silverlight PlaneProjection • Plataforma Android. Introducción al desarrollo • Migración de código de SharePoint 2007 a 2010 • Desarrollando con Data Tier Application Component (DAC) • dnm.ux#12: Libertad, opciones y decisión www.dotnetmania.com nº 72 julio-agosto 2010 6,50 Visual Basic • C# • ASP.NET • ADO.NET • AJAX • Silverlight • .NET Framework dotNetManía dedicada a los profesionales de la plataforma .NET Silverlight 3D Logrando efectos tridimensionales en Silverlight

Upload: garbas3

Post on 23-Jun-2015

791 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Introducción a la programación en Android

Principio Open/Closed • Un ORM portable, ligero y eficaz • Silverlight PlaneProjection • Plataforma Android. Introducción al desarrollo • Migraciónde código de SharePoint 2007 a 2010 • Desarrollando con Data Tier Application Component (DAC) • dnm.ux#12: Libertad, opciones y decisión

www.

dotne

tman

ia.co

m

nº 72 julio-agosto 2010 6,50 € Visual Basic • C# • ASP.NET • ADO.NET • AJAX • Silverlight • .NET Framework

dotNetManíadedicada a los profesionales de la plataforma .NET

Silverlight 3DLogrando efectos tridimensionales en Silverlight

Page 2: Introducción a la programación en Android

72Eventos 08

VI SQLU Summit 2010 y Lanzamiento SQL Server 2008 R2

Principio Open/Closed 10-14

Este es el segundo de una serie de cinco artículos que describen los principios SOLID y su aplicación

en la Programación Orientada a Objetos. Después de examinar en nuestra entrega anterior el

Principio de Responsabilidad Única, este mes nos adentramos en otro de los principios, que además

guarda una estrecha relación con el primero: el Principio Open/Closed.

Un ORM portable, ligero y eficaz Para desarrollo en entornos de escritorio y movilidad basados en .NET Framework 16-22

Actualmente existen múltiples tecnologías y disciplinas orientadas a recuperar y almacenar datos en

una base de datos. Sin embargo, no todas ellas están disponibles en dos mundos tan diferentes

como escritorio y movilidad, ni tampoco ofrecen soluciones que se adapten al 100% de nuestras

necesidades. El ORM que presentamos aquí es fácil de embeber en nuestros desarrollos, sencillo de

utilizar y nos brinda prácticamente toda la potencia de los grandes ORM.

Silverlight 3D. Logrando efectos tridimensionales en Silverlight 24-30

Silverlight incorpora para los programadores de aplicaciones Web una buena parte de las riquezas

declarativas de su hermano mayor, Windows Presentation Foundation (WPF). Esto incluye facilidades

tales como animaciones, enlace a datos y plantillas, que superan en expresividad, por la

declaratividad de XAML, a otros entornos imperativos como Flash.

Silverlight PlaneProjection 32-35

Con la versión 3.0 de Silverlight vio la luz lo que conocemos hoy en día como Plane Projection ó 2.5D:

la capacidad de proyectar un elemento 2D de Silverlight sobre un plano base, dando lugar a un

pseudo3D. Esta técnica también se conoce como Perspective 3D, ya que nos permite simular una

transformación de manipulación de un elemento en el espacio, si bien no es un 3D real.

Plataforma Android. Introducción al desarrollo 36-41

El sistema operativo Android está basado en el kernel de Linux y ha sido desarrollado bajo el amparo

de Google. En principio, nació como un sistema operativo para móviles; hoy en día lo tenemos

también en tablets y en Google TV. Desde su presentación en noviembre de 2007, estamos

actualmente en la versión 2.2 (también conocida como Froyo), una versión que quiere dar un punto

de madurez hasta la siguiente versión: la 3.0 o Gingerbread. Pero para nosotros, como

desarrolladores, la esencia de Android seguirá siendo la misma. Este artículo pretende introducir al

lector en el mundo del desarrollo para esta plataforma, adentrándonos en el entorno Eclipse y la

programación con Java.

Migración de código de SharePoint 2007 a 2010 42-45

En este artículo repasamos las principales dificultades que los desarrolladores podrán encontrar a la

hora de migrar de SharePoint 2007 a 2010, y veremos cómo hacer frente a las mismas para

conseguir que nuestros desarrollos y personalizaciones funcionen a la perfección.

Desarrollando con Data Tier Application Component (DAC) 46-51

En este artículo vamos a ver cómo con la llegada de SQL Server 2008 R2, Visual Studio 2010 y uno

de sus nuevos componentes (DAC), se nos simplifica la gestión del ciclo de vida de las aplicaciones

de base de datos.

dnm.ux 52-53

Libertad, opciones y decisión

dnm.q&a 54-57

Integración del CLR con SQL Server

dnm.desvan 58

Gracias a la agrupación dealumnos entre los lectoresde dotNetManía, podemoscompartir costes y ofrecerleformación presencial a unprecio realmente pequeño.Comparta cara a cara susexperiencias y dudas conprofesores de una granexperiencia de campo, comoEladio Rincón, Miguel Egea,Daniel Seara y AlejandroLeguizamo, en estosseminarios de un díadurante el mes deseptiembre.

seminarios

Page 3: Introducción a la programación en Android

Optimización Avanzada de Consultas SQL para desarrolladores y DBA

ProfesorEladio Rincón. MCT y MVP en SQL Server. Eladio es Mentory Director de Tecnologías de Bases de Datos para Solid QualityMentors en España y Portugal.

ObjetivoLa optimización de las consultas SQL de nuestras aplica-ciones y gestores de BBDD es uno de los puntos claves parala satisfacción de nuestros clientes y para el éxito de los proyec-tos de desarrollo de software. En este curso de 8 horas seplantea en profundidad el diseño y la optimización avanzadade las consultas SQL de acceso a gestores de BBDD. Se uti-lizará el gestor de BBDD Microsoft SQL Server.

AudienciaDirigido a analistas programadores, programadores, admi -nistradores de BBDD (DBA) e incluso jefes de proyecto que nece-siten estos conocimientos técnicos avanzados.

Fecha: 7 de septiembre de 2010

Optimización y Buenas Prácticas en Aplicacionesde Inteligencia de Negocios con SQL Server

ProfesorMiguel Egea. MCT en SQL Server. Miguel es Mentor y Directorde Tecnologías de Business Intelligence para Solid QualityMentors en España y Portugal.

ObjetivoEl objetivo del presente seminario es el de mostrar a los asis-tentes las mejores prácticas y trucos de optimización para eldiseño de soluciones de Inteligencia de Negocios utilizandotecnología Microsoft. Se mostrarán ejemplos de técnicas realesque facilitarán la resolución de problemas de negocio comunes.

AudienciaEste seminario está dirigido a profesionales con experienciaen el diseño, desarrollo y despliegue de soluciones deInteligencia de Negocios utilizando tecnología Microsoft.También será de utilidad para profesionales que, teniendo expe-riencia en otras plataformas, quieran obtener los conocimien-tos específicos de la plataforma Microsoft.

Fecha: 21 de septiembre de 2010

PowerPivot en ProfundidadProfesor

Alejandro Leguizamo. MVP en SQL Server, Mentor y DirectorComercial para Solid Quality Mentors en España y Portugal.

ObjetivoEl objetivo del presente seminario es el de mostrar en pro-fundidad cuáles son las características más provechosas delnuevo PowerPivot, tanto en su versión para Excel, como en elcomplemento para SharePoint. Conocerás la arquitectura inter-na que permite a Excel trabajar con millones de filas, apren-derás a escribir expresiones DAX para potenciar los informesy verás cómo compartir todo eso en SharePoint 2010.

AudienciaEl seminario está dirigido a programadores y analistas de solu-ciones de inteligencia de negocios, principalmente en tec-nologías Microsoft. También será de utilidad para usuarios denegocio avanzados con perfil técnico.

Fecha: 28 de septiembre de 2010

Introducción a SharePoint 2010Profesor

Daniel Seara. MCT y MVP en SharePoint. Daniel es Mentor yDirector de Formación para Solid Quality Mentors en Españay Portugal.

ObjetivoEste seminario introduce a las nuevas características de laplataforma SharePoint 2010, tanto desde un punto de vista deprofesionales de tecnología, como de desarrolladores de solu-ciones.

Audiencia• Analistas de negocio que deseen más información sobre

SharePoint Server 2010. • Usuarios finales que deseen aprender a usar SharePoint

Server 2010 y ser productivos con las nuevas funciona -lidades.

• Profesionales de TI que deseen conocer las nuevas carac-terísticas disponibles en la administración de SharePointServer 2010.

• Desarrolladores que deseen conocen las nuevas capaci-dades de desarrollo en SharePoint Server 2010.

Fecha: 14 de septiembre de 2010

Los seminarios son impartidos por mentores de Solid Quality Mentors y coorganizados con Aula Vulcan.Para inscripciones y más información, vaya a http://www.dotnetmania.com/aulavulcan o contacte por telé-fono al 916667477 o en [email protected]

* El complemento a distancia consiste en 2 horas de LiveMeeting en directo con el profesor y 8 horas para la recepción de dudas

Seminarios Solid Quality MentorsDuración: 8 horas +complemento a distancia* • Precio: 150 €Horario: 10:00 a 14:00 y de 16:00 a 20:00 • Ciudad: MadridFormación bonificable 100% por la Fundación Tripartita

Page 4: Introducción a la programación en Android

uena parte del éxito de la plataformaAndroid se debe a su aceptación por parte los pro-gramadores y la venta de aplicaciones en el AndroidMarket, la tienda de aplicaciones de Android, en laque se permite a los desarrolladores publicar, sinningún tipo de filtro, aplicaciones tanto gratuitascomo de pago. En el caso de que nuestras aplica-ciones sean de pago, nuestra remuneración, a travésde Google Checkout, es del 80% de las ventas.

Diferentes versionesAntes de comenzar, debemos tener claro cómo estáactualmente el mercado de los dispositivos. Goo-gle realiza estudios quincenales, como el mostra-do en la figura 1, analizando qué versiones deAndroid se están utilizando.

Debemos tener en cuenta para qué versión que-remos desarrollar, ya que si usamos el SDK de laversión 2.1 estaríamos bloqueando el acceso a nues-tra aplicación a más de la mitad de los dispositivosactuales.

Las herramientas de desarrolloOtra de las cosas que debemos saber antes deponernos es de qué herramientas disponemos paratrabajar con Android. El equipo de Android pone a

disposición de los programadores varias herra-mientas de desarrollo para todas las plataformas:Windows, Mac y Linux. Por un lado, tenemos elAndroid SDK, que nos permite desarrollar con Java,contiene los distintos emuladores, las Google APIy permite empaquetar nuestras aplicaciones.Además, como entorno oficial tenemos a Eclipse,y para él existe el Android Development Tools (ADT)Plugin for Eclipse.

Pero a mayores, tenemos la posibilidad de escri-bir código nativo; para ello se ha puesto a disposi-ción de los desarrolladores el Native Development

El sistema operativo Android está basado en el kernel de Linux y ha sido desarrollado bajo el amparo deGoogle. En principio, nació como un sistema operativo para móviles; hoy en día lo tenemos también entablets y en Google TV. Desde su presentación en noviembre de 2007, estamos actualmente en la ver-sión 2.2 (también conocida como Froyo), una versión que quiere dar un punto de madurez hasta la siguien-te versión: la 3.0 o Gingerbread. Pero para nosotros, como desarrolladores, la esencia de Android seguirásiendo la misma. Este artículo pretende introducir al lector en el mundo del desarrollo para esta plata-forma, adentrándonos en el entorno Eclipse y la programación con Java.

B

Plataforma Android Introducción al desarrollo

Figura 1. Diferentes versiones deAndroid a fecha 16 de junio de 2010

Programador especializado en tecnologías Microsoft y diseño de

interfaces de usuario

Eugenio Estrada

Page 5: Introducción a la programación en Android

dotN

etManía

37

Toolkit (NDT). Éste está sobre todo pen-sado para juegos, ya que permite traba-jar con OpenGL sin necesidad de lamáquina virtual de Java, pudiendo asítener un mejor rendimiento.

Instalando el Android SDK

Para instalar el SDK, debemos por unlado tener instalado Eclipse 3.4 ó 3.5 conel Java Development Kit 5 ó 6. Una vez lotengamos instalado, debemos seguir lossiguientes pasos:

1. Descargar el Android SDK para la plata-forma que deseemos desde la direcciónhttp://developer.android.com/sdk, ydescomprimirlo en la carpeta que crea-mos oportuno.

2. Instalar el ADT Plugin for Eclipse.Para ello, debemos ir a la opción deañadir nuevo software de Eclipse y aña-dir el siguiente repositorio: https://dlssl.google.com/android/eclipse.

3. Establecer la ubicación del AndroidSDK en las preferencias de Eclipse, enla nueva opción “Android". Aquí debe-mos indicar la ubicación exacta dondehemos descomprimido el SDK.

4. Instalar los componentes de desarrollo.En el menú “Window" | “Android SDKand ADV Manager", debemos instalarlos distintos paquetes de las diferentesversiones de Android. En la opción “Avai-lable Packages" instalaremos las dife-rentes versiones del SDK, la documen-tación, las Google API, las ROM de la ver-sión que instalemos para los dispositi-vos virtuales y los distintos ejemplos.

Una vez seguidos todos los pasosanteriores, ya tendremos instaladas lasherramientas necesarias para poder tra-bajar con Android.

Librerías del Android SDK

Como podéis ver en la figura 2, el AndroidSDK trae de serie un conjunto de libreríasque podemos usar en nuestras aplicaciones.Entre ellas, las más importantes son:

• SQLite. Nos permite tener una base dedatos local con la que gestionar todoslos datos de nuestra aplicación.

• OpenGL | ES. Esta librería está pensa-da para el uso en juegos 3D.

• SGL. La podemos usar para manejargráficos en 2D, ya sea para crear nues-tra propia interfaz o para juegos sim-ples en 2D.

• WebKit. Con él, podemos integrar elmotor de renderización Web que usanSafari, Chrome y el propio Android.

• Media Framework. Para poder haceruso de audio y vídeo, debemos usarestar librería.

• FreeType. Con ella podremos renderi-zar textos usando diferentes fuentes.

Una plataforma basada en componentesEl software de Android está basado en com-ponentes independientes que interactúanentre sí. En una aplicación con audio, ten-dremos al menos dos componentes: unoejecutándose en segundo plano reprodu-ciendo el audio, y otro en primer plano ges-tionando la interfaz de usuario. Es impor-tante destacar que estos componentes sonindependientes, ya que podría haber unaaplicación de terceros que también ges-tione ese componente de audio en segun-do plano, o nosotros usar un componen-te que exponga un tercero.

Los principales tipos de componen-tes son los siguientes:

• Activity. Al desarrollar una aplicaciónpara Android, al menos deberemostener un Activity. Es el encargado degestionar la interfaz de usuario y se apo-ya en una colección de rectángulos, lla-mados View, que interactúan con elusuario.

• Service. Los servicios se ejecutan total-mente en segundo plano; en nuestroejemplo de reproductor de audio, seráel que reproduzca el sonido. Otras apli-

caciones se pueden subscribir a él, siconocen su interfaz, para comunicarsecon él.

• Broadcast receivers. Estos componen-tes se ejecutan en segundo plano y reci-ben datos de cambios en el sistema: lla-mada recibida, llamada finalizada, nue-va posición en el GPS, etc. En el ejem-plo del reproductor de audio, estos com-ponentes se utilizarían para pararlo encaso de llamada o de batería baja. Lascomunicaciones se hacen medianteunos mensajes llamados Intent.

• Content provider. Este componente esnecesario para la compartición de datosentre los distintos componentes de

Figura 2. Arquitectura de Android

Page 6: Introducción a la programación en Android

dotN

etManía

38

nuestra aplicación. Debe exponer unaestructura de datos que se vaya a com-partir entre ellos.

Creando nuestra primera aplicaciónPara crear una aplicación para Androiden Eclipse, debemos ir a “File" | “New" |“Project" y seleccionar “Android Project".Veremos el diálogo que se presenta en lafigura 3.

A la hora de crear un nuevo proyec-to, debemos tener en cuenta diferentesaspectos en cuanto a la nomenclatura.Por un lado, tenemos el Project Name,que es un identificador para Eclipse; deél dependerá la carpeta en nuestro espa-cio de trabajo (workspace). Por otra par-te, tenemos el Application Name, queserá el nombre de nuestra aplicación,cómo aparecerá en el dispositivo, etc.Luego tenemos el Package Name, quese rige por los mismos criterios que losproyectos en Java: el namespace inicialde nuestro proyecto será com.empre-sa.NombreProyecto. Por último, tene-mos la versión mínima del SDK para indi-carnos qué dispositivos pueden abrirnuestra aplicación; para ello, la versióndebe ser igual o mayor al build target quehayamos seleccionado. Este número está

en correspondencia con el API Level; porejemplo, la versión 1.6 corresponde alnivel 4 de la API, y la 2.1 al nivel 7.

Pulsando el botón “Siguiente" podre-mos generar un proyecto para testeo, algoque queda fuera del ámbito de este artí-culo; en nuestro ejemplo no lo crearemos.

Los recursos de la aplicación

La carpeta de recursos, res, es don-de debemos guardar los ficheros de sololectura que nuestra aplicación deba usar.En la tabla 1 podemos ver qué tipos deficheros podremos guardar en las carpe-tas de recursos.

Opcionalmente, podemos teneruna segunda carpeta de cada una de lasanteriores terminada en -land, como porejemplo layout-land. Si la tenemos cre-ada, será la que se use en caso de queel dispositivo esté de forma horizontal(landscape).

Es importante señalar que para todoslos ficheros que guardemos en la carpe-ta de recursos se nos va a crear un iden-tificador único por el cual poder obtener-lo; por ejemplo, en caso de tener un fiche-ro main.xml en la carpeta layout, que segenera por defecto, podremos acceder aél mediante R.layout.main. Si abrimosel fichero R.java de la carpeta gen, podre-mos ver todos los identificadores gene-rados.

El manifiesto de la aplicación

Toda aplicación de Android debe expo-ner un fichero de manifiesto, AndroidMa‐nifest.xml (listado 1). Es, quizá, uno delos elementos más importantes de nues-tro desarrollo, ya que en él es donde sedeben especificar un montón de cosaspara nuestra aplicación.

En este fichero, por un lado, tenemostodas las configuraciones que establecimosal crear nuestro proyecto: package, Min SDK

Version, Activity Name, etc. En principio, eneste fichero no deberíamos tocar nada amano, ya que el ADT Plugin permite edi-tarlo a través de una serie de diálogos, comose puede ver en la figura 4.

La parte más importante del mani-fiesto es aquella donde establecemos losFigura 3. Nuevo proyecto de Android

Directorio Recurso

anim Ficheros XML que definen animaciones.

color Ficheros XML que definen listas de colores.

drawable Imágenes de mapa de bits (PNG, JPG o GIF) o ficheros XMLque definan figuras como shapes, animation drawables, colordrawables, etc.

layout Ficheros XML que definen la interfaz de usuario.

menu Ficheros XML que definen menús.

raw Permite almacenar ficheros arbitrarios.

values Ficheros XML que almacenan valores simples, como string,integer y color. Existen convenios para algunos nombres delos ficheros: arrays.xml, colors.xml, dimens.xml, strings.xmly styles.xml.

xml Permite almacenar ficheros XML arbitrarios.

Tabla 1. Carpetas de recursos

Mientras Android 1.x continúe tenien-do una cuota de mercado tan grande,si no necesitamos nada específico dealguna API posterior deberíamos desa-rrollar para la versión 1.5, API Level 3.

Page 7: Introducción a la programación en Android
Page 8: Introducción a la programación en Android

dotN

etManía

40

componentes de nuestra aplicación, comolos Activity. En las aplicaciones podemosdefinir tantos Activity como queramos;cada uno de ellos será visible como unicono en nuestro terminal. Pero para cadaterminal debemos definir su Intent Filter.Como dijimos antes, un intent es un men-saje interno del sistema operativo.

Por un lado, debemos indicar cuál esel Activity principal de la aplicación:

<action android:name="android.intent.action.MAIN" />

Y por otro lado, debemos indicar queesta actividad queremos que esté dispo-nible desde el menú de aplicaciones:

<category android:name="android.intent.category.LAUNCHER" />

El elemento Action indica las accio-nes disponibles para la aplicación, comopor ejemplo podrían ser: compartir, ver,editar, etc.; por otro lado, están las cate-gorías (Category) que indicarán desdedónde se van a lanzar las acciones. Porejemplo, si estuviéramos desarrollandouna aplicación para compartir vídeos,tendríamos un Intent Filter que indiqueen su Action que queremos compartir, yen su Category indicaríamos qué datosqueremos capturar, mediante el nododata.

Permisos

A la hora de descargar una aplicaciónen Android Market, se nos pregunta quérecursos utiliza nuestra aplicación. Ello noes solamente un formalismo; la aplicacióndebe definir todos esos recursos que va autilizar y solicitar un permiso, que se mues-tra de esa forma en el Android Market. Entreestos permisos se encuentran algunos queseguramente vayan a incluir la mayor par-te de nuestras aplicaciones, como por ejem-plo el de acceso a Internet, y otros comopoder realizar una llamada o gestionar lascuentas del sistema operativo.

Views

Comentábamos antes que cada Acti-vity estaba formado por uno o variosView, que son la pieza básica para loscomponentes de nuestra interfaz. Todocomponente de la interfaz de usuario debederivar de la clase View. Existen princi-palmente dos grupos de controles: porun lado, tenemos los que derivan de View‐Group, que son los que definen el layoutde nuestra aplicación: LinearLayout, Fra‐meLayout, RelativeLayout, etc., que seusarán como contenedores de elemen-tos; por otra parte, están los que no deri-van de ViewGroup, entre los que podemosencontrar TextView, ListView, Spinner,Button, EditText, TimePicker, etc.

Nuestro proyecto, en la carpeta derecursos layout, debería tener un fiche-ro main.xml que será el que "pinte" nues-tro Activity por defecto. Como podéis veren el listado 2, debemos definir un layout,en nuestro caso LinearLayout, y luegointroducimos el resto de componentes en

<?xml version="1.0" encoding="utf‐8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.dnm.Helloworld"android:versionCode="1"android:versionName="1.0">

<application android:icon="@drawable/icon" android:label="@string/app_name"><activity android:name=".HelloWorldActivity"

android:label="@string/app_name"><intent‐filter>

<action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" />

</intent‐filter></activity>

</application><uses‐sdk android:minSdkVersion="7" />

</manifest>

Listado 1. AndroidManifest.xml

Figura 4. Editando las opciones del manifiesto

Page 9: Introducción a la programación en Android

dotN

etManía

41

él. En este caso tenemos un TextView, que es un con-trol que simplemente muestra un texto, que toma suvalor de la clave hello de los ficheros de recursos. En lacarpeta de recursos values hay un fichero llamadostring.xml; lo que el sistema hará será buscar en todoslos ficheros de recursos un recurso de tipo string conla clave hello.

Para añadir, por ejemplo, un simple botón a nues-tra aplicación, debemos ponerlo debajo del TextView,como se muestra en el listado 3.

Como seguramente vamos a querer controlar el even-to Click del botón, debemos asignarle un id, sin el cualno podremos referirnos a él desde el código.

Añadiendo lógica a nuestra aplicación

A lo largo de todo el artículo hemos visto un montónde cosas, pero hasta el momento no hemos hablado decómo programar nuestra aplicación. Como hemos dichodesde el primer momento, se programa con Java, y elcódigo de nuestra aplicación, que está por defecto en lacarpeta src, tan solo contendrá el código de nuestroActivity, como se puede ver en el listado 4.

En el listado 4 se puede observar cómo nuestra acti-vidad deriva de Activity y lo que hace es sobrescribir elmétodo onCreate para definir, mediante el método set‐ContentView, nuestra vista principal. Lo que se debepasar a este método es el id del recurso, que es auto-generado por Eclipse; por lo tanto, debemos usar el fiche-ro R.java para obtener su valor.

Desde Java podemos también referirnos a un con-trol y controlar sus eventos. En el listado 5 podemos vercómo obtener el botón que añadimos a nuestra interfazy controlar su Click. El método findViewById nos per-mite obtener los View a través del id autogenerado enel fichero R.java. Y para controlar el evento debemoscrear un Listener para él, que le pasamos como pará-metro al método setOnClickListener. Cuando ocurrael evento Click, se ejecutará el método onClick del Lis‐tener que hayamos suministrado.

Conclusiones

Resumiendo todo lo que hemos visto en este artículo:

• Debemos tener en cuenta para qué nivel de la API que-remos programar, de forma de poder abarcar el mayormercado posible.

• El manifiesto de la aplicación es el que indica todo loreferente a ésta: qué expone, qué necesita, etc.

• Los ficheros que necesite la aplicación deberán serguardados en las carpetas de recursos.

• El fichero R.java es el que sirve de puente entre losrecursos y el código.

• Toda aplicación debe tener un Activity principal.

Con esta introducción hemos querido abrir la puertaa una tecnología que ofrece una forma de programar untanto extraña para los que leemos esta revista. Una vezla puerta esté abierta, procuraremos en próximos artícu-los abordar temas más específicos de la plataforma. t

<?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="wrap_content"android:text="@string/hello" />

</LinearLayout>

Listado 2. Interfaz de nuestra aplicación: main.xml

package com.dnm.Helloworld;

import android.app.Activity;import android.os.Bundle;

public class HelloWorldActivity extends Activity {/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);setContentView(R.layout.main);

}}

Listado 4. HelloWorldActivity

<Buttonandroid:text="helloWorld"android:id="@+id/Button01"android:layout_width="wrap_content"android:layout_height="wrap_content" />

Listado 3. Añadiendo un Button

Button button1 = (Button) findViewById(R.id.Button01);button1.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {// Código a ejecutar en el evento Click

}});

Listado 5. Gestión de los eventos de nuestros componentes

Page 10: Introducción a la programación en Android

/*ESTÁ EN TODAS PARTES*/

El código se utiliza para crear las cosas que nos rodean. Prácticamente mires donde mires, ahí está. Y ofrece infinitas

posibilidades a los desarrolladores. Mediante Visual Studio 2010 podrás hacer realidad tu sueño gracias a nuevas herramientas que cambiarán tu forma de trabajar de forma espectacular, desde el diseño del proyecto hasta su puesta en marcha.

LIFE RUNS ON CODE.

Y TÚ, ¿QUÉ HARÍAS CON VISUAL STUDIO 2010?

Empieza en VisualStudio.com