Archivo de la categoría: Programación Web

React Native

Crear aplicación:

$ npx react-native init my-project
$ cd my-project
$ yarn start

Abrir emulador:


//https://developer.android.com/studio/run/emulator-commandline
//Ir a la carpeta del emulador de android
$ cd ~/Android/Sdk/emulator
//podemos listar nuestros dipositivos
$ ./emulator -list-avds
//Ejecutar el dispositivo
$ ./emulator -avd NOMBRE_DISPOSITIVO
//Otra opción para ejecutar el dispositivo
//Performs a cold boot, and saves the emulator state on exit.
$ ./emulator -avd NOMBRE_DISPOSITIVO -no-snapshot-load

Paquetes utiles:


$ yarn add @react-navigation/native react-native-reanimated react-native-gesture-handler react-native-screens react-native-safe-area-context @react-native-community/masked-view @react-navigation/stack @react-navigation/bottom-tabs @react-navigation/drawer --save
$ yarn add react-native-elements --save
$ yarn add react-native-vector-icons --save
$ yarn add redux-saga --save
$ yarn add redux --save
$ yarn add react-redux --save
$ yarn add final-form react-final-form --save
$ yarn add apisauce --save 
$ yarn add jwt-decode --save
$ yarn add moment --save
$ yarn add prop-types --dev 

Principios de la OOP

Clases:

  1. Creación de clases:
    Si queremos guardar información, creamos una clase solo para esa funcionalidad. Estas clases se conocen como Modelos o entidades. Ejemplo Printer.
    Si necesitamos realizar una funcionalidad, creamos una clase para esto. Se las conoce como Managers, o Services Classes. Ejemplo PrinterManager.
    Estas clases suelen tener propiedades de configuración, estas nunca deben estar harcodeadas dentro. Siempre se tienen que pasar por parámetros en el constructor (Dependency Injection).
    Además, nunca se debe crear dentro de una de estas clases, una clase de estas. Es decir dentro de una clase manager no se debe crear otra clase manager. Debemos pasarle esta clase que queremos crear por parametros.
  2. Principio de única responsabilidad:
    Una clase debe tener una única responsabilidad.

Herencia:

  1. Se debe evitar dar a una clase padre información sobre las clases hijas.

PHP 7 nuevas características

Scalars Type hints:

PHP 7 agrega los type hints int, float, string y bool a los que ya existian que era Objetos y array.

function sendEmail(string $email, int $times, float $number, bool $sendNow = TRUE) {
    //..
}

Esta declaración no fuerza la comprobación, solo intenta convertir el valor al tipo declarado. Si agregamos la directiva declare(strict_types=1); al principio del archivo, si forzaremos la comprobación, pero solo en ese archivo.

Return type hints

Tambien podemos utilizar los mismos para el retorno de funciones o métodos

function sayHello(string $name) : string {
    return 'Hello '.$name;
}

Si retornamos otro valor, recibiremos un error \TypeError.

Anonymous classes:

Generator delegation:

Generator return expressions:

The null coalesce operator:

Este nuevo operador (??) nos permite escribir expresiones más cortas.

$name = $_GET['name'] ?? 'N/A';

Retorna el valor del primer operando si existe y es distinto de null sino, devuelve el segundo operando.

The spaceship operator:

Nos permite hacer comparaciones de «3 vías», es decir que el resultado de la comparación puede ser true, false y otro valor más. (expr) <=> (expr)
Este operador retorna:
A. 0 si los operandos son iguales
B. 1 si el operando de la izquierda es mayor
C. -1 si el operando de la derecha es mayor

Constant arrays

// Constante de clase
class MyApp {
    const APP = [
        'name' => 'MyApp',
        'edition' => 'Beta',
        'version' => '2.1.2',
        'licence' => 'MIT'
        ];
}

interface MyApp {
    const APP = [
        'name' => 'MyApp',
        'edition' => 'Beta',
        'version' => '2.1.2',
        'licence' => 'MIT'
        ];
}
// Constante utilizando define
define('APP', [
        'name' => 'MyApp',
        'edition' => 'Beta',
        'version' => '2.1.2',
        'licence' => 'MIT'
        ];
}

Uniform variable syntax:

Throwables: