Act Sem 23-30Jun - Compras Google Play/PIP Flutter - Laravel Herd 504 -Pagos Manuales Tienda Online

Bienvenidos a otra semana en la cual paso a hablar sobre todas las actualizaciones ocurridas, tanto en mi canal de YouTube como en mi blog.

YouTube/Blog

Opinión sobre calificaciones injustas en Steam
Subí un video un poco de opinión, en el cual comento una reflexión del creador de Ori —un famoso videojuego que me encanta— donde él opina que en plataformas como Steam hay personas que juegan 60 horas (por dar un ejemplo), pero luego colocan una estrella. No tiene sentido, al menos para mí, y tampoco para él.

Lo peor es que hay gente que compra, lo devuelve, pero antes de devolverlo deja una calificación negativa... ¡y esa reseña se queda allí! Lo mismo sucede en plataformas como Udemy. Ese fue el tema principal discutido en ese video.

"No creo que esto deba permitirse" El creador de Ori revela un problema sobre las reseñas en Steam - https://youtu.be/8NztwQn_Xd8

Compras en Flutter + Google Play
También publiqué cómo realizar compras desde una aplicación en Flutter para Android, mediante el plugin que estás viendo en pantalla. Este es el mismo que utilizo en mi aplicación Academia. Recordemos que, si estás ofreciendo un servicio digital, Google obliga a usar su propia plataforma de pagos. No se puede emplear PayPal ni ninguna alternativa externa.

Comprar dentro de la aplicación en Flutter/Android con in_app_purchase - Google Play - https://youtu.be/s5evTBvxUNA

Error 504/503 en Laravel
¿Te apareció un error 504 o 503? Estos errores no muestran ningún "log" visible en pantalla, por lo que suelen ser errores del servidor o de PHP. En el video muestro los pasos que seguí para encontrar la causa y cómo lo resolví.

Laravel Herd - Reparar errores 504 - 503 PHP y Nginx- https://youtu.be/hVFHPk6r5hc

Parámetros opcionales en rutas de Laravel
También hablé sobre los parámetros opcionales en rutas en Laravel. Personalmente, no me gusta cómo funcionan, ya que si un parámetro no está definido, en lugar de devolverte null, Laravel intenta buscar un modelo inexistente, lo que puede causar errores inesperados.

Parámetros opcionales en las rutas de Laravel NO tienen sentido... - Opinión - https://youtu.be/q8bbQXIl3kI

Bucle de Audios en Unreal Engine 5
En mi otro canal de YouTube, mostré cómo puedes pausar y reanudar audios que están en bucle, algo muy útil si estás desarrollando videojuegos.

Bucle de Audios en Unreal Engine 5 y Pausar/Play a gusto - https://youtu.be/jyHE-A-7o-A

Hub USB que no sabía que necesitaba
Además, comento sobre un hub USB que descubrí que necesitaba sin saberlo. Me permite desconectar dispositivos con un simple botón. Esto me ha hecho la vida más fácil y ha mantenido mi escritorio mucho más limpio.

No sabía que necesitaba este Hub USB hasta que lo tuve... - https://youtu.be/vf1FTiuyI0Y

Picture-in-Picture en Flutter
Mostré cómo implementar el modo Picture in Picture (PIP) en Flutter, como lo uso en mi app Academia. Al presionar el botón, el video pasa a modo flotante y puedes redimensionarlo fácilmente. Al hacer clic nuevamente, el video vuelve a reproducirse a pantalla completa. Muy útil para mejorar la experiencia de usuario.

Modo Picture in Picture en Flutter en Android, Implementación y consejos - https://youtu.be/hC-4VRGIyJc

Curso/Libro Tienda en línea


Registro de pagos manuales
Dentro del curso, también avanzamos en una sección importante: el registro de pagos manuales. Esto es útil si un usuario tiene un problema con su método de pago o si compró un producto y, por alguna razón, no se registró correctamente. Aquí mostramos cómo manejarlo paso a paso, ya que estamos trabajando con relaciones polimórficas entre libros y productos.

Perfil de usuario y traducciones
Continuamos con buenas prácticas y trabajamos la sección de traducciones. Desde el perfil del usuario se puede cambiar el idioma de la aplicación (por ejemplo, de inglés a español). Aunque no es un cambio en tiempo real completo, sí permite que múltiples secciones cambien correctamente usando Livewire.

Gestión de cupones: un desafío técnico
El módulo de cupones ha sido uno de los más complicados. A simple vista parece sencillo, pero cuando manejas precios dinámicos, se complica mucho. Por ejemplo, si tienes un producto de $15 y un cupón de $2, el nuevo precio debería ser $13, 

La verdadera complicación viene al momento de aplicar el cupón después de que se ha generado la interfaz de pagos. Como Livewire es una SPA (Single Page Application), la vista ya está cargada y no puedes inyectar JavaScript dinámicamente desde Livewire como lo harías en una app tradicional.

  1. Pagos en dashboard: Pagos manuales

    1. Implementamos opción de pagos locales para crear y actualizar.

  2. Pagos en dashboard: Pagos manuales, Paymable

    1. Definimos el campo de paymable para los formularios de crear y editar.

  3. Pagos en dashboard: Filtros

    1. Implementamos un sistema de filtros para el listado.

  4. Pagos en dashboard: Filtros, tipos al seleccionar producto

    1. Al seleccionar el tipo producto es un producto, definimos un filtro para los tipos.

  5. Vista de perfil para el usuario

    1. Creamos la pagina de perfil del usuario

  6. Vista perfil para el curso: Traducción

    1. Vamos a crear las configuraciones para permitir la app multi idioma.

  7. Vista perfil para el curso: Cambiar lenguaje

    1. Implementamos el componente de perfil la opción de cambiar el lenguaje.

  8. Middleware para actualizar el idioma

    1. Creamos in middleware para TODAS las rutas de web para actualizar el lenguaje.

  9. Cupón: Migración y Modelo

    1. Crearemos la migración y el modelo para los cupones.

  10. Cupón: Dashboard

    1. Creamos el proceso administrativo para los cupones.

  11. Cupón: Generar

    1. Vamos a generar el cupón de manera automatizada.

  12. Cupón: Componente de Livewire para el pago

    1. Te muestro un error sobre el ciclo de vida de Alpine por el cual, tengamos que adaptar el desarrollo posterior.

  13. Layout para la tienda

    1. Creamos un nuevo layout para la tienda.

  14. Problemas con eventos de Livewire (Ej, wire:click) y ejecutar JavaScript

    1. Hablamos sobre los eventos de Livewire y la inyección de JS.

Acepto recibir anuncios de interes sobre este Blog.

Youtube/Blog Compras Google Play Flutter - Laravel Herd 504 - Parámetros opcionales en rutas Laravel PIP Flutter Curso/Libro Pagos Manuales - Traducciones - Generar cupones

| 👤 Andrés Cruz

🇺🇸 In english