banner_xamarin_note
Actualidad, Android, Informática, Linux, Software, Tecnología

¿Qué es Xamarin y cómo funciona?

¿Has escuchado sobre las apps generadas o de un tal Xamarin? Este revolucionario IDE que quiere reemplazar a las apps híbridas y web,  representa el futuro del desarrollo móvil con esta nueva tecnología. Esto y mucho más te compartimos a continuación.

xamarin_logo

Xamarin El Futuro Del Desarrollo Móvil

Quizá el título anterior  ha sido un poco exagerado, sin embargo esto es lo que Microsoft nos invita a reflexionar  cuando nos dice que estamos en un mundo donde la necesidad del tiempo cada es vez es más escasa, y  tener que desarrollar una app móvil para cada plataforma móvil en 1 mes se vuelve un tanto complicado.

Durante los últimos 5 años  vimos? como armaron huelgas metafóricas en contra de las app híbridas  a la vez que los que desarrollan apps híbridas ven con desprecio a los desarrolladores que aprendieron a programar en Java, Swift y C#.

Al final de cuentas como bien te comentábamos en el artículo  sobre las apps nativas versus híbridas, dependiendo del tipo de trabajo y el retorno de inversión que quieras, es así como te recomendamos tomar la opción de las nativas, híbridas, o generadas en el caso de Xamarin.

xamarin-featured-image1
Xamarin para todas las plataformas

Brevemente te cuento que Xamarin es un entorno de desarrollo para crear aplicaciones nativas en cada plataforma móvil. Estamos hablando de iOS, Android y Windows Mobile. Microsoft incentiva a desarrollar en Xamarin ya que una de sus novedades es que puedes crear apps para cada plataforma, escribiendo código C# y nada más.

Pero vaya que no todo es color de rosas, aunque en teoría solamente necesitabas saber C#, será necesario conocer al menos lo básico de cada lenguaje nativo, ¿Entonces de todos modos tengo que escribir código específico para cada plataforma? Sí, ¿Entonces da lo mismo? No. Ahora te explico la razón…

run_everywhere

Xamarin trata de optimizar el código en su máxima expresión, entonces de una manera práctica, funciona más o menos así:

Tu escribes código C# en cosas tan básicas como hacer instancias a los widgets de las vistas y los inicializas. Esto se llama código compartido y hasta el momento todo muy genial, ya que no has tenido la necesidad de escribir la misma tarea en cada uno de los lenguajes de programación.

Ahora, ¿Qué pasa si necesitas hacer manejo de la cámara? Aquí es cuando entran tus habilidades básicas con cada uno de los lenguajes de cada plataforma móvil.

¿Por qué sucede eso?

Como buen desarrollador móvil que eres, sabrás que levantar el servicio de la cámara en Android, iOS, y Windows Mobile a nivel de backend funciona totalmente distinto en cada sistema operativo. Así que escribirás código específico para cada plataforma.

No Es Tan Intuitivo Como Lo Venden

A Muchas personas les parece que este IDE es una auténtica tontería. Supongamos que desarrollas nativo o híbrido, no sabes C#, aprendes C# y luego te das cuenta que para manejar los sensores debes escribir código para cada plataforma. ¿Dónde está tu optimización?

A priori pareciera que eso sucede, sin embargo tuve la oportunidad de asistir al Xamarin Dev Day 2016 en la Ciudad de Guatemala y  fue ahí cuando aclare todas esas dudas.

El objetivo principal de Xamarin es que ahorres tiempo en vez de estar escribiendo todo el código desde el inicio en cada plataforma. y que ahorres en hacer pruebas específicas para cada instalador, para lo cual Xamarin te trae una herramienta para hacer testing a cada instalador de cada uno de los sistemas operativos.

xamarin_test_cloud
Xamarin Test Cloud Service

 

Sigue leyendo “¿Qué es Xamarin y cómo funciona?”

banner_nativas_hibridas_generadas
Actualidad, Android, Guatemala, Informática, Internet, Linux, Open-Source, Software, Tecnología

Apps nativas vs Apps híbridas vs Apps generadas, ventajas y desventajas

Una de las grandes complicaciones para los programadores al momento de iniciarse en el mundo del desarrollo móvil es  decidir entre ¿Apps nativas, híbridas o generadas? Tu respuesta será contestada dependiendo que tan buena calidad de trabajo quieres entregar, y cuál será el retorno de inversión que deseas.

banner_nativas_hibridas_generadas
¿Qué tipo de aplicación debo construir?

A continuación te compartimos las ventajas y desventajas de cada una, así como su su significado e implicaciones.  

¿Qué es una app híbrida?

El término app híbrida  hace referencia a poder realizar un solo proyecto con código HTML, JAVASCRIPT y CSS. De esta manera obtendrás una app móvil para cada una de las plataformas móviles que utilices. ¡Así es!  Sólo desarrollas un proyecto y este te genera un instalador para cada plataforma móvil que desees.

¿Qué es una app nativa?

La app nativa es nada más y nada menos que la contraparte de las híbridas. Este tipo de app te ofrece la mejor experiencia de usuario (UX). Será necesario que sepas programar con el lenguaje de programación específico de la plataforma.

Supongamos que quieres desarrollar una app para iPhone (iOS). Para crear esta app nativa necesitarás aprender y manejar el lenguaje de programación Objective-C o Swift.

Por supuesto la curva de aprendizaje es más larga, y claro que tendrás que aprender a utilizar la herramienta también, que en este caso sería el Xcode de Apple.

¿Qué es una app generada?

Esta probablemente será la tecnología del futuro en el desarrollo móvil, pero aún no ha llegado ese día.

Este tipo de apps son aquellas donde utilizas un lenguaje de programación específico, y en las que  generas un código nativo para cada plataforma concreta . ¿Cómo pasa eso?

Vale,antes que nada las apps generadas no son similares a las apps híbridas, en realidad no se parecen en nada.  Esto es así porque las apps generadas utilizan un lenguaje de programación estándar y este mismo se adapta para cada sistema operativo.

info_nativa_hibridas_webapp
Pro y contra de las apps nativas

Como el caso de Xamarin, sabrás que escribes código C# y luego el compilador genera el código nativo para Android, iOS y Windows Mobile, ya que estas son las 3 plataformas punteras en el mercado.

De cierta manera reutilizamos el código, y únicamente tendremos que escribir código específico de cada plataforma para manejar ciertos sensores y servicios, en los cuales el código reutilizable no podrá acceder a los mismos.

how_it_works_xamarin
Xamarin y su funcionamiento general

Ventajas de las apps híbridas

              La ventaja más taquillera podría ser el hecho de utilizar código de etiquetas y JavaScript.

              Generar un solo proyecto y obtener un instalador para cada plataforma móvil.

              La curva de aprendizaje es más rápida.

              Ahorras tiempo.

              La Inversión de recursos es menor ya que con un ordenador basta y sobra.

Desventajas de las apps nativas

              El manejo de sensores y servicios es un caos, por la misma razón del código de etiquetas y JavaScript.

              Bajo Soporte para las actualizaciones del sistema operativo. Cuando un sistema operativo estrena una actualización de su software demorará más en el caso de las apps híbridas y eso definitivamente juega en tu contra.

              La experiencia de usuario no suele ser tan buena. Las apps híbridas no manejan un patrón de diseño para cada plataforma, así que si ves una app en Android y es idénticamente igual en iOS, probablemente es una hibrida. En muchos casos, estas apps se traban o se caen.

Ventajas de las apps nativas

              La experiencia de usuario es la mejor que se puede encontrar. Es evidente que al momento de realizar una app con el código específico del sistema operativo, y utilizar los patrones de diseño como indica la documentación, el resultado es una muy buena UX.

              Excelente manejo de los sensores y servicios del Smartphone. Esto significa que podrás acceder a los mismos de una manera eficaz.

              Herramientas oficiales para cada plataforma. Para cada sistema operativo móvil existe una herramienta oficial para desarrollar proyectos al 1000 por 1000, y de esa manera  aprovechar el máximo rendimiento. Esto también es una gran ventaja, ya que todo dentro de las herramientas oficiales esta arreglado para que puedas programar mucho más rápido y con los mejores estándares.

              El Tamaño en peso es mucho más ligero. Tal y como lo menciono en la ventaja anterior, cuando usas todo nativo, optimizas todos los recursos del instalador de una app y también para el performance de la app.

              Más alcance a dispositivos móviles. Cuando desarrollamos una app nativa cuentas con toda la cantidad de versiones del sistema operativo con las que quieras trabajar, cosa que con las híbridas no  sucede, debes limitarte a la versión del sistema operativo que te indiquen.

Desventajas de las apps nativas

              Debemos aprender a utilizar cada lenguaje de programación para presentar la misma aplicación móvil en distintos sistema operativos.

              Es fundamental saber utilizar al menos en un 80% las herramientas que nos proporciona cada plataforma para ejecutar grandiosas apps. En el caso de Android necesitarás aprender muy bien Android Studio, en iOS cuentas con Xcode, y para el extraño pero genial Windows Mobile utilizaras Visual Studio.

              Crear las vistas o aplicar las reglas para los distintos tamaños de pantalla. En las apps nativas la idea es ofrecer al usuario la mejor experiencia dentro de la app, por tanto es necesario personalizar cada una de las vistas, algo que no pasa en las apps híbridas puesto que se basan en los lenguajes de la web como el típico HTML que con un responsive nos basta y sobra.

hibridovsnativo_chiste
Un poco de humor… pero vaya que es cierto.

Ventajas de las apps generadas

              Comparte con las híbridas el hecho de reciclar código para las distintas plataformas. Sin embargo nos queda claro que es distinta la manera en que lo gestiona cada uno.

              La curva de aprendizaje es un poco menor a comparación a las nativas,  aunque será crucial  saber al menos un poco de cada lenguaje en específico.

              Buena optimización muy similar a las apps nativas.

              Promete ser el futuro del desarrollo de las apps móviles.

Desventajas de las apps generadas.

              A pesar de que utilizan un lenguaje base para todas las plataformas, aún así debes saber el lenguaje de programación de cada unas de los sistemas operativos. Ya que por el tema de los sensores y algunos servicios (como la cámara por ejemplo), tendrás que escribir código específico para manejar eso.

              El árbol del proyecto puede ser confuso. He visto cómo maneja Xamarin el árbol de una app generada y hasta cierto punto es algo aborrecedor. Quizá en las próximas actualizaciones de Xamarin y Visual Studio se realicen mejoras a esta parte.

              Aún está muy verde el desarrollo de las apps generadas. He mencionado que probablemente este será el futuro de las apps móviles, aunque todavía hay algunos problemas con esto. Como por ejemplo, la necesidad de tener una Mac para compilar el proyecto iOS, en Windows Mobile deberás compilarlo en una Pc con Windows. Mientras que Android por ser prácticamente Java correrá donde sea.

Te compartimos un video de Software Guru, debatiendo apps nativas vs app híbridas

Dinos, ¿Por cuál te dejaras llevar y empezar a desarrollar aplicaciones increíbles?

 

7_novedades_android_nougat_2017
Android, Guatemala, Informática, Internet, Noticias, Tecnología

7 Novedades de Android Nougat para 2017

Cada año Google nos sorprende con las nuevas actualizaciones, que ha dejado de ser una mera fachada, estamos hablando de cambios y optimizaciones tanto del diseño de usuario, como de la experiencia del mismo. Así es que te compartimos 7 novedades súper intuitivas de Android 7.0 Nougat que te resultarán muy útiles.

android nougat novedades 2017
Android Nougat

 

Multitareas En Tiempo Real

Definitivamente esta es una de las que más llama la atención para cualquier usuario de Android, además de ser una de las que se venía reclamando con más vehemencia en versiones anterior del androide. En pantallas de 5 pulgadas en adelante podrán disfrutar esta nueva función.

Deberás pulsar el botón de multitarea (botón con un cuadrito) por 2 segundos y automáticamente la pantalla se dividirá en dos, y podrás seleccionar la otra aplicación que deseas utilizar junto a la que ya tienes en ejecución.

Incluso si quieres ocupar más espacio de pantalla con algunas de las aplicaciones que tengas en ejecución, te permitirá redimensionar el tamaño que prefieras con cada una de ellas.

Multitarea en Android 7.0 Nougat 2017
Multitarea Android Nougat

Notificaciones

En otros sistemas operativos como Windows Mobile 10, es posible contestar desde la barra de notificaciones, o incluso cuando entra la notificación podremos enviar inmediatamente una respuesta en el caso de los mensajes.

Ten en cuenta que aún no todas las aplicaciones brindan esta funcionalidad, ya que los desarrolladores tendrán tareas para implementarlo en sus apps.

notificaciones android 7.0 nougat
Notificaciones en Android 7.0 Nougat

Emojis

En esta versión de Android, se han implementando más de 170 nuevos Emojis para todos aquellos a quienes les gusta ser muy explícitos al momentos de compartir su estado sentimental o – psicológico en las redes sociales. O bien para quienes les gusta graficar su día por medio de stickers o dibujitos.

nuevos emojis android nougat
Más de 170 nuevos y divertidos emojis

¿Atajos en Android?

En realidad los atajos en Android siempre han existido pero no al nivel casi de un ordenador personal. Por ejemplo; para acceder a la configuración de tu dispositivo móvil antes disponíamos de un acceso directo en tu pantalla principal, o bien bajabas la barra de notificaciones y seleccionamos la tuerquita. Uno de los atajos que ha causado sensaciones en Android Nougat es la posibilidad de hacer algo parecido al Alt + Tab en Windows o Comand + Tab en MacOS.

De una manera sencilla, presiona dos veces el botón de multitarea y automáticamente cambiará a la aplicación que tenías anteriormente.

Nueva Estrategia De Compilación Just in Time (JIT)

¿Recuerdas esos momentos cuando iniciabas tu Android y te decía 1 de 230 aplicaciones optimizando al momento de iniciar tu dispositivo?

Bueno, en la versión 7 de Android se incorpora la compilación Just in Time (JIT), esto a nivel técnico significa que hasta cuando la aplicación va a ser ejecutada se compile el código para su lanzamiento.

Tal vez te preguntes y ¿esto para que me sirve? Fácil. ¿Te has percatado que cuando instalas una app de 1mb se tarda hasta 10 minutos en ser instalada’, bueno esto se debe que anteriormente se utilizaba la estrategia de compilación Ahead of Time (AOT). Cuando una aplicación era descargada e instalada, el código era traducido de bytecodes a código nativo.

En la práctica esto se representará en la fluidez del sistema operativo, y la gestión de procesos.

 

Explorador De Archivos Más Completo Que Nunca

Nougat cuenta con un nuevo explorador de archivos y por supuesto, más completo que en Android Marshmellow. Esto es una muy buena noticia para los usuarios que cuentan con dispositivos que no tienen demasiado o insuficiente espacio de almacenamiento para descargar app externa, y poder buscar tus documentos favoritos en la categoría de carpetas.

Pero es una mala noticia para los desarrolladores que tienen apps de exploradores de archivos, ya que evidentemente, esto les quitaría una ligera cuota del mercado.

Mejores Gráficos, Juegos Más Rápidos

Para los usuarios más intensivos, tales  como los GAMERS, y también para los que les encanta jugar al Candy Crush, se introduce Vulcan. Esta es la nueva tecnología para el desarrollo de gráficos 3D como alternativa al ya conocido OpenGL.

Vulcan optimiza y renderiza los juegos con una velocidad superior a OpenGL. A rasgos generales minimiza la sobrecarga del CPU a nivel de software, esto permite maximizar la velocidad del juego en ejecución.

Vulcan android nougat 7.0
Vulcan el nuevo motor grafico optimizado para juegos

La Mejor Versión De Android Hasta El Momento

En resumidas cuentas, esta es la mejor versión de Android hasta la fecha, diríamos que de la versión 5.0 (Lollipop) a la 7.0 (Nougat) hay un crecimiento significativo para los amantes del androide.

Cola de tareas para los desarrolladores

Para los Android Developers, habrá mucha documentación por leer, ejemplos por descargar, pruebas por realizar. Si sentimos que hubo que aprender mucho con Marshmellow y su nueva gestión para los permisos del dispositivo móvil, ahora en Nougat habrá que estudiar y practicar para estas nuevas funcionalidades.

Aquí te compartimos un vídeo con las novedades más increíbles en Android Nougat.

¿Qué te parecen las nuevas funcionalidades de Android 7.0 Nougat? Compartenos tus comentarios.

Guatemala, Informática, Linux, Ubuntu, Varios

Principales aplicaciones de telefonía en Linux

Muchas personas ponen de excusa que en Linux no existen aplicaciones para la telefonía en la nube o telefonía VoIP. Por ello en este articulo les traemos un breve analisis de las mejores aplicaciones para la telefonia en sistemas Linux.

Skype

Esta es la aplicación VoIP más popular con más de 500 millones de Usuarios. LA versión Linux actualmente es muy estable y funciona bien. Existen algunos usuarios que han encontrado complicaciones en cuando a la detección de la cámara de Video pero en cuando a la aplicación, vale la pena considerarla.

Link: Descarga Skype versión Linux

Ekiga

Conocido anteriormente como GnomeMeeting es la aplicación VoIP para entornos de escritorio Gnome (como Ubuntu). Para su funcionamiento requiere de una cuenta SIP la cual puede ser liberada en Ekiga.net

Para la instalación en Ubuntu simplemente hay que abrir un Terminal y escribir:

  sudo apt-get install ekiga

Empathy

Empathy es un cliente de mensajería instantánea.  Esta basado en el entorno de comunicación Telepathy. Soporta muchos protocolos por ejemplo Jabber / XMPP, Google Talk, MSN Messenger, Bonjour / Rendezvous, etc.

Viene incluido por defecto en el entorno Gnome desde la versión 2.24.

Asterisk

Asterisk es un software que proporciona las funcionalidades de una Central de telefonía (PBX). Como con cualquier PBX se puede conectar a lineas de teléfono para realizar llamadas entre si o incluso conectar a un proveedor VoIP.

Posee características muy especiales que anteriormente solo se podían tener al adquirir caros sistemas de código cerrado de PBX. Por ejemplo cuando con funcionalidades como buzón de voz, conferencias, IVR, ACD entre otras.  Incluso para requerimientos especiales Asterisk cuenta con un lenguaje Script en el cual se pueden programar funcionalidades personalizadas.

Para instalar Asterisk en Ubuntu solo debes abrir un terminal y escribir:

  sudo apt-get install asterisk
Actualidad, Informática, Internet, Noticias, Open-Source, Tecnología, Varios

Gana un viaje a Praga diseñando un theme para el CMS Open Source NewsCoop

Si, se trata de un concurso en donde el único requisito es saber de diseño web o de diseño gráfico. ¿Y el premio? lo mejor ya que es un viaje todo pagado a la bella ciudad de Praga en República Checa.

¿Los detalles? El objetivo es rediseñar un theme de Newscoop; un CMS open Source en donde ya sea que elijas hacer un nuevo diseño gráfico o hacer una plantilla web (con todo lo que implica) si tu diseño es elegido podrás ganar el excelente premio que estan ofreciendo.

Si te interesa puedes leer a continuación la nota de prensa al respecto: Sigue leyendo “Gana un viaje a Praga diseñando un theme para el CMS Open Source NewsCoop”

Actualidad, Guatemala, Informática, Internet, Noticias, Opinion, Personal, Tecnología, Varios

Participando en el Twitter Censo latinoamericano

De acuerdo a los informes más recientes de Comscore, Latinoamerica es la región que muestra más crecimiento en usuarios de Internet a nivel mundial (un crecimiento de aproximadamente 23% entre el año 2009 y 2010). Estos datos también se ven reflejados en las redes sociales, las cuales también han sido protagonistas.

Facebook:

Twitter:

Y lo anterior solo por mencionar algunos casos.  Ahora bien todos estos estudios solo son una imagen general de lo que esta pasando pero para realmente medir la importancia de estos hechos es necesario profundizar en la información. Es por ello que se lanza el Primer Twittcenso Latinoamericano, enfocado en Twitter (que es donde menos datos hay).

Hablando sobre lo que he visto en mi nación (Guatemala) es que Facebook y Twitter estan teniendo un crecimiento impresionante, de hecho son los mejores medios para enterarse de las noticias y eventos ya que en velocidad y frescura le ganan a los medios tradicionales (y por mucho! 😀 )

Así que me he apuntado en el TwitterCenso para ver cuantos Latinoamericanos hacemos uso de estas redes y que poco a poco las empresas vayan teniendo más consideración en nosotros ya que casi siempre los cambios inicialmente los ven las personas en Europa o en Norteamerica… y lo interesante es que al crecimiento que tiene Latinoamerica, no podria estar muy lejos el momento en que pasáramos en volumen de usuarios a otros conglomerados de usuarios (Los actuales son Norteamerica, Latinoamerica, Africa y Medio oriente, Europa y Asia).

Link para participar: http://twittcenso.com/

Twitt para promocionarlo en Twitter y FB:

¿Quieres saber cuántos usuarios de Twitter hay en tu país? Únete al #TwittCenso http://twittcenso.com

Por cierto, hay otro Twitter Censo enfocado netamente en Argentina, puedes ver los resultados aqui: TwitterCenso Argentina. La característica de este censo Argentino era la seriedad de sus preguntas como pueden ver a continuación 🙂

 

Guatemala, Informática, Linux, Noticias, Open-Source, Software, Tecnología, Varios

OpenWolf: Ley de libre acceso a la información + FLOSS

Proyecto OpenWolf: Libre acceso a la información publica de GuatemalaOpenWolf es el nombre que recibe una iniciativa de Software Libre ejemplar para nuestros países latinos. Es un proyecto que utilizando herramientas basadas en software libre permitirá tener acceso a la información pública del gobierno, información que debería ser realmente “publica” pero que por ciertas razones no es así, lo cual fomentará la transparencia en las instituciones gubernamentales de Guatemala.

Es interesante ver este tipo de proyectos puesto que solo de esta forma en muchos casos es posible que ellos (Los altos mandatarios) conozcan el Software libre, y recordemos que  la gente que se encuentra en esos niveles tan altos del gobierno conociendo soluciones FLOSS pueden fomentar su uso de forma masiva lo cual es un beneficio neto hacia las comunidades de software libre.

Las herramientas para su desarrollo han sido: Ruby on Rails, Ruby, PostgreSQL, Apache, Red Hat, etc.

Realmente es algo que vale la pena aplaudir y compartir de tal forma que algún día en las instituciones gubernamentales se alcance la tan anhelada Transparencia!!