Estructura de una aplicación Android

Tomando como base el “Hola Mundo” que hicimos, explicaremos la estructura del proyecto y todos los archivos que tiene.

src– Aquí van las clases de nuestra aplicación, es decir los archivos .java.

gen- Son archivos que genera Java y por ninguna razón los debemos tocar. Si lo hacemos, ya no van a servir y puede que ni el proyecto sirva para más adelante. Cada vez que compilamos, Java se encarga de actualizarlo y de generarlo de nuevo. Dentro de gen encontramos 2 archivos: el BuildConfig y R. El archivo R es el archivo que tiene los identificadores de todo lo que tiene la aplicación, por ejemplo imágenes, campos de texto, botones, etc. Java le asigna un identificador y nosotros no tenemos que preocuparnos por él, ya que le colocamos un nombre común que podamos recordar y Java sabe cómo se llama para nosotros.

assets- Este directorio contiene recursos de ayuda para la aplicación, audio, videos, bases de datos, la carpeta "assets" y la carpeta "res" sirven ambas para guardar recursos, pero la diferencia es que los que se encuentran en "assets" no generan un identificar en el archivo R que vimos se encuentra en el directorio "gen".

bin- Aquí tenemos archivos generados por el mismo Java, que en realidad no los utilizamos y tampoco debemos manipular, son archivos binarios como bien dice su nombre.

libs- Se encuentran librerías externas que necesita el proyecto.

res- El directorio "res" contiene todos los recursos de la aplicación.

res/drawable- Contiene todas las imágenes y gráficos PNG que vamos a incluir en nuestra aplicación. Cada uno representa una densidad, más adelante tendremos un capitulo para este tema en específico.

res/layout- En este directorio colocamos todos los XML que son la parte gráfica de nuestras "activities", es decir, todos los XML que son las pantallas de nuestra aplicación.

res/values- Se encuentran archivos con cadenas de texto que usamos en nuestra aplicación, algunos estilos de nuestra aplicación.

AndroidManifest.xml- El archivo Manifest es el más importante para nuestra aplicación, es la columna vertebral de nuestro proyecto, en él declaramos todas las actividades del proyecto, los permisos, versiones del SDK que usamos y un montón de cosas que vamos a ver más en detalle.

Tags: 

Huawei Ascend G6 Revisión y Especificaciones

☼ procesador Quad-core Snapdragon 400
☼ Ligero y muy útil
Encuentra aquí
http://www.techieoasis.org/2014/06/Huawei-Ascend-G6-review.html

android 4.4.4 - kitkat

Increíble, Google acaba de hacer oficial Android 4.4.4, versión KTU84P, justo unas semanas después de que se hiciera oficial Android 4.4.3. Las imágenes de fábrica ya están disponibles en los repositorios oficiales.

Falta menos de una semana para el Google IO y Android está depurando su código al máximo para no contener ningún tipo de bugs.

Android 4.4.4 KitKat, versión KTU84P, solución a un fallo en OpenSSL

Imaginamos que los dispositivos que ya hubiesen recibido Android 4.4.3 también recibirán esta actualización menor, cuyas novedades desconocemos por completo, aunque presumiblemente estarían relacionadas con el arreglo de un fallo de seguridad como este en OpenSSL (CVE-2014-0224, distinto a HeartBleed que ya fue solucionado en Android 4.4.3), y quizás relacionado con el usado por Geohot en Towelroot.

Sascha Prüter, ingeniero de seguridad de Google lo comenta en su Google+. La lista oficial de cambios en AOSP debería aparecer en un período de 48 horas.

Tags: 

Elon Musk: "La Inteligencia Artificial es potencialmente más peligrosa que las armas nucleares"

Para el líder de Tesla Motors, la inteligencia artificial es de cuidado, ya que puede llegar a ser altamente peligrosa. Esta advertencia resulta extraña, dado que uno de los proyectos de Tesla es fabricar autos que puedan conducirse solos.

Elon Musk, uno de los hombres más destacados en el mundo de la innovación, parece haber entrado en una contradicción con su propio trabajo.

Según el co-fundador de PayPal, SpaceX y actual cabeza de Tesla Motors, ha advertido sobre el potencial peligro de la inteligencia artificial (IA) a través de su cuenta en Twitter.

Para Musk, las aplicaciones que la IA puede tener en el futuro son de cuidado, ya que son “potencialmente más peligrosa que las armas nucleares.”

Resulta extraño que sea Musk el que advierte este tipo de “peligros”, sobretodo cuando está detrás de proyectos como SpaceX y es parte de una tendencia que no va a dejar de desarrollarse en el futuro.

En su cuenta de Twitter también reflexiona: “espero que no seamos solo el combustible biológico para la superinteligencia digital. Desafortunadamente, esto es muy probable”.

¿Qué es lo que nos quiere decir Musk? Probablemente sus advertencias se dirijan a un futuro lejano y a los límites que puede alcanzar la IA. Tal vez pide que seamos un poco más responsables con lo que esperamos y hacemos con la tecnología.

¿Tú qué opinas?

Herramientas de Programación en Android

Investigando el mercado y el escenario he investigado que herramientas poseemos para desarrollar aplicaciones en Android de forma nativa.

Hoy no voy a hablar de ninguna API en concreto, pero si quiero comentar algunos de los entornos de desarrollo más utilizados para las aplicaciones móviles, de tal forma que podamos tener una visión genérica, y en posteriores semanas seguiremos tocando temas de programación, algunas veces hablando sobre algunos de los frameworks que aquí mencionamos hoy.

Pero esto nos lleva a la pregunta: ¿por qué hablar de otros frameworks que no sean las SDK nativas? La respuesta es sencilla. Tenemos que proporcionar todas las herramientas para que cada uno elija la que mejor se adapte a sus necesidades. Sí es cierto que utilizar las API nativas nos permitirá (sólo si sabemos aprovechar bien la API) dar un extra de calidad a nuestra aplicación (por ejemplo, en rendimiento). Pero es cierto que a veces, pensando como compañía, no tenemos el presupuesto en tiempo y dinero para preparar una aplicación tanto para Android como para iOS de forma nativa. Y es precisamente para solventar ese problema para lo que surgen los framework multiplataforma.

APIs multiplataforma con más éxito

Estas APIs están basadas en JavaScript con soporte para HTML5 y CSS. Se tratan por tanto de apps basadas en web, lo que nos permitirá correr aplicaciones tanto en Android, como iOS o otros sistemas operativos como BlackBerry, Windows Phone…

Suelen tener herramientas de diseño de interfaces drag-and-drop (de arrastrar elementos), APIs para conectar a sensores de los dispositivos y otro tipo de utilidades para facilitar la vida al programador.

jQuery Mobile: EL más popular, una plataforma construida con jQuery, basada en HTML5. Se centra en marcadores semánticos, diseño por temas…
jquery mobile

PhoneGap: Diseñado para JavaScript, HTML5 y CSS, PhoneGap viene con Adobe y la fundación Apache como principales valederos. Cada vez es más robusta, incluyendo ya incluso soporte para Windows Phone desde su versión 2.0. Todo esto nos permitirá utilizar un WebView (Cordova) para que nuestro visor web quede embebido en una aplicación nativa.
phonegap

Sencha Touch: La compañía tras Sencha, el popular producto, lanzó su plataforma orientada a móvil. También basada en HTML5/JavaScript, provee de más de 50 componentes ya construidos, gestión de estados y un sistema basado en el modelo vista controlador ya integrado.
sencha

Dojo Mobile: Otro framework HTML5/JavaScript, con modelo vista controlador.
Titanium: Con esta plataforma podremos crear código nativo a partir de código JavaScript. Esto nos da un punto adicional de rendimiento, al finalmente ejecutar código nativo. Aunque no será igual que escribir el nativo desde el principio.
titanium

APIs para programar más allá de JavaScript

Ya que los anteriores frameworks se basaban en web, a pesar de tener ciertas funciones nativas, tenían cierta limitación a la hora de reutilizar código.

Para ello surgen otro tipo de plataformas que no se basan en JavaScript:

RhoMobile (Ruby): Es una plataforma construida con lenguage Ruby, madurada por Motorola. También se basa en el modelo vista controlador.
MoSync (C++): Soporte C++, HTML5/JavaScript o ambos en hasta 9 plataformas diferentes. Es compatible con PhoneGap.
Xamarin (C#/.NET): La plataforma para desarrollar aplicaciones multiplataforma en C#/.NET de la que ya hemos hablado.
xamarin logo

APIs para juegos

Siendo los juegos el tipo de aplicación por excelencia, hay que tener en cuenta que haya plataformas especializadas para estas aplicaciones, con motores de juego, soporte de animación 3D…

Corona SDK: Uno de los más conocidos dentro de los desarrolladores de juegos. Cuenta con una base de 120.000 desarrolladores. Dispone de 500 APIs para el desarrollo de juegos, con su propio motor físico o soporte para interfaces nativas, entre otras funciones.
Flixel
Unity3D
Otras herramientas

La lista de frameworks podría continuar casi eternamente, pues cada día surgen nuevas alternativas. A continuación listamos algunas más, pero sin duda nos dejamos muchas atrás:

Basic4android
DHTMLX Touch
iUI
Kendo UI
SproutCore
AppBuilder
xamarin ex

No obstante, en las próximas semanas hablaremos sobre algunos de estos frameworks, las características que presentan, ejemplos de código… Todo para que cada uno de vosotros tenga la mayor cantidad de información posible relativa al desarrollo de aplicaciones y las opciones que hay.

Aun así, siempre que se pueda yo recomendaría utilizar las API nativas. De hecho, atendiendo a ciertos análisis y estudios de mercados, aproximadamente el 60% de los desarrolladores para Android e iOS utilizan sólo las SDK oficiales. ¿Esto significa algo, no? Aunque también hay que estar preparado a un proyecto en el que no se pueden asumir costes para apps nativas.

Tags: 

Páginas