Create-universal-App (CUA) ist eine Meinung für die Erstellung von Apps mit Full-Stack-Universal (Mobile + Web Codeshare) mit integriertem AUTH für Mobile und Web mit Expo (Mobile), NextJS (Web), TRPC , Prisma , Tamagui (UI + Styling) und Clerk (Mobile + Web Author). Eine Demo ist live unter https://cua-demo.vercel.app/.
Hier ist ein 20 -minütiges YouTube -Tutorial, das alles übergeht, wenn das mehr von Ihrem Stil ist!
Sie können auch npx create-t3-universal-app ausführen, um Ihr Projekt (von Albbus) zu starten. Fügen Sie eine der folgenden Flags hinzu, wenn Sie eine bestimmte Variation von CuA wünschen:
--with-supabase--with-drizzle-pg--with-drizzle-sqlWenn Sie während der Verwendung eine Frage haben, können Sie sich unserer Diskordie anschließen? Wir sind alle ziemlich aktiv drin!
Dieses Repo wird oben gemacht :
Ihr Frontend -Code wird in React Native sein, was bedeutet, dass Sie Ansichten anstelle von Divs schreiben werden. Da wir insbesondere Tamagui verwenden, werden wir Statts stattdessen Ansichten schreiben.
apps/expo und apps/next sind praktisch leere Ordner, die einfach auf Ihren packages/app -Ordner verweisen . Ihr Backend -Code wird in packages/api sein. NextJS wird diesen Code in einer serverlosen Umgebung ausführen. Wenn Sie ein wenig verwirrt sind, wie das funktioniert. Hier ist ein gutes Video von Theo, das über NextJs als Backend -Framework spricht.
Hinweis: Sie müssen nicht verstehen, wie alles im Detail funktioniert, bevor Sie diese Vorlage verwenden können. Als jemand, der wissen möchte, wie jede Bolzen und Nuss funktioniert, werde ich oft durch meinen eigenen Perfektionismus "blockiert", also werfe ich das nur raus, falls du das Gleiche über etwas fühlst.
TLDR : Es ist sowohl im Web als auch im Handy, die Dinge hübsch aussehen, und gleichzeitig wirklich schnell und einfach zu arbeiten. Ausführlicher hat Tamagui 3 Dinge:
Weitere Informationen finden Sie in ihren Dokumenten.
Was ich an Tamagui mag, ist, dass es gleichzeitig Rückenwind und Daisyui ist, das von Grund auf für universelle Apps mit eigenen Compiler- und Kernkomponenten entwickelt wurde.
Fühlen Sie sich frei, nativeWind & Tailwind anstelle von Tamagui zu verwenden.
Auf hohem Niveau verspricht Clerk eine allgemeine Lösung für Benutzerverwaltung anstelle einer Authentifizierung mit Dingen wie dem integrierten Benutzerprofil, Verbot und Geräteverwaltung. In der Praxis haben sie eine sehr ähnliche Expo/nächste Bibliothek mit eingebauten Haken, die sehr schön zu verwenden sind! Ich persönlich hatte eine großartige Zeit mit dem Angestellten im Vergleich zu anderen Lösungen wie Firebase oder Supabase.
Ich empfehle Ihnen entweder eine Postgres -Instanz auf der Eisenbahn oder verwenden Sie Supabase. Sie können Ihre eigene mitbringen, da dies nicht zu viel spielt.
yarn install , um Pakete zu installieren und das Projekt zu erstellen..env.example -Datei, Entfernen von .example und Ihre Umgebungsvariablen eingeben.yarn db-push , um unser Prisma-Schema auf unsere DB zu bringen.yarn web zum Starten eines Web Dev -Servers.yarn native auf iOS oder Android läuft. PS : Damit dies funktioniert, benötigen Sie Ihre Web -App auf Localhost: 3000. Denken Sie daran, dass Ihre nächste J -App auch Ihr Backend ist!yarn studio , um Ihr Prisma -Studio zu starten. PS : Die TRPC -Beispielabfrage zeigt ein example_entry an, das Sie zusammen mit dem angeschlossenen example_user löschen können.yarn dev , um alle Pakete und Anwendungen gleichzeitig zu starten.Um den nachstehend erläuterten Prozess zu automatisieren, können Sie die VSCODE-Erweiterung T3-CUA-Tools verwenden, die ebenfalls auf dem Markt erhältlich ist. Es wird die Dateien erstellt und die erforderlichen Importe und Navigationscode für Sie hinzugefügt.
packages/app/features/ .packages/ui/ einfügen.packages/api/src/router/ index.ts neuen routeName.ts hinzu.apps/expo/app/ und erstellen Sie einen neuen routeName.tsx , der Ihr Element aus /app/features/screenName/ importiert.apps/next/pages/ Erstellen Sie einen neuen Ordner mit dem Namen Ihre Route und einen index.tsx , der Ihr Element aus /app/features/screenName/ importiert. Nachdem Sie ein neues Projekt auf Vercel erstellt und mit Ihrem Github -Repo verknüpft haben, müssen Sie Ihre Umgebungsvariablen eingeben:
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEYCLERK_SECRET_KEYDATABASE_URL 
Wo soll ich die Pakete installieren? Wenn es einen nativen Code enthält, müssen Sie ihn in den /expo -Ordner installieren.
Woher weiß ich, ob es nativen Code enthält? Im Allgemeinen, wenn es einige Interaktionen mit dem Telefon -Betriebssystem wie die APIs umfasst, um mit Speicher, Kamera, Gyro, Benachrichtigung usw. zu interagieren. Es handelt sich um native Code!