Conexión a Servidores de Internet
Definiciones
Establecer comunicación entre el dispositivo del usuario y un servidor remoto (normalmente mediante internet) para enviar o recibir información.
| Servidor | Uso |
|---|---|
| Servidor de archivos | Guarda documentos o imágenes. |
| Servidor web | Entrega páginas o APIs (como REST o GraphQL). |
| Servidor de bases de datos | Almacena la información estructurada. |
| Servidor de aplicaciones | Ejecuta lógica de negocio (ej. autenticación, análisis, procesamiento). |
Las apps móviles no se conectan directamente a bases de datos como MySQL. Siempre lo hacen a través de una API.
// Petición GET desde React Native
fetch("https://api.midominio.com/productos")
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error("Error al conectar:", error));
| Recomendación | ¿Por qué es importante? |
|---|---|
| Usar APIs intermedias | Nunca exponer directamente la base de datos |
| Validar datos en servidor | Evita inyecciones y errores de seguridad. |
| Manejar errores de conexión | Los usuarios móviles pueden perder conexión fácilmente. |
| Sincronización offline | Mejora la experiencia de usuario cuando no hay internet. |
Requisitos:
Crear Base de Datos:
CREATE DATABASE tienda;
USE tienda;
CREATE TABLE productos (
id INT AUTO_INCREMENT PRIMARY KEY,
nombre VARCHAR(100),
precio DECIMAL(10,2)
);
INSERT INTO productos (nombre, precio) VALUES ('Camisa', 250.00), ('Pantalón', 400.00);
Parte 2: Crear API PHP (server local):
Estructrua:
/htdocs/tienda-api/
├── conexion.php
├── obtener_productos.php
Conexión a la Base de Datos:
$host = "localhost";
$user = "root";
$password = "";
$db = "tienda";
$conn = new mysqli($host, $user, $password, $db);
if ($conn->connect_error) {
die("Conexión fallida: " . $conn->connect_error);
}
obtener_productos.php (API):
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
include("conexion.php");
$sql = "SELECT * FROM productos";
$result = $conn->query($sql);
$productos = array();
while($row = $result->fetch_assoc()) {
$productos[] = $row;
}
echo json_encode($productos);
$conn->close();
Parte 3:
App Móvil en React Native
npx create-expo-app tiendaApp --template -blank
cd tiendaApp
npx expo start
La innovación distingue a los líderes de los seguidores
- Steve Jobs
¿Dudas, preguntas, comentarios?.