برنامه نویسی موبایل

برنامه نویسی موبایل

برنامه نویسی موبایل

برنامه نویسی موبایل

۴ مطلب در تیر ۱۳۹۴ ثبت شده است

  • ۰
  • ۰


همانطور که اطلاع دارید، قابلیت Lambda Expressions در جاوا نسخه 8 معرفی شد و مهمترین قابلیت در برنامه نویسی موبایل به حساب می‌آید. این قابلیت توسعه در این زبان را به شکلی قابل توجه، ساده و سریع می‌کند. اما همانطور که اطلاع دارد، در حال حاضر اندروید از این نسخه از جاوا پشتیبانی نمی‌کند. اما چطور می‌توانیم امکان استفاده از این قابلیت مفید را به Android Studio اضافه کنیم؟ در ادامه مراحل اضافه کردن این قابلیت در Android Studio و محیط لینوکس Ubuntu را دنبال کنید.

برای اضافه کردن پشتیبانی از این قابلیت از پلاگین Retrolambda برای Gradle استفاده خواهد شد، این پلاگین با تبدیل بایت کد جاوا نسخه 8 به 7 و یا 6 در هنگام کامپایل، این قابلیت را برای شما فراهم می‌نماید. اما در ابتدا نیاز به نصب نسخه 8 جاوا به عنوان نسخه پیش‌فرض در اوبونتو خواهید داشت.

از آنجا که استفاده از جاوای اوراکل برای توسعه اندروید توصیه شده است و این نسخه از جاوا در مخازن رسمی اوبونتو موجود نیست ابتدا می‌بایست مخزن webupd8team که یکی از PPA های معتبر اوبونتو است را به پکیج منجر خود اضافه کنید، سپس برای نصب از پکیج منجر استفاده کنید. دستورات زیر را به تریتیب در ترمینال وارد نمایید.
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
1
2
3
    
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

پس از اتمام پروسه نصب برای اطمینان از نصب جاوا 8 به صورت پیش فرض دستور زیر را برای نصب پکیج دیگری که به این منظور ایجاد شده وارد نمایید.
sudo apt-get install oracle-java8-set-default
1
    
sudo apt-get install oracle-java8-set-default

پس از اتمام نصب، موارد زیر را در انتهای فایل /etc/profile.d/jdk.sh اضافه نمایید.
export JAVA6_HOME="/usr/lib/jvm/java-6-oracle"
export JAVA7_HOME="/usr/lib/jvm/java-7-oracle"
export JAVA8_HOME="/usr/lib/jvm/java-8-oracle"
1
2
3
    
export JAVA6_HOME="/usr/lib/jvm/java-6-oracle"
export JAVA7_HOME="/usr/lib/jvm/java-7-oracle"
export JAVA8_HOME="/usr/lib/jvm/java-8-oracle"

سپس، موراد زیر را نیز در انتهای فایل /etc/profile.d/jdk.csh اضافه نمایید.
setenv JAVA6_HOME="/usr/lib/jvm/java-6-oracle"
setenv JAVA7_HOME="/usr/lib/jvm/java-7-oracle"
setenv JAVA8_HOME="/usr/lib/jvm/java-8-oracle"
1
2
3
    
setenv JAVA6_HOME="/usr/lib/jvm/java-6-oracle"
setenv JAVA7_HOME="/usr/lib/jvm/java-7-oracle"
setenv JAVA8_HOME="/usr/lib/jvm/java-8-oracle"

سپس فایل اصلی بیلد پروژه خود را در اندروید استدیو باز نموده و از طریق اضافه کردن خط مشخص شده در کد زیر، پلاگین Retrolambda را به Gradle معرفی کنید.
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
        classpath 'me.tatarka:gradle-retrolambda:3.1.0'
    }
}
1
2
3
4
5
6
7
8
9
    
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
        classpath 'me.tatarka:gradle-retrolambda:3.1.0'
    }
}

سپس برای فعال سازی پلاگین خطوط مشخص شده در کد زیر را به فایل بیلد مربوط به اپ اضافه نمایید.
apply plugin: 'com.android.application'
apply plugin: 'me.tatarka.retrolambda'

retrolambda {
    jdk System.getenv("JAVA8_HOME")
    oldJdk System.getenv("JAVA7_HOME")
    javaVersion JavaVersion.VERSION_1_7
}
1
2
3
4
5
6
7
8
    
apply plugin: 'com.android.application'
apply plugin: 'me.tatarka.retrolambda'
 
retrolambda {
    jdk System.getenv("JAVA8_HOME")
    oldJdk System.getenv("JAVA7_HOME")
    javaVersion JavaVersion.VERSION_1_7
}

پس از انجام مراحل بالا برای معرفی نسخه زبان مورد استفاده، کد زیر را به بلاک android در فایل بیلد اپ خود اضافه نمایید.
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}
1
2
3
4
    
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}

به عنوان آخرین مرحله، کد زیر را به فایل proguard-rules.pro اضافه نمایید و Gradle را مجددا سینک کنید.
Java
-dontwarn java.lang.invoke.*
1
    
-dontwarn java.lang.invoke.*

بهتر است کار تولید نرم افزار موبایل و طراحی نرم افزار موبایل را به شرکت وب یونیک بسپارید.

webuniq.com

  • nafise poornajjar
  • ۰
  • ۰

 دربرنامه نویسی اندروید (جاوا) برای برنامه نویسی موبایل یکی از متداول ترین ارور ها NullPointerException هست ، و اگر بتونیم بیشتر این ارور ها را قبل از وقوع  جلوگیری کنیم ، برنامه ای روان و بدون اکسپشن های اعصاب خورد کن خواهیم داشت.
NullPointerException  زمانی رخ میده که قصد داریم مثلا از یک لیستی که null هست ، عملیات get یا size  یا هر عملیات دیگری  را انجام دهیم. ویا یک رشته (String) را می خواهیم با یک رشته دیگر که مقدار آن null  هست مقایسه گنیم و یا در اندروید و مخصوصا در صفحاتی که از چند thread استفاده شده  یک thread وظیفه گرفتن اطلاعات از اینترنت را دارد و بعد از دریافت اطلاعات قصد بروز رسانی صفحه (UI) را دارد  اما قبل از اتمام کار صفحه بسته شده است و زمان استفاده از context ارور NullPointerException  می دهد .

در این جا چند روش  ساده برای جلوگیری از این  اکسپشن را  قرار میدهم :


۱ : زمان استفاده از متد  equals() و  equalsIgnoreCase()   رشته ای را که مطمئن هستید null نیست  اول قرار دهید

۲ . برای گرفتن مقدار رشته (String) به جای toString() از String.valueof() استفاده کنید .

اگر بر روی یک شئ که null باشده toString() را فراخوانی کنید ، NullPointerException رخ می دهد ، در صورتی که اگر از String.valueOf() استفاده کنید در صورت null بودن مقدار "null" را برمیگرداند .

 

۳ . از متد و لایبرری های امن (safe) استفاده کنید :

لایبرری های زیادی هستند که زمان null بودن اکسپشن نمی دهند :

مثلا به جای استفاده از isEmpty() می توانید از StringUtils.isEmpty(null)استفاده کنید

. در متد ها مخصوصا متد هایی که قصد برگرداندن یک لیست را دارند null برنگردانید : به جای برگرداندن null یک کالکشن خالی یا یک مقدار خالی را برگردانید (مثلا یک رشته خالی "" ) در این صورت از بروز این اکسپشن در جاهایی که از این متد استفاده کرده اید جلوگیری می کنید.

در ضمن میتوانید از خدمات وب یونیک در زمینه تولید نرم افزار موبایل که روی پلتفرم های موجود از جمله J2ME, Windows Mobile, BlackBerry, iPhone/iPad, Android ارائه می گردد،استفاده نمایید.

  • nafise poornajjar
  • ۰
  • ۰

این متن دومین مطلب آزمایشی من است که به زودی آن را حذف خواهم کرد.

زکات علم، نشر آن است. هر وبلاگ می تواند پایگاهی برای نشر علم و دانش باشد. بهره برداری علمی از وبلاگ ها نقش بسزایی در تولید محتوای مفید فارسی در اینترنت خواهد داشت. انتشار جزوات و متون درسی، یافته های تحقیقی و مقالات علمی از جمله کاربردهای علمی قابل تصور برای ,بلاگ ها است.

همچنین وبلاگ نویسی یکی از موثرترین شیوه های نوین اطلاع رسانی است و در جهان کم نیستند وبلاگ هایی که با رسانه های رسمی خبری رقابت می کنند. در بعد کسب و کار نیز، روز به روز بر تعداد شرکت هایی که اطلاع رسانی محصولات، خدمات و رویدادهای خود را از طریق بلاگ انجام می دهند افزوده می شود.

  • nafise poornajjar
  • ۰
  • ۰

این متن اولین مطلب آزمایشی من است که به زودی آن را حذف خواهم کرد.

مرد خردمند هنر پیشه را، عمر دو بایست در این روزگار، تا به یکی تجربه اندوختن، با دگری تجربه بردن به کار!

اگر همه ما تجربیات مفید خود را در اختیار دیگران قرار دهیم همه خواهند توانست با انتخاب ها و تصمیم های درست تر، استفاده بهتری از وقت و عمر خود داشته باشند.

همچنین گاهی هدف از نوشتن ترویج نظرات و دیدگاه های شخصی نویسنده یا ابراز احساسات و عواطف اوست. برخی هم انتشار نظرات خود را فرصتی برای نقد و ارزیابی آن می دانند. البته بدیهی است کسانی که دیدگاه های خود را در قالب هنر بیان می کنند، تاثیر بیشتری بر محیط پیرامون خود می گذارند.

  • nafise poornajjar