CUA (Create-Universal-App)는 Expo (모바일), TRPC , Prisma , Tamagui (UI + Styling) 및 서기 (Mobile + Web Auth)를 사용하여 모바일 및 웹을 사용하여 모바일 및 웹 모두에 대한 내장 인증이있는 풀 스택 범용 (Mobile + Web Codeshare) 앱 을 작성하기위한 의견이 많은 템플릿입니다. 데모는 https://cua-demo.vercel.app/에서 라이브입니다.
다음은 20 분 동안 YouTube 자습서가 있습니다.
npx create-t3-universal-app 실행하여 프로젝트를 시작할 수도 있습니다 (Albbus). CUA의 특정 변형을 원한다면 다음 플래그 중 하나를 추가하십시오.
--with-supabase--with-drizzle-pg--with-drizzle-sql이것을 사용하는 동안 질문이 있으시면, 우리의? 불화?, 우리는 모두 거기에서 꽤 활동적입니다!
이 repo는 다음 위에 만들어집니다 .
프론트 엔드 코드는 React Native에 있습니다. 즉, DIV 대신 뷰를 작성하게됩니다. 우리는 특히 Tamagui를 사용하고 있기 때문에 대신 스택을 쓸 것입니다.
apps/expo 및 apps/next 실제로 packages/app 폴더를 참조하는 빈 폴더입니다. 백엔드 코드는 packages/api 에 있습니다. Nextjs는 서버리스 환경 에서이 코드를 실행할 예정입니다. 여기서 그것이 어떻게 작동하는지에 대해 약간 혼란스러워하는 경우 Theo의 좋은 비디오가 Backend 프레임 워크로서 NextJS에 대해 이야기합니다.
참고 :이 템플릿을 사용하기 전에 모든 것이 어떻게 세부적으로 작동하는지 이해할 필요가 없습니다. 모든 볼트와 너트가 어떻게 작동하는지 알고 싶어하는 사람으로서, 나는 종종 내 자신의 완벽주의에 의해 "차단"을받습니다.
TLDR : 웹과 모바일에서 물건을 예쁘게 보이게하면서 정말 빠르고 작업하기가 쉽습니다. 더 자세히 말하면 Tamagui에는 세 가지가 있습니다.
더 많은 정보를 얻으려면 문서를 확인하십시오.
Tamagui에 대해 내가 좋아하는 것은 자체 컴파일러 및 핵심 구성 요소를 갖춘 범용 앱을 위해 설계된 접지에서 구축 된 동시에 Tailwind와 Daisyui라는 것입니다.
Tamagui 대신 Nativewind & Tailwind를 자유롭게 사용하십시오. 상당히 쉽게 물건을 설정할 수 있어야합니다 (그리고이 템플릿에 기여 하여 NativeWind 설치로 분기를 생성하십시오).
Clerk는 높은 수준에서 사용자 프로필, 금지 및 장치 관리와 같은 것과 같은 인증 대신 전체 사용자 관리 솔루션을 약속합니다. 실제로, 그들은 매우 유사한 엑스포/다음 라이브러리를 사용하기에 매우 유용한 고리가있는 내장 된 엑스포/다음 라이브러리를 가지고 있습니다! 나는 개인적으로 Firebase 또는 Supabase와 같은 다른 솔루션과 비교하여 서기를 사용하는 좋은 시간을 보냈습니다.
철도에서 Postgres 인스턴스를 돌리거나 Supabase를 사용하는 것이 좋습니다. 너무 중요하지 않으므로 직접 가져올 수 있습니다.
yarn install 하고 프로젝트를 구축하십시오..env.example 파일을 복제하고 .example 제거하고 환경 변수를 입력하여 환경 변수를 올바르게 설정하십시오.yarn db-push PRISMA 스키마를 DB로 밀어 넣습니다.yarn web .yarn native . 추신 : 이것이 작동하려면 LocalHost에서 실행하는 웹 앱이 필요합니다. 3000, NextJS 앱도 백엔드라는 것을 기억하십시오!yarn studio . 추신 : TRPC 예제 쿼리에는 example_user 와 함께 삭제할 수있는 example_entry 표시됩니다.yarn dev .아래에 설명 된 프로세스를 자동화하려면 VSCODE Extension T3-CUA-Tools를 시장에서 사용할 수 있습니다. 파일을 생성하고 필요한 가져 오기 및 내비게이션 코드를 추가합니다.
packages/app/features/ 에서 새 화면을 만듭니다.packages/ui/ 에 자유롭게 넣으십시오.packages/api/src/router/ 에 새로운 routeName.ts 추가하고 index.ts 앱 라우터에 병합하십시오.apps/expo/app/ 로 이동하여 /app/features/screenName/ 에서 요소를 가져 오는 새로운 routeName.tsx 만듭니다.apps/next/pages/ 로 이동하여 이름이 Route 및 index.tsx /app/features/screenName/ 에서 요소를 가져 오는 Index.tsx를 만듭니다. Vercel에서 새 프로젝트를 만들어 Github Repo와 연결 한 후에는 환경 변수를 입력해야합니다.
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEYCLERK_SECRET_KEYDATABASE_URL 
패키지는 어디에서 설치해야합니까? 기본 코드가 포함 된 경우 /expo 폴더에 설치해야합니다.
기본 코드가 포함되어 있는지 어떻게 알 수 있습니까? 일반적으로 스토리지, 카메라, 자이로, 알림 등과 상호 작용하기 위해 API와 같은 전화 OS와 일부 상호 작용이 포함 된 경우 기본 코드가 포함됩니다!