Create-Universal-APP (CUA) es una plantilla obstinada para crear aplicaciones universales de pila completa (móvil + webshare) con autenticación incorporada para dispositivos móviles y web utilizando Expo (Mobile), NextJS (Web), TRPC , Prisma , Tamagui (UI + Styling) y Clerk (Mobile + Web Auth). Una demostración está en vivo en https://cua-demo.vercel.app/.
¡Aquí hay un tutorial de YouTube de 20 minutos que repasa todo si ese es más de tu estilo!
También puede ejecutar npx create-t3-universal-app para comenzar su proyecto (por Albbus). Agregue una de las siguientes banderas si desea una variación específica de CUA:
--with-supabase--with-drizzle-pg--with-drizzle-sqlSi tiene alguna pregunta mientras usa esto, siéntase libre de unirse a nuestro? Discord?, ¡Todos somos bastante activos allí!
Este repositorio está hecho además de :
Su código frontend será en React Native, lo que significa que va a escribir puntos de vista en lugar de DIV. Dado que estamos usando Tamagui en particular, vamos a escribir pilas en lugar de vistas.
apps/expo y apps/next son carpetas prácticamente vacías que simplemente están haciendo referencia a sus packages/app . Su código de backend estará en packages/api . NextJS ejecutará este código en un entorno sin servidor, si está un poco confundido acerca de cómo funciona, aquí hay un buen video de Theo que habla sobre NextJS como un marco de backend.
Nota: No necesita comprender cómo funciona todo en detalle antes de poder comenzar a usar esta plantilla. Como alguien que quiere saber cómo funciona cada perno y tuerca, a menudo me "bloquean" por mi propio perfeccionismo, por lo que solo estoy lanzando esto en caso de que sienta lo mismo sobre algo.
TLDR : Es para hacer que las cosas se vean bonitas tanto en la web como en el móvil, mientras que es realmente rápido y fácil de trabajar. Con más detalle, Tamagui tiene 3 cosas:
Echa un vistazo a sus documentos para obtener más información.
Lo que me gusta de Tamagui es que es simultáneamente el viento de cola y Daisyui que se construyen desde cero diseñados para aplicaciones universales con su propio compilador y componentes centrales.
Siéntase libre de usar nationwind & tailwind en lugar de tamagui, debería poder configurar las cosas con bastante facilidad (y si lo hace , contribuye a esta plantilla creando una rama con la instalación de NativeWind).
En un alto nivel, el empleado promete una solución general de administración de usuarios en lugar de solo autenticación con cosas como el perfil de usuario, la prohibición y la administración de dispositivos incorporadas. En la práctica, tienen una biblioteca de Expo/Next muy similar con ganchos incorporados que son muy agradables de usar. Personalmente, la he pasado muy bien usando empleado en comparación con otras soluciones como Firebase o Supabase.
Le recomiendo que gire una instancia de Postgres en el ferrocarril o use Supabase, puede traer el suyo, ya que no importa demasiado.
yarn install para instalar paquetes y construir el proyecto..env.example , eliminando .example e ingresando sus variables de entorno.yarn db-push para empujar nuestro esquema de Prisma a nuestro DB.yarn web para iniciar un servidor de desarrollo web.yarn native para ejecutar en iOS o Android. PD : Para que esto funcione, necesitará que su aplicación web se ejecute en Localhost: 3000, ¡recuerde que su aplicación NextJS también es su backend!yarn studio para comenzar su estudio de Prisma. PS : La consulta de ejemplo TRPC mostrará un example_entry que puede eliminar junto con el example_user conectado.yarn dev para iniciar todos los paquetes y aplicaciones simultáneamente.Para automatizar el proceso explicado a continuación, puede utilizar las herramientas de extensión T3-CUA de VSCODE, también disponibles en el mercado. Creará los archivos y agregará las importaciones necesarias y el código de navegación para usted.
packages/app/features/ .packages/ui/ .routeName.ts en packages/api/src/router/ y asegúrese de fusionarlo en el enrutador de aplicaciones index.ts .apps/expo/app/ y cree un nuevo routeName.tsx que importa su elemento desde /app/features/screenName/ .apps/next/pages/ , cree una nueva carpeta con el nombre de su ruta y un index.tsx que está importando su elemento desde /app/features/screenName/ . Después de haber creado un nuevo proyecto en Vercel y vincularlo con su repositorio de GitHub, tendrá que ingresar sus variables de entorno:
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEYCLERK_SECRET_KEYDATABASE_URL 
¿Dónde debo instalar los paquetes? Si contiene código nativo, debe instalarlo en la carpeta /expo .
¿Cómo sé si contiene código nativo? En general, si implica algunas interacciones con el sistema operativo del teléfono como las API para interactuar con almacenamiento, cámara, giroscopio, notificación, etc. ¡Involucra el código nativo!