Desarrollo de aplicaciones nativas multiplataforma en Windows


Microsoft  ha demostrado  un  compromiso con el código abierto  ayudando a navegar por herramientas de código abierto, marcos y plataformas, por ejemplo   desarrollando Apache Cordova ,creando y realizando el mantenimiento de complementos de diferentes plataformas,colaborando con Google para ofrecer la herramienta Angular JS 2.0,etc.

Como ejemplo vamos a ver en este post como es posible desarrollar para diferentes entornos moviles usando una de las herramientas mas famosas de desarrollo de Microsoft ,la cual  por cierto esta  disponible para ambientes de educación o formación de forma gratuita

Tipos de aplicaciones móviles

A la hora de crear aplicaciones móviles para plataformas como Android o iOS contamos con varias alternativas:

  • Aplicaciones nativas :muy buen rendimiento y se pueden distribuir desde las tiendas de aplicaciones. Hay que desarrollar las apps para cada entorno  usando herramientas especificas como por ejemplo:

En Android:  Android Studio o Eclipse

En IoS: Swift, Objetive-c  o Xcode

                       En Windows Phone: Visual  Studio

  • Aplicaciones web móviles: un único desarrollo con tecnologías web (js, hrml5 y css).No se distribuyen desde las apps  stores y no permiten acceder a todas las capacidades del hw del móvil. También se está desarrollando las llamadas apps  progresivas
  • Aplicaciones móviles hibridas:se mezclan ambas tecnologías sobre una carcasa  nativa que incrusta una web view. A diferencia de las aplicaciones web móviles pueden distribuirse en las diferentes apps stores incluso permitiendo magnetización de estas. Si bien el rendimiento no es tan bueno como las nativas permiten acceder a diferentes terminales  mediante un   desarrollo web  incluso pudiendo acceder a elementos  hardware . Entre las herramientas mas famosas destacan Phonegapp o Ionic, basadas ambas  en Apache-Cordoba

Creación de  aplicaciones para móviles mediante HTML, CSS y JS

Las aplicaciones móviles híbridas son una combinación de tecnologías web como HTML, CSS y JavaScript, que no son ni aplicaciones móviles verdaderamente nativas, porque consisten en un WebView ejecutado dentro de un contenedor nativo, ni tampoco están basadas en Web, porque se empaquetan como aplicaciones para distribución y tienen acceso a las APIs nativas del dispositivo.

Si sabe cómo crear aplicaciones web, rápidamente se sentirá cómodo creando aplicaciones móviles para iOS, Android y Windows mediante Apache Cordova.

La mayoría de desarrolladores obtiene cerca de un 100 % de reutilización del código aprovechando la API de JavaScript compartida de Cordova para acceder a las funcionalidades de dispositivo nativo, como la cámara, el calendario y los contactos.

Además, debido a que las aplicaciones híbridas utilizan vistas web nativas, puede llevarse su marco JavaScript favorito consigo (marcos como Angular, React e Ionic).

Y hablando de Ionic, es un SDK de código abierto que provee herramientas y servicios para desarrollar aplicaciones móviles híbridas. Está construido por encima de AngularJS y Apache Cordova y se centra principalmente en el look and feel y la interacción con la interfaz de usuario de la aplicación, con la finalidad de simplificar el front-end.

Ionic    es  pues  :

  • Un framework CSS con multitud de elementos de front-end reutilizables y personalizables, que permiten desarrollar una interfaz de usuario relativamente rápido, como por ejemplo encabezados, pies de página, botones de diferentes tamaños y estilos, listas, avatares, tarjetas, formularios, entradas, casillas de verificación, pestañas y,etc .
  • Una biblioteca JavaScript de interfaz de usuario con componentes JS que dan vida a los elementos del front-end y se utilizan como elementos HTML en la aplicación. Uno de los componentes JS de Ionic más utilizados es el componente pestañas,  el cual permite que un determinado contenido se muestre u oculte en función de la pestaña seleccionada por el usuario.

 

 

Visual Studio con Córdova

Debido al aumento de la complejidad de las aplicaciones, necesita más que un editor de texto por lo que el IDE Visual Studio 2017 es una buena  opción  pues integra un editor de código optimizado para la refactorización, el completado automático y la comprensión del código

 

Resumidamente   Visual Studio 2017 ofrece las siguientes  funcionalidades  :

  • Resaltado de sintaxis para ayudarle a identificar los errores visualmente
  • IntelliSense para ayudarle a comprender y codificar mejor las nuevas API
  • Inspección de código para revisar la referencia en línea
  • Si  su aplicación funciona y tiene el aspecto exacto diseñado por usted Tanto si trabaja para iOS, Android o Windows, Visual Studio ofrece compatibilidad de vista previa para una amplia variedad de emuladores y dispositivos anclados a red.Incluso puede implementar y depurar emuladores hospedados en una máquina remota o virtual (por ejemplo, paralelos).
  • Depuración y análisis .Independientemente de dónde se ejecute su código, Visual Studio puede depurarlo (tanto si su código se está ejecutando en un dispositivo iOS, Android o Windows, un emulador o simulador o en un destino de depuración basado en explorador como Ripple). No es necesario cambiar de herramientas cuando crea para otra plataforma. Visual Studio se conecta con casi cualquier destino de implementación.El depurador de Visual Studio le permite revisar el código con puntos de interrupción y notificaciones de excepción automática que exponen el estado del tiempo de ejecución de objetos y variables.Las funcionalidades avanzadas, como editar y continuar, los puntos de interrupción condicionales, los puntos de seguimiento y los números de llamadas ofrecen el tipo de análisis detallado que necesita para que el código resulte divertido y no un juego despiadado de “localización del error”.
  • Acceso a capacidades de dispositivo nativo.Con tecnología de Apache Cordova, sus aplicaciones escritas en HTML, CSS y JavaScript pueden acceder fácilmente a las API de dispositivo nativo que todavía no se encuentran disponibles para los exploradores (por ejemplo, la cámara, el calendario, los contactos, el escáner de códigos de barras, etc.).Lo mejor de todo es que puede acceder a capacidades de dispositivo nativo a través de una API de JavaScript común para obtener la máxima reutilización de código en su aplicación.
  • Conexion  a datos ( a la plataforma de Azure ):con tan solo unas cuantas líneas de código, puede Usar notificaciones de inserción para conectarse con usuarios específicos o audiencias completas,Habilitar la mensajería en tiempo real para provocar conversaciones y el uso compartido entre sus usuarios,Admitir capacidades sin conexión para aquellas ocasiones en las que no haya disponible una conexión de red,Administrar datos de Exchange mediante las API de servicio de Office 365 para compartir y editar calendarios, contactos, archivos, etc.

 

 

 

 

Instalación Visual Studio  para apps moviles

Todo lo que usted necesita para poder comenzar  con Visual Studio es descargar alguna de las siguientes versiones:

  •  IDE gratuito con todas las características para estudiantes, desarrolladores de código abierto y desarrolladores individuales . Descarga gratuita
  • Visual Studio Professional  :Herramientas de desarrollo profesionales, servicios y ventajas para suscripción para equipos pequeñosEvaluación gratuita  
  • Visual Studio Enterprise:Solución completa para satisfacer las exigentes necesidades de calidad y escala de equipos de todos los tamaños. Evaluación gratuita

El  instalador realiza todo el trabajo pesado necesario para poner en marcha el equipo con los SDK, bibliotecas, herramientas, etc. necesarios para crear aplicaciones multiplataforma.

Para Instalar las herramientas de Cordova con una instalación inicial de Visual Studio siga lso siguientes pasos:

  1. Para instalar Visual Studio Tools para Apache Cordova junto con una instalación limpia de Visual Studio, descargue e inicie el instalador de Visual Studio ( en de algunos de los tres links de arriba o directamente si necesita el  la versión  sin coste en el link  siguiente: Visual Studio Community  🙂
  2. El instalador mostrará la lista de componentes instalables mostrada en la siguiente figura.Al instalar  Visual Studio, deberua  asegúrarse  de incluir los componentes opcionales, HTML / JavaScript (Apache Cordova) bajo Desarrollo móvil multiplataforma como vamos a ver.
  3. Desplácese por la lista de cargas de trabajo disponibles y localice un grupo denominado Mobile & Gaming .
  4. Marque la casilla de verificación junto a Desarrollo móvil con JavaScript como se muestra en la siguiente figura. Esto permitirá la instalación de los componentes necesarios para las herramientas de Córdoba.  
  5. Dependiendo de sus necesidades específicas de desarrollo, es posible que deba instalar componentes opcionales adicionales. Por ejemplo, para apoyar el desarrollo de aplicaciones para Android, necesitará agregar soporte para el SDK de Android . Para probar las aplicaciones de Android en los emuladores, debe agregar soporte para Google Android Emulator , como se muestra en la siguiente figura.Si su entorno de desarrollo de Cordova ya incluye estas herramientas, puede omitir la instalación de nuevo aquí y modificar la configuración de Visual Studio Tools para Apache Cordova para apuntar a la instalación existente más adelante.
  6. Compruebe rápidamente que puede cargar y crear la plantilla de aplicación en blanco predeterminada. En Visual Studio, elija Archivo , Nuevo , Proyecto , JavaScript ,Aplicaciones de Apache Cordova , Aplicación en blanco y nombre el nuevo proyecto «en blanco» y construya con F5. Si tiene algún problema, consulte estos pasos de solución de problemas .
  7. Ionic es un popular framework front-end JavaScript para desarrollar aplicaciones móviles multiplataforma usando Cordova. Puede utilizar Visual Studio 2015 para crear y depurar fácilmente aplicaciones multiplataforma Ionic.http://www.youtube.com/watch?v=4fNmTkYGVeUPuede instalar las plantillas de inicio de Ionic en Visual Studio y utilizarlas para comenzar a crear una aplicación.
    1. Agregue directamente a Visual Studio descargando y haciendo doble clic en VS Extension for IonicO bien, hágalo en Visual Studio, seleccionando Archivo , Nuevo y luego Proyecto .
    2.  En el cuadro de diálogo Nuevo proyecto, seleccione en línea .
    3.  En el cuadro de búsqueda, escriba Ionic .                                                
    4.   Escriba cualquier nombre y elija Aceptar para instalarlos. Cuando se le solicite permiso para instalar las plantillas, dé su permiso.
    5. Cierre y vuelva a abrir Visual Studio.
    6. De nuevo, elija Archivo , Nuevo y , a continuación, Proyecto.
    7. Ahora, elija  Instalar y , a continuación, Plantillas , las plantillas de inicio nuevas aparecerán en JavaScript , Apache Cordova Apps
    8. Elija una de las siguientes plantillas de inicio para su nuevo proyecto:
      • Aplicación en blanco iónico
      • Plantilla Iónica de SideMenu
      • Plantilla de Tabulaciones Iónicas
    9. Elija Aceptar .Visual Studio crea el proyecto Ionic.
    10. Agregue IntelliSense para Ionic a su proyecto.

    Haga que su aplicación funcione en Android

    1. Añada la plataforma Android de Android como destino de depuración (lista de plataformas de soluciones) y , a continuación, seleccione Generar y , a continuación, Crear solución .
    2. Elija Android como destino de depuración (lista de plataformas de solución) y para que la aplicación funcione seleccione un destino como el VS Emulator 5 «KitKat (4.4) (se requiere Hyper-V) o Google Android Emulator (lento para cargar inicialmente).  
    3. Puede configurar un emulador de Google Android en AVD Manager .También puede ejecutar en el simulador de Ripple en su lugar, pero tendrá que utilizar la solución descrita más adelante en este artículo .
    4. Presione F5 y la aplicación debería cargarse correctamente.                     

    Haga que su aplicación funcione en iOS

    Puede ejecutar inicialmente en el Emulador de Ripple después de seleccionar iOS como destino de depuración, pero para obtener información detallada sobre cómo configurar el agente de remoción remota para iOS, consulte este tema .

    Las plantillas de inicio de Ionic deben ejecutarse correctamente en iOS cuando el agente de remotebuild se ejecuta en un Mac (o un servicio como MacInCloud) y cuando Visual Studio está configurado para conectarse a él.

 

Problema de actividad al 100% en Windows 10


Puede    que de repente su ordenador con Windows 10   haya dejado de responder  en un  tiempo razonable a cualquier petición  que se  haga  llegando incluso  a demorarse alrededor de  varios minutos el simple hecho abrir cualquier menú contextual .

Lo extraño es que tras ese comportamiento anómalo  tras un rato  comience a  responder de  forma rápida ( normal)  para  luego volverse a repetir el ciclo de demoras y así sucesivamente

Puede que ante un comportamiento tan anormal   haya tenido la  tentación de reinstalar W10  tal y como tratamos en este post , pero   para ese problema probablemente no   mejorara el comportamiento. Hay personas  que  incluso  optan  por cambiar  el disco o  formatear la unidad  de sistema con el consiguiente  trabajo posterior  de instalación  de todo  el sw original   y configuración,  pero si no quiere hacer todo ese trabajo,  todavía  hay algunas  posibilidades  que podemos explorar ;

 

PASOS PREVIOS

Antes de acudir a acciones  mas contundente   lo primero es actualizar  todos los controladores   y sobre todo hacer una análisis de todo el equipo con Windows Defender.

Asimismo vaciar la papelera de reciclaje o eliminar archivos temporales,puede ayudar ( incluso  hay personas que optan por probar a desactivar el archivo de paginación) .
Si el resultado no ha dado ningún cambio entonces siga los siguientes  pasos:

 

PASO 1: Monitorización de la actividad del disco

Un primer análisis  consistirá en   ir al administrador de  tareas ( control+alt +del )   y habilitar si no lo tiene el apartado de actividad de disco

Si padece de este problema, probablemente en el administrador es fácil   que incluso sin uso ,   el porcentaje de  uso del disco sea permanentemente del 100% , señal inequívoca que  nos explica que el porque de la demora sin duda se debe a una excesiva actividad en el disco principal

Cuando ejecute el administrador de tareas, puede que vea que algunos de estos ejecutables: System.exe, Antimalware Service Executable , Host  del servicio , o Telemetria  y experiencias de usuario conectado)   los cuales  aparentemente hacen este gran gasto de uso de  disco.
IMG_20170528_181300[1].jpg

Una vía  para solucionar sin duda sobre todo es  probar desactivar algunas de esas tareas que están generando esa actividad de disco anormal ( en el ejemplo podria ser  Telemetria  y experiencias de usuario conectado),   quitar  algunas tareas programadas etc,

 

Para deshabilitar  un servicio no critico como por ejemplo  el servicio «Telemetria  y experiencias de usuario conectado», haga lo siguiente:

  1. Oprime las teclas «Windows» + «R» y en Ejecutar, escribe services.msc y haz clic en Aceptar.
  2. En la lista de servicios, haz clic con el botón secundario del ratón en Telemetria  y experiencias de usuario conectado y a continuación, haz clic en Propiedades.
  3. En la lista Tipo de inicio, selecciona Deshabilitado y después haz clic en Aplicar
  4. Seguido, en la pestaña de Recuperación y en las opciones de Primer, Segundo y siguientes errores, Selecciona No realizar ninguna acción.
  5. Luego, haz clic en Aplicar y por último en Reiniciar.

 

PASO 2:Desactivamos la Optimización programada

Si no hemos resuelto el problema en el paso anterior, seguiremos la siguiente secuencia:

  •   Panel de Control–>
  •          Sistema  y seguridad –>
  •                        Herramientas Administrativas –>
  •                                       Desfragmentar y optimizar unidades

Desactivamos la Optimización programada  de todas las unidades  pinchando en  la parte inferior   de Optimizacion Programada  y deschequeando  el check   «Ejecución programada(recomendado)»

Asimismo nos iremos a las unidades  y pincharemos en cada una en el apartado  «Optimizar»  no cerrando    la ventana de  Optimizar unidades hasta que no haya concluido el proceso para todas la unidades

disocs

En ese momento pude que crea haber solucionado el problema desactivando la optimización automática de su  mi disco por unas horas, hasta que nuevamente retome  el mismo problema, quizás  oscilando entre 98 – 100% e  impidiendo trabajar con  algo de fluidez, si es así puede pasar el siguiente paso .

PASO 3: Deshabilitar  Servicio de transferencia inteligente de segundo plano)

El  Servicio de transferencia inteligente en segundo plano (BITS) transfiere de forma asincrónica archivos que están en primer plano o en segundo plano, controlando el flujo de las transferencias para preservar la capacidad de respuesta de otras aplicaciones de red y reanuda automáticamente las transferencias de archivos si se interrumpe una sesión de transferencia, por ejemplo debido a la desconexión de la red o al reinicio del equipo.

BITS proporciona un nivel de prioridad de primer plano y tres niveles de prioridad de segundo plano que se utilizan para clasificar por orden de prioridad los trabajos de transferencia. Los trabajos con prioridad superior prevalecen sobre los trabajos con prioridad inferior. Los trabajos con el mismo nivel de prioridad comparten el período de transferencia, lo que evita que un trabajo grande bloquee los trabajos pequeños en la cola de transferencias. Los trabajos con prioridad inferior no reciben tiempo de transferencia hasta que todos los trabajos con prioridad superior se han completado o están en estado de error.

BITS utiliza BranchCache de Windows para el almacenamiento en caché del mismo nivel.

Como vemos es un servicio que ayuda al SO a mantenerlo actualizado, pero dado que esta trabajando en segundo plano haciendo un uso alto del disco del sistema podemos probar  de desactivarlo    y comprobar si mejora el rendimiento

Antes de empezar, tenga en cuenta que este servicio ayuda los procesos en segundo plano, por lo que el iniciar, apagar, reiniciar o alguna acción en su equipo, puede tardar un poco.

 

Para deshabilitar el servicio, haga lo siguiente:

  1. Oprima las teclas «Windows» + «R» y en Ejecutar, escribe services.msc y haz clic en Aceptar.
  2. En la lista de servicios, haz clic con el botón secundario del ratón en Servicio de transferencias inteligente en segundo plano (BITTS) y a continuación, haz clic en Propiedades.
  3. En la lista Tipo de inicio, selecciona Deshabilitado y después haz clic en Aplicar.
  4. Seguido, en la pestaña de Recuperación y en las opciones de Primer, Segundo y siguientes errores, Selecciona No realizar ninguna acción.
  5. Luego, haz clic en Aplicar y por último en Reiniciar.

Quite la selección del servicio (Servicio de transferencia inteligente de segundo plano) y le dan aceptar y luego a reiniciar mas tarde.

 

 

PASO 4: Optimizar unidades

Por ultimo seguiremos la siguiente secuencia:

  •   Panel de Control–>
  •          Sistema  y seguridad –>
  •                        Herramientas Administrativas –>
  •                                       Desfragmentar y optimizar unidades

En esta opción seleccionamos la partición donde esta instalado el sistema operativo en ( lo mas normal es que sea al Disco Local C) y   luego clic en optimizar

Este proceso desfragmentara y optimizara el sistema   durando aproximadamente 1 hora  o menos en función de su sistema  y del tamaño del disco

Una vez terminado el proceso reiniciar y debería  mejorar  el rendimiento del Disco considerablemente.

 

Si lo anterior no funciona es posible que una descarga e instalación de actualizaciones esté consumiendo el 100% del disco duro, lo cual podríamos resolverlo buscando desde Servicios ,es decir  :

  1. Oprima las teclas «Windows» + «R» y en Ejecutar, escribe services.msc y haz clic en Aceptar.
  2. En la lista de servicios, haz clic con el botón secundario del ratón en Windows Update y a continuación, haz clic en Propiedades.
  3. En la lista Tipo de inicio, selecciona Manual y después haz clic en Aplicar.
  4. Seguido, en la pestaña de Recuperación y en las opciones de Primer, Segundo y siguientes errores, Selecciona No realizar ninguna acción.

 

Este proceso  podemos hacerlo también con otros servicios como Windows Search  o Superftech para evitar que ocurran este tipo de problemas.

Por ultimo  buscando Windows Update en Cortana podemos ver si hay una descarga de actualización en proceso, además de seleccionar horas del ordenador en desuso para que las actualizaciones y reinicios no se produzcan mientras estemos trabajando con el ordenador.