Create-Universal-App (CUA) هو قالب رأي لإنشاء تطبيقات عالمية كاملة (Mobile + Web Web) مع مصادقة مدمجة لكل من الهاتف المحمول والويب باستخدام Expo (Mobile) ، NextJS (Web) ، TRPC ، Prisma ، Tamagui (UI + styling) ، و Clerk (Mobile + 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 ، مما يعني أنك ستكتب طرق العرض بدلاً من divs. نظرًا لأننا نستخدم Tamagui على وجه الخصوص ، سنقوم بكتابة مداخن بدلاً من ذلك.
apps/expo والتطبيقات apps/next هي مجلدات فارغة عملياً تشير ببساطة إلى مجلد packages/app . سيكون رمز الواجهة الخلفية في packages/api . ستقوم NextJS بتشغيل هذا الرمز في بيئة بدون خادم ، إذا كنت مرتبكًا قليلاً حول كيفية عمل ذلك ، فهذا مقطع فيديو جيد من قبل Theo يتحدث عن NextJS كإطار عمل خلفي.
ملاحظة: لا تحتاج إلى فهم كيفية عمل كل شيء بالتفصيل قبل أن تتمكن من البدء في استخدام هذا القالب. بصفتي شخصًا يريد أن يعرف كيف يعمل كل الترباس والجوز ، غالبًا ما أحصل على "محظور" من خلال الكمال الخاص بي ، لذلك أنا فقط أرمي هذا في حال كنت تشعر بنفس الشيء بشأن شيء ما.
TLDR : إنه لجعل الأمور تبدو جميلة على الويب والجوال مع كونها سريعة وسهلة للغاية للعمل معها. بمزيد من التفصيل ، لدى Tamagui 3 أشياء:
تحقق من مستنداتهم لمزيد من المعلومات.
ما يعجبني في Tamagui هو أنه في وقت واحد من الرياح الخلفية و Daisyui التي تم تصميمها من الألف إلى الياء المصممة للتطبيقات العالمية مع المترجم الخاص بها ومكوناتها الأساسية.
لا تتردد في استخدام NativeWind & Tailwind بدلاً من Tamagui ، يجب أن تكون قادرًا على إعداد الأمور بسهولة إلى حد ما (وإذا قمت بالمساهمة في هذا القالب إنشاء فرع مع تثبيت NativeWind).
على مستوى عالٍ ، يعد الموظف حلاً إجماليًا لإدارة المستخدم بدلاً من المصادقة فقط مع أشياء مثل ملف تعريف المستخدم والحظر وإدارة الأجهزة المدمجة. في الممارسة العملية ، لديهم مكتبة متشابهة للغاية/مكتبة التالية مع خطافات مدمجة لطيفة للغاية للاستخدام! لقد قضيت وقتًا رائعًا في استخدام الموظف مقارنةً بالحلول الأخرى مثل Firebase أو Supabase.
أوصيك إما أن تدور حول مثيل Postgres على السكك الحديدية أو استخدام Supabase ، يمكنك إحضارها لأنها لا تهم كثيرًا.
yarn install لتثبيت الحزم وبناء المشروع..env.example ، وإزالة .example ، وإدخال متغيرات البيئة الخاصة بك.yarn db-push لدفع مخططنا المنشور إلى ديسيبل لدينا.yarn web لبدء خادم ويب ديف.yarn native لتشغيل على iOS أو Android. ملاحظة : لكي يعمل هذا ، ستحتاج إلى تطبيق الويب الخاص بك على LocalHost: 3000 ، تذكر أن تطبيق NextJS الخاص بك هو أيضًا الواجهة الخلفية الخاصة بك!yarn studio لبدء استوديو Prisma الخاص بك. PS : سيظهر استعلام TRPC مثال example_entry التي يمكنك حذفها مع example_user المتصل.yarn dev لبدء جميع الحزم والتطبيقات في وقت واحد.لأتمتة العملية الموضحة أدناه ، يمكنك استخدام T3-CUA Tools ، المتوفر أيضًا في Marketplace. سيقوم بإنشاء الملفات ويضيف لك رمز الواردات والملاحة اللازمة لك.
packages/app/features/ .packages/ui/ .routeName.ts جديد في packages/api/src/router/ وتأكد من دمجه في جهاز توجيه تطبيق index.ts .apps/expo/app/ وقم بإنشاء routeName.tsx جديد. TTSX يقوم باستيراد العنصر الخاص بك من /app/features/screenName/ .apps/next/pages/ ، قم بإنشاء مجلد جديد يحمل الاسم هو مسارك index.tsx /app/features/screenName/ بعد أن تقوم بإنشاء مشروع جديد على Vercel وربطه مع Github Repo ، عليك إدخال متغيرات البيئة الخاصة بك:
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEYCLERK_SECRET_KEYDATABASE_URL 
أين يجب أن أقوم بتثبيت الحزم؟ إذا كان يحتوي على رمز أصلي ، فيجب عليك تثبيته في مجلد /expo .
كيف أعرف ما إذا كان يحتوي على رمز أصلي؟ بشكل عام ، إذا كان يتضمن بعض التفاعلات مع نظام تشغيل الهاتف مثل واجهات برمجة التطبيقات للتفاعل مع التخزين ، والكاميرا ، والعينين ، والإخطار ، وما إلى ذلك ، فهو يشمل التعليمات البرمجية الأصلية!