Desarrollo de aplicaciones móviles

Introducción 

Por Julián David Mora Ramos  

Universidad de la Amazonia  

JavaScript

JavaScript es un lenguaje:

  • Interpretado: No se compila. 
  • Dinámico: Creación dinámica de objetos, propiedades...
  • Sin tipado: No se definen tipos de objetos o variables.
  • Estandarizado: Estándar ECMAScript.

JavaScript

JavaScript ya NO es solo un lenguaje:

  • Que funciona solo en el navegador.
  • Que sirve solo para animaciones web.
  • Para diseñar interfaces bonitas.

JavaScript

JavaScript ahora permite crear:

  • Servicios web, como Rest API, SOAP, Graphql...
  • Aplicaciones móviles híbridas y nativas.
  • Aplicaciones de escritorio.
  • Aplicaciones de consola.
  • Programar Arduino.

Graphql

type User {  
  id: String!
  name: String
}

type AdminGroup {  
  gid: String!
  users: [USer]
}

type Query {  
    user(id: String!): User
    adminGroup(gid: String!): AdminGroup
}

Graphql Prueba

{ 
  person(personID: 1) { 
    name 
    birthYear 
    homeworld { 
      name 
    } 
    filmConnection { 
      films { 
        title 
      } 
    } 
  } 
}
{
  "data": {
    "person": {
      "name": "Luke Skywalker",
      "birthYear": "19BBY",
      "homeworld": {
        "name": "Tatooine"
      },
      "filmConnection": {
        "films": [
          {
            "title": "A New Hope"
          },
          {
            "title": "The Empire Strikes Back"
          },
          {
            "title": "Return of the Jedi"
          },
          {
            "title": "Revenge of the Sith"
          }
        ]
      }
    }
  }
}

NodeJS

Características

  • Concurrencia
  • V8
  • Módulos
  • Isomorfismo

¿Quienes usan NodeJS?

  • Linkedin: Migraron 30 servidores a solo 3.
  • Google: Gmail, Angular, Polymer, Chrome y más.
  • Facebook: React, React Native, Instagram y más.
  • Yahoo: Aplicaciones internas, Mojito Framework.

Typescript

Typescript & ES5

// Typescript
class Mensaje {
    mensaje: string;
    constructor (msg: string) {
        this.mensaje = msg;
    }
    public saludar() {
        return "Hola, " + this.mensaje;
    }
}
// Javascript ES5
var Mensaje = (function () {
    function Mensaje(msg) {
        this.mensaje = msg;
    }
    Greeter.prototype.saludar = function () {
        return "Hola, " + this.mensaje;
    };
    return Mensaje;
})();

Decoradores & Tipos

// Typescript
@Saludo
class Mensaje {
 /* ... */
}
// C#
[Saludo]
public class Mensaje {
    /* ... */
}
""" Python """
@saludo
def Mensaje (arg1, arg2)
    """ ... """

Angular 2

Framework de desarrollo web

Características

  • Tipos de datos
  • Interfaces
  • Programación orientada a objetos
  • HTML Imports & Templates
  • Alto rendimiento
  • Integración con otras herramientas
  • Soporte
  • Polyfills
  • TDD o Test-Driven Development (desarrollo dirigido por tests)

Arquitectura

Herramientas de Angular 2

  • Animaciones
  • Bootstrap
  • Detección de cambios
  • Enrutador (Router)
  • Eventos
  • Formularios
  • Http
  • Enganches al ciclo de vida
  • Tuberías (pipes)

Ionic Framework

Desarrollo de aplicaciones móviles híbridas

Propuestas de desarrollo

Opciones

  • Aplicación móvil para visualización de puntos de interés en un mapa. La información es capturada por un servicio web Rest API (Ya construido).
  • Álbum de fotografías.
  • Foro en tiempo real. Incluye la creación del backend (Base de datos y servicio web)

Referencias

  • http://www.cantabriatic.com/node-js
  • https://code.tutsplus.com/es/tutorials/what-is-javascript--cms-26177
  • https://www.adictosaltrabajo.com/tutoriales/por-que-angular-2/
  • https://www.paradigmadigital.com/dev/tdd-como-metodologia-de-diseno-de-software/

Desarrollo de aplicaciones móviles

By anlijudavid

Desarrollo de aplicaciones móviles

Taller de desarrollo de aplicaciones móviles híbridas con Ionic Framework, Angular 2

  • 316