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?
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:
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:
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.
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:
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… / DDMS. La 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:
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:
Nuestra sección hoy terminará siguiendo el segundo enlace, donde crearemos un nuevo proyecto Android. Para ello, seguiremos los siguientes pasos:
- Haz click en New
- En la ventana que aparece, abrir la carpeta Android y elegir Android Application Project
- 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.
- Tras rellenar todos los campos según necesitemos o queramos, nos vamos a la siguiente pantalla, donde dejaremos las opciones seleccionadas por defecto.
- 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.
- 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.
- Finalizamos el 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
Por fin una guía en español! Aquí tienes ya a un alumno ansioso por seguir tus pasos :D
Gracias Jose
A vosotros por leernos. Para mí es un placer poder compartir todo tipo de información.
hoa jose, como hago para empezar a amprender aplicaiones para android
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.
sgoliver ufff que gran ayuda!!! gracias peluko
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!!
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.
Saludos desde Uruguay. Gracias José por ésta iniciativa y cuenta con nosotros.
Esto pinta muy bien. Alguna vez he intentado empezar cursos pero se requería Java, y no tengo ni idea…
Siento decirte que para programar android necesitarás nociones de Java sino complicado te veo.
Si. Java es necesario saber…
Jajaja, me pasa lo mismo. Si o si se necesita Java no?
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,
Ahm, muchas gracias jeje
Muchas gracias por esta guía, 6:20am y ya viendola jeje pero no importa aqui seguiremos tus pasos desde México, un saludo!
Muy bien explicado todo. Con ganas de seguir leyéndote. Yo voy algo más avanzado pero siempre está bien repasar.
Muchas gracias por compartirlo (Y) estaré al frente del cañon ;-)
por fin una guia que parta desde lo basico… gracias, estare atengo a las otras publicaciones
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
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
Genial.. ya esperaba algo asi.. Manos a la obra.. Saludos..!!
Ya se apunta otro mas.
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í)
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
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?
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!
Johansen, Gracias por tus comentarios,
aunque aun me queda la duda de cuanto tiempo tarda uno en aprender JAVA.
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.
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
holaa!!
una cosa, donde esta la parte 2
gracias!
en el cuadro que asi lo indica, sobre los iconos de facebook, twiter…. etc
Saludos
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.
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
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?.
fuera mucho mejor la experiencia si fuese en un video.
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?
gracias por la iniciativa. Voy a aprovechar al máximo los conceptos
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!
Hola, una pregunta, luego de que genero mi «Hola Mundo» como hago para abrirlo luego desde el smartphone ? gracias .
la ventana del entorno eclipse se cierra segundos despues q la abro…alguien sabe xq
a mi ni siquiera se me abre el eclipse
HOLA QUE ONDA ESOS PASOS VIENEN EN LA PAGINA DE GOOGLE PLAY EN LA SECCION DE PROGRAMADORES Y ESTA MUCHO MEJOR EXPLICADO
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
Me preguntaba ¿Que es mejor para programar aplicaciones en Android, Eclipse o Netbeans? Saludos.
saludos de Perú, por fin un enlace en español para aventurarse con aplicaciones android. Me gusta
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.
Muchas Gracias por el curso empiezo a seguirlo desde hoy. Gracias otra vez…
gracias. hoy buscando en internet encontré este curso y ahora mismo estoy bajando el eclipse para android, y a ver que pasa.
SOLO TENGO UNA DUDA, SON LO MISMO LOS 3…ECLIPSE ADT, ANDROID ESTUDIO Y STAND ALONE SDK…???
Buen manual, gracias por compartirlo
quiero aprender a crear aplicaciones para android
Muy útil, ya he conseguido arrancar, instalar todo y crear mi primer hola mundo.
me cago en tu pae
cabroon maricon te mat
Tengo 14 años, tu crees que pueda aprender a programar para Android?
Yo tengo 15 y me lo he puesto de objetivo
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
JAMAS LLEGO LA SEGUNDA PARTE, QUE PASO?. AHI QUEDO ESTE BUEN PROYECTO?
Dónde se puede acceder a cada uno de los 20 conceptos?
en el cuadro que asi lo indica, sobre los iconos de facebook, twiter…. etc
Saludos
Buen aporte, gracias por compartir.
como esta amigo estoy por desarrollar una aplicación pero me podria ayudar como trabajar con marcadores o google maps
Hola, muchas gracias por tu aporte, es muy didáctico y entretenido. Espero poder realizar algunas apps en el futuro.
Saludos desde Montevideo.
Marcelo.