دورة تعليم برمجة اندرويد
تعلم برمجة تطبيقات الأندرويد حتى الإحتراف .....
دورة تعليم لغة الجافا
تعلم برمجة تطبيقات الجافا .....
samedi 28 décembre 2013
الوراثة
jeudi 19 décembre 2013
متغير الفئة
زر التبديل
samedi 14 décembre 2013
ما هي JRE و SDK؟
JRE : هي عدة تمكن المستخدم من تشغيل برنامج مبرمج بلغة الجافا.وهي تحتوي على الفيرتيال ماشين virtual machine JVM ودورها هو تنفيذ ال byte code .
SDK : هي عدة خاصة بالمبرمجين و هي تحتوي على JRE و مترجم و مجموعة من الأمثلة لمشاريع جافا و مصادر جميع مكتبات الجافا.
ما هي الجافا؟
ما هي الجافا؟
الجافا هي لغة برمجة كائنية التوجه تم تطويرها من طرف شركة سان Sun سنة 1995، بنيتها قريبة جدا من بنية لغة البرمجة c++ .
وكان الهدف من تطويرها،تجاوز بعض المشاكل التي كانت تعاني منها c++،وكذلك إضافتها لأمور جديدة وتمثل نقط قوتها وهي: إمكانية التشغيل على غالبية الأنظمة وذلك راجع لكيفية عمل برامج الجافا.إضافة إلى عنصر مهم يتمثل في كون الجافا تمكن من برمجة تطبيقات خاصة بالويب.
ما هي الأدوات الضرورية لبرمجة تطبيقات الأندرويد؟
لبرمجة تطبيقات الأندرويد، لابد وأن تتوفروا على ال SDK للأندرويد وهو أقل ما يلزم للبرمجة،وتجدون هنا طريقة تثبيته تحميل و تثبيت البرامج اللازمة
يمكنكم كذلك الإستعانة ببيئة للبرمجة IDE و أفضل eclipse ،مع إضافة الأداة ADT.
هناك كذاك بيئات برمجة أخرى أبرزها IntelliJ IDEA ، و NetBeans لكنها تبقى أقل جودة من eclipse .
ما هي الكلمات المفتاحية في لغة الجافا؟
الكلمات المفتاحية في لغة الجافا هي تلك الكلمات المحجوزة من طرف اللغة، وهذا جدول يبين بعض هذه الكلمات و دورها :
| تعريفها | الكلمة المفتاحية |
| تمكن فئة ما أن تكون مجردة | abstract |
| نوع منطقي | boolean |
| تمكن من الخروج من حلقة أو شرط | break |
| نوع عدد صحيح صغير | byte |
| تمكن من تحديد الحالات الممكنة لمتغير | case |
| تمكن من التقاط استثناء | catch |
| نوع رمز | char |
| تعريف لفئة | class |
| تمكن من مواصلة عمل حلقة،عكس break | continue |
| نجدها في switch وهي القيمة الإفتراضية للمتغير | default |
| عنصر من الحلقة while | do |
| نوع عدد حقيقي | double |
| جزء من الشرط if else و تعني إذا لم يتحقق الشرط | else |
| تعريف لفئة ابنة،الوراثة | extends |
| تعريف لثابتة لا يمكن تغييرها خاصة بفئة ما | final |
| نوع عدد حقيقي | float |
| تعليمة لحلقة | for |
| جزء من الشرط if | if |
| كلمة لاستدعاء حزمات | import |
| تمكن من معرفة هل كائن ما من نوع فئة ما | instanceof |
| نوع عدد صحيح | int |
| نوع عدد صحيح كبير | long |
| إنشاء كائن جديد و حجز الذاكرة المناسبة | new |
| تصريح باسم الحزمة | package |
| جزء من الحلقة while | while |
| تعريف لمتغير | static |
| نوع لدالة لا ترد شيئا | void |
| كلمة مفتاحية تعني أرجِع قيمة ما | return |
| نقصد بها | this |
samedi 30 novembre 2013
دوال الوصول و التغير
public class Car {
private String brand;
private String color;
private int model;
public Car(){
System.out.println("Car created with default constructor");
this.brand = "";
this.color = "";
this.model = 2000;
}
public Car(String _brand,String _color,int _model){
System.out.println("Car created with specific constructor");
this.brand = _brand;
this.color = _color;
this.model = _model;
}
}
هناك كلمة تم إضافتها قبل نوع كل من نوع خصائص الفئة هي private ، وتعني "خاصة" أي أن هذه الخصائص لا يمكننا الوصول إليها خارج الفئة،وبالتالي لا يمكن تغيير أو قراءة قيمتها خارج الفئة Car .كيف ذلك؟لنفهم أكثر،لنجعل الوضعية عكس ما هي عليه الآن: إذن لنضف عليها كلمة public ، وتعني للعموم أي الجميع يمكنه تغيير و قراءة قيمة الخاصية التي تم تعريفها بإمكانية وصول للعموم.
لكن أين يمكننا أن نغير قيمتها؟بمعنى آخر أين يوجد "خارج الفئة" الذي ذكرته؟
جميل،خارج الفئة نعني به كل فئة أخرى تحتوي على كائنات من فئة Car ،مثلا الفئة الرئيسية للبرنامج.
إذن إذا عرفنا الخصائص كلها بإمكانية الوصول public يمكننا مثلا فعل ما يلي:
public class MainClass {
public static void main(String args[]) {
Car car1 = new Car();
Car car2 = new Car("Mercedes", "Black", 2009);
car1.color = "red";
car1.model = 2006;
System.out.println("the color of car2 is :" + car2.color);
System.out.println("the model of car2 is :" + car2.model);
}
}
كما هو مبين في الشيفرة،عرفنا كائنين من فئة Car ثم وصلنا إلى خاصية color الكائن car1 بتحديد اسم الكائن ثم نقطة ثم اسم الخاصية التي نريد الوصول إليها لتغيير أو قراءة قيمتها،في حالتنا الأولى قمنا بتغيير قيمة لون الكائن car1 إلى red و قيمة model إلى 2006 ،بالنسبة لما تبقى قمنا بقراءة قيمتي خاصيتين من خاصيات الكائن car2 ، لا تنسوا أن هذا كلها صالح فقط لأننا قمنا بتعريف الخصائص بإمكانية وصول public .لهذا أمكننا الوصول إلى الخصائص مباشرة خارج الفئة.
لكن،من الضروري أن نذكر أنه لايجب ترك خصائص فئاتكم بإمكانية وصول public أبدا،دائما نجعلها private.
إذن نعود إلى الكود الأول لفئة Car حيث جميع الخصائص معرفة بإمكانية الوصول private ،السؤال الذي يجب أن يطرح الآن هو : كيف إذن يمكننا تغيير و قراءة قيم هذه الخصائص؟
هذا هو موضوعنا اليوم،إنها دوال الوصول ودوال التغيير أو ما يسمى getters and setters . هي دوال عادية و بسيطة تمكننا من تغيير و قراءة قيم الخصائص،من خلالها يمكننا التحكم في طريقة تغيير و طريقة قراءة قيم الخصائص حسب ما نريد،وهذا مثال :
public class Car {
private String brand;
private String color;
private int model;
public Car(){
System.out.println("Car created with default constructor");
this.brand = "";
this.color = "";
this.model = 2000;
}
public Car(String _brand,String _color,int _model){
System.out.println("Car created with specific constructor");
this.brand = _brand;
this.color = _color;
this.model = _model;
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public int getModel() {
return model;
}
public void setModel(int model) {
this.model = model;
}
}
تلاحظون أن الدوال بسيطة جداا وغالبا ما نسمي دوال الوصول getColor او getModel .... و دوال التغيير setColor أو setModel ....لكن يمكننا أن نسميها ما نشاء لكن لاحترافية أكبر و توحيد للمصطلحات بين المبرمجين نستخدم المصططلحات المتعارف عليها....
الآن بقي أن نرى كيف نستخدمها خارج الفئة :
public class MainClass {
public static void main(String args[]) {
Car car1 = new Car();
Car car2 = new Car("Mercedes", "Black", 2009);
car1.setColor("red");
car1.setModel(1987);
System.out.println("the color of car1 is "+car1.getColor());
System.out.println("the model of car1 is "+car1.getModel());
}
}
وهذه هي النتيجة :
Car created with default constructor Car created with specific constructor the color of car1 is red the model of car1 is 1987
هكذا نكون قد أنهينا هذا الدرس ولا تنسوا ان تتفاعلوا مع الموضوع.
دمتم في رعاية الله.
mardi 26 novembre 2013
أفكار تطبيقات اندرويد-التعديل على الصور
بسم الله الرحمان الرحيم:
تطبيق التعديل على الصور:
السلام عليكم و رحمة الله، هذا التطبيق يمكن مستخدمه من تحميل صورة يقوم بتعديلها،يجدر الإشارة إلى أنه يجب إضافة مؤثرات متنوعة على الصور ... و المهم أن يكون عربيا لأننا بحاجة ماسة إلى تطبيقات عربية هادفة تأخذ مكانتها أمام التطبيقات الأخرى.
سأضع هنا بعض الأفكار لهذا التطبيق :
- إمكانية تحديد حجم الصورة
- امكانية تقطيع أجزاء من الصورة.
- امكانية قلب الالوان الفا....
- إضافة مؤثرات الى الصورة : تضبيب، خدوش، ظلال، أزهار .....
- امكانية حفظ الصورة
- امكانية نشر الصورة في مواقع التواصل الإجتماعي فيسبوك تويتر غوغل بلس ...
هناك العديد من الأفكار .... يكفي أن تطلقوا العنان لمخيلاتكم....![]()
دمتم في رعاية الله.
lundi 25 novembre 2013
أفكار تطبيقات اندرويد-تطبيق رسم للأطفال
بسم الله الرحمان الرحيم:
تطبيق رسم للأطفال:
السلام عليكم و رحمة الله،من التطبيقات التي يقتنيها الكثير و التي نجد فيها القليل من الإبداع هي تطبيقات اندرويد رسم للأطفال،هذه التطبيقات التي تمكِّن للطفل الرسم على اللوح الإلكتروني،نجد القليل من المبرمجين من يضيف لمسات إبداعية يحتاجها الطفل في مثل هذه التطبيقات.
حاول أن تجعل تطبيقك يعطي للمستخدم الكثير من الإمكانات البسيطة الإستعمال و التي تبعد تطبيقك عن الروتين الذي يشهده هذا التطبيق .
أضف أشكالا يتحكم المستخدم في تحريكها،يشكل بها أشكالا معقدة مثلا،حاول أن تضيف الشيء الذي سيميز تطبيقك.
لا تنسوا مناقشة الفكرة هنا إن أعجبتكم،كما يمكن مساعدة من أراد المضي في هذا المشروع.
تقبلوا تحياتي.
{jcomments on}
أفكار تطبيقات اندرويد - تطبيق Puzzle
بسم الله الرحمان الرحيم:
تطبيق Puzzle:
من التطبيقات التي نرى أنها تلاقي الكثير من الترحيب هي لعب البازل .
إذن بالنسبة للتطبيق الذي ستنشئه،لابد أن يكون مميزا يختلف عما هو موجود في الساحة،تطبيق به مستويات صعوبة مختلفة،تكون فيه مثلا لعب أخرى بين المستويات تنسي المستخدم رتابة اللعبة،حاول إضافة أمور مشوقة كالموسيقى التي تريح أعصاب المستخدم،ألوان و أشكال مرحة....تخيل
ربما عندما تخططون لإنشاء مثل هذا التطبيق ستظهر لكم الصورة جيدا.لمن أراد إنشاء هذا التطبيق سنترك المجال هنا مفتوحا للمناقشة.
دمتم في رعاية الله.
{jcomments on}
أفكار تطبيقات اندرويد-تطبيق لموقعك
بسم الله الرحمان الرحيم:
تطبيق لموقعك:
السلام عليكم و رحمة الله و بركاته،بعض المبرمجين ممن يمتلكون مواقع يمكنهم انشاء تطبيق يجعل مستعملي هذا التطبيق يتصفحون موقعه و كأنه تطبيق عادي.
بطبيعة الحال لابد من أخذ النقط التالية بعين الإعتبار :
- أولا أن تجعل لموقعك نسخة موبايل لكي يبدو الموقع لائقا.
- أن يكون موقعك متجددا،لكي لا يمل مستخدموا التطبيق و لكي يحسسوا أن هنا دماء جديدة تتحرك في كل حين.
- لبرمجة تطبيقك،اجعله مجانيا
- يكفي أن تضيف إلى تطبيقك مكون webview .
- حاول أن يكون تطبيقك سريعا،لما لا تجعل لم لا يملكون أنترنت نسخة احتياطية لموقعك في التطبيق(إن كان ممكنا).
هكذا تكون قد صنعت لنفسك تطبيقا بسيطا و ربما كذلك مربحا لأنه سيزيد عدد زوار موقعك.
دمتم في رعاية الله.
dimanche 17 novembre 2013
مدخل إلى البرمجة الكائنية و مفاهيمها
mercredi 13 novembre 2013
الدوال -الجزء 2
mardi 5 novembre 2013
الدوال - Methods
lundi 4 novembre 2013
الجداول ذات البعد الواحد
الحلقات for و while
الشروط
dimanche 3 novembre 2013
زر الإنتقاء-RadioButton
صندوق الإختيار-CheckBox
حقل النصوص EditText

lundi 28 octobre 2013
سلسلة دروس لغة البرمجة جافا
| تقديم |
| أول تطبيق لك بلغة الجافا |
| المتغيرات و العمليات |
| المدخلات-inputs |
| الشروط |
| الحلقات for و while |
| الجداول ذات البعد الواحد |
| الدوال - Methods |
| الدوال -الجزء 2 |
الجزء الثاني : البرمجةالكائنية
| مدخل إلى البرمجة الكائنية و مفاهيمها |
| دوال الوصول و التغير |
| الوراثة |
dimanche 27 octobre 2013
mercredi 23 octobre 2013
GridLayout
FrameLayout
RelativeLayout
samedi 20 avril 2013
LinearLayout المكون
lundi 25 mars 2013
سلسلة دروس تعلم برمجة الأندرويد
الجزء الأول : تقديم
| مقدمة عن نظام الأندرويد |
| تحميل و تثبيت البرامج اللازمة |
| محاكي هواتف الأندرويد |
| مفاهيم أساسية قبل البدء |
| أول مشروع أندرويد |
| الملفات المكونة لمشروع أندرويد |
| أول تطبيق لك مع الأندرويد |
| LinearLayout المكون |
| GridLayout |
| FrameLayout |
| RelativeLayout |
| الأزرار |
| حقل النصوص EditText |
| صندوق الإختيار-CheckBox |
| زر الإنتقاء-RadioButton |
| زر التبديل |
samedi 9 mars 2013
الملفات المكونة لمشروع أندرويد
مفاهيم أساسية قبل البدء
mercredi 6 mars 2013
محاكي الأندرويد
samedi 2 mars 2013
تحميل و تثبيت البرامج اللازمة
jeudi 28 février 2013
أول تطبيق لك مع الأندرويد
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
</RelativeLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<TextView
android:id="@+id/textview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="change"
/>
</LinearLayout>
package com.barmeej.android.firstapp;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity {
//التصريح بالمتغيرات
private Button myButton;
private TextView myTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//تهيئة المتغيرات
myButton = (Button)findViewById(R.id.button);
myTextView = (TextView)findViewById(R.id.textview);
//عند الضغط على الزر يتم تنفيذ ما يلي
myButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//TextView نغير النص في ال
myTextView.setText("النص الجديد");
}
});
}
}
myButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//TextView نغير النص في ال
myTextView.setText("النص الجديد");
}
});


























