Create-Universal-App(CUA)是一個自信的模板,用於使用Expo (移動)(移動), NextJS (Web), TRPC , Prisma , Tamagui (UI +樣式)和Clerk (Mobile + Web Auth)創建具有移動和Web內置auth的全堆棧應用程序。演示現場直播在https://cua-demo.vercel.app/。
這是20分鐘的YouTube教程,如果您的風格更多,則可以介紹所有內容!
您還可以運行npx create-t3-universal-app以啟動您的項目(由Albbus)。如果您想要CUA的特定變體,請添加以下標誌之一:
--with-supabase--with-drizzle-pg--with-drizzle-sql如果您在使用此操作時有任何疑問,請隨時加入我們的“ Discord?”,我們都非常活躍!
此存儲庫是最重要的:
您的前端代碼將在React Native中,這意味著您將寫視圖而不是DIV。由於我們特別使用tamagui,因此我們將撰寫堆棧的視圖。
apps/expo和apps/next實際上是空的文件夾,它們只是引用您的packages/app文件夾。您的後端代碼將在packages/api中。 NextJS將在無服務器環境中運行此代碼,如果您對工作的工作方式有些困惑,那麼Theo的一個很好的視頻就將其作為後端框架。
注意:在開始使用此模板之前,您不需要了解所有內容的詳細工作。作為一個想知道每個螺栓和螺母如何工作的人,我經常被自己的完美主義“阻止”,所以我只是把它扔到那裡,以防萬一您對某些事情有同樣的感覺。
TLDR :這是為了使事情在網絡和移動設備上看起來都很漂亮,同時確實非常快速,易於使用。更詳細地,塔瑪古有3件事:
查看他們的文檔以獲取更多信息。
我喜歡tamagui的是,它同時又是尾風和daisyui,它是為具有自己的編譯器和核心組件的通用應用而設計的。
可以隨意使用本地風和尾風而不是tamagui,您應該能夠輕鬆地設置物品(如果您確實為此,請為此模板做出貢獻,以創建帶有本機溫安裝的分支)。
在高水平上,店員承諾提供總體用戶管理解決方案,而不僅僅是用戶配置文件,禁令和設備管理諸如內置的驗證。實際上,他們有一個非常相似的博覽會/下一個庫,內置鉤子非常好!與Firebase或Supabase(例如Firebase或Supabase)相比,我個人度過了愉快的時光。
我建議您要么在鐵路上旋轉一個Postgres實例,要么使用Supabase,您可以攜帶自己的實例,因為它並不重要。
yarn install以安裝軟件包並構建項目。.env.example文件,刪除.example並輸入環境變量來正確設置環境變量。yarn db-push將我們的Prisma模式推向DB。yarn web啟動Web Dev服務器。yarn native可以在iOS或Android上運行。 PS :為此,您需要在Localhost:3000上運行的Web應用程序,請記住,您的NextJS應用也是您的後端!yarn studio啟動您的Prisma Studio。 PS :TRPC示例查詢將顯示一個example_entry ,您可以與連接的example_user一起刪除該示例。yarn dev同時啟動所有軟件包和應用程序。為了自動化下面說明的過程,您可以使用Marketplace也可以使用的VSCODE擴展T3-CUA-Tools。它將創建文件,並為您添加必要的導入和導航代碼。
packages/app/features/中創建新屏幕。packages/ui/ 。packages/api/src/router/中的新routeName.ts ,並確保將其合併到index.ts應用程序路由器中。apps/expo/app/然後創建一個新的routeName.tsx ,該tsx正在/app/features/screenName/中導入您的元素。apps/next/pages/ ,創建一個新文件夾,其中名稱為您的路由和一個index.tsx ,該文件正在從/app/features/screenName/中導入您的元素。 在您在Vercel上創建了一個新項目並將其與您的GitHub存儲庫鏈接在一起後,您必須輸入您的環境變量:
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEYCLERK_SECRET_KEYDATABASE_URL 
我應該在哪里安裝軟件包?如果它包含本機代碼,則必須將其安裝到/expo文件夾中。
我怎麼知道它是否包含本機代碼?通常,如果它涉及與手機OS(例如API)的一些交互,以與存儲,相機,陀螺儀,通知等進行交互。它涉及本機代碼!