“Vibe coding” تعني إسناد العبء الثقيل إلى ذكاء اصطناعي قوي بينما تقود، تختبر، وتكرّر باللغة الإنجليزية البسيطة. إنها جديدة، رائجة، ونعم—يمكنك بناء تطبيق جوّال صغير بها في عطلة نهاية هذا الأسبوع.
بالنسبة للمبتدئ غير التقني، هذه هي التذكرة الذهبية. لم تعد بحاجة إلى قضاء ستة أشهر في تعلّم الفرق بين "float" و"string". إذا استطعت وصف ما تريد، يمكنك بناؤه. سيأخذك هذا الدليل عبر أحدث الأخبار في هذا التوجّه ويقدّم خارطة طريق احترافية، خطوة بخطوة، لبناء أول تطبيق جوّال صغير لك.
ما هي Vibe Coding ولماذا يتحدث الجميع عنها؟
"Vibe coding" ليست مجرد مصطلح دارج؛ إنها تحوّل جذري في كيفية تفاعل البشر مع الحواسيب لإنشاء البرمجيات. صاغها باحث الذكاء الاصطناعي Andrej Karpathy مطلع 2025، والفلسفة بسيطة: أنت تركز على النية (الـ"vibe")، والذكاء الاصطناعي يتكفّل بالنحو البرمجي (الكود).
في البرمجة التقليدية، أنت عامل البناء الذي يضع كل لبنة (سطر كود) بيديه. في vibe coding، أنت الـمهندس المعماري. تقول للذكاء الاصطناعي: "أريد غرفة معيشة حديثة تطل على البحر"، فيبني الغرفة فوراً. إن لم يعجبك الأريكة، لا تهدمها بنفسك؛ فقط قل: "اجعل الأريكة زرقاء."
ما الفرق بين vibe coding و"no-code" أو "low-code"؟
- No-code: أدوات سحب‑و‑إفلات، كتل محددة مسبقاً، مناسبة جداً للمبتدئين لكن محدودة للسلوكيات المخصّصة.
- Low-code: مزيج من أدوات مرئية + كود، للمستخدمين المتقدمين الذين يريدون السرعة مع التخصيص.
- Vibe coding: لغة طبيعية → كود مُنشأ بواسطة الذكاء الاصطناعي (غير محدود عملياً)، لكن يجب عليك التحقق من النتائج واختبارها. ليست بديلاً عن هندسة البرمجيات بعد — إنها أداة قوية إضافية في صندوق الأدوات.
هل هي آمنة للمبتدئين تماماً؟
نعم — للنمذجة الأولية، التعلّم، وإطلاق تطبيقات صغيرة — ولكن مع محاذير:
- يمكنك الحصول على تطبيق عامل بسرعة، وهذا رائع للتحفيز.
- يجب أن تختبر الوظائف وتفهم القيود: قد يُدخل الذكاء الاصطناعي ثغرات أمنية، بنية معمارية ركيكة، وتكاليف مفاجئة إذا استخدمت حوسبة كثيفة.
ما الأدوات التي ينبغي استخدامها لـ vibe coding— وكم ستكلّف؟
ما الأدوات الأساسية (ولماذا)؟
الأدوات: مساعدو LLM (ChatGPT / Gemini / Claude / نماذج مفتوحة المصدر) + Expo (React Native) أو Flutter + واجهة خلفية Supabase/Firebase.
لماذا هذا الاختيار: ستحصل على القدرة على تحديد أي شيء، ومع ذلك تعتمد على الذكاء الاصطناعي لكتابة كود عامل. هذا المسار مثالي إذا أردت تعلّم القليل من الكود مع البقاء في معظم الوقت ضمن حوار طبيعي مع نموذج لغوي. استخدم النموذج لتوليد وحدات صغيرة، اختبرها محلياً، وكرّر. للهاتف المحمول، Expo (React Native) خيار ودود لأنه يجعل اختبار الأجهزة سهلاً. إذا أردت واجهات سحب‑و‑إفلات مع كود مُصدَّر، اجمع مع FlutterFlow.
إليك سلسلة أدوات قليلة ومفيدة لمبتدئ غير تقني يريد "vibe coding" لتطبيق جوّال:
- Cursor — بيئة تطوير IDE للترميز بالذكاء الاصطناعي محلياً/سحابياً مع وكلاء وإكمال بالتاب. ممتاز لسير عمل تفاعلي قائم على الوكلاء؛ طبقة مجانية للتجربة؛ خطط Pro موجودة للاستخدام الموسّع.
- Claude Code (Anthropic) — مساعد ترميز وكيل/CLI وتجربة ويب جيد لتوليد كود عالي المستوى ومنظم مع مطالبات تكرارية. مفيد كبديل لـ Cursor أو إلى جانبه.
- Expo (React Native) — أسهل طريق لتطبيق جوّال عبر الأنظمة للمبتدئين. يتكفّل Expo بالبناء، والاختبار على هاتفك عبر Expo Go، ولديه طبقة مجانية سخية.
- Firebase (واجهة خلفية اختيارية) — مصادقة/قاعدة بيانات/تخزين بسيط. طبقة Spark مجانية للنماذج الصغيرة؛ Blaze بالدفع حسب الاستخدام إذا توسّعت.
ماذا عن التكاليف؟
الحزمة الموصى بها للبداية (أسرع طريق لتطبيق جوّال صغير):
- Cursor: مجاناً كبداية؛ Pro بسعر 20$/شهرياً إن أردت استخداماً أكثر للوكلاء (مستويات Pro+ وUltra موجودة).
- Claude: لديه مستويات Free/Pro/Max؛ الاستخدام القوي قد يحتاج خططاً مدفوعة (مستويات Max قد تكون 100$+/شهرياً). انتبه أيضاً لحدود أسبوعية للوكلاء كثيفي الاستخدام.
- Expo: يشغّل iOS وAndroid من نفس قاعدة كود JavaScript، أدوات تطوير ممتازة ومعاينة على الجهاز عبر Expo Go. طبقة بداية مجانية؛ خطط مدفوعة لـ CI/CD/أرصدة البناء تبدأ قرابة 19$/شهرياً.
- Firebase: طبقة Spark مجانية للاختبار؛ Blaze للإنتاج (الدفع حسب الوحدة).
- Replit (اختياري) — محرّر قائم على المتصفح + استضافة، مفيد إذا كنت تفضّل عدم تثبيت شيء محلياً؛ لديه طبقة مجانية وخطط مدفوعة تبدأ قرابة ~20$/شهرياً.
- GitHub/GitHub Copilot (اختياري) — التحكم في الإصدارات ومساعد ترميز بالذكاء الاصطناعي داخل المحرّرات (خطط Copilot المدفوعة تبدأ قرابة 10$/شهرياً؛ توجد طبقة مجانية).
تقدير عملي: يمكنك النمذجة الأولية مقابل 0$ عبر الطبقات المجانية. توقّع 0–50$/شهرياً للاستخدام المعتدل؛ 20$/شهرياً إذا اشتركت في Cursor Pro أو 19$/شهرياً لـ Expo Starter عندما تحتاج مزيداً من عمليات البناء. إذا استخدمت Claude Code بكثافة، قد ترتفع التكاليف بسرعة (راقب استخدام الرموز/الحوسبة).
رسوم النشر في متاجر التطبيقات (العالم الحقيقي)
- Apple Developer Program: 99$ أمريكي سنوياً للنشر على App Store.
- Google Play Console: 25$ رسوم تسجيل لمرة واحدة للنشر على Google Play.
تقدير تقريبي لمبتدئ منفرد يبني تطبيقاً صغيراً وينشر على كلا المتجرين: 0–200$ في السنة الأولى، اعتماداً على ما إذا كنت تستخدم ميزات LLM مدفوعة أو مستويات بناء/نشر مدفوعة. يمكن للطبقات المجانية وفترات التجربة أن توصلك عبر التطوير الأولي.
ما هي العملية خطوة بخطوة لبناء أول تطبيق جوّال لك؟ 📱
لنَبْنِ تطبيق "Daily Vibe Check". يتيح هذا التطبيق للمستخدمين تسجيل مزاجهم (إيموجي) وملاحظة قصيرة، وحفظها في قائمة.
المرحلة 1: الإعداد (لا ترميز بعد)
- نزّل Cursor: اذهب إلى cursor.com وثبّته. يبدو مثل VS Code (محرّر كود قياسي).
- ثبّت Node.js: تحتاجه لتشغيل الكود. نزّل إصدار "LTS" من nodejs.org.
- ثبّت تطبيق Expo: نزّل تطبيق "Expo Go" على هاتفك الحقيقي (iOS أو Android).
المرحلة 2: "تعديل الـ vibe" للمشروع
افتح Cursor.
سترى لوحة "Chat" على اليمين (عادةً Cmd+L أو Ctrl+L لفتحها). هنا يحدث السحر. أنت لا تكتب كوداً؛ بل تكتب موجّه PRD (مستند متطلبات المنتج).
انسخ وألصق هذا الموجّه في Cursor:
"أريد بدء مشروع React Native باستخدام Expo.
اسم التطبيق 'DailyVibe'. هدف التطبيق: متتبع مزاج بسيط حيث يمكن للمستخدمين تسجيل مزاجهم اليومي. الميزات: 1) شاشة رئيسية تُظهر قائمة بسجلات المزاج السابقة (التاريخ + إيموجي + ملاحظة).
2) زر 'Log Mood' يفتح نافذة منبثقة أو شاشة جديدة.
3) في شاشة التسجيل، دعني أختار من 5 إيموجيز (Happy, Sad, Neutral, Excited, Tired) وأكتب ملاحظة نصية قصيرة.
4) احفظ البيانات محلياً على الجهاز حالياً باستخدام AsyncStorage. إحساس التصميم: حداثي بسيط، ألوان باستيلية، زوايا مستديرة ناعمة. الرجاء إرشادي خطوة بخطوة لكيفية تهيئة هذا المشروع وأعطني كود الشاشة الأولى."
المرحلة 3: حلقة "النسخ‑اللصق"
من المرجّح أن يطلب منك Cursor تشغيل أمر لإنشاء المشروع. سيبدو هكذا:
npx create-expo-app@latest DailyVibe
ما الذي عليك فعله:
- افتح "Terminal" في Cursor (
Ctrl + ~أوTerminal > New Terminal). - ألصق ذلك الأمر واضغط Enter.
- انتظر حتى ينتهي.
- افتح المجلد الجديد
DailyVibeفي Cursor.
الآن، سيعطيك Cursor كود التطبيق.
عادةً سيوفّر ملفاً باسم app/index.tsx أو App.js.
سير عملك:
- اقرأ: انظر إلى الكود الذي ولّده Cursor.
- طبّق: لدى Cursor زر "Apply" في الدردشة. انقره. سيكتب الكود تلقائياً في ملفك.
- شغّل: في الطرفية، اكتب
npx expo start. - انظر: سيظهر رمز QR. امسحه بتطبيق Expo Go على هاتفك. بوم. تطبيقك على هاتفك.
المرحلة 4: تنقيح الـ vibe (الجزء "البرمجي")
هنا يتألّق "vibe coding".
ستنظر إلى هاتفك وترى التطبيق.
ربما الأزرار صغيرة جداً.
لا تحاول تغيير قيمة البكسل يدوياً. فقط قل لـ Cursor:
"الأزرار على الشاشة الرئيسية صغيرة وتبدو سيئة. هل يمكنك جعلها كبيرة، بعرض كامل، وإضافة ظل أرجواني ناعم؟ أيضاً، أضف عنواناً 'My Vibe Log' في الأعلى."
سيحدّث Cursor الكود. انقر "Apply". يُعاد تحميل التطبيق على هاتفك فوراً بالتصميم الجديد.
المرحلة 5: إضافة التعقيد
الآن تريد حفظ البيانات.
قد تطلب:
"أريد حفظ هذه السجلات حتى لا تختفي عند إغلاق التطبيق. أنشئ ملف مساعد للتخزين باستخدام AsyncStorage وحدث الشاشة الرئيسية لتحميل البيانات منه."
سيولّد Cursor ملفاً جديداً (مثلاً storage.ts) ويعدّل شاشتك الرئيسية.
مثال App.js (نظيف، مُختَبر للمبتدئين)
فيما يلي مثال صغير ومستقل يمكنك لصقه في مشروع Expo. تم تبسيطه عمداً لتفهم كل سطر. (أوصي باستخدامه ثم طلب توسيع أو إعادة هيكلة من النموذج اللغوي حسب الحاجة.)
import React, { useState, useEffect } from 'react';
import { SafeAreaView, View, TextInput, Button, FlatList, Text, TouchableOpacity, StyleSheet } from 'react-native';
import AsyncStorage from '@react-native-async-storage/async-storage';
export default function App() {
const [text, setText] = useState('');
const [notes, setNotes] = useState([]);
useEffect(() => {
(async () => {
try {
const saved = await AsyncStorage.getItem('@mood_notes');
if (saved) setNotes(JSON.parse(saved));
} catch (e) { console.warn('Load failed', e); }
})();
}, []);
const saveNotes = async (newNotes) => {
setNotes(newNotes);
try {
await AsyncStorage.setItem('@mood_notes', JSON.stringify(newNotes));
} catch (e) { console.warn('Save failed', e); }
};
const addNote = () => {
if (!text.trim()) return;
const newNotes = [{ id: Date.now().toString(), text: text.trim() }, ...notes];
saveNotes(newNotes);
setText('');
};
const deleteNote = (id) => {
saveNotes(notes.filter(n => n.id !== id));
};
return (
<SafeAreaView style={styles.container}>
<View style={styles.inputRow}>
<TextInput
style={styles.input}
placeholder="How are you feeling?"
value={text}
onChangeText={setText}
/>
<Button title="Add" onPress={addNote} />
</View>
<FlatList
data={notes}
keyExtractor={(item) => item.id}
renderItem={({ item }) => (
<View style={styles.note}>
<Text style={styles.noteText}>{item.text}</Text>
<TouchableOpacity onPress={() => deleteNote(item.id)}>
<Text style={styles.delete}>Delete</Text>
</TouchableOpacity>
</View>
)}
ListEmptyComponent={() => <Text style={styles.empty}>No notes yet — add one!</Text>}
/>
</SafeAreaView>
);
}
const styles = StyleSheet.create({
container: { flex: 1, padding: 16 },
inputRow: { flexDirection: 'row', gap: 8, marginBottom: 12 },
input: { flex: 1, borderWidth: 1, borderColor: '#ccc', padding: 8, borderRadius: 6 },
note: { padding: 12, borderBottomWidth: 1, borderColor: '#eee', flexDirection: 'row', justifyContent: 'space-between' },
noteText: { flex: 1 },
delete: { color: 'red', marginLeft: 12 },
empty: { textAlign: 'center', marginTop: 40, color: '#666' }
});
ملاحظات:
- لتثبيت AsyncStorage شغّل:
npx expo install @react-native-async-storage/async-storage. - بعد لصق الكود، شغّل
npx expo startوامسح بـ Expo Go. توضح وثائق Expo الخطوات الدقيقة.
كيف أكرّر باستخدام vibe coding؟
- إن حدث خطأ، انسخ رسالة الخطأ والصقها إلى النموذج مع السياق: "شغّلت App.js وحصلت على هذا الخطأ: [paste error]. إليك
package.jsonوإصدار node لدي." اطلب من النموذج اقتراح إصلاحات. - اطلب إعادة هيكلة: "اجعل صفوف الملاحظات في ملف منفصل
NoteRow.jsواستخدم PropTypes." - اطلب اختبارات أو خطوات ضمان جودة: "أعطني 5 خطوات اختبار يدوي ينبغي أن أنفذها على Android وiOS لهذا التطبيق."
أفضل الممارسات لتفادي الضياع؟
حتى مع vibe coding، من السهل أن "تهلوس" أو تواجه أخطاء. إليك كيفية إبقاء مشروعك على المسار:
1. تحدّث إلى الذكاء الاصطناعي كأنه مطوّر مبتدئ
لا تقل فقط "اصنع تطبيقاً." كن محدداً. بدلاً من "اجعله جميلاً"، قل "استخدم تصميماً يعتمد على الطباعة مع الكثير من الفراغ الأبيض وخط San Francisco."
2. قاعدة "ميزة واحدة في كل مرة"
لا تطلب خمس أشياء دفعة واحدة.
- سيّئ: "أضف شاشة تسجيل دخول، صفحة إعدادات، وقاعدة بيانات."
- جيّد: "لنبدأ بإضافة شاشة تسجيل دخول أساسية مع حقلي بريد إلكتروني وكلمة مرور."
3. أسلوب "لصق الخطأ"
إذا تعطل التطبيق، لا تحاول إصلاح الكود بنفسك. انسخ رسالة الخطأ بالكامل من الطرفية، الصقها في Cursor، وقل: "حصل هذا الخطأ. ماذا حدث وكيف نصلحه؟"
4. التحكم في الإصدارات (نقطة الحفظ)
فكّر في تطبيقك مثل لعبة فيديو. استخدم Git (أو إدارة الإصدارات المدمجة في Cursor) لإنشاء "نقاط حفظ". إذا أضفت ميزة جديدة وانهار كل شيء، يمكنك ببساطة "الرجوع" إلى حين كانت الـ vibes لا تزال جيدة.
أفكار أخيرة: هل يجب أن تبدأ اليوم؟
الفجوة بين "عدم معرفة البرمجة" و"بناء شركتك الناشئة" لم تكن أصغر مما هي عليه الآن. يتيح لك Vibe coding التركيز على المشكلة التي تحلّها بدلاً من صياغة الحل.
إذا كان لديك فكرة لتطبيق جوّال "صغير" — مُسقي النباتات، متتبع التمرين، أو مفكّرة شخصية — فالوقت الآن للبدء. لا تقلق بشأن كونك "تقنياً". فقط ابدأ بالـ vibing.
كيف يمكن أن تساعدك CometAPI? CometAPI منصة تجميع واحدة لواجهات برمجة تطبيقات نماذج LLM. تدعم استدعاء مختلف النماذج الرائجة. يمكنك الوصول إلى Gemini API وClaude API وChatGPT بسعر أقل مما لدى مزوّدين آخرين. يمكنك استخدام CometAPI مع Cursor أو Claude Code لتستفيد منها. قبل الوصول، تأكّد من تسجيل الدخول إلى CometAPI والحصول على مفتاح API. تقدّم CometAPI سعراً أقل بكثير من السعر الرسمي لمساعدتك على الدمج.
مستعد للانطلاق؟ → سجّل في Vibe Coding عبر CometAPI اليوم!
إذا كنت تريد مزيداً من النصائح، الأدلة، والأخبار حول الذكاء الاصطناعي فاتبعنا على VK، X وDiscord!
