Google acapara cada vez más y pasos agigantados el mercado de la tecnología controlando de este modo el manejo de la información, tanto, que ya hace muchos años dejó de ser un simple buscador, ofreciéndonos una cantidad de herramientas que nos permiten hacer el trabajo, la vida y hasta el ocio más agradables. una de sus grandes adquisiciones fue el SO android que hoy podemos ver en la mayoría de los dispositivos móviles debido a la gran aceptación que tuvo. Pero, con la creación de un nuevo SO siempre viene de la mano un problema para los desarrolladores ¿donde creó aplicaciones para este? ¿qué herramientas y beneficios me ofrece?.
Originalmente se solventó la necesidad de un entorno de desarrollo para la creación de aplicaciones android con las herramientas que nos ofrecía eclipse, por medio de un plugin de código libre que podemos integrar a este (y digo podemos porque todavía se puede) algo en lo que no nos centraremos en este post, pero se debe anotar que este id fue un precursor que impulsó a muchos desarrolladores a involucrarse en este mundo de las aplicaciones móviles.
En 2013 google da a conocer su propio IDE (Development Environment o Entorno de Desarrollo Integrado traducido al español) llamado Android Studio en la Google I/O, aunque la primera versión estable no salió hasta 2014. Este ha sido un IDE de muchos cambios y mejoras, con la inclusión de cada vez más herramientas, una de las más importantes fue la creación del material design por google, está cambió el modo en que vemos los recursos y las interfaces dándonos una gran gama de diseño pero esto es material de otro post , por ahora empezaremos explicando la estructura de Android Studio para que nos sirven cada uno de sus recursos o carpetas que este nos ofrece para programar de una manera más organizada.
Sabemos que la programación en Android consta de dos Lenguajes esenciales xml y java. Android Studio divide el uso e integración de estos lenguajes en una serie de carpetas donde se realizará la programación de cada una de estas según se necesite. Estas carpetas aparecen en la parte izquierda de su entorno de desarrollo y se ven como se puede observar en la siguiente imagen.
AndroidManifest.
Todas las aplicaciones debe constar de un AndroidManifest.xml debido a que esta proporciona la información necesaria al sistema android sobre tu aplicación, como permisos o servicios que necesita esta para su correcto funcionamiento. sus principales funciones son:
- Nombra el paquete de Java para la aplicación. El nombre del paquete sirve como un identificador único para la aplicación.
- Describe los componentes de la aplicación, como las actividades, los servicios, los receptores de mensajes y los proveedores de contenido que la integran. También nombra las clases que implementa cada uno de los componentes y publica sus capacidades, como los mensajes Intent con los que pueden funcionar. Estas declaraciones notifican al sistema Android los componentes y las condiciones para el lanzamiento.
- Determina los procesos que alojan a los componentes de la aplicación.
- Declara los permisos debe tener la aplicación para acceder a las partes protegidas de una API e interactuar con otras aplicaciones. También declara los permisos que otros deben tener para interactuar con los componentes de la aplicación.
- Enumera las clases Instrumentation que proporcionan un perfil y otra información mientras la aplicación se ejecuta. Estas declaraciones están en el manifiesto solo mientras la aplicación se desarrolla y se quitan antes de la publicación de esta.
- Declara el nivel mínimo de Android API que requiere la aplicación.
- Enumera las bibliotecas con las que debe estar vinculada la aplicación.
A continuacion se mestra la estructura general del archivo AndroidManifest.xml No todas las etiquetas son necesarias, algunas se colocan en la forma en que se necesiten . las etiquetas completamente básicas son <manifest> y <application> y estas se colocan cuando creas un proyecto en android studio.
?xml version="1.0" encoding="utf-8"?>
<manifest>
<uses-permission />
<permission />
<permission-tree />
<permission-group />
<instrumentation />
<uses-sdk />
<uses-configuration />
<uses-feature />
<supports-screens />
<compatible-screens />
<supports-gl-texture />
<application>
<activity>
<intent-filter>
<action />
<category />
<data />
</intent-filter>
<meta-data />
</activity>
<activity-alias>
<intent-filter> . . . </intent-filter>
<meta-data />
</activity-alias>
<service>
<intent-filter> . . . </intent-filter>
<meta-data/>
</service>
<receiver>
<intent-filter> . . . </intent-filter>
<meta-data />
</receiver>
<provider>
<grant-uri-permission />
<meta-data />
<path-permission />
</provider>
<uses-library />
</application>
</manifest>
Java.
En esta carpeta encontraran o se colocara todo el codigo java de tu aplicación incluida la clase MainActivity.java que en algunso casos seria la principal, el paquete en el que se incluyen com.exemplo.haskhell.ejemplo puede ser diferente en todos las aplicaciones, ya que este se puede modificar al crear el proyecto o dejarse por defecto el que te cree el entorno.Este paquete albergara todas las clases,interfaces etc.Que nos proporciona java.
las otros paquetes que aparecen son para realizar test a tu aplicación android pero eso es material para otro post.
Res.
Este gran paquete contiene todos los recursos que necesitará tu aplicacion android tanto a nivel de diseño de vistas como datos que necesitará para la ejecución
- Drawable.
En esta carpeta se guardan todos aquellos recursos, que sean imágenes o archivos xml que contengan cualquier recurso drawables
- Layout.
Un diseño define la estructura visual para una interfaz de usuario, como la IU para una actividad o widget de una app. Puedes declarar un diseño de dos maneras:
- Declarar elementos de la IU en XML. Android proporciona un vocabulario XML simple que coincide con las clases y subclases de vistas, como las que se usan para widgets y diseños.
- Crear una instancia de elementos del diseño en tiempo de ejecución. Tu aplicación puede crear objetos View y ViewGroup (y manipular sus propiedades) programáticamente.
El framework de Android te ofrece la flexibilidad de usar uno de estos métodos o ambos para declarar y administrar la IU de tu aplicación. Por ejemplo, podrías declarar los diseños predeterminados de la aplicación en XML, incluidos los elementos de pantalla que aparecerán en ellos y sus propiedades. Luego podrías agregar código en tu aplicación para modificar el estado de los objetos de la pantalla, incluidos los declarados en XML, en tiempo de ejecución.
- También puedes probar la herramienta Visor de jerarquía para depurar diseños; revela valores de propiedad del diseño, dibuja mallas (wireframes) con indicadores de márgenes/relleno y vistas completas mientras depuras en el emulador o dispositivo.
- La herramienta layoutopt te permite analizar rápidamente tus diseños y jerarquías para detectar ineficiencias y otros problemas.
La ventaja de declarar tu IU en XML es que te permite separar la vistas de tu aplicación del código que controla su comportamiento. Tus descripciones de la IU son externas al código de tu aplicación, lo que significa que puedes modificarlo o adaptarlo sin tener que modificar el código fuente y volver a compilar. Por ejemplo, puedes crear diseños XML para diferentes orientaciones de pantalla, diferentes tamaños de pantalla de dispositivos y diferentes idiomas. Además, declarar el diseño en XML facilita la visualización de la estructura de tu IU, de modo que sea más fácil depurar problemas. Este documento se centra en enseñarte cómo declarar tu diseño en XML. Si te interesa crear instancias de objetos View en tiempo de ejecución, consulta las referencias de las clases ViewGroup y View.
En general, el vocabulario XML para declarar elementos de la IU sigue de cerca la estructura y la denominación de las clases y los métodos, en los que los nombres de los elementos coinciden con los nombres de las clases y los nombres de los atributos coinciden con los métodos. De hecho, la correspondencia generalmente es tan directa que puedes deducir qué atributo XML corresponde a un método de clase, o deducir qué clase corresponde a un elemento XML determinado. No obstante, ten en cuenta que no todo el vocabulario es idéntico. En algunos casos, hay pequeñas diferencias de denominación. Por ejemplo, el elemento EditText tiene un atributo text que coincide con EditText.setText().
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/text"
android:textSize="30dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="HOLA, I am a TextView"
android:textColor="@color/colorPrimaryDark" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:textSize="20dp"
android:text="HOLA, I am a Button" />
</LinearLayout>
- Mipmap.
Pues es esta es facil aqui se guardaran todos los iconos que necesita tu aplicación en cada una de las densidades, de esta manera android elegirá la adecuada dependiendo del dispositivo en el que se ejecute.
- Values.
Contiene todos los valores constantes de tu aplicación estilos,texto,tamaños,colores etc.Estas carpetas son:
- Colors.
Deberá contener todos los colores que utilizaras en tu aplicación.
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#3F51B5</color>
<color name="colorPrimaryDark">#303F9F</color>
<color name="colorAccent">#FF4081</color>
</resources>
- Dimens.
Deberá incluir todas las dimensiones que utilizara su aplicación.
<resources>
<!-- Default screen margins, per the Android Design guidelines. -->
<dimen name="activity_horizontal_margin">16dp</dimen>
<dimen name="activity_vertical_margin">16dp</dimen>
</resources>
- Strings.
Se recomiendan contenga el texto que utiliza su aplicación, debido a que este le beneficia si desea hacer su aplicación multi idiomas, si ese es su deseo solo tendrá que traducir el contenido de String.xml y android automáticamente sabrá que string ejecutar dependiendo del idioma del dispositivo.
<resources>
<string name="app_name">Mi aplicacion</string>
<string name="Text">hola mundo</string>
</resources>
- Styles.
Un recurso de estilo define el formato y busque una interfaz de usuario. Un estilo se puede aplicar a un individuo View (desde dentro de un archivo de diseño) o para toda una Activity aplicación o (desde dentro del archivo de manifiesto).
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
</resources>
Build.Gradel(Module:app).
Aquí es donde se agregan las librerías en android de una manera fácil. También se especifican las condiciones de lanzamiento de su aplicación.
El sistema de construcción Android recopila recursos de aplicaciones y código fuente, y las empaqueta en los archivos APK que se puede probar, implementar, firmar y distribuir. Android Studio utiliza Gradle , un avanzado juego de herramientas de construcción, para automatizar y administrar el proceso de construcción, mientras que le permite definir configuraciones flexibles de generación personalizada. Cada configuración de generación puede definir su propio conjunto de código y recursos, mientras que la reutilización de las partes comunes a todas las versiones de su aplicación. El plugin de Android para Gradle funciona con el kit de herramientas de construcción para proporcionar procesos y parámetros configurables que son específicos de la construcción y prueba de aplicaciones de Android.
apply plugin: 'com.android.application'
android {
compileSdkVersion 24
buildToolsVersion "24.0.0"
defaultConfig {
applicationId "com.exemplo.haskhell.ejemplo"
minSdkVersion 15
targetSdkVersion 24
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:24.2.1'
testCompile 'junit:junit:4.12'
}
en la parte de dependencias es donde se agregarían todas las librerías, esta parte es al que se encarga de conectarse a Internet y descargar todos los archivos necesarios para el uso de esta librería como la ejecución del programa, esta seria la estructura de como se compila en aplicación en android studio.
Conclusión.
cosas como el diseño xml y el brindar una estructura bien definida para el desarrollo son lo que hacen de este un entorno muy poderoso para el desarrollo de aplicaciones móviles, y a esto sumarle la gran documentación que nos brida google sobre toda esta temática, que os da herramientas a un simple click,y nos explica la manera correcta de usarlas.
0 comentarios:
Publicar un comentario