A día de hoy, Android dispone de cientos de millones de dispositivos móviles en más de 190 países a lo largo del mundo. Y todo ello acompañado de más de 1.5 billones de descargas de aplicaciones desde Google Play cada mes. Unos números asombrosos que a muchas personas les han llevado a querer aportar su granito de arena, desarrollando su propia aplicación. ¿Quién no ha pensado tener esa idea que poder llevar a cabo?

Android crecimiento

Por ello, y aportando mi propia experiencia como desarrollador de apps para Android, hoy vamos a inaugurar una nueva sección orientada a introducirnos al desarrollo de aplicaciones para Android: la sección ‘Aprende Android en 20 conceptos’.

En esta sección haremos un recorrido por los 20 fundamentos básicos de la API (Application Programming Interface) de Android para poder programa una aplicación en Android, desde cero. Para quien no conozca lo que es una API, básicamente se trata de la funcionalidad que nos proporcionan (en este caso Android) para poder programar.

Esto no quiere decir que con estos 20 conceptos lo conozcamos todo, ni por supuesto que no haya otros conceptos también importantes. De lo que se trata es de explicar aquí los conceptos generales más importantes para crear una buena estructura de nuestra aplicación. Con esta base, profundizar en conceptos más específicos (como por ejemplo puede ser el acceso al GPS) será mucho más sencillo.

Los 20 conceptos que trataremos en la sección ‘Aprende Android en 20 conceptos’ son los siguientes:

0. Empezando

1. Fundamentos de una aplicación
2. Recursos de una app
3. La clase Activity
4. La clase Fragment
5. View personalizada
6. Adaptadores (Adapter)
7. La clase Intent
8. Receptores de mensajes broadcast (Broadcast Receiver)
9. Prefencias de una app (Shared Preferences)
10. Bases de datos SQLite
11. Servicios (La clase Service)
12. Tareas asíncronas (La clase AsyncTask)

13. Gestores de contenidos (Content Provider)
14. La barra de acciones ActionBar
15. Notificaciones
16. Orientación del dispositivo
17. Animaciones
18. Widgets
19. Otros conceptos
20. Información adicional

La sección será semanal, pero introduciremos más de un concepto cada semana, a partir de la próxima semana. En esta semana nos preocuparemos de dejar nuestro ordenador preparado para empezar a programar en Android.

0. Empezando

Lo primero será saber que para programar aplicaciones nativas en Android, deberemos aprender a programar en el lenguaje Java, conociendo la programación orientada a objetos.

Lo primero que debemos hacer es preparar nuestro entorno de desarrollo y saber dónde conseguir cualquier información. Para ello, lo primero es saber dónde está toda la información para los desarrolladores de Android. Google nos tiene preparada una web para ello,  pero debemos saber que toda la información está en inglés:

Web de desarrolladores de Android

web desarrollo android

En esta web, tenemos 3 secciones básicas: Diseño, Desarrollo y Distribución. En ellas, tendremos toda la información acerca de las recomendaciones de Google para diseñar nuestra app, toda la información sobre la API de Android e información para saber publicar nuestra aplicación, sabiendo cómo promocionarla, anunciarla…

En la parte de abajo, tendremos información adicional, sobre Android, conseguir el SDK (Software Development Kit), soporte…

Éste será nuestro primer paso, descargarnos el entorno de desarrollo, para lo que iremos a Get the SDK, o haremos click en el siguiente enlace:

Descargar el SDK

web desarrollo sdk

Una vez en la web, basta con que le demos al link que dice Download the SDK, y nos bajará una versión del entorno de desarrollo Eclipse, personalizada para Android y ya preparada con el último SDK, el plugin ADT, así como emuladores sobre los que poder testear nuestra aplicación.

En el pasado Google I/O (2013), anunciaron también el nuevo IDE Android Studio, el cual podemos también utilizar en lugar de Eclipse, pero debemos saber que aún están en fase beta. Desde la misma página podrás acceder a la información al mismo. Nosotros ya hemos hablado antes de este nuevo IDE, pero en este tutorial utilizaremos Eclipse.

Una vez abrimos nuestro entorno de desarrollo, podemos descargarnos todas las versiones de Android si queremos, así como otros paquetes extra. Para ello utilizaremos el Android SDK Manager.

eclipse sdk manager

Por otro lado, podremos crear tantos emuladores de dispositivos Android como queramos: con distintos tamaños de pantalla, distintas versiones de Android… Para ello, debemos utilizar el Android Virtual Device Manager (ADB), al cual podemos acceder desde Eclipse o desde la vía de comandos de nuestro sistema operativo:

eclipse adb

Aunque la mejor manera de tener control sobre nuestros dispositivos será aprendiendo a manejar ADB desde la línea de comandos, algo de lo que también hemos hablado. No obstante, en Eclipse podremos gestionar también nuestros dispositivos y sacar información de nuestro dispositivo: desde capturas de pantalla o ver los ficheros hasta enviar coordenadas GPS o enviar una llamada. Para ello, iremos a Window / Open perspective / Other… / DDMSLa vista de Eclipse DDMS (Dalvik Debug Monitor Server) nos será de gran utilidad mientras desarrollemos nuestras aplicaciones. Disponemos de toda la información sobre la misma en el siguiente enlace:

DDMS

Llegados a este punto, nuestro ordenador está preparado para crear nuestra primera aplicación Android. Para ello, nos basaremos en los pasos que Google nos recomienda seguir para una sencilla app. Toda esta información la podremos encontrar en unos trainings que Google nos tiene preparados:

Formación (Trainings) sobre Android de Google

Creando un nuevo proyecto Android

Nuestra sección hoy terminará siguiendo el segundo enlace, donde crearemos un nuevo proyecto Android. Para ello, seguiremos los siguientes pasos:

  1. Haz click en New
  2. En la ventana que aparece, abrir la carpeta Android y elegir Android Application Project
  3. En la siguiente ventana, debemos introducir el nombre de nuestra aplicación, el nombre del proyecto y el nombre del paquete (éste será unico para nuestra app, pues sera el ID que Google Play utilizará para identificar la aplicación). También introduciremos la versión de Android mínima requerida, así como la versión con la que compilaremos (generar nuestra aplicación a partir del código) nuestra aplicación.
  4. Tras rellenar todos los campos según necesitemos o queramos, nos vamos a la siguiente pantalla, donde dejaremos las opciones seleccionadas por defecto.
  5. En la siguiente pantalla, podremos crear un icono para nuestra aplicación. Para ello, sería ideal echar un vistazo a las guías de diseño de Android con respecto a lo que a iconos se refiere.
  6. Por último, seleccionaremos una plantilla de actividad sobre la que empezar a trabajar. Podemos seleccionar Blank Activity, que básicamente es una pantalla vacía.
  7. Finalizamos el asistente.

adt asistente

Con esto, tendremos nuestro particular Hola mundo con el que siempre empezamos a programar cuando utilizamos una nueva API (también vimos cómo crear un Hola Mundo en AndroidStudio). Para ejecutarlo, basta con tener un dispositivo real conectado o lanzar un emulador y hacer click en el botón Run (un círculo verde con el icono Play en blanco).

Con esta información básica, damos por terminada la sección hoy. La próxima semana entraremos de lleno en esos 20 conceptos que creo que nos ayudarían a tener mucho más claro cómo esta organizara la estructura de la API de Android y, por tanto, nos facilitarán las cosas para tener claro cómo desarrollar nuestras aplicaciones.

Si tenéis cualquier duda o queréis preguntarme o sugerirme cualquier cosa, también podéis encontrarme en Twitter.

Si aún no os habéis animado a programar, ¿os animaréis?

Podréis seguir todo el curso en esta dirección donde quedarán todos los artículos reunidos

Te puede interesar
  • Raul Pacheco

    Por fin una guía en español! Aquí tienes ya a un alumno ansioso por seguir tus pasos :D
    Gracias Jose

    • Jose Angel Zamora

      A vosotros por leernos. Para mí es un placer poder compartir todo tipo de información.

      • jorge herrera

        hoa jose, como hago para empezar a amprender aplicaiones para android

    • david

      busca sgoliver en google, de lo mejor que hay para aprender android.

      No pongo el enlace porque el sistema automático de moderación se carga todos los mensajes con enlaces.

      • Leonardo Rojas

        sgoliver ufff que gran ayuda!!! gracias peluko

  • Iván

    Ojalá sepas explicarlo de manera sencilla y no nos quedemos bloqueados en algún paso que no sepamos seguir. Es un tema muy interesante. ¡¡Gracias por la iniciativa!!

  • frankenstin

    Menos mal una en español y parece ser bien detallada, espero que a la hora de poner los comandos a la hora de programar no me de siempre errores cuando empeze a programar por linea de comandos.

  • Edagardo Lasso

    Saludos desde Uruguay. Gracias José por ésta iniciativa y cuenta con nosotros.

  • D.T.

    Esto pinta muy bien. Alguna vez he intentado empezar cursos pero se requería Java, y no tengo ni idea…

    • jose

      Siento decirte que para programar android necesitarás nociones de Java sino complicado te veo.

      • Jose Angel Zamora

        Si. Java es necesario saber…

    • Lucas

      Jajaja, me pasa lo mismo. Si o si se necesita Java no?

      • Cristian Estarlich

        Si no quieres java, hay alternativas como windev que usan codigo propio i el mismo IDE lo “parsea” a la maquina virtual de Android., la verdad no esta nada mal pero poco documentado, para acabarlo de rematar piensa que java dispone de millones de librerias e incluie API’s como Facebook,Twiiter, etc.. Yo me estoy mirando ahora la de mega y la verdad todas estan muy curradas. Si quieres mi respuesta si se necesita nociones no de java si no de programación orientada a objectos dado que por ejemplo de .NET a java hay bien poco la base es la misma, tambien a decir que la interfaz funciona en XML,

        • Lucas

          Ahm, muchas gracias jeje

  • Angel Aguilar

    Muchas gracias por esta guía, 6:20am y ya viendola jeje pero no importa aqui seguiremos tus pasos desde México, un saludo!

  • jose

    Muy bien explicado todo. Con ganas de seguir leyéndote. Yo voy algo más avanzado pero siempre está bien repasar.

  • fzeta

    Muchas gracias por compartirlo (Y) estaré al frente del cañon ;-)

  • Eryayo

    por fin una guia que parta desde lo basico… gracias, estare atengo a las otras publicaciones

  • Mario Alberto Garduño

    espero que sigas con esta guia !! al final espero que veamos como crear aplicaciones desde apps con iconos que al presionar emitan sonidos, hasta algo mas cmplicado.. GRACIAS

  • Aissa Ak

    Me parece perfecto espero las siguientes clases con ansia, aunque esta clase la tuve que realizar con otro tutorial. Pero espero que las siguiente se expliquen un poco mas detallado o hacer aparte un video de clase si pudiese ser auque esto es mucho pedir creo. Gracias de todas maneras siempre leo vuestros POSTs

  • Gabriel Oliva

    Genial.. ya esperaba algo asi.. Manos a la obra.. Saludos..!!

  • miguel pozos

    Ya se apunta otro mas.

  • faber9898

    Genial…!!! Por fin una guía bien explicada y paso a paso (explicada con peras y manzanas, como decimos acá en Colombia). Para quienes no saben de Java podrían poner algunos enlaces con tutoriales (o hacer una mini guía por aquí)

  • SEBAppS

    Buenas amigo, gracias por la publicación. Me interesa emepzar en el mundo de las apps moviles, especialmente para fines comerciales ;)….uan pregunta, si la idea es que cada semana subes un “paso” (concepto). En 20 semanas se acaba el “curso”. Insisto gracias y nos veremos la proxima

  • HDX Mob

    SOBRE JAVA: (sin tener ningún conocimiento previo en programación)
    ¿Alguien sabe cuánto tiempo aproximado se tarda uno en aprender ese lenguaje y así poder programar para ANDROID?

    • Benicio Johansen Rivera

      exactamente, asi que antes de levantar muchas expectativas, se debe aterrizar en que la cosa no es tan facil y que no es para cualquiera!

      • HDX Mob

        Johansen, Gracias por tus comentarios,
        aunque aun me queda la duda de cuanto tiempo tarda uno en aprender JAVA.

        • Jose Castillo

          la cuestion no esta en el tiempo, el conocimiento es variable, cada dia aprenderas mas, ya que la tecnologia dia a dia avanza mas

    • Depende de las ganas que tengas y el tiempo que le dediques, esto no es algo objetivo.

    • Daniel Rivera

      un dia viejo , si sabes programar lo haras con cualquier lenguaje en aprox. 1 dia , o sobre la marcha buscando la sintaxis y comandos requeridos en el momento. :D saludos

  • gabri santi

    holaa!!

    una cosa, donde esta la parte 2
    gracias!

    • Marcelo Pinto

      en el cuadro que asi lo indica, sobre los iconos de facebook, twiter…. etc

      Saludos

  • El Seba

    Creo que éste tipo de tutorial no está pensado para principiantes. Es poco más que traducir de la página de desarrollo android. El autor podría haber puesto el ejemplo práctico del “Hola mundo”. Sería conveniente un videotutorial.

  • fatix

    Hola.. Ya estoy atascada. Mi entorno de trabajo no tiene barra de herramientas y además mi emulador no genera ningún asistente y por tanto hay pasos que no puedo hacer. Alguien me guía? Muchas gracias

  • Sergio

    todo muy lindo peeeroo…… ¿ésta API de android (que al parecer es una sola) solo es posible controlarla bajo JAVA?. Porque de ser así la eficiencia en el consumo de recursos de una aplicación caería en picado, ya que JAVA a pesar de tener un compilador dentro de su IDE, éste no transforma el código de nuestra aplicación a lenguaje máquina, sino que lo transforma en un tipo de pseudocódigo para luego ser interpretado por su maquina virtual en tiempo de ejecución (en el móvil). En definitiva, necesitamos de una segunda aplicación (maquina virtual) para lograr que nuestra aplicación sea “entendida” por el SO, y esa “interpretacion” aunque muchos no lo noten consume recursos extras (RAM,Ciclos de procesador,etc..) cosa que se evitaría si nuestro ejecutable fuese ejecutado directamente (como ejecutable binario). En síntesis: en una pc con memoria RAM y procesador de varios Gigas/Gigaherzios talvez la deficiencia no se note demasiado puesto que tenemos recursos mas que de sobra y con posibilidad de expandirlos en todo caso, pero en los móviles la cosa cambia totalmente (ya que no hay posibilidad de expansión de hardware). Por eso mi idea es tratar de diseñar una aplicación escrita en un lenguaje que permita la compilación a código máquina directamente y de esa forma ganar velocidad de ejecución, entre otras cosas. Ahora la pregunta es la siguiente: ¿se puede programar en C++ para android usando su API? y de ser así… ¿se necesitaría algún entorno específico o solo se requeriría la importación de librerías del otro SO para tal fin?.

  • Joel Elprinsi

    fuera mucho mejor la experiencia si fuese en un video.

  • Alejandro Medina

    Entendí muy bien todo lo escrito! seguiré esta guía! Gracias y Saludos.

  • ¿Genial, ya lo estoy siguiendo! Pero espero que alguien me pueda ayudar en una cosa, el enlace final que supuestamente te lleva al resto de artículos de este curso lo que hace es llevarte a todos los artículos de la web, por lo que es bastante incómodo seguir el curso buscando en google o en la lista de artículos cada uno de ellos, ¿Podéis arreglar el enlace?

  • LEONARDO

    gracias por la iniciativa. Voy a aprovechar al máximo los conceptos

  • Kennia

    Hola, oye yo seguí los pasos y me dejo crear solo un ejemplo de App, pero me marcaba error java.lang.nullpointerexception opté por borrarla y crear otra pero ya no me dejo, en la ventana no me aparecen opciones en Compile With :( , ayuda plis!

  • Renol Machado

    Hola, una pregunta, luego de que genero mi “Hola Mundo” como hago para abrirlo luego desde el smartphone ? gracias .

  • Jefferson santos

    la ventana del entorno eclipse se cierra segundos despues q la abro…alguien sabe xq

    • a mi ni siquiera se me abre el eclipse

  • JUANANAN

    HOLA QUE ONDA ESOS PASOS VIENEN EN LA PAGINA DE GOOGLE PLAY EN LA SECCION DE PROGRAMADORES Y ESTA MUCHO MEJOR EXPLICADO

    • Marcelo Pinto

      y que haces aca? solo criticando…. quedate en google play amigo… al resto nos parecio un aporte genial y valoramos mucho el trabajo del amigo.

      Saludos

  • Lalo

    Me preguntaba ¿Que es mejor para programar aplicaciones en Android, Eclipse o Netbeans? Saludos.

  • Javier mendoza

    saludos de Perú, por fin un enlace en español para aventurarse con aplicaciones android. Me gusta

  • Tksito Sthinker

    hermano, muchas gracias por esta ayuda.. estoy interesado en el tema.. le seguire.
    saludos atentamente desde Venezuela.

    si hay alguien mas d emis pais, excelente asi podriamos reunirnos y formar equipos para adriestarnos mejor en al apps.

  • Andres

    Muchas Gracias por el curso empiezo a seguirlo desde hoy. Gracias otra vez…

  • Leandro

    gracias. hoy buscando en internet encontré este curso y ahora mismo estoy bajando el eclipse para android, y a ver que pasa.

  • Abel Abarca

    SOLO TENGO UNA DUDA, SON LO MISMO LOS 3…ECLIPSE ADT, ANDROID ESTUDIO Y STAND ALONE SDK…???

  • Buen manual, gracias por compartirlo

  • jorge herrera

    quiero aprender a crear aplicaciones para android

  • Muy útil, ya he conseguido arrancar, instalar todo y crear mi primer hola mundo.

  • jorge

    me cago en tu pae

  • biladen

    cabroon maricon te mat

  • Luis Ernesto Huerta Caudillo

    Tengo 14 años, tu crees que pueda aprender a programar para Android?

    • carlos

      Yo tengo 15 y me lo he puesto de objetivo

      • Victor Escudero Narro

        yo tambien tengo 15 y se programar, de momento no mucho, algunas cosas basicas, pero es muy entretenido, ojala pueda llegar a dedicarme a esto de mayor

  • JORGE

    JAMAS LLEGO LA SEGUNDA PARTE, QUE PASO?. AHI QUEDO ESTE BUEN PROYECTO?

  • Diego

    Dónde se puede acceder a cada uno de los 20 conceptos?

    • Marcelo Pinto

      en el cuadro que asi lo indica, sobre los iconos de facebook, twiter…. etc
      Saludos

  • Joaquin Bresan

    Buen aporte, gracias por compartir.

  • fabricio

    como esta amigo estoy por desarrollar una aplicación pero me podria ayudar como trabajar con marcadores o google maps

  • Marcelo Pinto

    Hola, muchas gracias por tu aporte, es muy didáctico y entretenido. Espero poder realizar algunas apps en el futuro.
    Saludos desde Montevideo.
    Marcelo.

6 de 6