ريسكين كود سورس تطبيق funny jokes



السلام عليكم و رحمة الله تعالى و بركاته.
★★★ تقديم  :
      نظرا لكثرة الأسئلة - من طرف بعض الإخوة مطوري تطبيقات الأندرويد - حول كود سورس تطبيق funny jokes، ارتأيت أن أقوم بتبسيطه و تسهيل التعامل معه ، من حيث تصميمه و برمجته و تسهيل التحكم في إعداداته.
و سيتم الشرح بالصوت والصورة وذلك على شكل أشرطة فيديو في قناتي على اليوتوب :
https://www.youtube.com/channel/UC9Jj_viBSiyIJW15sVJTQOQ

أكواد السورس
اكليبس  + أندرويد استوديو + documentation

★★★ سير العمل :

★إعادة برمجة الكود سورس بطريقة جديدة وبسيطة  لكي يسهل التعديل عليه .
★استبدال قاعدة البيانات SQLiteDatabase ب strings .
★ إضافة شبكات إعلانية جديدة إلى الكود سورس مثل Startapp  و Applovin بالإظافة إلى Admob .
★التحكم في إعدادات الإعلانات من ملف خاص بدون الدخول إلى ملفات الجافا .
★إضافة صفحة جديدة في أول التطبيق يمكن من خلالها التوجه الى play store من أجل تقييم التطبيق من طرف المستخدم .
★إضافة زر يعرض جميع تطبيقات المطور .
★إضافة زر يمكن من خلاله التواصل مع المطور صاحب التطبيق .
بسم الله نبدأ

★★★التصميم

سنحتاج 8 صفحات لنبدأ العمل .
★★ الصفحة 1: 
about.xml
هذه الصفحة ستحتوي على معلومات عن التطبيق بالإضافة إلى ثلاثة أزرار.
★ الأول يعرض صفحة التطبيق على جوجل بلاي من أجل تقييمه.
★ الثاني يقوم بعرض صفحة المطور على google play التي تحتوي على تطبيقاته الأخرى .
★ الزر الثالث وظيفته هي الاتصال بالمطور.
★★الصفحة 2:
adapter.xml
هذه الصفحة تقوم بإعداد شكل ظهور قائمة النكت عند عرضها أو عند البحث عنها.
★★ الصفحة 3: 
dashboard.xml
هي لوحة التحكم التي تظهر في البداية و تحتوي على نكتة اليوم بالإضافة إلى ثلاثة ازرار:
 ★الزر الأول يعرض النقط .
 ★ الزر الثاني يعرض المساعدة .
 ★ الزر الثالث يعرض صفحة حول التطبيق.

★★ الصفحة 4: 
help.xml
هذه الصفحة خاصة بالمساعدة و تحتوي على معلومات حول التعامل مع التطبيق.

★★ الصفحة 5: 
quote_preview.xml
هذه الصفحة تعرض النكة منفصلة أثناء البحث عنها أو عرضها مباشرة.

★★ الصفحة 6: 
quotes.xml
هذه الصفحة تعرض النكت مجتمعة.

★★ الصفحة 7 :
search.xml
هذه الصفحة تمكن من البحث عن نكتة معينة في التطبيق.

★★ الصفحة 8  :
splash_screen.xml
هذه الصفحة تظهر في البداية عند تشغيل التطبيق و هي تحتوي على صورة تظهر في كامل الشاشة و يمكن للمطور تفعيلها أوعدم إظهارها.

★ملاحظة :
بالنسبة لأكواد xml سنأخذها من كود سورس تطبيق Funny Jokes القديم.

★★★ البرمجة  :

 من أجل برمجة التطبيق سنحتاج إلى أكواد جافا التالية :
★★ملاحظة  :
 بالنسبة لأكواد جافا قمت بالبحث عنها في موقع stackoverflow.com  و قمت بتنظيمها لتصبح جاهزة للاستخدام .
★ كود حذف الشريط العلوي من الشاشة:

this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);

★ كود إظهار عنصر ما:


X.setVisibility(View.VISIBLE);

★ كود فتح تطبيق في Play Store  من أجل تقييمه :


Intent rateIntent = new Intent(Intent.ACTION_VIEW,
Uri.parse("market://details?id=com.X.X"));
startActivity(rateIntent);

★ كود إرسال رسالة إلى بريد إلكتروني :


Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts(
"mailto","email", null));emailIntent.putExtra(Intent.EXTRA_EMAIL,
"email");emailIntent.putExtra(Intent.EXTRA_SUBJECT, "subject");
emailIntent.putExtra(Intent.EXTRA_TEXT, "text");
startActivity(Intent.createChooser(emailIntent, "chooser_title"));
finish();

★ كود القيام بأمر ما عند الضغط على زر الرجوع :


public void onBackPressed(){}

★ كود الحصول على رقم اليوم الحالي في الأسبوع :


Calendar calendar = Calendar.getInstance();
int day = calendar.get(Calendar.DAY_OF_WEEK);

★ كود تعريف قائمة :


String[]  X = getResources().getStringArray(R.array.X);

★ كود استقبال متغير عددي من Activity :


int X=getIntent().getIntExtra("Y", 0);

★ كود استقبال متغير حرفي من activity معينة :

Bundle extras = getIntent().getExtras();
String item = extras.getString("item");

★ كود مشاركة نص ما :


Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.setType("text/plain");
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,"");
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, "");
startActivity(Intent.createChooser(sharingIntent, "Share via:"));

★ كود إظهار نافذة منبثقة :


new AlertDialog.Builder(X.this)
.setTitle("")
.setMessage("")
.setPositiveButton("",
new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
}}).setCancelable(false)
.create()
.show();

★ كود ملء Listview بقائمة :


final ArrayList<String> content = new ArrayList<String>();
for (int i = 0; i < quotes.length; ++i) {
content.add(quotes[i]);}
final ArrayAdapter adapter = new ArrayAdapter(this,R.layout.adapter,
R.id.content, content);
listview.setAdapter(adapter);

★ كود القيام بأمر ما ، عند الضغط على Listview :


listview.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, final View view,
int position, long id) { }});

★ كود إرسال عنصر ما ، مع موضعه ، من Listview إلى Activity :



String item = (String)parent.getItemAtPosition(position);
Intent go = new Intent(X, Y);
go.putExtra("item", item);
go.putExtra("position", position);
startActivity(go);

★ كود إعداد عداد عكسي CountDownTimer:


new CountDownTimer(X, Y) {
public void onTick(long millisUntilFinished) {}
public void onFinish() {Z}}
.start();

★ كود التحقق ما إذا كانت ListView فارغة من أي عنصر:


if (adapter.getCount() == 0){

//Do Something
 }

★ كود تفعيل الـ multidex:


android:name="android.support.multidex.MultiDexApplication"
multiDexEnabled true
compile 'com.android.support:multidex:1.0.1'

★ كود جعل حواف زر ما مستديرة:


<?xml version="1.0" encoding="utf-8"?>
<selector
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true">
        <shape android:shape="rectangle">
            <corners android:radius="15dip" />
            <stroke android:width="1dip"
                android:color="#daa617" />
            <gradient android:angle="-90"
                android:endColor="#ffbb00"
                android:startColor="#efaf00" />
        </shape>
    </item>
    <item android:state_focused="true">
        <shape android:shape="rectangle">
            <corners android:radius="15dip" />
            <stroke android:width="1dip"
                android:color="#daa617" />
            <solid android:color="#daa617" />
        </shape>
    </item>
    <item>
        <shape android:shape="rectangle">
            <corners android:radius="15dip" />
            <stroke android:width="1dip"
                android:color="#daa617" />
            <gradient android:angle="-90"
                android:endColor="#ffbb00"
                android:startColor="#efaf00" />
        </shape>
    </item>
</selector>



★ كود جعل حواف مربع نص ما مستديرة: 


<?xml version="1.0" encoding="utf-8"?>
<shape 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" android:padding="10dp">
    <solid android:color="#FFFFFF"/>
    <corners
        android:bottomRightRadius="15dp"
        android:bottomLeftRadius="15dp"
        android:topLeftRadius="15dp"
        android:topRightRadius="15dp"/>
</shape>

★ كود إضافة رقم و اسم إصدار التطبيق: 


<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.funny.jokes"
    android:versionCode="1"
    android:versionName="1.0">

★ كود إعداد الـ SDK:


<uses-sdk 
android:minSdkVersion="11"
android:targetSdkVersion="19"/>


★ كود إعداد إعلانات Admob:


<meta-data 
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version"/>

<activity android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden
|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:theme="@android:style/Theme.Translucent" />


================================================

 والسلام عليكم ورحمة الله







ليست هناك تعليقات:

إرسال تعليق