التنبيهات

التنبيهات

0

لا توجد تنبيهات جديدة

منشورات الحساب

ما هي ال thread 

في موضوعنا النهارده هنتكلم عن ال thread وايه اهميتها ليك كمبرمج اندرويد

في المعني الللغوب للكلمه تعني الخيط وهذا يفسر لنا معناه ايضا في ال  java 

ال thread هي  كلاس  بداخلها بعض الmethods التي تساعد وتعمل علي تشغيل كودك في

خيط منفصل 

انواع threads وما هي ال ui thread

لل threads انواع وهما ال ui thread و ال worker thread 

في اي ابليكيشن في حاجه اسمها ال ui thread و ديه ال thread الاساسيه في برنامج <br>

لو حطينا كود بياخد وقت طويل هتلاقي البرنامج كله هنج وليكن مثلا هنعمل loop <br>

 for (long i = 0; i <1000000000 ; i++) 
{
Log.d("num",""+i);
}

في loop زي ديه لو حكيتها جوا ال on create في اكتيفتي او حته فرجمنت هتلقي برنامج كله وقف وممكن يخرج كمان ولا يستجيب معاك 

ليه ؟ لانك حطيته في ال thread الاساسيه الي  هي ui thread 

worker thread 

طب اي  حل ؟ قالك الحل انك هتعمل thread تانيه وديه بنسميها worker thread 

ديه هتحط الكود جواه وبكده هيشتغل في thread منفصله عن ال ui thread وتسيبه مع نفسه بقي 

  // مثال علي ال worker thread
Thread thread = new Thread()
{
@Override
public void run() {
super.run();
// هنا كود ال for يحل مكان الكود الذي سوف ياخذ وقت طويل
for (long i = 0; i <1000000000 ; i++) {
Log.d("num",""+i);
}
}
};
thread.start();

طب كده يبقي انت كا مبرمج اندرويد عرفت نوعين مهمين في ال threads الي انت هتشتغل بيهم 

هما 

ui thread هي ال thread الاساسيه التي توجد في ابليكيشن 

ال worker thread هي الthread التي تعمل بشكل منفصل عن الthread الرئيسيه 

thread.sleep

 هي طريقه لاخماد او تنويم ال thread التي بداخلها لبعض الوقت التي يقاس بميلي سكند 

نستنتج من هذا الكلام انها اذا كانت موجوده بداخل ال ui thread سوف تقوم بتنويم ال ui thread 

وكذلك اذا كانت موجوده بداخل ال worker thread 


try {
Thread.sleep(10000);
} catch (InterruptedException e)
{
e.printStackTrace();
}

طرق التواصل بين ال threads 

دلوقتي فهمنا ال ui thread و worker thread

بس معرفناش طرق التواصل بينهم 

في تلت طرق لتواصل بين ال threads 

ثواني ثواني هو اصلا ال thread مش بيتواصلو مع بعض ؟

نعم . لان احنا قولنا في الاول ال thread ما هو الي خسط منفصل بيشغل لوحدو مع نفسه 

فا لازم يكون في طرق لتواصل بين ال ui thread و worker thread 

مثال عشان تفهم اكتر 

 
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = findViewById(R.id.textview);
}

Thread thread1 = new Thread()
{
@Override
public void run() {
super.run();
for (int i = 0; i <5 ; i++) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
textView.setText(i+"");
}
}
};
thread1.start();

هنا ال texview جايه من uithread 

لما حطينها جوا ال worker thread اي الي هيحصل 

للاسف الشديد هيحصل Exception 

لان زي ما احنا قولنا مفيش تواصل بين ال threads

طب خلاص انا كده فهمت قولي بقي الطرق الي هتخليني اتواصل ما بين ال threads كويس 

 run on ui thread

ال run on ui thread ديه ميثود بتساعدنا اننا نشغل كود من  ال worker thread الي ui thread 

زي مثلا مثال ال text view ده 

ال text view ديه موجوده في ui عايزين نشغلها بقي جوا ال worker 

فا هنبدا نستغل الميثود ديه 

مثال 

   Thread thread1 = new Thread()
{
@Override
public void run() {
super.run();
for (int i = 0; i <5 ; i++) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
// طب ليه يا سيف هنا طلب من اني اعرف متغير تاني من متفير الاولاني واخليه فينال لانك بتستخدم متفير من interface ل interface تاني
final int finalI = i;
runOnUiThread(new Runnable() {
@Override
public void run() {
textView.setText(finalI +"");
}
});
}
}
};
thread1.start();

post & post delayed

الطريقه التانيه لتواصل بين threads هي طريقه ال post 

هنا انت بتجيب ال view الي متعرف في ui thread وهتقولو post 

يعني اي برده مش فاهم  

بص وليكن هنقول كده 

textview.post

كده معنها ان احنا جبنا ال view الي هو textview وقولنا post يعني انه تبعت الكود الي هو textview ل thread الاساسيه الي كان موجود فيها 

طب اي بقي معني ال post delayed 

هي هي نفس المعني ولاكن الفرق انك بتتحكم في وقت يعني ممكن متخلهوش يبدا في ساعتها لا يتاخر ثانيه ثانيتين عشر ثواني براحتك

  Thread thread1 = new Thread()
{
@Override
public void run() {
super.run();
for (int i = 0; i <5 ; i++) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
// طب ليه يا سيف هنا طلب من اني اعرف متغير تاني من متفير الاولاني واخليه فينال لانك بتستخدم متفير من interface ل interface تاني
final int finalI = i;
// طريقة ال post
textView.post(new Runnable() {
@Override
public void run() {
textView.setText(finalI+"");
}
});

// طريقة ال post delayed
textView.postDelayed(new Runnable() {
@Override
public void run() {

}
},2000);

}
}
};
thread1.start();


هنكتفي بمقدار ده دلوقتي وهنكمل الطريقه التالته في منشور قادم لانها كويله شويه وهنستخدم فيها كلاس ال handler

 بعدين هنشرح شوية تفاصيل اكتر عن ال thread زي ال wait و notify وغيره 

وهنتكلم عن ال synchronizition عشان مهمه في ال threads وسلام عليكم 


تفاعل 2 شخص مع المنشورة

في هذا المنشور سوف نعرف اهم لغات البرمجه التي يجب تعلمها والأكثر طلبا في السوق وأهم الميزات والعيوب من المعروف ان لغات البرمجه لهات الكثير من الإيجابيات في حياتنا فا هي سهلت علينا التواصل مع لغه المعالج machine codeوقدمت العديد من انواع البرامج المكتبيه والهواتف ومواقع الويب

  1- بايثون(Python)

أحتلت لغة البرمجة “بايثون” المركز الأول في القائمة فهى أفضل لغة برمجة مقبولة على نطاق واسع وسريعة وسهلة في الاستخدام.

وتستخدم لغة البرمجة “بايثون” في نطاق واسع لتطوير تطبيقات الويب. كما تم أستخدامها في تطوير كل من YouTube و Instagram و Pinterest و Survey Monkey وهي مواقع معروفة على نطاق واسع وتستخدم أيضاً في تطوير برامج الحواسيب.

توفر لغة البرمجة “بايثون” دعماً ممتازاً للبرمجيات المستخدمة في تطوير البرامج ويوجد مجتمع كبير من المطورين يتبادلون المعلومات لمستخدمي هذه اللغة.

أما عن فرص العمل فهؤلاء الذين يبحثون عن وظيفة أفضل يجب عليهم تعلم “بايثون” حيث أن الكثير من الشركات الناشئة والكبيرة أيضاً تستخدم لغة البرمجة “بايثون” لسهولة استخدامها ولسهولة استخدم اللغة الإنجليزية بها لبناء أي معادلة.

فمثلاً: إذا كنت تريد إعطاء أمر بعرض Hello World كل ما عليك كتابته هو print “Hello World!” نعم “بايثون” بهذه البساطة.

أما عن الرواتب فان معدل راتب مبرمج البايثون يقدّر بحوالي ١١٧,٥٠٣ دولار سنوياً غير السعر الإضافي.

إيجابيات بايثون:

يعد إنشاء واستخدام المعادلات أمرًا سهلاً بفضل خصائص OOP.

يتم التركيز على قراءة الكود.

مثالي لبناء النماذج الأولية واختبار الأفكار بشكل أسرع.

يوفر الدعم للعديد من المنصات والأنظمة.

من السهل جدًا تعلم اللغة واستخدامها.

سلبيات بايثون:

غير مناسب لبرمجة الحواسيب المتنقلة.

أبطأ قليلاً بحكم كونها لغة برمجة مترجمة.

طبقة الوصول إلى قاعدة البيانات غير مكتملة إلى حد ما.

   2- جافا:

أحتلت لغة البرمجة “جافا” المرتبة الثانية فهي خيار شعبي ثاني في المنظمات الكبيرة لعقود.

تعرف لغة “جافا” باستقرارها التام وساعد وجود JVM (Java Virtual Machine) وهي الآلة الافتراضية لهذه اللغة على جعلها تستخدم في العديد من الشركات الكبرى.

تستخدم “جافا” لتطوير أنظمة الواجهة الخلفية (Back-End)، وتطبيقات الحواسيب، ويستخدمها المطوّرون لإنشاء تطبيقات لطرف الخادم (server side apps)، وألعاب الفيديو، وتطبيقات أندرويد للهواتف المحمولة.

وقد ساعدت جوجل المطورين الذين يستخدمون هذه اللغة في بناء برنامج Android Studio مما يسهل عليهم برمجة تطبيقات الهواتف المحمولة.

أما عن فرص العمل فهى متوفرة في جميع الشركات الكبري بسبب قدم وكثرة استخدام هذه اللغة.

وعلى الجانب الآخر فإن معدل راتب مطور جافا يقدّر بحوالي ١٠١,٩٢٩ دولار سنوياً.

إيجابيات جافا :

وفرة المكتبات مفتوحة المصدر.

استخدام الذاكرة التلقائية باستخدام نموذج OOP

يستخدم نظام تخصيص الحزم.

يتمتع بدرجة عالية من الاستقلال بفضل ميزة JVM.

آمن للغاية بسبب استبعاد المؤشر الواضح وإدراج معادلات تستخدم في سرعة الاحصائيات.

يوفر العمل على واجهات برمجة لكثير من التطبيقات، مثل اتصال قاعدة البيانات والشبكات والأدوات المساعدة وتحليل XML.

يدعم استخدام مجموعة واحدة من التعليمات بواسطة عدة معالجات في مراحل مختلفة من التنفيذ.

سلبيات جافا:

غياب القوالب يحد من إنشاء هياكل بيانات عالية الجودة.

أبطأ من لغات البرمجة الأخرى ، مثل C و C ++

 3- سي و سي ++


أحتلت لغة البرمجة سي و سي++ المرتبة الثالثة فهما يشبهان الخبز والزبدة فى لغات البرمجة.

تتم كتابة جميع الأنظمة المنخفضة المستوى مثل أنظمة التشغيل وأنظمة الملفات باستخدام اللغتين.

يستخدم سي++ على نطاق واسع من قبل المبرمجين نظرًا لحقيقة أنه سريع ومستقر للغاية ويوفر أيضاً ما يسمى “STL “مكتبة النماذج القياسية وهي مجموعة من المكتبات الجاهزة للاستخدام لهيكلة البيانات والعمليات الحسابية والخوارزميات.

وسهل دعم هذه المكاتب سرعة البرمجة.

فأذا كنت ترغب في أن تتخصص فى البرمجة على مستوى النظام فإن C / C ++ هي اللغة التي يجب أن تتعلمها.

أما عن أرض الواقع فإن معدل راتب مطور سي و سي ++ يقدّر بحوالي ٩٠,٨٩٥ دولار سنوياً.

إيجابيات سي و سي ++ :

وفرة البرامج المترجمة للكود والمكتبات التي تعمل مع [C ++]

يسهل الوصول إلى المعادلات المحظورة أو المخفية بواسطة لغات برمجة أخرى [C]

يتميز سرعته لتنفيذ البرامج المنشأة عن معظم لغات البرمجة [C / C ++]

يشكل حجر الأساس لفهم لغات البرمجة الأكثر تعقيدًا [C / C ++]

يعتبر اللغة المفضلة لتطوير التطبيقات التي تستخدم أجهزة متعددة ، [C ++]

يسهل وجود مجموعة من الوحدات الوظيفية.

يعمل على تصحيح البرامج واختبارها وصيانتها بشكل أسهل [C]

تكون البرامج أكثر كفاءة وسهلة الفهم مع أكواد [C / C ++]

يشمل مجموعة واسعة من مجالات التطبيقات، مثل الألعاب وتطبيقات واجهة المستخدم الرسومية والمحاكاة الرياضية في الوقت الفعلي [C ++]

سلبيات سي و سي ++:

صعبة التعلم للمبتدئين.

لغه كبيرة جدا وتحتاج وقت كبير لتعلمها.

لا توفر للمبرمج الكثير من المساعدة ولا تمتلك مكتبات قوية مثل الجافا.

لا يوجد بها مكتبات افتراضية لتصميم الواجهات الرسومية.

  4- الجافا سكربت

لم تفشل JavaScript في العثور على مكان لها في القائمة التنافسية للغات البرمجة فهي لغة برمجة عالية المستوى تستخدم عادةً في تطوير المواقع.<br>قامت شركة “نتسكيب” Netscape بتطويرها كوسيلة لإضافة عناصر ديناميكية وتفاعلية للمواقع.<br>هي مبينة على ECMAScript، وهي لغة برمجة وضعتها شركة صن ميكروسيستيمز Sun Microsystems.<br>مع مرور الوقت حلت محل مجموعة متنوعة من لغات البرمجة الأخرى لتصبح معيارًا لبرمجة المتصفحات.<br>يتراوح معدل راتب مطور جافا سكريبت بحوالي ١٠٩,462 دولار سنوياً.<br>إيجابيات جافا سكريبت:تنفذ من جهة العميل، فعلى سبيل المثال يمكنك التحقق من صحة أي مدخلات قبل إرسال الطلب إلى المخدم.<br>تعتبر لغة سهلة التعلم نسبيًا وقريبة من اللغة الإنجليزية.<br>لغة برمجة مستقلة وليست كما يعتقد البعض أنها مرتبطة بلغة “جافا”.<br>توفر خدمات تحكمية أكبر بالمتصفحات.<br>تفاعلية وسريعة.<br>تتميز بواجهات غنية ويمكنك سحب وإسقاط المكونات لتغني واجهتك بالعناصر المطلوبة.<br>لغة برمجة وظيفية.<br>سلبيات جافا سكريبت: مشكلات الأمان: بما أن معظم التعليمات البرمجية يتم تنفيذها على الحاسب الخاص بالمستخدم، فيمكن استغلالها في بعض الأحيان لأغراضٍ ضارة، الأمر الذي يستدعي العديد من الناس إلى تعطيلها.<br>لا تتيح قراءة الملفات أو كتابتها من جهة العميل.<br>لا يمكن استخدامها في تطبيقات الشبكات إذ لا يتوفر الدعم المناسب لذلك.<br>لا تدعم التنفيذ متعدد الخيوط multithreading، وهو تقنية يتم فيها التنفيذ في عدة مسارات بنفس الوقت على نفس المعالج.<br>يختلف عرض “الجافا سكريبت” بين مختلف المتصفحات ومحركات البحث الأمر الذي يتسبب في عدم تناسق الواجهة والوظائف في بعض الأوقات<br>


نكتفي بهذا القدر من معلومات ونكمل في منشور آخر

انتظرو في منشورات أخرى شروحات لطرق برمجيه جديده في أندرويد والمزيد من شروحات 

تفاعل 9 شخص مع المنشورة

بنسبه للي هيسال عن pes او gta او غيره بص يا برو معظم الألعاب المشهور معظمها ديما بتبقى ب ++c لسبب وجيه وهو قرب اللغه ديه بذات لل machine language فا نهاركو لذيذ والي حابب يعدل او يضيف على كلامي يتفضل

تفاعل 2 شخص مع المنشورة

constrant layout

نقوم في هذا المنشور بشرح بعض المزايا ومقدمه بسيطه عن ال constrant layout 

عناصر هذا المنشور 

1- مقدمه بسيطه عن ال constrant

2-كيفيه عمل ال constrant 

3-ذكاء الاصطناعي لل constrant 

4- كيفيه ترتيب العناصر في ال constrant 

5-ترتيب جميع العناصر في ضغطة زر

مقدمه بسيطه عن ال constrant 

تحدثنا في مقاله سابقه عن نوع المخطط constrant layout ولاكن لم نفي بحقه في الشرح قامت google بأضافة هذا النوع من المخطات في 2017 وكان في سابق يوجد فقط في xcode مع ال ios لاكن اضافته google ذلك حته يساعد المطورين في ان شاء تصميم جذاب و معاصر فا constrant layout تمتاز بذكاء الاصطناعي عند تصميم ولاكن كيف كيف يتم ذلك؟

سنعرف كل ذلك في هذه المقاله

كيفيه عمل ال constrant

عند ان شاء مشروع جديد يظهر نوع ال layout تلقائي  constrant layout فا لست بحاجه الي تعديل نوع الlayout 

عند سحب عنصر وضعه في الشاشه يظهر في نفس المكان التي قومت بوضعه فيه ويكون الكود كما هو كا تالي

ولاكن ما معني هذه الاكواد 

 tools:layout_editor_absoluteX="161dp"
tools:layout_editor_absoluteY="345dp"

دائما عند وجود كلمه tools في كود ال xml تعلم ان هذا سيظهر فقط في الاندرويد استوديو ولن يظهر في الموبايل

فاعند عند تشغيله علي الموبايل يظهر بعيدا اقصي يسار الشاشه لما ؟

ذلك لاننا يجب بوضع الconstrant في العنصر حته يظهر ايضا بنفس الشكل في الموبايل

كما يوجد في الكود التالي

عند اضافة ال constrant كما هو في الشكل التالي يقوم ذلك بتثبيت العنصر في نفس المكان 

وتقوم بتقيض العنصر في هذه النقطه مهما اختلفت حجم الشاشه التي تقوم بتشفيل هذا البرنامج 

واذا اختلف حجم الشاشه يظل هذا العنصر في مكانه وتلك من مزايا ال constrant 

ولاكن كيف تقوم ال constrant layout بالحفاظ عل مكان العنصر 


ذكاء الconstrant layout 

 ال constrant layout تعتبر من اذكي المخطات الت يتقوم بعمليات حسابيه لتقوم بحساب ال hight و ال width الخاص بكل شاشه وحساب الارتفاع والعرض المطلوب لكل عنصر ووضعه في نفس المكان مهما اختلفت حجم الشاشه 

لذلك ينصح دائما مطورين الاندرويد باستخدام ال constrant layout للقيام بتصميم عصري وجذاب 

ترتيب العناصر بجانب بعضها في ال constrant layout

مثل ما قومت بالسحب لوضع ال constrant في العنصر ايضا سوف تقوم بالسحب من العنصر للاخر في ال constrant layout وايضا تقوم ال constrant باجراء عمليات حسابيه لحساب المسافه ما بين كل عنصر والاخر للحفاظ عليها في نفس الشكل مهما اختلفت حجم الشاشه 

وهذه صوره توضيحيه لترتيب العناصر 

ترتيب جميع العناصر في ال constrant في ضغطة زر

عند تصميم الشاشه الخاصه بك لست بحاجه الي وضع ال constrant ما بين كل عنصر واخر بينما يمكنك وضع العناصر وترتيبها كما شئت من ثما تأتي بعد انتهاء من ترتيب العناصر جميعها وتقوم بضغط علي زر ال constrant التي يوجد في اعلي شاشه 

كما يمكنك الغاء جميع الconstrant التي قومت بها من خلال الضغط علي هذا الزر 


كما يمكنك رؤيه شرح عملي بتفاصيل اكثر عن ال constrant layout من خلال هدا الفيديو 

https://youtu.be/plGXdITW8SQ


كان هذا منشورونا اليوم وفي منشورات اخري سنقوم بشرح العديد والعديد من التفاصيل المميزه في هذا النوع من المخطات 

انتظرو شرح مفصل ورائع لل architecture pattern و rxjava و room 

استودعكم الله والي اللقاء

تفاعل 13 شخص مع المنشورة

منشور جديد وفيه معلومات جميله هتفيد كل ال android developers هنا
هو بعنوان ال architecture patterns
اي هي ال architecture patterns في أندرويد
هي عباره عن تلت فروع او مسميات او انواع وهي ال mvc و mvp و mvvm

model view controller اختصار ل mvc
model view presenter اختصار ل mvp
model view view model اختصار ل mvvm
طيب انا كده فهمت اي برده يعني اي ده واي علاقته بالاندرويد
قالك والله انت لما تشتغل في برنامج معين وحبيت تبيعه او تشاركه على github
هتبقى شغال بطريقه برمجه معينه والله اعلم بقى حد هيعرف يفهمها من بعدك ولا لا
فا بدأت تنظم كودك واحده واحده وتشتغل oop بشكل صحيح جدا عشان تحاول على اد ما تقدر تبعد عن spaghetti code
ولاكن مع ذلك برده كل ما المشروع الي انت شغال عليه زاد وكبر كل ما الي بعدك لو حد حب يعدل عليه بقى أصعب او لو شركه حبيت تشوف كود شركه تانيه هيبقى اتقل وأصعب
فا قالك خلاص احنا هنشتغل بطريقه برمجه معينه ثابته كل ناس يشتغلو بيه ولو حد حب يعدل على كود تاني يفهم علطول
اي هي طريقه ديه ؟
في الواقع هما طريقتين مش طريقه وهي ال mvb و mvvm ايه ده اومال ال mvc راح فين؟
قالك والله لو شرحتلك ال mvc ده
ديه طريقه الي كل المبرمجين (المبتدئين)
بيشتغلو بيه
وهي انك بتجيب الداتا وترجعها تاني في نفس class ال activity وبتعمل كل العمليات بتاعتك في نفس الكلاس لغايه ما تلاقي دنيا زحمت على الآخر وديه طريقه التقليديه والي احنا جايين نتعلم غيرها دلوقتي
اذا فهمنا ليه هنفوت ال mvc ونخش على تانين
اولا ال mvp
شرح بسيط بس كده الأول لكيفيه عملها
هدف ال mvp انها متخليش ال activity تعمل اي حاجه
هتنادي بس على كلاس كده بسيط اسمه presenter و تعمل implemented ل interface عشان تاخد منه ال data وتحطها في ال view بتاعك اي كان بقى text, recycle, etc
تمام نخش بقى علي شرح عملي بسيط وفي الاخر هنحط لينك فيديوهات بتشرح بشكل عملي
عشان تشتغل بيه لازم هتعمل class اسمه presenter
و الكلاس ده هو الي هينظملك دنيا كلها
هو الي هيجيب الداتا
وهو الي هيديها تاني لل activity ولاكن مش بشكل مباشر وهنفهم دلوقتي
من الاخر هو المسؤل عن كل العمليات بتاعت ال activity ديه
تمام عملت الكلاس وجبت داتا اهو سوا كان من retrofit بقى firebase، sqlite ،room اي كان
عايزين بقى نعطي ال data ديه لل activity وليكن ل text view معين
بكل بساطه هتعمل interface بسيط لذيذ
وهنعمل فيها method وهتدي فيها بارميتر من نوع string
عملته ؟ اه
طب تمام هنيجي بقى ب ال interface ده هنادي عليه في presenter
وهنحط داتا الي جت في ال method الي عملنها في interface تمام
هنيجي بقى عن الخطوه الاخيره وهي انك هتروح لل activity
بس هتعمل اول حاجه implemented لل interface في ال activity
بعدين هتحط ال methods بتاعت ال interface في activity
هنعمل اوبجكت من كلاس ال presentr بتاعنا في activity بعدين هنادي على textview ونحط فيه ال data الي جايه لينا من ال method في ال interface
ونجرب ال app بتاعنا
لو محتاج تشوف شرح عملي وانا انصحك ب ده طبعا تقدر تشوف الفيديوهات ديه

https://youtu.be/WfBvASVBKyM

https://youtu.be/QSaqwazyByA

ده كان موضوعنا انهارده
ان شاء الله المره الجيه هنشرح عن mvvm عشان المقاله متبقاش طويله اوي
ونتكلم عن حاجات جديده في الويب وبعض اخبار جديده عن ال هاردوير
سلام عليكم

تفاعل 5 شخص مع المنشورة

عايز ابقي مبرمج mobile application
واعمل برامج بقى android و ios وابقى جامد بقى و و... تابع المنشور ده لاخره عشان تفهم انت هتعمل اي

مبدأيا في بعض الأساسيات الي لازم تكون فاهمه في مجال mopile application زي اي
زي مثلا ان جوا مجال موبايل ابليكشن في اكتر من تخصص وهما ال native و hyprid و cross Platform
وكمان لازم تبقى عارف ان كل مجال من تلاته دول ليهم لغات برمجه
وكمان لازم تبقى عارف ان كل واحد من تلاته دول ليهم performance كويس او وحش
وكمان... كمان ياعم فهمنا اي كل ده
افهمك بس اسمع الحدوته من اولها بقى

Mobile application اول ما ظهر اصلا المجال ده مكنش في غير منافسين اتنين android و ios
ومكنش في تخصص فيهم غير ال native يعني اي بقى ؟ يعني كل نظام ليه لغه برمجه خاصه بيه android ليه ال Java و ال ios ليه objective-c
و المبرمجين كانو شغالين تمام ودنيا فله ولاكن مع الوقت البرامج بقت اكبر وأوسع وبقت تاخد مجهود اكبر في برمجه
تمام راحو عاملين لغات برمجه تانيه شبيه لل جالا و اوبكيجتف سي ولاكن أسهل شويه
الجافا اتعملها لغه سبيه اسمها kotlin و اوبجكتيف سي اتعملها لغه شبيه اسمها swift
ولاكن برده برامج كانت كبيره وعشان كنت تعمل برنامج كبير زي متجر الاكتروني او غيره لل أندرويد و ios كانت بتاخد مده طويله وبتبقي رخمه كل ما كان برنامج كبير قالو خلاص احنا نعمل حاجه تشتغل على الاتنين
راحو عاملين اي بقى راحو عاملين حاجه اسمها hypird app development اي يا عم ديه بقى دي...
نستكمل في جزء الي جي عشان نشرح بتعمق اكتر
ياريت تعملولي follow
سلام

تفاعل 18 شخص مع المنشورة

اتكلمنا في منشور سابق عن api مع أندرويد وعن مكتبات الشهيره في ربط بين برنامج خاص بيك بالاندرويد و Api خاص بيك سواء كان php او asp وقولنا ان retrofit افضل بكتير وليها مزايا كتير تقدر تشوف منشور بنفسك وتقرأه في منشور ده هنبدأ ننزل افضل كورسات الي بنصح بيه عشان تدرس retrofit ومن خلال ال YouTube

ده اول واحد انصح بيه لانه شرح بطريقه بسيطه جدا َجميله
https://www.youtube.com/playlist?list=PLXjbGq0ERjFpkwKH5jgwgstKj-twzhOqk
بعدين تقدر تتعمق اكتر بقى وتفهم اكتر وتعمل api بنفسك من خلال php من خلال ال playlist ديه
https://www.youtube.com/playlist?list=PLk7v1Z2rk4hhGfJw-IQCm6kjywmuJX4Rh

وتقدر تشوف مثال مع ده
https://www.youtube.com/playlist?list=PLF0BIlN2vd8twMRP4T5GBupF4ECIO7R1x

كذلك ديه playlist حلوه ومتعمقه وممكن تفهم منه لو مفهمتش من غيرو https://www.youtube.com/playlist?list=PLzVmDaZEuvRYiDoXuhINIFoIVwVZhzIIy

ده بقى لو انت حابب تتعمق اوي اوي
https://www.youtube.com/playlist?list=PLpUMhvC6l7APq7y_FFfK-GEHvcUKqo6SC

برده لو مفهمتش من غيره تقدر تشوف ده
https://www.youtube.com/playlist?list=PLshdtb5UWjSoFPs3AakEpH1pmSrJVxJhs

وممكن نكتفي بدول بس دلوقتي واظن ان دول كفايه اوي
صحيح برده اذا كان عندك معرفه ولو بسيطه في php فا ده هيساعدك في شغل وفي فهم retrofit وال api في أندرويد عموما اكتر
في منشورات تانيه ان شاء الله هنزل كورسات تانيه انا تبعتها وجربتها بنفسي
وان شاء الله الله المره الجيه هنتكلم عن فروقات بين ال firebase و database العاديه وامتى نستخدم واحده منهم وفي مجالات وفروع الموبايل ابليكشن سلام عليكم

تفاعل 13 شخص مع المنشورة