CategoriasAndroidProgramación

El camino del desarrollador Android #5 – Primera Aplicación, Pizzapedia

Hola a todos, Por fin ha llegado el momento de crear nuestra primera aplicación donde utilizaremos todo lo que hemos estado aprendiendo en los post anteriores, si has llegado a este Post y no sabes de cual hablo, te invito a conocerlos aquí. Hoy nos enfocaremos en hacer una aplicación donde podamos «iniciar sesión», seleccionar una pizza entre un catalogo y al tocarla mostrar una descripción de ella.

La idea de estas aplicaciones es practicar con ejemplos de la vida real donde puedes llegar a sentir que has aprendido algo, no solo ver videos o leer blogs y esperar que todo lo que has leído lo aprendas mágicamente. Lo que no se practica se olvida y en el campo de la programación la práctica hace al maestro.

Creando el proyecto

Para empezar, vamos a crear nuestro proyecto y colocarle un nombre original como «Pizzapedia» y vamos a seleccionar crear un Empty Activity, es decir, una «Activity Vacia». Le dejamos el nombre de MainActivity, hacemos click en «Siguiente» Y esperamos que el Android Studio termine de inicializar el proyecto.

Luego que se haya creado el proyecto, procederemos a crear el layout de nuestra Activity en el activity_main.xml  donde vamos a añadir un LinearLayout y dentro de este, dos EditText para el nombre de usuario y contraseña respectivamente y luego incluiremos un Button para iniciar sesión.

Sin mas que agregar, abrimos el archivo activity_main.xml y agregamos el siguiente código:

La mayoría de estos atributos los habíamos visto en los Post anteriores. Sin embargo, he agregado dos mas a la lista los cuales serían:

android:layout_margin: El cual indica el margen del widget respecto al padre, al utilizar este atributo modificamos todos los márgenes respecto al padre por 8dp (En Android es una buena practica utilizar la unidad dp en vez de px)

android:layout_gravity: Este atributo especifica como debería colocarse el Button en un conjunto de vistas. En nuestro caso hemos optado por que se mantenga en el centro.

Agreguémosle funcionalidad

Ahora, agreguémosle la funcionalidad a nuestro layout. Abrimos nuestro archivo MainActivity.java donde vamos a implementar toda lógica que necesitamos para pasar a los siguientes Activities.

Primero, creamos nuestras variables miembros, mUsername_et,mPassword_et y mButton. Le añadimos el prefijo «m», así indicamos que es una variable miembro y le asignamos su vista utilizando el id que hemos declarado en el activity_main.xml.

Luego, vamos a agregarle la funcionalidad al Button utilizando el método setOnClickListener(); y dentro de este vamos a llamar a un método que vamos a crear llamado CheckUser(); el cual se encargara de hacer una validación sencilla, en donde verificaremos que el campo de usuario y contraseña no están vacíos, ademas de verificar que sean los correctos.

Para terminar, en caso de que el usuario haya ingresado el nombre de usuario y la contraseña correcta, se ejecutará un método que crearemos llamado moveToPizzaList(); donde utilizaremos un Intent para abrir la Activity que muestra la lista de pizzas disponibles.

Mostrando la lista de pizzas

Ahora que ya hemos iniciado sesión en nuestra aplicación queremos ver nuestra lista de pizzas, para esto necesitamos utilizar la herramienta que ya conocemos el llamado RecyclerView. Ahora, para empezar vamos a crear el layout de nuestra celda en el RecyclerView que llamaremos item_row.xml e incluiremos un ImageView y un TextView donde mostraremos una imagen de la pizza y su nombre.

Hemos agregado unas imágenes de pizzas a nuestra carpeta drawable donde luego con el RecyclerView vamos a mostrar, ahora agregamos el RecyclerView a nuestro layout de la nueva Activity que hemos creado el cual es el PizzaListActivity. Quedando asi el activity_pizza_list.xml:

Muy bien, ahora necesitamos crear un objeto de java llamado Pizza con tres atributos: nombre, descripción y un entero que será el id del drawable que vamos a colocar en el ImageView en pocas palabras el id de la imagen que acabamos de pegar en nuestra carpeta drawable.


Ahora que ya tenemos un objeto Pizza crearemos un Adapter que utilizará una lista de pizzas para mostrar. Empezamos creando nuestra clase CustomAdapter y Extendiéndola de la clase RecyclerView.Adapter tal cual como lo vimos en nuestro articulo anterior, luego le indicamos al viewHolder cual layout debe inflar en el método onCreateViewHolder(); y declaramos nuestros widgets en el método onBindViewHolder();

Recuerda que si no recuerdas bien como crear un Adapter personalizado, puedes revisar nuestro post anterior Aquí.

El CustomAdapter queda de la siguiente manera:

Ok, ya casi terminamos. Necesitamos crear nuestra lista de pizzas e inicializar nuestro RecyclerView en el mainActivity. Para esto, seguiremos los mismos pasos que en el post Anterior solo que en esta oportunidad, vamos a crear una lista de objetos Pizza y la vamos a pasar al CustomAdapter, quedando de esta forma:

Agregando el onClickListener

Para tener la capacidad de reaccionar al click de cada celda del RecyclerView no podemos utilizar un simple .setOnClickListener(); necesitamos crear nuestro propio onClickListener y aunque no hemos hablado todavía de los Listener, explicaremos brevemente que en este caso lo utilizaremos para reaccionar a ciertos eventos y ejecutar métodos entre distintas clases.

Empezaremos por crear la clase OnRecyclerViewItemClicklistener, la cual es una interfaz. Las interfaces solo tienen la declaración de los métodos mas no su implementación, esta se realiza en la clase que implementa la interfaz.

Ahora, debemos agregar como un nuevo atributo al CustomAdapter el cual va a ser nuestro recién creado Listener y a su vez vamos a modificar el constructor de la clase CustomAdapter.

Luego, en el método onBindViewHolder vamos a mover toda la inicialización de los widget a un método llamado bind() en la clase del ViewHolder y le pasaremos como parámetro la pizza de la lista que hemos seleccionado además del Listener, para despues asignarle un setOnClickListener al itemView y dentro de este llamar al Listener que creamos pasándole la pizza que hemos seleccionado anteriormente. El cual queda de la siguiente manera:

Para terminar, modificamos la forma en la cual creamos el CustomAdapter utilizando el nuevo constructor y creando un new OnRecyclerviewItemClickListener quedando de la siguiente manera:

Y así culminamos la aplicación, recuerda que esto es una base y puedes dar rienda suelta a tu imaginación para basarte en esta aplicación y crear otras aplicaciones con tus propias ideas. Si quieres descargarte el proyecto puedes encontrar el link al repositorio de github aquí. 

Como siempre, si te ha gustado el post deja un comentario acerca de que te ha parecido, sobre que te gustaría que habláramos y no olvides compartir el post y seguirnos en nuestras redes sociales.¡Hasta la próxima!

CategoriasAndroidProgramación

El camino del desarrollador Android #4 – RecyclerView y Adapters

Hola amigos, bienvenidos otra vez a otro tutorial de esta serie sobre Android en este caso por fin, toca hablar de uno de los elementos más usados en todo el mundo del desarrollo Android, RecyclerViews.

¿Que son estos famosos RecyclerViews?

Los RecycerViews son elementos que permiten mostrar una lista de elementos en una aplicación, por ejemplo. Mostrar una lista de fotos, dónde el usuario puede interactuar con cada foto, darle «Me gusta», compartir la foto y comentar sobre la foto. ¿Les suena parecido este ejemplo? pues seguramente si, Instagram, Facebook, La aplicación que usas para ordenar pizza los domingos probablemente también utilice un RecyclerView para mostrarte todas sus pizzas.

Un RecyclerView nunca anda solo, siempre tiene compañeros y estos son los Adapters y los LayoutManager. Son algo así cómo los tres mosqueteros, El LayoutManager se encarga de gestionar cómo mostrar cada celda del Recyclerview y ordenarlas de cierta manera, el Adapter se encarga de cómo se gestiona la información manejar la lista de elementos, notificar cuando un elemento ha cambiado o ha sido eliminado y por último el RecyclerView gestiona la parte visual de cómo se muestra esta cantidad de elementos en una manera muy eficiente, esto lo hace manteniendo una cantidad de limitada de vistas.

Fuente: Android Developers

¿Entendido, por dónde empezamos?

Para empezar debemos primero agregar nuestro RecyclerView al layout XML de nuestro Activity.

Vemos que al ser un widget, tiene atributos que ya hemos visto antes en los otros post si no te acuerdas de ellos o no los has visto. Puedes revisar en nuestro post dónde hablamos de widgets Aquí.

Paso #2

Crear nuestro layout del ViewHolder, cada ViewHolder necesita mostrar un layout. Así que nos centramos en crear nuestro propio layout, es bastante simple, hacemos el mismo procedimiento que hemos realizado previamente para los Activities.

cómo podrás ver, no tiene nada del otro mundo. Es solo un Activity con un TextView dentro que nos muestra un nombre.

Paso #3

Para continuar con la creación de nuestro RecyclerView, necesitamos crear nuestro propio Adapter. Para ellos necesitamos crear una clase que sea hija del Recyclerview.Adapter y lo hacemos de la siguiente manera:

Ok, hemos creado nuestro Adapter e implementado sus métodos. Pero, un momento ¿que es un «ViewHolder» y por que esta ahí?, bueno un ViewHolder es la forma en la que cada celda es representada en el RecyclerView y cada ViewHolder necesita de un layout. Si, un archivo XML así cómo las Activities ¿Que sorpresa no?.

Puede parecer mucho código luego de implementar todos los métodos que se generan por la herencia de la clase, pero calma que explicaremos cada parte de este código.

Primero, creamos una clase llamada CustomAdapter. Esta clase hereda de RecyclerViewAdapter y dentro de ella tenemos un ViewHolder, al ser una clase hija de RecyclerView.Adapter debe implementar los siguientes métodos:

onCreateViewHolder(ViewGroup parent, int viewType): Este método se encarga de «inflar» el xml del cual hablamos previamente y regresar un objeto ViewHolder.

public void onBindViewHolder(MyViewHolder holder, int position): Este método se encarga de asignarle a cada ViewHolder los datos que tiene que mostrar por eso para acceder a los widgets que tenemos declarados previamente, necesitamos utilizar el holder.mTextView.setText y asignarle el texto obteniendo cada elemento de la lista utilizando mNameList.get(position).

public int getItemCount(): Por último este método indica la cantidad de objetos que contiene la lista. La cual hemos creado previamente, en nuestra clase CustomAdapter.

Para terminar con este paso hablaremos de la clase MyViewHolder la cual es una clase que hereda de la clase RecyclerView.ViewHolder y es dónde creamos nuestro ViewHolder personalizado, aquí declaramos los widgets que se muestra en el layout xml que hemos creado previamente y para inicializarlos tenemos que utilizar el famoso método findViewById() pero esta vez necesitamos buscar este id en el itemView que nos provee el constructor por eso utilizamos itemView.findViewById(R.id.tv_name);

Paso #4

Ahora tenemos que crear e inicializar nuestro RecyclerView y Adapter en el Activity que estamos utilizando. Lo hacemos de la siguiente manera:

Aquí podemos observar, cómo creamos un RecyclerView y lo inicializamos, luego creamos una lista de nombres que es con la cual vamos a rellenar nuestro CustomAdapter y llegamos al LayoutManager el cual se encarga de ordenar y manejar las celdas que le envie el Adapter, existen tres tipos de LayoutManager las cuales son:

  • LinearLayoutManager: El cual muestra las celdas cómo si fuera un LinearLayout de forma vertical o de forma horizontal.
  • GridLayoutManager: Que muestra los elementos en forma de cuadrícula.
  • StaggeredGridLayoutManager: Parecido al GridLayoutManager solo que esta lo muestra de una manera escalonada.

Si no estas contento con alguno de estos 3, siempre puedes crear tu propio LayoutManager.

Luego, indicamos al RecyclerView que ItemAnimator debe utilizar el cual es una animación que se muestra en una celda cuando un cambio es realizado en el Adapter y un divisor que divide cada celda de nuestro RecyclerView. Para terminar solo le indicamos al RecyclerView cual es el Adapter que debe utilizar y hemos terminado!

RecyclerView

Y con esto tenemos otra herramienta más a nuestro arsenal, dónde sin duda alguna es una de las más importantes y muy usadas en este mundo del desarrollo Android, no te pierdas la próxima entrega de esta serie de tutoriales dónde crearemos una aplicación desde 0 y utilizaremos todos los conocimientos que hemos ido publicando hasta el momento.

Y cómo siempre, si te ha gustado el Post o nuestro blog puedes comentar, compartir nuestro post por las redes sociales y seguirnos en ellas (Instagram, Twitter, Facebook) para que no te pierdas ningún Post de nuestro blog y más importante, nos apoyes. ¡Hasta luego!

CategoriasAndroidProgramación

El camino del desarrollador android #3 – Intents,ImageView y Bundles

Hola a todos, previamente ya hemos hablado acerca de lo que son las Activities, cómo funcionan y cómo agregar widgets para darle un uso y una apariencia. De lo que vamos a hablar en este Post es acerca de Intents,Imageview (Otro widget que aun no hemos cubierto) y Bundles. Estos componentes son esenciales en una app de Android, ya que por empezar a hablar de ellos los Intents nos ayudan a llamar a otro componente de la aplicación, es imposible tener una app sin imágenes así que para eso tenemos los ImageView y los Bundles que nos sirven para almacenar objetos y pasarlos a través de clases.

¿Qué son los Intents?

Los Intents son objetos que se utilizan para solicitar la acción de otro componente de Android. Ya vimos una de ellas que son las Activities, ahora los otros tres componentes de Android restantes serían, Broadcast, Services y content Providers. De los cuales hablaremos próximamente en este blog.

Las tres formas más comunes para utilizar Intents son las que vamos a ver a continuación:

Para comenzar una actividad

En caso de que tengamos nuestra actividad Login y quisiéramos desplazarnos a nuestra actividad principal con toda la información principal de la aplicación, tendríamos que crear un Intent y utilizar el método

startActivity();

y pasarle como parámetro un Intent con la clase a la que nos queremos dirigir, por ejemplo:

Los dos tipos de Intents

Existen dos tipos de Intents, lo que acabamos de ver que sería un Intent explícito, el cual se llama así por que se indica explícitamente que componente vamos a iniciar, en este caso sería otra activity de nuestra app.

Fuente: Android Developers

En esta imagen podemos ver como se inicia un Intent desde un Activity A hasta como llega y se inicia un Activity B.

Al contrario a un Intent implícito,
no le indicamos que componente va a iniciar, sino que le declaramos una acción, lo cual permite a otra aplicación como gestionarlo. ¿Alguna vez has querido compartir esa foto graciosa que encontraste en tu aplicación favorita y le das al famoso botón de share y luego te muestra un menú para seleccionar a través de que aplicación quieres compartirla?, Bueno eso es gracias a un Intent implícito.

Para crear un Intent implícito en tu aplicación puedes hacerlo de la siguiente manera:

También existen los Pending Intents los cuales son contenedores de Intents que se ejecutan luego de que el usuario interactúa con una notificación o con un widget.

ImageViews

Los ImageViews son widgets como los que hablamos en la versión anterior de esta serie de tutoriales solo que estos se encargan, como su nombre lo indica, de mostrar una imagen al usuario. Para mostrar una imagen solo hay que copiarla en el directorio Drawable o Mipmap y luego llamarla desde el XML de la siguiente forma:

En el cual podemos ver los siguientes atributos:

android:layout_width=«wrap_content»: Donde le indicamos que queremos que el ancho de la imagen se adapte al tamaño que tenemos.
android:layout_height=«wrap_content»: En este atributo le indicamos que se adapte al tamaño pero en este caso hablamos de la altura del widget.
android:src=«@mipmap/ic_launcher»: En este atributo indicamos en donde esta guardada la imagen y el nombre que esta tiene para asignarla

Aparte de estos atributos los ImageView tienen atributos muy importantes como son los siguientes:

android:tint : Con este atributo podemos cambiarle el color a drawable o un svg.
android:scaleType : Con este atributo podemos cambiar la forma en el que se ve una imagen al aplicarle una reducción.

Bundles

Los Bundles, objetos cuya misión es transportar tus objetos desde una Activity a otra. Para ello, el objeto que tengas que enviar debe implementar la interfaz Parcelable. O utilizar primitivos para enviar tus datos desde una Activity a otra, por ejemplo, si queremos enviar un dato desde una Activity a otra podemos agregarlo al Intent de la siguiente manera:

Luego en la mainActivity.java podemos obtenerlo desde un bundle de la siguiente forma:

Donde podemos observar que obtenemos el intent con el método getIntent(); y luego obtenemos los extra que habíamos colocado anteriormente con el método .getExtras(); y por último, verificamos si el bundle no es nulo y si contiene el string con la clave url de ser hacer mostramos un Toast.

Nuestros amigos los bundles, también sirve para guardar los datos de nuestra activity en un caso que se gire la pantalla y se tenga que reconstruir la actividad. Hablaremos de esto y acerca del ciclo de vida de las activities en un próximo post aquí, así que no olvides seguirnos en las redes sociales para estar al tanto de nuestros post.

Con esto terminamos otro capitulo mas acerca del camino del desarrollador Android y estamos más cerca de poder lograr nuestra propia aplicación así que comenta si te gusto el post, si no te ha gustado comenta que no te gusto y comparte este post por las redes sociales para todos aquellos que quieran empezar a desarrollar en Android, ¡Hasta luego!

Recuerda que si quieres adelantarte y seguir conociendo mas de Android puedes visitar la documentación oficial haciendo click aquí

CategoriasAndroidProgramaciónSin categoria

El camino del desarrollador Android #2 – Hola mundo, Activities y Widgets

Hola mundo, los primeros pasos para todo desarrollador que se encuentra aprendiendo un nuevo lenguaje, un nuevo framework y empezando una nueva aventura con algo nuevo. En este post te hablo de como vamos a crear nuestro primer proyecto de Android Studio y hablaremos de uno de los 4 principales componentes de Android.

Las famosas Activities y que sería de una Activity sin los widgets que la complementan, solo veríamos una pantalla la cual no podríamos hacer mas que cambiar de color.

Los activities son una clase del SDK de Android, como ya mencionaba pueden almacenar muchos widgets inclusive almacenar Fragments (Otro componente de Android, pero del cual hablaremos en otro momento).

¿Qué son los Widgets?

Para hablar de los Widgets necesitamos hablar primero de las View, que son una clase padre que existe en el SDK de android, las cuales tienen muchas clases hijas como lo son los Textview,EditText,ImageView,Button. Todos estos son hijos de la super clase llamada View, estos componentes que son llamados Widgets. Estos widgets pueden modificarse para mostrar el texto que deseamos o la imagen que deseamos mostrar al Usuario, así como cambiar el color del texto o del fondo o decidir si mostrarlos u ocultarlos. Para poder hacer esto, necesitamos asignarle un id para poder identificarlo de los demás.

¿Y dónde se utilizan estos widgets?

Los widgets pueden ser utilizados dentro de un layout. Un layout es un archivo .xml, el cual guarda toda la información de como se verá tu actividad. Toda Activity o Fragment tiene un layout, que es la parte de la Interfaz de Usuario que esta muestra y que además en este se declaran los Widgets. Usualmente, estos suelen tener una estructura jerárquica donde siempre hay un widget que es el Padre y pueden haber varios hermanos.

Ya va, ¿Qué?

Tranquilo, no es tan complicado como parece. Veámoslo en el siguiente código:

Este es un TextView, un widget que muestra el texto que deseamos y le hemos dado las siguientes propiedades:

android:layout_width : Esta propiedad establece la anchura del TextView.
android:layout_height : Esta propiedad esteblece la altura del TextView.
android:text : En esta propiedad establecemos el texto que queremos mostrar a través del TextView.
android:id : En esta propiedad se establece el id del widget para poder acceder a el.

¿No es tan difícil, cierto?, ok ahora vamos a crear un EditText el cual es un campo de texto donde puedes ingresar texto y ademas crearemos un botón para enviar el texto que hemos escrito.

Aparte de estos dos widgets vamos a utilizar un LinearLayout, el cual es un widget que a diferencia de los elementos que mencionamos anteriormente, es hijo de la clase ViewGroup del Android SDK, el cual se utiliza para organizar otras vistas, sea Horizontal o verticalmente. Dentro de este LinearLayout vamos a almacenar nuestro EditText y nuestro Button, quedando de esta manera:

Ok, como te comentaba anteriormente, estos layout XML son utilizados por las clases de android para mostrar la interfaz, así que nos encargamos de declarar nuestro layout en nuestra activity. Cada vez que creas un Activity, el android studio genera por defecto un archivo .xml, en nuestro caso se llama activity_main.xml que es en el cual agregamos los widgets.

El código de tu activity debería verse así:

¡Muéstrame el mensaje!

Ya tenemos definido nuestros Widgets, ahora solo debemos agregar un listener a nuestro botón para que reaccione al tocarlo. De los listener hablaremos en otro tutorial, mientras tanto solo puedo decir que son líneas de código que se ejecutan cuando un evento ocurre.

Para empezar utilizamos el método setOnClickListener del objeto button, luego como parámetro creamos un nuevo onClickListener, el autocompletado del android studio debería ayudarte y este sería el resultado:

Entendido y anotado capitán, pero ahora ¿como hacemos para mostrar un mensaje que diga el nombre?, pues es muy sencillo, te presento a nuestro amigo el Toast, quías si tienes un dispositivo android lo hayas visto antes pues es muy sencillo de utilizar.

Para mostrar un Toast solo debes crearlo de la siguiente forma:

Donde el primer parámetro le puedes pasar un contexto (Esto es un tema que está fuera del alcance de este post, pero del cual hablaremos próximamente).
El segundo parámetro es el mensaje que quieres mostrar al usuario, es decir un String. Y el tercero, es una constante el cual es el tiempo de duración que quieres que dure el toast.
Por último, pero para nada menos importante tenemos el método .show() que es el encargado de mostrar nuestro Toast, sin el no podríamos observar su belleza.

Pero nosotros no queremos mostrar un texto cualquiera, nosotros queremos mostrar el texto que hemos escrito en nuestro EditText, ¿cómo lo obtenemos?. Pues de una manera muy sencilla, utilizando el método .getText de nuestro EditText, quedando así de la siguiente manera:

Que no te asuste el String.valueOf(); el método getText devuelve un objeto del tipo Editable, así que lo que hace este método es transformarlo a un String para que el Toast lo pueda mostrar.

Y con eso tendríamos nuestro resultado:

imagen_final

Puedes saber mas acerca de los Widgets,Activities y Toast en los links que te dejo aquí abajo:

https://developer.android.com/guide/components/activities/index.html

https://developer.android.com/reference/android/widget/Toast.html

https://developer.android.com/reference/android/view/View.html

Y con esto terminamos nuestro Post #2 del Camino del desarrollador Android, comenta debajo sobre que widget quisieras conocer mas y que te interesaría realizar :).

Si te gustó el post no olvides compartirlo en tus redes sociales y ayudar a propagar esta información a personas que quisieran comenzar en el mundo del desarrollo Android.

CategoriasAndroidSin categoria

El camino del desarrollador Android #1 – Instalar Android Studio en Linux

¡Hola! Para estrenar esta sección de nuestro blog pensé en realizar una serie de tutoriales donde veremos como podemos seguir un camino para volvernos un desarrollador Android aprendiendo conceptos y elementos para luego implementarlos en aplicaciones de la vida real. En esta primera versión de esta serie de Post empezaremos hablando de como instalar Android Studio.

Instalar Android Studio en Linux no tiene gran dificultad solo tenemos que instalar Java, descargar el SDK de Android y el IDE el cual sería Android Studio.

Instalar Android Studio en Linux (Debian,Ubuntu,Xubuntu,Kubuntu)

Antes que nada debemos instalar Java el cual lo haremos de la siguiente manera:

  1. Agregar el repositorio de webupd8team.com con el siguiente comando:
    add-apt-repository ppa:webupd8team/java
  2. Actualizar la listas de repositorios
    sudo apt-get update
  3. Instalar Java 8 con el siguiente comando:
    sudo apt-get install oracle-java8-installer
  4. Utilizar el siguiente comando:
    sudo update-alternatives --config java
  5. Ahora agregaremos la variable de entorno $JAVA_HOME al archivo environment de la siguiente manera usamos el comando sudo nano /etc/environment para abrir el archivo y agregamos la siguiente línea
    "JAVA_HOME="/usr/lib/jvm/java-8-oracle/jre/bin/java""
  6. Notificamos los cambios y volvemos a cargar el archivo environment con el comando:
    source /etc/environment

Podemos saber si nuestra variable $JAVA_HOME funciona utilizando:

echo $JAVA_HOME

Y para saber si hemos instalado bien Java usando el comando:

java -version

 

Instalando Android Studio

Hoy en día instalar Android Studio es muy sencillo, solo tienes que descargar el archivo .zip.

Desde aquí

Luego al descargarlo solo tienes que extraer los archivos, dirigirse a la carpeta que acabamos de extraer desde la terminal.

cd android-studio/bin/

luego corremos el archivo .sh del Android Studio

./studio.sh

Seguimos el proceso de instalación seleccionamos la primera opción

Seleccionamos la opción de «Configuración»
Android Studio tutorial imagen 1

Luego seleccionamos los SDK que vamos a descargar

Android Studio tutorial imagen 1

Se abrirá una ventana como la siguiente y comenzara a descargarse los SDK, luego esperamos y al terminar ya podríamos empezar a crear un proyecto con Android Studio.

Android Studio tutorial imagen 1

 

Nuestros amigos de Google y de IntelliJ nos proporcionan actualizaciones del Android Studio desde el mismo programa así que no tienes que preocuparte por repetir este paso una y otra vez.

Si te ha gustado este Post, compártelo en las redes sociales 🙂 y déjanos tu opinión aquí debajo.

CategoriasLinux

¡22 Comandos de linux que debes saber!

¡Hola amigos! En esta oportunidad quiero hablarles de los 22 comandos que más he utilizado en linux parte 1 y que al mi parecer todo usuario que esté empezando en linux debería empezar a utilizar ya que si queremos realizar ciertas tareas en un servidor o a través de ssh podamos realizarlas sin depender de una GUI.

Empecemos con lo básico, como crear, modificar,leer y eliminar un archivo en un directorio también veremos como movernos entre los directorios mediante la terminal.

Comandos para gestionar archivos

1 ) cd

La función de este comando es moverse entre directorios es bastante sencillo de usar y aqui tenemos algunos ejemplos de ello:

cd app

Nos cambiaría al directorio de la carpeta app

cd ../

Nos cambia al directorio superior es decir, si tenemos Giuseppe/Documents/Codingpizza/Aplicaciones/AppDePizzaAndroid y nosotros estamos en el directorio Aplicaciones nos cambiaría al directorio Codingpizza

cd ~/Documents

El símbolo ~ indica que es la carpeta personal de cada usuario, si seguimos el ejemplo anterior, nos habíamos movido previamente a la carpeta Codingpizza pero ahora resulta que quiero moverme a mi carpeta personal por cualquier circunstancia utilizamos este comando y nos situaría en el directorio Giuseppe

2 ) ls

De que nos serviría cambiar de directorio en directorio si no podríamos ver que se encuentra en cada uno ¿no?, esto lo podemos solucionar con el comando ls dicho comando se encarga de mostrar todo el contenido de un directorio actual, suponiendo que estamos en el directorio Aplicaciones/  y queremos ver la lista de nuestras aplicaciones podemos utilizar el comando ls para observar en la consola que archivos hay disponibles.

Dependiendo de tu distribución de linux este comando puede mostrarte los colores de distintos tipos de archivo por ejemplo, en mi caso que utilizo Xubuntu 16.04 y los directorios me los muestra con un color azul, los archivos comprimidos con un color rosado y los ejecutables de color verde.

otras variaciones de este comando pueden ser:

ls -l

El cual indica todos los archivos disponibles en un directorio con el nombre del dueño, sus permisos,fecha y hora de creación.

ls -a

Este comando muestra todos los archivos incluyendo los archivos ocultos.

3) pwd

Si en algún momento no recordamos en qué directorio estamos, siempre podemos utilizar este comando para mostrar el directorio en el que estamos situados actualmente, de hecho su nombre viene de “print working directory” así se te hará mas fácil recordar el nombre del comando.

4) touch

El comando touch se utiliza para crear un comando a través de la terminal por ejemplo:

touch miarchivo.txt

5) head

En linux es una buena práctica nunca abrir los archivos con un editor para solamente leerlos, por que imagínate si por cualquier razón te equivocas y terminas escribiendo algo en el archivo y luego es utilizado por el sistema o por alguien mas y se daña.

Por esta razón el comando head es importante ya que muestra las primeras diez líneas de un archivo por ejemplo si utilizamos el siguiente comando:

head  listacompras.txt

Daría como resultado:

  • lista de compras:
  • Pan
  • Queso
  • Jamón
  • Jugo de naranja
  • Galletas
  • Mas Galletas
  • Tomate
  • Cebolla
  • Manzanas

6) tail

El comando tail al contrario del comando head muestra las últimas líneas de un archivo si tenemos un archivo que contiene los números del 1 al 20

tail lista_numeros.txt

El resultado del comando seria:

  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

7) more / less

Al contrario de head y tails estos comandos muestran todo el contenido de un archivo por ejemplo si tienes un archivo.log y es extremadamente largo pero quieres revisarlo la ventana de la terminal no podrá mostrar toda la información así que para esto usamos less  ya que aunque cumplen una función muy similar, con el comando less tenemos la posibilidad de “pasar de páginas” usando la combinación de teclas CTRL+F para ir a la siguiente pagina y CTRL+B para ir a la anterior si quieres salir del modo de lectura del archivo basta con presionar la tecla q

El comando se utiliza de la siguiente manera:

less log_del_servidor.log

8) nano

Ya hablamos de como crear un archivo y ver su contenido ahora vamos a ver como escribir un archivo, el comando nano es un comando que muestra un editor de texto en la consola donde podemos escribir y editar de ser necesario un archivo.

Este comando se utiliza de la siguiente manera:

nano nombredelarchivo.txt

Una vez dentro del archivo podemos utilizar la siguiente combinación de teclas para salir de el:

ctrl + x para salir del editor, si no has grabado el editor te preguntara si deseas guardar los cambios, presionamos enter y se guardaran los cambios.

ctrl + o guarda el archivo el cual estamos editando.

ctrl + \ reemplaza un carácter.

9) rm

Ahora para terminar de hablar de archivos hablemos de rm  este es un comando que permite la eliminación de directorio y archivos, recuerda que si eliminas algún directorio o archivo utilizando este comando no podrás recuperarlo más.

Para eliminar un archivo utilizamos el comando

rm archivoaeliminar.txt

Para eliminar un directorio usamos

rm -r directorio_a_eliminar

Donde -r indica al comando que tiene que utilizar una operación recursiva.

10) cp

cp es un comando muy sencillo el cual se utiliza para copiar un archivo o un directorio para copiar un directorio es necesario utilizar la bandera -r para indicar que es una operación recursiva.

Para copiar un archivo utilizamos

cp archivo_original.txt archivo_copia.txt

Para copiar un directorio utilizamos

cp -r directorio_original directorio_copia2

11) mv

El comando mv se utiliza para mover archivos de un directorio a otro podemos utilizarlo de esta forma:

mv archivo_original.txt directorio_original

12) find

Como indica el nombre de este comando se utiliza para encontrar un archivo, en este caso en el directorio en que nos indicamos actualmente.

find archivo1.txt

13) locate

Este comando se encargará de buscar el archivo a un nivel más profundo y detallado así que para utilizarlo solo necesitamos usar el siguiente comando:

locate index.html

14 ) history

history es un comando simple este comando lo que nos permite es ver un historial de los comandos que hemos utilizado anteriormente el cual es útil si quieres buscar uno en especifico que no recuerdas.

Su uso es tan simple como escribir:

history

además, si deseas guardar el resultado del comando en un archivo de texto puedes utilizarlo de la siguiente forma:

history >> historial_de_comandos.txt

donde “historial_de_comandos” puede ser el nombre del archivo donde desees guardar la información que te trae el comando.

15) grep

El comando grep es al mi parecer uno de los comandos mas poderoso que puede tener la terminal de unix su función es mostrar todas las lineas que contengan un patrón o una expresión regular sin embargo aquí vamos a tratar solo su forma sencilla ya que hay inclusive capítulos en libros que hablan de este comando.

Suponiendo que tenemos un archivo con una lista de frutas y queremos saber si contiene una en especifico podemos utilizar el comando:

grep “Pera”

Así sabremos si dicho archivo contiene lo que se está buscando, el comando grep también acepta expresiones regulares.

Otra buena manera de combinar el comando grep es con el comando history ya que si por ejemplo estamos buscando un comando que solo recordamos una parte de él podemos combinarlos de la siguiente manera:

history | grep “git”

esta combinación mostrara todos los comandos que contengan la cadena “git” del historial de comandos. La barra vertical conocida en inglés como el “Pipe operator” el cual toma la salida de un comando y lo utiliza en el siguiente comando.

16 ) shutdown

Este comando se utiliza para reiniciar el sistema operativo el cual es muy util si quieres programar a que hora tu ordenador debería apagarse, se usa de esta manera:

sudo shutdown -P 16:00

Este comando debe ejecutarse como super usuario por eso utilizamos la instrucción sudo, luego ingresamos el comando el cual es shutdown y la bandera -P  indica la hora en la cual se va a apagar el ordenador en este caso seria a las 16:00 en formato de 24 horas.

También puedes utilizarlo de esta manera:

sudo shutdown -P +60

en el cual le damos una indicación en el cual se apague dentro de 60 minutos.

Para cancelar un apagado debemos utilizar el comando de la siguiente manera:

sudo shutdown -c

Si queremos reiniciar el ordenador solo debemos agregar la bandera -r para que se reinicie por ejemplo:

sudo shutdown -P +60 -r ó sudo shutdown -P 16:00 -r

19) top/htop

El comando top es un comando en el cual puedes observar los procesos del sistema y que recursos se están utilizando. Yo personalmente prefiero htop el cual es un comando que ayuda muchísimo ya que es la versión mejorada de top, este comando muestra los procesos y los recursos que se utilizan con gráficas y una interfaz de la consola bastante amigable y mas entendible.

20) service restart

Este comando es útil cuando necesitas iniciar o reiniciar un servicio el cual ha dejado de responder o has realizado ciertos cambios y necesitas reiniciarlo para que surtan efecto dichos cambios. Por ejemplo si quieres reiniciar el servicio de postgres desde tu laptop podrías usar:

service postgresql restart

21) apt-get

apt-get permite instalar paquetes derivadas de Debian este se encarga de obtener,resolver dependencias, instalar y desistalar paquetes del sistema operativo se puede usar

apt-get update

Para actualizar la lista de fuentes que tenemos en nuestro sistema operativo, estas fuentes nos ayudan a saber que paquetes hay disponibles.

apt-get install htop

Si queremos instalar el comando htop del que hablamos previamente tendríamos que utilizar el comando de esta forma donde htop puede ser cualquier paquete que desees instalar recuerda que esta debe estar en la lista de fuentes

apt-get upgrade

Se encarga de descargar y actualizar todos los paquetes previamente instalados

22) gdebi

gdebi es una herramienta para instalar paquetes que puedes usar de forma local a diferencia del apt-get este no necesita internet y solo tienes que tener un archivo .deb, para usarlo solo necesitas usar:

sudo gdebi google-chrome.deb

23) pkill/kill

Tanto pkill como kill son procesos que se usan para matar procesos que quizás se quedaron colgados. La diferencia entre ambos radica que pkill, busca un proceso con la cadena de texto que se pasa como argumento
en este caso seria «firefox» pero si utilizáramos «fire» matara tanto el proceso de firefox como el de firebird por que ambos contienen el texto «fire».

se utiliza de la siguiente manera:

pkill firefox

Al contrario de pkill el comando kill mata un proceso usando su PID ( Process ID) por ejemplo:

kill 15349

24) ssh

ssh es un comando primordial en la gestión de servidores ya que lo utilizamos para conectarnos a servidores remotos mediante la terminal, es decir utilizar tu terminal como si fuese la del servidor y poder realizar cambios. Esto el «pan de cada dia» para quien gestiona servidores y para conectarnos usando un login y contraseña a nuestro servidor solo tenemos que usar el comando

ssh -l nombreusuario direcciondetuservidor.com -p 22

Donde la bandera -l indica que iniciaras sesión usando un login y el comando -p mediante cual puerto accederás al servidor usando ssh, luego de esto te pedirán tu contraseña
la ingresas y podrás ingresar a tu servidor y utilizar todos los comandos que hemos visto hasta ahora 😉

¿Tienes algún comando que debería estar aquí? Escribelo abajo en los comentarios 🙂 y si te ha gustado este post ¡no olvides compartirlo por las redes sociales!

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies