emula una #app para #android solo con la #URL de tu #web con Website 2 APK Builder
Buenas a tod@s
Con este software para pc podras ver tu pagina web responsive en cualquier movil android como si fuera una APP sin necesidad de tener ningun conocimiento de programacion
Solo debes indicarle la URL donde esta alojada la web y cuando se abra la app en el movil lo que hace es abrir tu web con apariencia de app!
Lo he probado y la verdad que tiene muy buena pinta
La pega es que no vale para iphone (pega gorda) y que seguramente no puedas alojarla el google play
Ionic es un framework de desarrollo de aplicaciones híbridas en HTML5 basado en AngularJS y que funciona con Apache Cordova (sí Cordova con V).
En mi opinión, sus puntos fuertes son:
Rendimiento muy bueno: sí, no es lo mismo que una aplicación nativa. Pero para un buen número de apps que hacen poco más que una aplicación web va que chuta. Y el mismo código te vale para IOS y Android.
Tiene un set de componentes visuales muy chulo y fácil de usar.
Si sabes AngularJS empezar a usarlo es inmediato.
Con este post empezamos una serie en la que elaboraremos una aplicación que presentará un listado de eventos. Utilizará unbackend en Node.js y permitirá autenticarse con Twitter.
Con ese comando lo que estamos diciendo a Ionic es que cree una aplicación básica con navegación basada en tabs, en el directorio events-app. Nos preguntará si queremos crear una cuenta ionic.io, la cual no es necesaria para poder hacer este tutorial.
¡Listo!, ahora entramos al directorio de la aplicación y la arrancamos para echarle un vistazo.
12
cd events-appionic serve
Ionic creará un servidor http y podremos abrir la página en nuestro navegador en la dirección http://localhost:8100. La idea es desarrollar utilizando el navegador y después probar en un móvil o un emulador.
Debes tener en cuenta que si vas a utilizar APIs de dispositivo (por ejemplo, el acelerómetro) tendrás que probar estas cosas en un emulador o dispositivo, ya que el navegador no implementa esto.
app-creada-1
app-creada-2
Para visualizar la aplicación con la resolución de otro dispositivo en el mismo navegador web puedes hacerlo:
En Firefox pulsando Ctrl-Shift-M.
En Chrome abriendo las herramientas de desarrollo (F12) y pulsando en el dibujito del teléfono arriba y en la izquierda.
Personalmente, suelo utilizar Firefox Developer Edition, y cuando el depurador se me queda corto me paso a Chrome un rato.
Estructura de directorios
Echemos un vistazo a los directorios que Ionic nos ha creado.
directorios
Se trata de un esqueleto web para una aplicación de Cordova, en la que se utiliza Gulp para automatización de algunas tareas yBower como gestor de dependencias frontend.
De aquí, lo importante lo tenemos en el directorio www.
directorio www
Este directorio debes verlo como el de aplicación web normal y corriente, con tres salvedades:
Puedes usar AngularJS. De hecho ya es una aplicación Angular básica con unos cuantos controladores y servicios.
Y por último, puedes usar los componentes de Ionic en forma de directivas AngularJS.
Por lo demás es lo mismo que te encontrarías en otra web. El index.html, carpetas para el CSS y JS etc.
Preparando el proyecto
Vamos a hurgar un poco en el código que viene de ejemplo y dejarlo limpito para lo que nosotros necesitamos. Que básicamente serán tres vistas: una para autenticarnos, otra para ver los eventos y otra para cerrar la sesión.
NOTA: el código tal cual lo dejamos en este paso puedes obtenerlo con:
<!DOCTYPE html><html><head><metacharset="utf-8"><metaname="viewport"content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width"><title>Events App</title><linkhref="lib/ionic/css/ionic.css"rel="stylesheet"><linkhref="css/style.css"rel="stylesheet"><!-- ionic/angularjs js --><scriptsrc="lib/ionic/js/ionic.bundle.js"></script><!-- cordova script (this will be a 404 during development) --><scriptsrc="cordova.js"></script><!-- your app's js --><scriptsrc="js/app.js"></script><scriptsrc="js/controllers.js"></script><scriptsrc="js/services.js"></script></head><bodyng-app="eventsApp"><ion-nav-barclass="bar-positive"><ion-nav-back-button></ion-nav-back-button></ion-nav-bar><ion-nav-view></ion-nav-view></body></html>
app.js
El fichero JS principal. En él definimos el nombre de la aplicación (eventsApp) y tres dependencias, que son el propio framework Ionic, y servicios y controladores de la aplicación. Después configuramos el enrutador. En Ionic se utiliza Angular UI Router.
El router de Ionic difiere del router por defecto de Angular en que en este se utiliza el concepto de máquina de estados. Aquí utilizamos un estado abstracto tab y dos estados hijos: list y account. Por otra parte hay otra vista independiente, login.
Este sistema permite tener vistas anidadas. En este caso, las vistas que necesitamos (listado y configuración), se integran dentro de otra. A estas rutas les asignamos una plantilla HTML y un controlador.
El servicio que utilizaremos se encargará de proveer a la aplicación de la lista de eventos. De momento los tendrá en memoria. Más adelante se conectará al backend para obtener el listado.
Proporciona una única funcion: all. Para listar los eventos.
angular.module('eventsApp.services', []).factory('EventsService', function($http) {return { all: function() {// TODO: get events from backendvar events = [ {'speaker': 'Homer Simpson','title': 'Emprender en servicios web: Compuglobalhipermeganet','place': 'Sala 5','date': '15:00' }, {'speaker': 'Stewie Griffin','title': 'Cómo generar ingresos extra siguiendo gordos con una tuba','place': 'Salón de talleres 1','date': '17:00' }, {'speaker': 'Ralph Wiggum','title': '¡Corre plátano!','place': 'Sala 5','date': '19:00' } ];return events; } };});
controllers.js
Tenemos un controlador para el listado (que utiliza el servicio para listar los eventos), y otros para las vista de login y cuenta, que de momento no hacen nada más que mostrar un mensaje en la consola cuando se pulse un botón.
Esta directiva se utiliza para la navegación con los tabs, que son los menús que se ven en la parte de abajo.
12345678910111213
<ion-tabsclass="tabs-icon-top tabs-color-active-positive"><!-- List Tab --><ion-tabtitle="Eventos"icon-off="ion-ios-people-outline"icon-on="ion-ios-people"href="#/tab/list"><ion-nav-viewname="tab-list"></ion-nav-view></ion-tab><!-- Account Tab --><ion-tabtitle="Cuenta"icon-off="ion-ios-gear-outline"icon-on="ion-ios-gear"href="#/tab/account"><ion-nav-viewname="tab-account"></ion-nav-view></ion-tab></ion-tabs>
login.html
Desde esta vista mostraremos un botón para iniciar la sesión. Utiliza las directivas:
ion-view: para cargarse dentro del nav-view.
ion-content: un área para el contenido.
button: un botón normal corriente con ng-click=”logout()”. Al pulsarse ejecutará la función logout del controlador correspondiente.
12345
<ion-viewview-title="Autenticación"><ion-contentclass="padding"><buttonclass="button button-block button-positive"ng-click="authenticate()">Inicia sesión con Twitter</button></ion-content></ion-view>
vista de login
list.html
Igual que la vista de login, utiliza ion-view para ser cargada. Después utiliza el componente card para crear una tarjetita con la información de cada evento.
Con ng-repeat se van cargando los elementos del $scope y entre llaves van poniéndose los atributos de los objetos de eventos. Esto es AngularJS básico.
En esta primera parte del tutorial de Ionic hemos visto:
Cómo instalar Ionic.
Cómo crear el esqueleto de un proyecto y verlo en el navegador.
La estructura de una app hecha con Ionic.
En la segunda parte de esta serie veremos cómo crear un sencillo backend con Node.js y Express que permita autenticarse con Twitter y proporcione un listado de los eventos.
Mucho se ha hablado sobre programar apps en este blog. Sobre desarrollo de aplicaciones Android e iOS, también sobre aplicaciones responsive y las nativas. Sobre monetizar esos proyectos móviles. Incluso el diseño de apps se ha hecho un hueco en nuestro blog. Pero nunca hemos dejado suficientemente clara una buena opción para llevar a cabo tu desarrollo móvil. Me refiero a programar una aplicación multiplataforma con HTML5.
Para los que acabáis de llegar al mundo de las apps, la diferencia entre las aplicaciones nativas y multiplataforma es que las primeras están ‘escritas’ en su propio lenguaje de programación de apps. Mientras que las aplicaciones multiplataforma tienen un solo código que es interpretado y ajustado a los dispositivos, diríamos que son prácticamente sinónimo de las aplicaciones web de las que hemos hablado en varias ocasiones.
Dentro de esta categoría nos encontramos dos existen 2 ramas de aplicaciones multiplataforma: la primera sobre WebView ( que utiliza HTML5, CSS3, JavaScript y que trataremos en este artículo); y otra tipoXamarin que escribes una vez el código en un lenguaje común y te lo “traduce” a nativo de cada una de las plataformas.
Uno de los lenguajes que precisamente nos permiten crear apps multiplataforma, que con un solo desarrollo sean accesibles desde cualquier dispositivo, ese es HTML5. Veamos un poco más en profundidad en qué consiste:
¿Qué es exactamente HTML5?
HTML5 es un lenguaje markup que se utiliza para estructurar y mostrar contenidos en web. Proporciona soporte para aplicaciones multimedia avanzadas, incluyendo audio y video. Pero también nos permite modificar el ‘layout’ de una página y modificar así su aspecto.
En este sentido, ¿cómo pueden aprovecharlo los desarrolladores de apps? El experto podrá programar apps interactivas con HMTL5 que se verán a través del navegador de cualquier dispositivo.
Es precisamente HTML5 uno de los lenguajes más versátiles para desarrollar aplicaciones web y el más utilizado al crear apps no nativas.
¿Porqué programar apps con HTML5?
En primer lugar podemos destacar que HTML5 es un lenguaje de programación muy extendido. De hecho se ha convertido desde octubre de 2014 en el estándar de programación web, así siempre encontraremos muchos recursos al respecto. Además, el World Wide Web Consortium (W3C) puso su sello de “Recomendado” a la quinta versión del lenguaje.
Ya hemos dejado bien claro porque el lenguaje de programación es importante a nivel mundial y para los programadores convencionales. Pero ¿sabes qué características tiene este lenguaje para convertirse en uno de lasmejores opciones para programar apps multiplataforma? Vamos a exponerte esas ventajas de utilizar HTML5 al crear aplicaciones móviles.
Ante todo está su universalidad, es decir que funciona en todos los navegadores, ya sean en dispositivos móviles o desde el ordenador tradicional. El código es interpretado y mostrado por cualquiera de los navegadores (Chrome, Safari, Firefox, Internet Explorer).
Es una lenguaje con vocación claramente audiovisual. Permite incluir nativamente tanto audio cómo vídeo. Apuesta por mostrar e incluir contenidos multimedia en las creaciones.
Es mobile friendly. Una de las ventajas de la programación de apps con HTML5 es que este lenguaje busca ser responsive, adaptarse a la pantalla en la que se muestra el contenido. Por eso se convierte en perfecto para crear webs que se vayan a ver como aplicaciones (es decir, web apps). Según datos de la firma de análisis Vision Mobile, más del 50% de las aplicaciones móviles utilizan HTML5 junto a JavaScript y CSS.
Para los presupuestos más limitados es una muy buena opción ya que es más barato que otras alternativas nativas. O incluso para empezar con una beta de nuestro negocio o juego para móviles arrancar con una versión en HTML5 para ver si funciona y existe mercado puede suponer un gran ahorro. Juegos del estilo al de Candy Crush (puzzles) pueden empezar con esta tecnología y más adelante pasarse al nativo.
Puedes programar apps en beta con HTML
Y finalmente, pero no menos importante, el lenguaje HTML5 es decarácter abierto: Es decir, cualquiera puede modificar, mejorar, ampliar o inventarse nuevos servicios sobre aplicaciones ya desarrolladas.
Ventajas e inconvenientes de programar apps multiplataforma
Continuando lo que decíamos en el apartado interior, la mayor de lasventajas de crear apps multiplataforma con HTML5 y otros lenguajes es para aquellos de vienen del desarrollo Web. El programador web pueden utilizar su experiencia para introducirse en el desarrollo de apps de forma muy rápida y sencilla.
“Otra ventaja es que no hace falta el doble o triple de recursos para hacer la misma app en Android, iOs y Windows Phone”, añade Jose Antonio Llopis, Director técnico en Yeeply.
Como inconvenientes cabe destacar la velocidad de la app, que se ve seriamente reducida. Del mismo modo el acceso al hardware del dispositivo se ve limitado a los plugins disponibles. Otro inconveniente es que aunque se asegure que la app vaya a funcionar de forma automática en cualquier plataforma, eso no es cierto del todo. En la práctica hay que ir comprobando el desarrollo en todas las plataformas y comprobar que lo se ve bien en una también funciona en las otras.
Eso sí, RECUERDA que aunque las aplicaciones sean multiplataforma hay que generar una apk ( para dispositivos Android) o ipa nativa (para dispositivos iOS) para que sea legible y se muestre en los dispositivos móviles. Por eso mismo nos harán falta los SDK de cada plataforma. Como alternativa podemos usar un servicio que nos lo genere automáticamente como Adobe Build.
Herramientas para desarrollo multiplataforma
Las herramientas más utilizadas para programar apps plataforma del tipo de WebView son las que te presentamos a continuación:
Apache Cordova: es un framework para el desarrollo de aplicaciones móviles propiedad de Adobe Systems que permite a los programadores desarrollar aplicaciones para dispositivos móviles utilizando herramientas web genéricas como JavaScript, HTML5 y CSS3, resultando aplicaciones híbridas.
AngularJS: es un framework de JavaScript de código abierto, mantenido por Google, que se utiliza para crear y mantener aplicaciones web de una sola página.
Ionic:es una herramienta, gratuita y open source, para el desarrollo de aplicaciones híbridas basadas en HTML5, CSS y JS. Está construido con Sass y optimizado con AngularJS.
Aunque la calidad de este tipo de aplicaciones no es la óptima que podemos encontrar en un desarrollo nativo, funciona muy bien para proyectos pequeños y medianos que no necesitan un rendimiento muy alto ni demasiadas funcionalidades. De hecho la primera aplicación de Facebook estaba desarrollada con este tipo de tecnología hasta que se decidió por la programación de apps nativas.