Create-universal-App (CUA) เป็นเทมเพลตที่มีความคิดเห็นสำหรับการสร้างแอพ Universal (มือถือ + เว็บ codeshare) เต็มรูปแบบพร้อมการรับรองความถูกต้องในตัวสำหรับทั้งมือถือและเว็บโดยใช้ Expo (มือถือ), NextJs (เว็บ), TRPC , Prisma , Tamagui (ui + สไตล์) และ เสมียน การสาธิต อยู่ที่ https://cua-demo.vercel.app/
นี่คือบทช่วยสอน YouTube 20 นาทีที่ผ่านทุกอย่างถ้านั่นเป็นสไตล์ของคุณมากกว่า!
นอกจากนี้คุณยังสามารถเรียกใช้ npx create-t3-universal-app เพื่อเริ่มโครงการของคุณ (โดย Albbus) เพิ่มหนึ่งในธงต่อไปนี้หากคุณต้องการรูปแบบเฉพาะของ CUA:
--with-supabase--with-drizzle-pg--with-drizzle-sqlหากคุณมีคำถามใด ๆ ในขณะที่ใช้สิ่งนี้อย่าลังเลที่จะเข้าร่วม? Discord? เราทุกคนมีความกระตือรือร้นในนั้น!
repo นี้ทำขึ้นด้านบนของ :
รหัส ส่วนหน้า ของคุณจะอยู่ใน React Native ซึ่งหมายความว่าคุณกำลังจะเขียนมุมมองแทน divs เนื่องจากเราใช้ Tamagui โดยเฉพาะเราจะเขียนสแต็คแทนมุมมอง
apps/expo และ apps/next เป็นโฟลเดอร์ที่ว่างเปล่าซึ่งเพียงแค่ อ้างอิง packages/app ของคุณ รหัส แบ็ กเอนด์ของคุณจะอยู่ใน packages/api NextJS กำลังจะเรียกใช้รหัสนี้ในสภาพแวดล้อมที่ไม่มีเซิร์ฟเวอร์หากคุณสับสนเล็กน้อยเกี่ยวกับวิธีการทำงานที่นี่เป็นวิดีโอที่ดีโดย Theo ที่พูดถึง NextJS เป็นกรอบแบ็คเอนด์
หมายเหตุ: คุณไม่จำเป็นต้องเข้าใจว่าทุกอย่างทำงานในรายละเอียดอย่างไรก่อนที่จะเริ่มใช้เทมเพลตนี้ ในฐานะที่เป็นคนที่อยากรู้ว่าโบลต์และถั่วทำงานได้อย่างไรฉันมักจะได้รับ "บล็อก" โดยลัทธิพอใจ แต่สิ่งดีเลิศของฉันเองดังนั้นฉันแค่โยนสิ่งนี้ออกไปที่นั่นในกรณีที่คุณรู้สึกเหมือนกันเกี่ยวกับบางสิ่งบางอย่าง
TLDR : การทำให้สิ่งต่าง ๆ ดูสวยทั้งบนเว็บและมือถือในขณะที่ทำงานได้อย่างรวดเร็วและง่ายดาย ในรายละเอียดเพิ่มเติม Tamagui มี 3 สิ่ง:
ตรวจสอบเอกสารของพวกเขาสำหรับข้อมูลเพิ่มเติม
สิ่งที่ฉันชอบเกี่ยวกับ Tamagui คือมันเป็น Tailwind และ Daisyui พร้อมกันที่สร้างขึ้นจากพื้นดินที่ออกแบบมาสำหรับแอพสากลด้วยคอมไพเลอร์และส่วนประกอบหลักของตัวเอง
อย่าลังเลที่จะใช้ NativeWind & Tailwind แทน Tamagui คุณควรจะสามารถตั้งค่าสิ่งต่าง ๆ ได้อย่างง่ายดาย (และหากคุณ โปรด มีส่วนร่วมในเทมเพลตนี้ที่สร้างสาขาด้วยการติดตั้ง NativeWind)
ในระดับสูงเสมียนสัญญากับโซลูชันการจัดการผู้ใช้โดยรวมแทนที่จะเป็นเพียงการรับรองความถูกต้องกับสิ่งต่าง ๆ เช่นโปรไฟล์ผู้ใช้การห้ามและการจัดการอุปกรณ์ในตัว ในทางปฏิบัติพวกเขามี Expo/Next Library ที่คล้ายกันมากพร้อมตะขอในตัวที่ใช้งานได้ดีมาก! โดยส่วนตัวแล้วฉันมีช่วงเวลาที่ดีในการใช้เสมียนเมื่อเทียบกับโซลูชันอื่น ๆ เช่น Firebase หรือ Supabase
ฉันขอแนะนำให้คุณหมุนอินสแตนซ์ postgres บนรถไฟหรือใช้ supabase คุณสามารถนำของคุณเองเพราะมันไม่สำคัญมากเกินไป
yarn install เพื่อติดตั้งแพ็คเกจและสร้างโครงการ.env.example , ลบ .example และเข้าสู่ตัวแปรสภาพแวดล้อมของคุณyarn db-push เพื่อผลักดันสคีมา Prisma ของเราไปยังฐานข้อมูลของเราyarn web เพื่อเริ่มต้นเว็บเซิร์ฟเวอร์yarn native เพื่อทำงานบน iOS หรือ Android PS : สำหรับสิ่งนี้ในการทำงานคุณจะต้องใช้เว็บแอปของคุณที่ทำงานบน LocalHost: 3000 โปรดจำไว้ว่าแอป NextJS ของคุณเป็นแบ็กเอนด์ของคุณด้วย!yarn studio เพื่อเริ่มต้นสตูดิโอ Prisma ของคุณ PS : Query ตัวอย่าง TRPC จะแสดง example_entry ที่คุณสามารถลบได้พร้อมกับ example_user ที่เชื่อมต่อ _useryarn dev เพื่อเริ่มต้นแพ็คเกจและแอปพลิเคชันทั้งหมดพร้อมกันในการทำให้กระบวนการที่อธิบายไว้ด้านล่างโดยอัตโนมัติคุณสามารถใช้ VSCODE Extension T3-CUA-Tools ซึ่งมีอยู่ในตลาด มันจะสร้างไฟล์และเพิ่มการนำเข้าที่จำเป็นและรหัสการนำทางให้คุณ
packages/app/features/packages/ui/routeName.ts ใหม่ใน packages/api/src/router/ และตรวจสอบให้แน่ใจว่าได้รวมเข้ากับเราเตอร์แอพ index.tsapps/expo/app/ และสร้าง routeName.tsx ใหม่ที่นำเข้าองค์ประกอบของคุณจาก /app/features/screenName/apps/next/pages/ สร้างโฟลเดอร์ใหม่โดยมีชื่อเป็นเส้นทางของคุณและ index.tsx ที่นำเข้าองค์ประกอบของคุณจาก /app/features/screenName/ หลังจากที่คุณได้สร้างโครงการใหม่บน Vercel และเชื่อมโยงกับ GitHub repo ของคุณแล้วคุณจะต้องป้อนตัวแปรสภาพแวดล้อมของคุณ:
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEYCLERK_SECRET_KEYDATABASE_URL 
ฉันควรติดตั้งแพ็คเกจที่ไหน หากมีรหัสดั้งเดิมคุณต้องติดตั้งลงในโฟลเดอร์ /expo
ฉันจะรู้ได้อย่างไรว่ามันมีรหัสดั้งเดิม? โดยทั่วไปถ้ามันเกี่ยวข้องกับการโต้ตอบกับระบบปฏิบัติการโทรศัพท์เช่น APIs เพื่อโต้ตอบกับการจัดเก็บ, กล้อง, ไจโร, การแจ้งเตือน ฯลฯ มันเกี่ยวข้องกับรหัสดั้งเดิม!