SlideShare une entreprise Scribd logo
1  sur  45
El Software en la
Actualidad
UNIVERSIDAD NACIONAL EXPERIMENTAL DEGUAYANA
INGENIERIA EN INFORMATICA
TENDENCIAS INFORMATICAS
La invasión de los
Frameworks
Arturo Zambrano
Raelyx Cordero
¿Qué son?
Los Frameworks o “marcos de trabajos” son un conjunto estandarizado de
conceptos, prácticas y criterios, a menudo basada en módulos o
herramientas para realizar un trabajo.
¿Para qué me sirven?
Los frameworks han venido para hacernos la vida más fácil.Ya
sea para evitar que “reinventemos la rueda”, para añadir
nuevas capas de abstracción o agilizar el desarrollo web en
general.
De lo macro a lo micro
Existen todo tipo de
frameworks desde full-
stack frameworks para
desarrollar íntegramente
cualquier tipo de aplicación
web
hasta microframeworks de
stinados a correr servicios
web con la mayor velocidad
y el menor consumo de
recursos posible.
Tú sólo nómbralo
Los frameworks también pueden clasificarse
según el lenguaje en los que fueron escritos o el
lenguaje usado para utilizarlos.
PHP, Ruby, Python, Java, Groovy, Scala, JavaScript,
CoffeeScript, Perl, incluso C++
¿Cómo elegir uno?
Basado en:
• El lenguaje
• El trabajo
• La popularidad
Existen montones de alternativas ¡incluso sin salirnos de un mismo lenguaje de
programación!
Es una herramienta que compara de forma relativa la búsqueda
de términos o temas, lo que significa que los ejes verticales de
los gráficos son una escala 0% a 100% y no un número de
búsquedas determinado.
PHP Frameworks
Ganador Laravel
Python frameworks
Ganador Django
JavaScript del lado del cliente
frameworks/librerias
Ganador AngularJS
Javascript/CoffeeScript/lado del servidor JS
frameworks
Ganador NodeJS con Express
Absolutos Ganadores
App’s Híbridas
y procesamiento en la nube
App nativa vs App web responsive
vs App híbrida
App nativa
• Se desarrolla de forma específica para un determinado sistema operativo,
llamado Software Development Kit o SDK.
• Por ejemplo:
o Las apps para iOS se desarrollan con lenguaje Objective-C
o Las apps para Android se desarrollan con lenguaje Java
o Las apps enWindows Phone se desarrollan en .Net
• Posibilidad de acceder a todas las características del hardware del móvil:
cámara, GPS, agenda, dispositivos de almacenamiento, etc.
• Descarga e instalación a través de la tienda de aplicaciones.
AplicaciónWeb
• Desarrolladas con lenguajes de programación web, como lo es HTML,
Javascript y CSS.
• Posibilidad de programar independiente del sistema operativo en el que se
usará la aplicación.
• Las aplicaciones web se ejecutan dentro del propio navegador web.
• No necesita instalación por lo que no pueden estar visibles en app store.
• Suna buena opción si nuestro objetivo es adaptar la web a formato móvil.
Aplicación Híbrida
• Es una combinación de las dos anteriores, recoge lo mejor de cada una de
ellas.
• Se desarrollan con lenguajes propios de las webabpp, es decir, HTML,
Javascript y CSS por lo que permite su uso en diferentes plataformas.
• La principal ventaja es que a pesar de estar desarrollada con HTML,
Javascrip o CSS, es posible agrupar los códigos y distribuirla en app store.
• Tienen el mismo tipo de acceso a las APIs nativas de cada sistema operativo
así como a los recursos propios del sistema tipo procesador, GPS, camara,
etc.
Ventajas y desventajas
Ventajas y desventajas
Ventajas y desventajas
Criterios de selección
Criterios de selección
A la hora de elegir cuál de los 3 caminos seleccionar para construir una app
móvil se debe tomar en cuenta lo siguiente:
• Coste que puedas asumir.
• Las características y funcionalidades de tu proyecto tecnológico.
• Tu modelo de negocio y elTarget al que te diriges.
• La complejidad del diseño y la importancia que le des a la experiencia de
usuario.
• Tu intención de hacerlo crecer.
• La estructura de tu empresa.
Apache Cordova
• Es un marco de desarrollo móvil de código abierto.
• Permite utilizar las tecnologías estándar web como HTML5,
CSS3 y JavaScript para desarrollo multiplataforma.
• Las aplicaciones se ejecutan dentro de envolturas para cada
plataforma.
• Se graduó en octubre de 2012 como un proyecto de nivel
superior dentro de la Apache Software Foundation (ASF).
Un poco de historia
• En el año 2009 una desconocida empresa llamada Nitobi crea un framework
para desarrollo móvil multiplataforma llamado PhoneGap.
• Crear aplicaciones orientadas a móviles con HTML5 y dotarlas de una capa
JavaScript que permita acceder a las funciones nativas de cada sistema.
• Entorno de ejecución multiplataforma.
• La idea triunfa y la empresa se da cuenta que debe tener más colaboradores.
• En septiembre de 2011 se convierte en Open Source.
• En octubre de 2011, Adobe compra Nitobi, se lleva a sus empleados, el
producto y la marca PhoneGap.
Un poco de historia
• PhoneGap es una marca registrada de Adobe y es posible
que en el futuro quieran explotar el producto con
herramientas añadidas propias.
• Apache decide renombrar en febrero de 2012 el proyecto a
Cordova. Este nombre tan peculiar se lo ponen porque esta
era la calle en la que estaban las oficinas de Nitobi en
Vancouver (Canadá).
Componentes básicos
• En Apache Cordova las aplicaciones se basan en un común config.xml
archivo que proporciona información acerca de la aplicación y
especifica los parámetros que afectan a cómo funciona, como si
responde a la orientación cambia de puesto.
• La misma aplicación se implementa como una página web, un
archivo local llamado index.html.
• La aplicación se ejecuta como un WebView dentro de la envoltura de
la aplicación nativa
Frameworks de desarrollo híbrido
• Ionic y phonegap son distribuciones de Apache Cordova. Las cuales poseen
cada una características propias y se desarrollan como proyectos
independientes.
Características principales:
Ionic Framework
• Se puede compilar para: Android, IOS,
Windows Phone y FirefoxOS.
• Se centra en la apariencia y usa AngularJS
para una mejor experiencia de usuario
• Posee íconos y diseños muy bien trabajados.
• Es Open Source, posee el mismo tipo de
licencia que JQuery o Ruby on Rails
Características principales:
PhoneGap
• Se puede compilar para más
plataformas: Android, IOS, Amazon Fire OS,
Windows Phone,Windows 8, Ubuntu,Tizen,
Firefox OS, Blackberry 10.
• Se puede usar cualquier Framework JS y
CSS.
• Pertenece aAdobe, sin embargo tiene
licencia Apache (libre).
Servicios de compilación en la nube de Adobe
• Te ahorras la necesidad de tener que instalar los SDK y las herramientas
específicas de cada plataforma, ya que el servicio se encarga de hacer la
compilación por ti para todas las plataformas que quieras.
• Este servicio es algo específico de PhoneGap que no tienes conApache
Cordova.
• PhoneGap Build compila para las principales plataformas del mercado: iOS,
Android, Windows Phone, Blackberry 5/6/7 y webOS.
• Para proyectos Open Source el servicio es gratuito, pero no es así para
aplicaciones comerciales.
¿Una App nativa es exclusivamente la que se desarrolla en su
código nativo?
¿O también podríamos considerar como nativa aquella App
cuyo código resultante sea nativo a pesar de haber utilizado
otro lenguaje para su desarrollo?
La línea que se difumina:
Titanium Appcelerator
• Titanium Appcelerator es un framework de desarrollo multiplataforma en
lenguaje Javascript
• Permite crear aplicaciones cuyo código compilado final será nativo.
• ConTitanium podrás hacer todo lo que haría una App desarrollada
directamente en nativo y además con los mismos tiempos de respuesta en
su uso.
• Al ser multiplataforma, utiliza un sólo lenguaje de programación (JS) para
generar unaApp para casi todos los SO y dispositivos del mercado.
La línea que se difumina:
Titanium Appcelerator
• La traducción a todo esto es que se reducirán muchísimo los costes sin
perder las ventajas de las aplicaciones desarrolladas directamente en código
nativo.
• La única desventaja que se le encuentra es que a nivel de diseño no se tiene
la libertad total que ofrece desarrollar directamente en nativo.
• Sus limitaciones a este respecto son muy pequeñas, pero las hay.
Shell de Linux enWindows
Se trata de un Linux nativo sobre Windows:
Lo que Canonical y Microsoft no van a hacer es integrar Linux en Windows.
En su lugar, Ubuntu se ejecutará sobre una serie de librerías nativas de
Windows.
Kirkland, que explicaba que lo que se hace aquí es
"realizar una traducción en tiempo real de
llamadas al sistema de Linux en llamadas al
sistema del sistema operativo Windows". Es, nos
decía, algo que podría considerarse como lo
inverso de lo que hace wine, un proyecto que
precisamente permite que se puedan ejecutar
binarios deWindows en sistemas Linux.
Muchas ventajas, pero también algunas limitaciones
• El rendimiento en este modo de ejecución o “subsistema” es prácticamente
el equivalente al que se obtendría con una instalación nativa de Windows,
esto en cuanto al rendimiento de CPU, de la memoria y del I/O.
• Este avance no es una plataforma servidora en la que por ejemplo hospedar
sitios web, ejecutar infraestructura de servidor, entre otras.
• Las herramientas de Linux como por ejemplo
bash, no podrán interactuar con las
herramientas o aplicaciones de Windows y
viceversa. En otras palabras, esto quiere decir
que “no podrás ejecutar el bloc de notas desde
bash, ni tampoco podrás ejecutar Ruby en bash
desde el Powershell”.
¿Qué partes de Ubuntu van a funcionar enWindows?
Canonical y Microsoft llevan trabajando desde el verano pasado para integrar los
Linux Containers enWindows 10. Han utilizado para ello una tecnología conocida
como LXD, un hipervisor de código abierto diseñado especialmente para
funcionar con contenedores en lugar de máquinas virtuales.
• La línea de comandos de Unix, lo que permitirá a los desarrolladores y usuarios
de Linux que estén de paso porWindows 10 usar los comandos propios de Bash
sin cambiar de sistema operativo.
• El acceso a otras utilidades como ssh y el
mencionado soporte de apt-get abre
posibilidades realmente interesantes
para cualquier desarrollador Linux.
Hace uso de binarios recompilados de
Linux para adaptarlos y convertirlos en
binarios deWindows.
¿Veremos soporte de otras distribuciones, o incluso acceso a un entorno
gráfico?
La propia descripción de Kirkland de cómo preparó la imagen de Ubuntu para que
los usuarios de Windows 10 pudieran utilizarla en este sistema operativo desde
luego apunta a que muchos otros podrían hacer lo propio.
¿Podremos contar con una sesión gráfica o con la
ejecución de programas con su interfaz gráfica de
usuario (GUI)? Eso parece menos probable según
un usuario que hablaba sobre ello en Reddit y que
indicaba que no hay planes para ofrecer esa
opción: "esto está realmente orientado a
desarrolladores, no se supone que funcione como
una máquina virtual o un sustituto de Cygwin".
Así es la consola bash enWindows 10
• Solo se necesitan 2 minutos para activarlo
• No puede abrir aplicaciones con interfaz gráfica GNOME o KDE
• Instalar paquetes y programas
• Acceso a ficheros
• Cygwin X,Vcxsrv o Xming
OpenSwift
• Licencia apache 2.0
• OS X, iOS y Linux
¡GRACIAS!

Contenu connexe

Tendances

Fundamentos del Software Libre
Fundamentos del Software LibreFundamentos del Software Libre
Fundamentos del Software LibreCarlos Macallums
 
Introducción al Software Libre y Linux
Introducción al Software Libre y LinuxIntroducción al Software Libre y Linux
Introducción al Software Libre y LinuxSergio Vallejo
 
Software libre vs software gratis
Software libre vs software gratisSoftware libre vs software gratis
Software libre vs software gratisWalterJunior115
 
SOFWARE LIBRE VS SOFWARE GRATIS
SOFWARE LIBRE VS SOFWARE GRATISSOFWARE LIBRE VS SOFWARE GRATIS
SOFWARE LIBRE VS SOFWARE GRATISMariaPuello6
 
Software libre y propietario
Software libre y propietarioSoftware libre y propietario
Software libre y propietarioGaby Onofre
 
Fundamentos del software libre. (Maviola,José, Luis y Luisana)
Fundamentos del software libre. (Maviola,José, Luis y Luisana)Fundamentos del software libre. (Maviola,José, Luis y Luisana)
Fundamentos del software libre. (Maviola,José, Luis y Luisana)Maviola Pulido
 
Fundamentos del software libre
Fundamentos del software libre Fundamentos del software libre
Fundamentos del software libre Carlos Di Davide
 
Software libre diapositiva
Software libre diapositivaSoftware libre diapositiva
Software libre diapositivajonathangrief
 
Software Libre y Software Gratis
Software Libre y Software GratisSoftware Libre y Software Gratis
Software Libre y Software GratisErnesto Carlo
 
SOFTWARE LIBRE
SOFTWARE LIBRESOFTWARE LIBRE
SOFTWARE LIBREazar
 
Presentación sobre Software Libre UCV
Presentación sobre Software Libre UCVPresentación sobre Software Libre UCV
Presentación sobre Software Libre UCVkela20
 
Software Libre
Software LibreSoftware Libre
Software LibreUdem
 
que es el Softwarelibre
que es el Softwarelibreque es el Softwarelibre
que es el Softwarelibremiguelanyeka
 
Que es un sistema operativo es un programa o conjunto de programas que en un ...
Que es un sistema operativo es un programa o conjunto de programas que en un ...Que es un sistema operativo es un programa o conjunto de programas que en un ...
Que es un sistema operativo es un programa o conjunto de programas que en un ...leribagL
 

Tendances (20)

Tendencias del Software Libre
Tendencias del Software LibreTendencias del Software Libre
Tendencias del Software Libre
 
Fundamentos del Software Libre
Fundamentos del Software LibreFundamentos del Software Libre
Fundamentos del Software Libre
 
Introducción al Software Libre y Linux
Introducción al Software Libre y LinuxIntroducción al Software Libre y Linux
Introducción al Software Libre y Linux
 
Software libre
Software libreSoftware libre
Software libre
 
Software libre vs software gratis
Software libre vs software gratisSoftware libre vs software gratis
Software libre vs software gratis
 
SOFWARE LIBRE VS SOFWARE GRATIS
SOFWARE LIBRE VS SOFWARE GRATISSOFWARE LIBRE VS SOFWARE GRATIS
SOFWARE LIBRE VS SOFWARE GRATIS
 
Karen
KarenKaren
Karen
 
Software libre y propietario
Software libre y propietarioSoftware libre y propietario
Software libre y propietario
 
Fundamentos del software libre. (Maviola,José, Luis y Luisana)
Fundamentos del software libre. (Maviola,José, Luis y Luisana)Fundamentos del software libre. (Maviola,José, Luis y Luisana)
Fundamentos del software libre. (Maviola,José, Luis y Luisana)
 
Fundamentos del software libre
Fundamentos del software libre Fundamentos del software libre
Fundamentos del software libre
 
Software libre diapositiva
Software libre diapositivaSoftware libre diapositiva
Software libre diapositiva
 
Software Libre
Software LibreSoftware Libre
Software Libre
 
Software Libre y Software Gratis
Software Libre y Software GratisSoftware Libre y Software Gratis
Software Libre y Software Gratis
 
utilidad del software libre
utilidad del software libreutilidad del software libre
utilidad del software libre
 
SOFTWARE LIBRE
SOFTWARE LIBRESOFTWARE LIBRE
SOFTWARE LIBRE
 
Ensayo software libre
Ensayo   software libreEnsayo   software libre
Ensayo software libre
 
Presentación sobre Software Libre UCV
Presentación sobre Software Libre UCVPresentación sobre Software Libre UCV
Presentación sobre Software Libre UCV
 
Software Libre
Software LibreSoftware Libre
Software Libre
 
que es el Softwarelibre
que es el Softwarelibreque es el Softwarelibre
que es el Softwarelibre
 
Que es un sistema operativo es un programa o conjunto de programas que en un ...
Que es un sistema operativo es un programa o conjunto de programas que en un ...Que es un sistema operativo es un programa o conjunto de programas que en un ...
Que es un sistema operativo es un programa o conjunto de programas que en un ...
 

Similaire à Software en la actualidad

6 Lenguajes para dispositivos móviles
6 Lenguajes para dispositivos móviles 6 Lenguajes para dispositivos móviles
6 Lenguajes para dispositivos móviles RAUL Velez
 
Consideraciones al escoger apps híbridas vs nativas
Consideraciones al escoger apps híbridas vs nativasConsideraciones al escoger apps híbridas vs nativas
Consideraciones al escoger apps híbridas vs nativasSoftware Guru
 
Aplicaciones Móviles Híbridas
Aplicaciones Móviles HíbridasAplicaciones Móviles Híbridas
Aplicaciones Móviles HíbridasScio Consulting
 
Los diferentes lenguajes de programación para la web
Los diferentes lenguajes de programación para la webLos diferentes lenguajes de programación para la web
Los diferentes lenguajes de programación para la webCartagena, Bolivar
 
Los diferentes lenguajes de programación para la web
Los diferentes lenguajes de programación para la webLos diferentes lenguajes de programación para la web
Los diferentes lenguajes de programación para la webCartagena, Bolivar
 
NetRaf 2017 - La plataforma .NET en el 2017
NetRaf 2017 - La plataforma .NET en el 2017NetRaf 2017 - La plataforma .NET en el 2017
NetRaf 2017 - La plataforma .NET en el 2017Diego Bersano
 
Aplicaciones
AplicacionesAplicaciones
AplicacionesHugo Luna
 
atSistemas - Presentacion Hybreed
atSistemas - Presentacion HybreedatSistemas - Presentacion Hybreed
atSistemas - Presentacion HybreedJuanjo Sánchez
 
U1 p5 entornos_desarrollo_moviles
U1 p5 entornos_desarrollo_movilesU1 p5 entornos_desarrollo_moviles
U1 p5 entornos_desarrollo_movilesAkirepaho
 
Herramientas de desarrollo.pptx
Herramientas de desarrollo.pptxHerramientas de desarrollo.pptx
Herramientas de desarrollo.pptxNicolasCBarrantes
 
Desarrollo de apps multiplataforma Movil
Desarrollo de apps multiplataforma MovilDesarrollo de apps multiplataforma Movil
Desarrollo de apps multiplataforma MovilIng Erick Guardado
 
Phonegap
PhonegapPhonegap
PhonegapTensor
 
los-diferentes-lenguajes-de-programacion-para-la-web
 los-diferentes-lenguajes-de-programacion-para-la-web los-diferentes-lenguajes-de-programacion-para-la-web
los-diferentes-lenguajes-de-programacion-para-la-webolguisf
 
los diferentes lenguajes de programación para-la-web
 los diferentes lenguajes de programación para-la-web los diferentes lenguajes de programación para-la-web
los diferentes lenguajes de programación para-la-webolguisf
 
Lenguajes de programacion web
Lenguajes de programacion webLenguajes de programacion web
Lenguajes de programacion webinfobran
 
Hybreed. Plataforma de desarrollo de aplicaciones móviles híbridas. Descripci...
Hybreed. Plataforma de desarrollo de aplicaciones móviles híbridas. Descripci...Hybreed. Plataforma de desarrollo de aplicaciones móviles híbridas. Descripci...
Hybreed. Plataforma de desarrollo de aplicaciones móviles híbridas. Descripci...atSistemas
 

Similaire à Software en la actualidad (20)

6 Lenguajes para dispositivos móviles
6 Lenguajes para dispositivos móviles 6 Lenguajes para dispositivos móviles
6 Lenguajes para dispositivos móviles
 
Consideraciones al escoger apps híbridas vs nativas
Consideraciones al escoger apps híbridas vs nativasConsideraciones al escoger apps híbridas vs nativas
Consideraciones al escoger apps híbridas vs nativas
 
Aplicaciones Móviles Híbridas
Aplicaciones Móviles HíbridasAplicaciones Móviles Híbridas
Aplicaciones Móviles Híbridas
 
Los diferentes lenguajes de programación para la web
Los diferentes lenguajes de programación para la webLos diferentes lenguajes de programación para la web
Los diferentes lenguajes de programación para la web
 
Los diferentes lenguajes de programación para la web
Los diferentes lenguajes de programación para la webLos diferentes lenguajes de programación para la web
Los diferentes lenguajes de programación para la web
 
NetRaf 2017 - La plataforma .NET en el 2017
NetRaf 2017 - La plataforma .NET en el 2017NetRaf 2017 - La plataforma .NET en el 2017
NetRaf 2017 - La plataforma .NET en el 2017
 
IDEs y Frameworks mas utilizados
IDEs y Frameworks mas utilizadosIDEs y Frameworks mas utilizados
IDEs y Frameworks mas utilizados
 
Oracles1
Oracles1Oracles1
Oracles1
 
Aplicaciones
AplicacionesAplicaciones
Aplicaciones
 
atSistemas - Presentacion Hybreed
atSistemas - Presentacion HybreedatSistemas - Presentacion Hybreed
atSistemas - Presentacion Hybreed
 
U1 p5 entornos_desarrollo_moviles
U1 p5 entornos_desarrollo_movilesU1 p5 entornos_desarrollo_moviles
U1 p5 entornos_desarrollo_moviles
 
Herramientas de desarrollo.pptx
Herramientas de desarrollo.pptxHerramientas de desarrollo.pptx
Herramientas de desarrollo.pptx
 
Desarrollo de apps multiplataforma Movil
Desarrollo de apps multiplataforma MovilDesarrollo de apps multiplataforma Movil
Desarrollo de apps multiplataforma Movil
 
Phonegap
PhonegapPhonegap
Phonegap
 
los-diferentes-lenguajes-de-programacion-para-la-web
 los-diferentes-lenguajes-de-programacion-para-la-web los-diferentes-lenguajes-de-programacion-para-la-web
los-diferentes-lenguajes-de-programacion-para-la-web
 
los diferentes lenguajes de programación para-la-web
 los diferentes lenguajes de programación para-la-web los diferentes lenguajes de programación para-la-web
los diferentes lenguajes de programación para-la-web
 
Lenguajes de programacion web
Lenguajes de programacion webLenguajes de programacion web
Lenguajes de programacion web
 
Lenguajes de programacion web
Lenguajes de programacion webLenguajes de programacion web
Lenguajes de programacion web
 
Hybreed. Plataforma de desarrollo de aplicaciones móviles híbridas. Descripci...
Hybreed. Plataforma de desarrollo de aplicaciones móviles híbridas. Descripci...Hybreed. Plataforma de desarrollo de aplicaciones móviles híbridas. Descripci...
Hybreed. Plataforma de desarrollo de aplicaciones móviles híbridas. Descripci...
 
Programación de aplicaciones móviles
Programación de aplicaciones móvilesProgramación de aplicaciones móviles
Programación de aplicaciones móviles
 

Software en la actualidad

  • 1. El Software en la Actualidad UNIVERSIDAD NACIONAL EXPERIMENTAL DEGUAYANA INGENIERIA EN INFORMATICA TENDENCIAS INFORMATICAS
  • 2. La invasión de los Frameworks Arturo Zambrano Raelyx Cordero
  • 3. ¿Qué son? Los Frameworks o “marcos de trabajos” son un conjunto estandarizado de conceptos, prácticas y criterios, a menudo basada en módulos o herramientas para realizar un trabajo.
  • 4. ¿Para qué me sirven? Los frameworks han venido para hacernos la vida más fácil.Ya sea para evitar que “reinventemos la rueda”, para añadir nuevas capas de abstracción o agilizar el desarrollo web en general.
  • 5. De lo macro a lo micro Existen todo tipo de frameworks desde full- stack frameworks para desarrollar íntegramente cualquier tipo de aplicación web hasta microframeworks de stinados a correr servicios web con la mayor velocidad y el menor consumo de recursos posible.
  • 6. Tú sólo nómbralo Los frameworks también pueden clasificarse según el lenguaje en los que fueron escritos o el lenguaje usado para utilizarlos. PHP, Ruby, Python, Java, Groovy, Scala, JavaScript, CoffeeScript, Perl, incluso C++
  • 7. ¿Cómo elegir uno? Basado en: • El lenguaje • El trabajo • La popularidad Existen montones de alternativas ¡incluso sin salirnos de un mismo lenguaje de programación!
  • 8. Es una herramienta que compara de forma relativa la búsqueda de términos o temas, lo que significa que los ejes verticales de los gráficos son una escala 0% a 100% y no un número de búsquedas determinado.
  • 13. JavaScript del lado del cliente frameworks/librerias
  • 19. App nativa vs App web responsive vs App híbrida
  • 20. App nativa • Se desarrolla de forma específica para un determinado sistema operativo, llamado Software Development Kit o SDK. • Por ejemplo: o Las apps para iOS se desarrollan con lenguaje Objective-C o Las apps para Android se desarrollan con lenguaje Java o Las apps enWindows Phone se desarrollan en .Net • Posibilidad de acceder a todas las características del hardware del móvil: cámara, GPS, agenda, dispositivos de almacenamiento, etc. • Descarga e instalación a través de la tienda de aplicaciones.
  • 21. AplicaciónWeb • Desarrolladas con lenguajes de programación web, como lo es HTML, Javascript y CSS. • Posibilidad de programar independiente del sistema operativo en el que se usará la aplicación. • Las aplicaciones web se ejecutan dentro del propio navegador web. • No necesita instalación por lo que no pueden estar visibles en app store. • Suna buena opción si nuestro objetivo es adaptar la web a formato móvil.
  • 22. Aplicación Híbrida • Es una combinación de las dos anteriores, recoge lo mejor de cada una de ellas. • Se desarrollan con lenguajes propios de las webabpp, es decir, HTML, Javascript y CSS por lo que permite su uso en diferentes plataformas. • La principal ventaja es que a pesar de estar desarrollada con HTML, Javascrip o CSS, es posible agrupar los códigos y distribuirla en app store. • Tienen el mismo tipo de acceso a las APIs nativas de cada sistema operativo así como a los recursos propios del sistema tipo procesador, GPS, camara, etc.
  • 27. Criterios de selección A la hora de elegir cuál de los 3 caminos seleccionar para construir una app móvil se debe tomar en cuenta lo siguiente: • Coste que puedas asumir. • Las características y funcionalidades de tu proyecto tecnológico. • Tu modelo de negocio y elTarget al que te diriges. • La complejidad del diseño y la importancia que le des a la experiencia de usuario. • Tu intención de hacerlo crecer. • La estructura de tu empresa.
  • 28. Apache Cordova • Es un marco de desarrollo móvil de código abierto. • Permite utilizar las tecnologías estándar web como HTML5, CSS3 y JavaScript para desarrollo multiplataforma. • Las aplicaciones se ejecutan dentro de envolturas para cada plataforma. • Se graduó en octubre de 2012 como un proyecto de nivel superior dentro de la Apache Software Foundation (ASF).
  • 29. Un poco de historia • En el año 2009 una desconocida empresa llamada Nitobi crea un framework para desarrollo móvil multiplataforma llamado PhoneGap. • Crear aplicaciones orientadas a móviles con HTML5 y dotarlas de una capa JavaScript que permita acceder a las funciones nativas de cada sistema. • Entorno de ejecución multiplataforma. • La idea triunfa y la empresa se da cuenta que debe tener más colaboradores. • En septiembre de 2011 se convierte en Open Source. • En octubre de 2011, Adobe compra Nitobi, se lleva a sus empleados, el producto y la marca PhoneGap.
  • 30. Un poco de historia • PhoneGap es una marca registrada de Adobe y es posible que en el futuro quieran explotar el producto con herramientas añadidas propias. • Apache decide renombrar en febrero de 2012 el proyecto a Cordova. Este nombre tan peculiar se lo ponen porque esta era la calle en la que estaban las oficinas de Nitobi en Vancouver (Canadá).
  • 31. Componentes básicos • En Apache Cordova las aplicaciones se basan en un común config.xml archivo que proporciona información acerca de la aplicación y especifica los parámetros que afectan a cómo funciona, como si responde a la orientación cambia de puesto. • La misma aplicación se implementa como una página web, un archivo local llamado index.html. • La aplicación se ejecuta como un WebView dentro de la envoltura de la aplicación nativa
  • 32. Frameworks de desarrollo híbrido • Ionic y phonegap son distribuciones de Apache Cordova. Las cuales poseen cada una características propias y se desarrollan como proyectos independientes.
  • 33. Características principales: Ionic Framework • Se puede compilar para: Android, IOS, Windows Phone y FirefoxOS. • Se centra en la apariencia y usa AngularJS para una mejor experiencia de usuario • Posee íconos y diseños muy bien trabajados. • Es Open Source, posee el mismo tipo de licencia que JQuery o Ruby on Rails
  • 34. Características principales: PhoneGap • Se puede compilar para más plataformas: Android, IOS, Amazon Fire OS, Windows Phone,Windows 8, Ubuntu,Tizen, Firefox OS, Blackberry 10. • Se puede usar cualquier Framework JS y CSS. • Pertenece aAdobe, sin embargo tiene licencia Apache (libre).
  • 35. Servicios de compilación en la nube de Adobe • Te ahorras la necesidad de tener que instalar los SDK y las herramientas específicas de cada plataforma, ya que el servicio se encarga de hacer la compilación por ti para todas las plataformas que quieras. • Este servicio es algo específico de PhoneGap que no tienes conApache Cordova. • PhoneGap Build compila para las principales plataformas del mercado: iOS, Android, Windows Phone, Blackberry 5/6/7 y webOS. • Para proyectos Open Source el servicio es gratuito, pero no es así para aplicaciones comerciales.
  • 36. ¿Una App nativa es exclusivamente la que se desarrolla en su código nativo? ¿O también podríamos considerar como nativa aquella App cuyo código resultante sea nativo a pesar de haber utilizado otro lenguaje para su desarrollo?
  • 37. La línea que se difumina: Titanium Appcelerator • Titanium Appcelerator es un framework de desarrollo multiplataforma en lenguaje Javascript • Permite crear aplicaciones cuyo código compilado final será nativo. • ConTitanium podrás hacer todo lo que haría una App desarrollada directamente en nativo y además con los mismos tiempos de respuesta en su uso. • Al ser multiplataforma, utiliza un sólo lenguaje de programación (JS) para generar unaApp para casi todos los SO y dispositivos del mercado.
  • 38. La línea que se difumina: Titanium Appcelerator • La traducción a todo esto es que se reducirán muchísimo los costes sin perder las ventajas de las aplicaciones desarrolladas directamente en código nativo. • La única desventaja que se le encuentra es que a nivel de diseño no se tiene la libertad total que ofrece desarrollar directamente en nativo. • Sus limitaciones a este respecto son muy pequeñas, pero las hay.
  • 39. Shell de Linux enWindows Se trata de un Linux nativo sobre Windows: Lo que Canonical y Microsoft no van a hacer es integrar Linux en Windows. En su lugar, Ubuntu se ejecutará sobre una serie de librerías nativas de Windows. Kirkland, que explicaba que lo que se hace aquí es "realizar una traducción en tiempo real de llamadas al sistema de Linux en llamadas al sistema del sistema operativo Windows". Es, nos decía, algo que podría considerarse como lo inverso de lo que hace wine, un proyecto que precisamente permite que se puedan ejecutar binarios deWindows en sistemas Linux.
  • 40. Muchas ventajas, pero también algunas limitaciones • El rendimiento en este modo de ejecución o “subsistema” es prácticamente el equivalente al que se obtendría con una instalación nativa de Windows, esto en cuanto al rendimiento de CPU, de la memoria y del I/O. • Este avance no es una plataforma servidora en la que por ejemplo hospedar sitios web, ejecutar infraestructura de servidor, entre otras. • Las herramientas de Linux como por ejemplo bash, no podrán interactuar con las herramientas o aplicaciones de Windows y viceversa. En otras palabras, esto quiere decir que “no podrás ejecutar el bloc de notas desde bash, ni tampoco podrás ejecutar Ruby en bash desde el Powershell”.
  • 41. ¿Qué partes de Ubuntu van a funcionar enWindows? Canonical y Microsoft llevan trabajando desde el verano pasado para integrar los Linux Containers enWindows 10. Han utilizado para ello una tecnología conocida como LXD, un hipervisor de código abierto diseñado especialmente para funcionar con contenedores en lugar de máquinas virtuales. • La línea de comandos de Unix, lo que permitirá a los desarrolladores y usuarios de Linux que estén de paso porWindows 10 usar los comandos propios de Bash sin cambiar de sistema operativo. • El acceso a otras utilidades como ssh y el mencionado soporte de apt-get abre posibilidades realmente interesantes para cualquier desarrollador Linux. Hace uso de binarios recompilados de Linux para adaptarlos y convertirlos en binarios deWindows.
  • 42. ¿Veremos soporte de otras distribuciones, o incluso acceso a un entorno gráfico? La propia descripción de Kirkland de cómo preparó la imagen de Ubuntu para que los usuarios de Windows 10 pudieran utilizarla en este sistema operativo desde luego apunta a que muchos otros podrían hacer lo propio. ¿Podremos contar con una sesión gráfica o con la ejecución de programas con su interfaz gráfica de usuario (GUI)? Eso parece menos probable según un usuario que hablaba sobre ello en Reddit y que indicaba que no hay planes para ofrecer esa opción: "esto está realmente orientado a desarrolladores, no se supone que funcione como una máquina virtual o un sustituto de Cygwin".
  • 43. Así es la consola bash enWindows 10 • Solo se necesitan 2 minutos para activarlo • No puede abrir aplicaciones con interfaz gráfica GNOME o KDE • Instalar paquetes y programas • Acceso a ficheros • Cygwin X,Vcxsrv o Xming
  • 44. OpenSwift • Licencia apache 2.0 • OS X, iOS y Linux