sábado, 16 de diciembre de 2017

Instalación de Ionic




Hola amigos en esta ocasión les enseñare como instalar Ionic, asi mismo realizaremos nuestro primer hola mundo.

Requerimientos previos para la instalación de Ionic

Tener instalada la ultima versión estable de Nodejs:


  • Si vienes de sistemas operativos Windows y Mac basta con ir a la pagina oficial de Node y descargar el instalador acorde a su sistema operativo y seguir los pasos que este les indica.
  • Si vienes de entornos linux basta con ejecutar los siguientes comandos:
curl -sL https://deb.nodesource.com/setup_8.x -o nodesource_setup.sh &&
sudo bash nodesource_setup.sh &&
sudo apt-get install nodejs &&
sudo apt-get install build-essential

Tener instalado Angular

Para instalar angular solo basta con ejecutar el siguiente comando en su terminal de sistema:
npm install -g @angular/cli

Instalación de Ionic

Para instalar Ionic basta con ejecutar el siguiente comando en su terminal:
npm install -g cordova ionic

Con esto ya tendríamos instalado Ionic en nuestro sistema operativo y estaríamos listo para crear nuestras aplicaciones.

¿Aplicaciones híbridas?¿ Ionic Framework? | Introducción




Martin Cooper(creador del primer dispositivo celular) una vez dijo "Junto a mi equipo de hecho, bromeábamos diciendo que en el futuro cuando alguien naciera se le asignaría un número de celular y, si no contestabas, estabas muerto".Si bien esto aun no se cumple, me refiero a la accesibilidad a estos,podemos afirmar que pasado 44 años desde su presentación la más de la mitad de la población mundial tiene acceso a uno y si nos ponemos analizar números, la cantidad de teléfonos móviles ha superado al número de personas en el mundo.

En la actualidad estamos disfrutando de una nueva generación de los llamados teléfonos inteligentes han revolucionado la industria de los celulares y ha cambiado completamente la forma en que las personas utilizan la telefonía. Ahora un teléfono móvil , smartphone  o como desees llamarlo no solo nos sirve para comunicarnos, podemos ver películas escuchar música , leer libros , etc. Este conjunto de nuevos usos a traído consigo un aumento en la aparición de aplicaciones destinadas a esto y al mismo tiempo a incentivado a la evolución de las formas de desarrollo de estas, años a tras si deseabamos desarrollar una determinada aplicación para un determinado dispositivo teníamos que aprender un determinado lenguaje de programación o dominar un determinado sdk pero esto con el paso de los años ha cambiado y esto se debe a la aparición y evolución de lo que hoy se conoce como aplicaciones híbridas.



¿Aplicaciones híbridas?

Una aplicación híbrida es aquella que permite desarrollar apps para móviles en base a las tecnologías web: HTML + CSS + Javascript. Son como cualquier otra aplicación de las que puedes instalar a través de las tiendas de aplicaciones para cada sistema, por lo que en principio usuarios finales no percibirán la diferencia con respecto a otros tipos de aproximaciones diferentes, como las aplicaciones nativas.



Las aplicaciones híbridas son interesantes por diversos motivos:

  • Con una misma base de código serán capaces de compilar apps para funcionar correctamente en una gran cantidad de sistemas operativos de móviles o tablets. Generalmente nos será suficiente que nuestra app funcione en iOS y Android,Windows Phone.
  • El coste del desarrollo es sensiblemente menor, ya que no es necesario contar con varios equipos de desarrollo para cada lenguaje concreto de cada plataforma.
  • El tiempo de desarrollo también es menor, ya que solo es necesario construir la aplicación una vez e inmediatamente la tendremos en todas las plataformas a las que nos dirigimos.
  • Es de más fácil adaptación para los desarrolladores que vienen de la web.



¿Las aplicaciones híbridas tienen un pésimo rendimiento? ¿Híbrida o nativa? ¿Cual elegir?

Esta es la lucha de nunca acabar y esto tiene sus orígenes en las primeras versiones de aplicaciones híbridas desarrolladas por ahí en el año 2011 con phonegap, las cuales si tenían problemas graves de rendimiento,  pero esto ha cambiado mucho debido a que estas tecnologías han madurado y evolucionado bastante, no por algo empresas gigantes como lo son Facebook, Instagram, Airbnb, Uber han optado por realizar aplicaciones híbridas para sus plataformas.
Les comparto unos enlaces muy interesantes en donde se abarca este item, les recomiendo que los vean seguramente les resultara muy interesante:


¿Que es Ionic framework?

Ionic es un framework javascript open source con licencia MIT. Según sus creadores siempre será de uso gratuito y es impulsado por una gran comunidad.


Ionic es un "framework" que nos permite crear aplicaciones en formato nativo, pero desarrolladas desde HTML5,JS(Angular) y CSS(Sass).



La idea básica es que yo voy a poder programar con "javascript", voy a poder utilizar HTML y CSS, y una vez que he terminado con ello podré compilarlo, y lo compilaré como aplicaciones nativas para Android, IOS  o incluso para Windows phone. Esto es verdaderamente interesante porque así con un solo proyecto, yo puedo crear aplicaciones que sirvan para estas tres plataformas en vez de tener que desarrollar para cada una de las plataformas de manera independiente. En realidad, el uso de Ionic va más allá de simplemente utilizar HTML, CSS "javascript". 
Ionic tiene como herramienta base a Cordova , el cual le permite crear la comunicación entre el HTML5 y el dispositivo móvil, osea que hace de puente entre el sistema operativo y lo que nosotros vamos a programar como HTML5. Se va a ver traducido en que, por un lado, nos va a permitir instalar "plugins", que son los que se comunicarán con las diferentes opciones del sistema operativo, y por otro lado también porque va a ser el que nos permita hacer experimentos, hacer pruebas y compilar la aplicación para luego poderla ver tanto en emuladores como en dispositivos móviles, y por supuesto, también para crear la versión final.




Espero les halla resultado interesante esta pequeña publicación y conmigo sera hasta la próxima ocasión.


viernes, 15 de diciembre de 2017

Comentarios,Variables,Constantes y Tipo de datos | Golang




Hola amigos continuando con nuestra serie de publicaciones referentes a Golang, en esta ocasión nos toca hablar acerca de las variables ,constantes y uso de comentarios, si vienes de lenguajes como c/c++ esta sección te será muy fácil de comprender ya que la sintaxis es similar.


USO DE COMENTARIOS

Los comentarios son exactamente los mismos que en C++. Para obtener un comentario de una línea, utilizamos la combinación de caracteres //, mientras que para un comentario de varias líneas, se usa la combinación /* */.

//Esto es un comentario
/*Esto es
un comentario*/

En Golang los comentarios de varias líneas, no admiten anidamiento, así pues, el siguiente comentario sería erróneo:  


/*Esto es un
comentario
*/

VARIABLES

Una variable es un espacio de memoria reservado para almacenar un valor que corresponde a un tipo de dato


CARACTERÍSTICAS DE UNA VARIABLE

  • Los tipos de datos son estáticos, es decir que una variable no puede cambiar su tipo de dato durante su ciclo de vida.
  • Los valores iniciales, de las variables a las cuales no se les ha asignado ningún valor, son asignados a su valor "zero". Es decir: Los tipos numéricos inician en 0, los tipos string inician en vacio “”, los tipos boolean inician en falso, los campos de los tipos struct inician en su valor “zero”, los demás tipos inician en nil (nulo).
  • Los identificadores de cualquier variable en un programa escrito en Go, deben de ser alfanuméricos, incluyendo el carácter " _ ", teniendo en cuenta que las letras y números deben ser  aquellas definidas por Unicode.  
  • El famoso " ; " al final de cada sentencia es opcional, pueden colocarse  aunque deberían no ponerse. Únicamente son obligatorios a la hora de separar los elementos en la cláusula de un bucle for o elementos en un if .


DECLARACIÓN DE UNA VARIABLE

La sintaxis de Go es muy similar a la sintaxis utilizada en C/C++. A la hora de declarar una variable o un tipo, se realiza de la misma forma que en C/C++, únicamente que se invierte el orden del nombre de la variable y el tipo, quedando este ultimo al final. Además, hay que añadir una  palabra reservada al principio de las declaraciones. 

var a int // a es un entero
var b, c *int // b y c son punteros a enteros
var d []int // d es un array de enteros
type S struct { a, b int } // S es una estructura con dos atributos enteros, a y b.

Otra forma de declarar una variable es seguir la siguiente sintaxis:

nombre := expresión

Si usamos esta manera de declaración de variables debemos tener en cuenta lo siguiente: 

  • Solo funciona con variables locales, es decir, variables declaradas dentro de una función.
  • El compilador analiza la expresión y le asigna el tipo de dato adecuado a la variable que se está declarando.
  • Hay que tener en cuenta que se pueden asignar valores a diferentes variables en una sola línea de código.
nombre:="Making Code"
nombre1, nombre2, nombre3 := 10, "Hola", true//nombre1=10,nombre2="hola",nombre3=true

Dado que puede ser bastante tedioso estar escribiendo todo el rato la palabra reservada var, Go posee una característica muy interesante, que permite definir varias variables agrupadas por paréntesis, y separándolas por puntos y coma:



var (
i int;
j = 365.245;
k int = 0;
l, k uint64 = 1, 2;
inter, floater, stringer = 1, 2.0, "Hola"
)

CONSTANTES

Las declaraciones de constantes están precedidas por la palabra reservada const.
Todas las constantes son inicializadas en tiempo de compilación, lo que significa que todas las declaraciones de constantes deben ser inicializadas con una expresión constante. Además, de forma opcional, pueden tener un tipo especificado de forma explícita.
  



const Pi = 22./7.
const AccuratePi float64 = 355./113
const pepe, dos, comida = "Pepe", 2, "carne"
const (
Lunes, Martes, Miercoles = 1, 2, 3;
Jueves, Viernes, Sabado = 4, 5, 6
)

TIPO DE DATOS

Go posee únicamente tres tipos básicos: Números, Booleanos y Cadenas de caracteres. ´

Números: Existen tres tipos numéricos: Enteros, enteros sin signo y números flotantes. Cada uno de estos tipos tiene asociadas una serie de variantes dependiendo del numero de  bits en el que sea almacenado. 




Bool: El tipo bool define el tipo booleano usual, con dos constantes predefinidas que son: true y false.
Hay que tener en cuenta, que a diferencia de otros lenguajes, en Go los 
punteros y los enteros no son booleanos.

String: El tipo string representa arrays invariables de bytes, o lo que es lo mismo, texto. Los strings están delimitados por su longitud, no por un carácter nulo como suele ocurrir en la mayoría de lenguajes. 

Bueno amigos espero les sea de utilidad esta publicación.Gracias por visitar este su blog y hasta la siguiente publicación

Aprendamos Ionic sin morir en el intento


Hola amigos, en esta ocasión he decido aperturar una sección en el blog donde comenzare a realizar publicaciones acerca de este grandioso framework javascript con el cual ya llevo trabajando alrededor de 1 año, comenzare con temas introductorios al framework y luego a través del desarrollo de miniapps ire explicando el uso de los diferentes componentes que ionic nos brinda para el desarrollo de aplicaciones híbridas(Android/IOS).

Temas a tratar:

  • ¿Aplicaciones híbridas?¿ Ionic Framework? | Introducción
  • Instalación de Ionic
  • Nuestro primer hola mundo y análisis de la estructura básica de un proyecto en Ionic.
  • Que es ionic view
  • Probando la aplicación en un dispositivo - Developer Mode
  • Creación de nuestra agenda telefónica.
  • Creación de nuestro lector de código de barras.
  • Creación de nuestro mini instagram
  • Creación de nuestro buscador de bares

Nota: Los temas a tratar irán en constante actualización, la idea es ir experimentando con todos los componentes que ionic nos provee así como la interacción con los recursos nativos de nuestros dispositivos.

Esperando que las posteriores publicaciones sean de su agrado me despido.
Gracias por su visita.

Mi primer hola mundo - ¿Como se estructura un programa en Golang?


Hola amigos en esta ocasión vengo con una publicación corta pero esencial en la cual realizaremos nuestro primer hola mundo, si ese hermoso hola mundo el cual varios de nosotros lo hemos hecho cuando estamos aprendiendo un nuevo lenguaje de programación , ese hola mundo que nos hace sentir un crack en la programación. Así mismo procederemos analizar el código realizado con la finalidad de identificar las diferentes áreas que conforman un programa en Go y dar algunas recomendaciones, listo?, manos a la obra.

Mi Primer Hola Mundo



package main

import (
 "fmt"
)

func main() {
 fmt.Println("Hola mundo")
}


Analizando nuestro primer programa en Go



Todos los scripts y/o archivos que forman a una aplicación realizada en Golang deben de pertenecer a un paquete(package):
package main

Golang al igual que otros lenguajes de programación ya tiene por defecto varias funcionalidades implementadas las cuales son agrupadas en paquetes que el mismo Golang trae por defecto. Cuando nuestro programa necesita usar una funcionalidad implementada en un paquete externo al que se esta trabajando, como por ejemplo el fmt, usamos la instrucción import.
import  "fmt"
Si necesitáramos importar más de un paquete colocaríamos el nombre de cada uno de ellos rodeados con comillas dobles:
import (
 "fmt"
 "log"
 "net/http"
) 
Función principal (main), en Golang al igual que en otros lenguajes de programación disponen de una clase principal que posee un método que se encarga de ejecutar la aplicación en general, en el caso de Golang no existen clases sino archivos o scripts, y el encargado de ejecutar la aplicación en general sera aquella que tenga a la función main en su interior.

func main() {
 fmt.Println("Hola mundo")
}


Nota: Las funciones en golang se definen con la palabra reservada func, seguido del nombre de la función y paréntesis(cuando lleguemos a la clase respectiva profundizaremos más en este tema).

Como anteriormente se menciono Golang al igual que otros lenguajes de programación trae consigo muchas librerías y/o paquetes ya por defecto que nos facilitan la vida al momento de programar,cada paquete puede tener todas las funciones que necesitemos, en nuestro ejemplo importamos el paquete  fmt del cual usaremos la función Println que nos permite imprimir un mensaje en pantalla.


 fmt.Println("Hola mundo")


Bueno espero que les halla servido en algo esta publicación, se que no hemos tocado cosas grandiosas pero creo que es necesaria para comprender como es que golang funciona, gracias por tomarse unos minutos y leerla.Hasta la próxima publicación.

lunes, 11 de diciembre de 2017

Instalación de Go


Hola amigos en esta ocasión les vengo a explicar las maneras de instalación de Golang por motivos de alcance les explicare como realizarlo en Windows y distros linux, omito sistemas Mac porque no dispongo de una, manos a la obra.

Instalación de Golang en windows

Vamos a la pagina oficial de Go en la sección descarga y bajamos el instalador correspondiente a windows:




Una vez bajado el instalador procederemos a realizar la instalación para ello solo sigue las instrucciones de este:




Una vez instalado nos toca verificar si tenemos registrado en nuestras variables de entornos del sistema , para ello ingresamos a propiedades del sistema:


Estando en nuestra ventana de propiedades del sistema seleccionamos la opción Configuración Avanzada del Sistema:


Seleccionamos la opción variables de entorno:



Una vez abierta esta ventana procederemos a verificar en las variables de entorno con referecia Path la existencia de la ruta de Golang  C:\Go\bin , en el caso de que no exista procederemos a crearla: 



Instalación de Golang en Linux

La instalación de Golang es mucha mas sencilla en las distribuciones linux debido muchas de las distribuciones mas usadas ya tienen por defecto en sus repositorios a Go:

En Ubuntu:

sudo apt-get install golang-go

Si esta trabajando con una versión antigua de ubuntu que no tenga en sus repositorios a Golang basta con ejecutar los siguientes comandos:
sudo add-apt-repository ppa:gophers/archive
sudo apt update
sudo apt-get install golang-1.9-go
En Debian y demás distros de linux:

Primero actualizaremos nuestro sistema:

sudo apt-get update 
sudo apt-get -y upgrade
Procedemos a descargar Golang desde sus servidor oficial

  wget https://storage.googleapis.com/golang/go1.9.2.linux-amd64.tar.gz

Una vez descargado extraemos los archivos y movemos estos archivos a la carpeta /usr/local

sudo tar -xvf go1.9.2.linux-amd64.tar.gz
sudo mv go /usr/local

Ahora procederemos a instalar las variables de entorno , para ello es necesario saber que Go cuenta con 3 tipos de variables de entorno:

  • GOROOT: Que es la variable de entorno que nos indica la ubicación de la carpeta donde fue instalado Go.

export GOROOT=/usr/local/go

  • GOPATH: Que es la variable de entorno que indica a Go que indicara al sistema donde esta la ubicación del directorio de trabajo. Por ejemplo, mi directorio de proyecto es ~/Projects/Proj1 .export 

GOPATH=$HOME/Projects/Proj1

  • PATH: Variable de entorno que indica al sistema donde se encuentran los binarios de Go:

export PATH=$GOPATH/bin:$GOROOT/bin:$PATH

Bueno espero que les halla servidor y hasta la próxima publicación

Introducción a Golang




Go es un lenguaje de programación creado por Robert Griesemer, Rob Pike, y Ken Thompson. Es un proyecto open source desarrollado inicialmente en Google y Google sigue siendo en la actualidad su principal impulsor y contribuidor.
Go es un lenguaje moderno, por lo que une de lo mejor de muchos lenguajes. Combina una sintaxis parecida a C con las características y facilidad de lenguajes dinámicos como Python. Lenguajes como C++, Java o C# son más pesado o voluminosos.


Características de Go

Los creadores de Go inspirados en la versatilidad y las características de otros lenguajes como Python, C++ y Java (entre otros), se propusieron en desarrollar un lenguaje que tuviera lo mejor de estos y así nació Go, lenguaje que tiene las siguientes características, algunas únicas, y otras compartidas con otros lenguajes compilados:


  • Compilado: No necesitas instalar ningún programa para que el programa que desarrolles funcione en el sistema operativo para el que lo compilaste. Basta con escribir en tu consola de tu sistema operativo el comando go run nombre_del_archivo.go  y listo se generara un ejecutable para tu sistema operativo.
  • Estáticamente Tipado: Lo cual nos permitirá tener el control de la interacción entre datos y el programa, desde la redacción de código fuente, que además se traduce en el código objeto directamente, y los errores relacionados con el tipo se identifican más fácilmente.
  • Concurrente: Está inspirado en CSP. Todo ello se cimienta en una excelente implementación de la concurrencia que permite de forma sencilla y potente, crear software preparado “para la vida moderna”. Una de las principales características de Go es incluir dentro del propio lenguaje funciones primitivas para la concurrencia.
  • Uso poco usual de POO: Go no usa clases, no usa herencia y el uso de interfaces se realiza de manera implícita. Esto con el fin de mejorar el rendimiento al momento de diseñar tu software.
  • Uso de paquetes: Se usan los paquetes para organizar el código. Un paquete puede tener varios archivos “.go” que permiten definir lo que va a realizar el paquete. Para usar un paquete en tu programa, debes importarlo.

¿Porque debemos aprender Go?



Algo que mucho escuche en la universidad fue "El lenguaje de programación no te elige tu lo eliges dependiendo al problema que se te presenta", y es verdad, hay muchísimos lenguajes de programación en la actualidad y cada uno de ellos se adapta a nuestras necesidades pero aquí nace una pregunta ¿Porque Google decidió crear su propio lenguaje de programación existiendo ya lenguajes como C,C++,Python,Java,etc ?. Uno de los creadores de Go, Rob Pike, nos explica el asunto: El punto clave aquí es que nuestros programadores son Googlers, no son investigadores. Son típicamente jóvenes, frescos de la universidad, probablemente aprendieron Java, quizás C o C++, probablemente aprendieron Python. No son capaces de entender un lenguaje brillante pero queremos que los usen para construir buen software. Así que, el lenguaje que queremos que usen tiene que ser sencillo para ellos de entender y adoptar.Querían construir un buen lenguaje, pero simple, que permitiera a la gente construir cosas.
Ahí esta la magia de Go en su simplicidad, potencia y curva de aprendizaje.
Aquí les comparto un articulo que encontré donde detallan los pros y los contras de Go en frente a otros lenguajes, vallan a verlos seguro les gustara.
Espero les halla gustado esta pequeña publicación y hasta pronto.



domingo, 10 de diciembre de 2017

Aprendamos Golang sin morir en el intento


Aprendamos Golang sin morir en el intento





Hola amigos hace un par de meses me puse como objetivo aprender este lenguaje de programación que en lo personal me parece un lenguaje muy potente y sobre todo fácil de aprender. En este ultimo año estoy muy involucrado en el desarrollo de Api Rest por lo que mi objetivo es aprender las bases del lenguaje que me permitan la construcción de un API REST y posteriormente meterme a temas mas complejos referentes al lenguaje propiamente dicho.

Temario:


Espero que les sea de mucha utilidad mis posteriores publicaciones cualquier duda o sugerencia no duden en comunicarse con mi persona y desde ya gracias por seguir este pequeño minicurso.