آموزش برنامه نویسی اندروید

آموزش برنامه نویسی اندروید

آموزش برنامه نویسی اندروید

آموزش برنامه نویسی اندروید

آموزش برنامه نویسی اندروید

پیوندهای روزانه

به نام خدا

سلام. امروز میخوایم بهتون 6 شرکت بزرگی رو معرفی کنیم که از زمین خاکی(!) شروع کردن و الان واسه خودشون غولی شدن!

Google

معروفترین موتور جستجوی دنیا در سال 1998 توسط Larry Page و Sergey Brin در یک گاراژ کار خودش رو شروع کرد.

Apple

این کمپانی بزرگ نیز از یک گاراژ در کالیفرنیا که برای استیوجابز بود کارش رو شروع کرد و اولین کامپیوتر اپل در سال 1976 توسط Steve Jobs, Steve Wozniak, و Ronald Wayne در این گاراژ توسعه داده شد.

Microsoft
Bill Gates و دوستش Paul Allen نیز برندی رو که الان همه کاربران کامیپوتری اون رو می شناسن رو از یک گاراژ شروع به توسعه دادن.

Amazon

فروشگاه معروف آمازون هم در سال 1994 میلادی توسط Jeff Bezos درون یک گاراژ در واشنگتن شروع به کار کرد.

Disney

والت و دیزنی نیز اولین فیلم خودشون رو در گاراژ عمو( شایدم دایی) خودشون در سال 1923 ساختن.

Hewlett-Packard (HP)

Bill Hewlett و Dave Packard این دو دوست خوب، برند HP رو از یک گاراژ در سال 1939 میلادی شروع کردن.

توضیحات کامل inc.com

  • مدیرسایت

به نام خدا

رفع عیب برنامه ها برروی گوشی بدون نیاز به کابل usb ، رفع عیب به وسیله wifi

Android WiFi ADB

سلام. امروز میخوام بهتون یه روش خیلی ساده برای دیباگ برنامه برروی گوشی اندرویدی از طریق وایرلیس رو آموزش بدم که نیاز به هیچگونه نرم افزار اضافی برروی گوشی نیست و حتی نیاز نیست گوشیتون روت باشه. (نمونه های مشابه نیاز به روت دارن)

در ابتدا پلاگین Android WiFi ADB رو از صفحه زیر دانلود کنید:

https://plugins.jetbrains.com/plugin/7983

حالا داخل اندروید استودیو مراحل زیر رو طی کید:

File->Setting>Plugins->Install plugin from disk

و آدرس فایل فشرده دانلو شده از لینک بالا رو بهش بدید. بعد یکبار اندروید استودیو رو ریستارت کنید.

عالیه نصب انجام شد.

حالا کافیه گوشیتون رو یه مرتبه به وسیله کابل به کامپیوترتون وصل کنید و برروی آیکون  که به اندروید استودیو اضافه شده کلیک کنید تا گوشی تون از طریق wifi به اندروید استودیو متصل بشه سپس کابل رو جدا کنید و از دیباگ بدون دردسرهای قطع و وصلی سیم و اشغال فضا لذت ببرید.!!!


نکته: هر دو دستگاه (لپ تاپ و گوشی) باید به یک شبکه متصل باشند. لزومی نداره کامپیوترتون متصل به wifi باشه اگه با کابل هم به شبکه وصل باشه مشکلی پیش نمیاد.


 

  • مدیرسایت
به نام خدا
سلام
#سوال: من چندتا فرگمنت داخل ViewPager دارم که در یکی از اونها کاربر میشه به برنامه اضافه کرد و در یکی همه کاربران نمایش داده می شن.
حالا سوال اینجاست که من چجوری بفهمم چه زمانی کاربر وارد فرگمنت ؛همه کاربران؛ شده تا دوباره اطلاعات رو از دیتابیس برای نمایش بگیرم تا اگه کاربر جدیدی اضافه شده لیست بروز شود.


خیلی ساده از متد زیر در فرگمتتون استفاده کنید:
public class MyFragment extends Fragment {
    @Override
    public void setMenuVisibility(final boolean visible) {
        super.setMenuVisibility(visible);
        if (visible) {
            // ...
        }
    }
   // ...
}
! برای فرگمنت باید از ورژن جدید
android.support.v4.app.Fragment;
استفاده کنید که باگ نداشته باشه.


  • مدیرسایت

به نام خدا

با سلام

یکی از دردسرهای اساسی ما برای طراحی زیبا انتخاب یک فونت مناسب هست. چند وقتی هست که فونت ایران سنس سریف دارای شهرت خاصی شده و انصافا هم دارای زیبایی و خوانیی به خصوصی می باشد.

اما این فونت به صورت تجاری و غیر رایگان می باشد (البته هیچ اشکالی نداره و خودم هم خرید کردم و ازش استفاده می کنم).

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


بله، فونت زیبای وزیر که نسخه دومش هم منتشر شده و بسیار خوانایی دلنیشینی داره.

برای دیدن جزئیات بیشتر و دانلود فونت به گیتهاب فونت برید:

مشاهده برگه

مشاهده نحوه استفاده در وب






  • مدیرسایت


به نام خدا

سلام . امروز میخوایم بهتون یه منو کشویی متریال معرفی کنیم که به راحتترین روش ممکن میتونه براتون یه منوکشویی زیبا ایجاد کنه.

در دو مرحله، ابتدا داخل gradle پروژه تون اون رو اضافه کنید:

compile('com.mikepenz:materialdrawer:4.6.4@aar') {
    transitive = true
}

سپس منو کشوییتون رو ایجاد کنید:

new DrawerBuilder().withActivity(this).build();

عالی بود به همین راحتی!!!


بعضی ویژگی های این منو کشویی اندرویدی عالی:

  • راحتترین روش برای پیاده سازی
  • راه اندازی در کمتر از 5 دقیقه
  • پشتیبانی از اندروید api lvl 10 به بالا
  • دارای api ساده و سریع
  • پیروی از قوانین طراحی متریال دیزاین
  • دارای MiniDrawer شبیه جی میل
  • استفاده از کتابخانه AppCompat
  • پشتیبانی از راست به چپ
  • پشتیبانی از badge
  • قابلیت افزودن هدر و فوتر

البته دارای تنظیمات زیادی هست که به همراه آخرین نسخه کتابخونه می تونید در لینک زیر از گیتهاب ببینید:

مشاهده در گیت هاب

  • مدیرسایت

به نام خدا

سلام

شده تا حالا بخواید دیتابیس برنامه هاتون رو درون گوشی ببینید به چه شکلی دراومده؟ یا آیا دیتا وارد دیتابیستون شده یا نه؟ مشکل از کجای دیتابیس هست؟ ولی دسترسی به فایل دیتابیس درون گوشیتون نداشته باشید؟

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

با استفاده از کلاس موجود در آدرس زیر و کپی اون در برنامه تون و انجام مراحل راحت گفته شده، می تونید کل محتوای دیتابیستون رو به صورت گرافیکی و مرتب ببینید:

مشاهده کلاس و راهنما در گیت هاب



اینم دوتا تصویر از برنامه خودم یکی از تیبل هام خالی و دیگری دارای دیتا هست:

  • مدیرسایت

به نام خدا

سلام. برای ذخیره تصویر موجود در ImageView داخل حافظه خارجی دیوایس کاربر مراحل زیر رو پیش می ریم:

1- افزودن دو متد زیر برای ذخیره تصویر Bitmap گرفته شده:
img نام ImageView  مورد نظر ما می باشد.
private void save() {
FileOutputStream out = null;
Bitmap bitmap = ((BitmapDrawable) img.getDrawable()).getBitmap();
try {
out = new FileOutputStream(getFilename());
bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
Snackbar.make(view, "تصویر در پوشه esfanduneذخیره شد", Snackbar.LENGTH_SHORT)
.show();
} catch (FileNotFoundException e) {
e.printStackTrace();
Snackbar.make(view, "خطایی در ذخیره سازی رخ داد", Snackbar.LENGTH_SHORT).show();
}
}

private String getFilename() {
File file = new File(Environment.getExternalStorageDirectory()
.getPath(), "esfandune");
if (!file.exists()) {
file.mkdirs();
}
String uriSting = (file.getAbsolutePath() + "/"
+ "nami_ke_mikhayd_ax_zakhire_beshe" + ".jpg");
return uriSting;
}
2- صدا زدن متد save() در جایی که میخوایم تصویرمون ذخیره بشه.
۳-افزودن اجازه دسترسی به حافظه خارجی:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />


  • مدیرسایت

به نام خدا

سلام


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

اگه در لیست ویو، گرید ویو یا recyclerview هاتون از تصاویر استفاده میکنید، پیشنهاد می کنم حتما از این کتابخانه برای لود تصاویرتون استفاده کنید.

مزیت های

-سیستم کش قدرتمند

-امکان دانلود تصاویر

-نمایش تصاویر از طریق فایل یا url

-تغییر سایز تصاویر و هماهنگ سازی

-کاهش فوق العاده مصرف داده و پردازشگر

-یکی از بهترین ها برای داشتن اسکرولی نرم در لیست ها

و....

برای استفاده کافیست ابتدا به gradle پروژه تون اضافه کنید

repositories {
    mavenCentral()
}

dependencies {
    compile 'com.github.bumptech.glide:glide:3.6.1'
    compile 'com.android.support:support-v4:19.1.0'
}

یا از Maven:

<dependency>
    <groupId>com.github.bumptech.glide</groupId>
    <artifactId>glide</artifactId>
    <version>3.6.1</version>
</dependency>
<dependency>
    <groupId>com.google.android</groupId>
    <artifactId>support-v4</artifactId>
    <version>r7</version>
</dependency>

اینم یه مثال فوق العاده ساده که قدرت glide رو به رخ می کشونه:

// For a simple view:
@Override
public void onCreate(Bundle savedInstanceState) {
    ...
    ImageView imageView = (ImageView) findViewById(R.id.my_image_view);

    Glide.with(this).load("http://goo.gl/gEgYUd").into(imageView);
}

// For a simple image list:
@Override
public View getView(int position, View recycled, ViewGroup container) {
    final ImageView myImageView;
    if (recycled == null) {
        myImageView = (ImageView) inflater.inflate(R.layout.my_image_view, container, false);
    } else {
        myImageView = (ImageView) recycled;
    }

    String url = myUrls.get(position);

    Glide.with(myFragment)
        .load(url)
        .centerCrop()
        .placeholder(R.drawable.loading_spinner)
        .crossFade()
        .into(myImageView);

    return myImageView;
}

برای دیدن مثال و توضیحات کامل و همچنین آخرین نسخه کتابخانه به لینک زیر مراجعه کنید:

گیتهاب



  • مدیرسایت

به نام خدا

سلام.

یکی از تغییرات به گفته #گوگل در اندروید #مارشمالو حذف Apache HTTP client می باشد.
و گوگل پیشنهاد کرده به جای آن ، برنامه نویسان از #HttpURLConnection استفاده کنند. حال ما میخوایم یه مثال کامل و با توضیحات از این متد براتون قرار بدیم:


//import these on your header
import java.io.IOException;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
import java.net.URLEncoder;
import java.util.Scanner;

//do this wherever you are wanting to POST
URL url;
HttpURLConnection conn;

try{
//if you are using https, make sure to import java.net.HttpsURLConnection
url=new URL(“http://esfandune.ir/somefile.php”);

//you need to encode ONLY the values of the parameters
String param=”param1=” + URLEncoder.encode(“value1″,”UTF-8″)+
“&param2=”+URLEncoder.encode(“value2″,”UTF-8″)+
“&param3=”+URLEncoder.encode(“value3″,”UTF-8″);

conn=(HttpURLConnection)url.openConnection();
//set the output to true, indicating you are outputting(uploading) POST data
conn.setDoOutput(true);
//once you set the output to true, you don’t really need to set the request method to post, but I’m doing it anyway
conn.setRequestMethod(“POST”);

//Android documentation suggested that you set the length of the data you are sending to the server, BUT
// do NOT specify this length in the header by using conn.setRequestProperty(“Content-Length”, length);
//use this instead.
conn.setFixedLengthStreamingMode(param.getBytes().length);
conn.setRequestProperty(“Content-Type”, “application/x-www-form-urlencoded”);
//send the POST out
PrintWriter out = new PrintWriter(conn.getOutputStream());
out.print(param);
out.close();

//build the string to store the response text from the server
String response= “”;

//start listening to the stream
Scanner inStream = new Scanner(conn.getInputStream());

//process the stream and store it in StringBuilder
while(inStream.hasNextLine())
response+=(inStream.nextLine());

}
//catch some error
catch(MalformedURLException ex){
Toast.makeText(MyActivity.this, ex.toString(), 1 ).show();

}
// and some more
catch(IOException ex){

Toast.makeText(MyActivity.this, ex.toString(), 1 ).show();
}


@esfandune

امیدواریم بتونه کمکتون کنه.
همیشه از متدهای جدید استفاده کنید:)
منابع:
دولوپر اندروید:
http://opizo.com/8oQgW8
و:
http://opizo.com/t2FwaS
  • مدیرسایت
بنام خدا

سلام

همونطور که می دونید گوگل ایران رو برای دانلود ابزارهای برنامه نویسی اندروید تحریم کرده و امکان دانلود مستقیم از گوگل وجود نداره.

ما تصمیم گرفتیم آخرین نسخه android studio رو براتون در سرورهای سایتمون با لینک مستقیم بدون محدودیت  قرار بدیم تا بدون هیچ مشکلی بتونید اونا رو دانلود کنید :

در حال حاظر نسخه های ۳۲ و ۶۴ بیتی  برای  ویندوز ،  لینوکس  و مک رو قرار دادیم. با آرزوی موفقیت برای شما کاربران گرامی.

همچنین نسخه ویندوز adt bundle (اکلیپس به همراه ابزار اندروید) نیز تا نسخه ۲۰۱۴/۰۷/۰۲ برروی سایت قرار گرفته و به دلیل عدم پشتیبانی گوگل این لینک ها دیگر به روز نمی شوند.

 

آخرین به روز رسانی ۱۶ دی ماه ۹۴ می باشد. درصورتیکه فراموش کردیم نسخه جدیدی رو بزاریم می تونید بهمون خبر بدید تا آپدیت کنیم.

موفق باشید

sdk

android studio bundle :

(نسخه ۱۴۱٫۲۴۵۶۵۶۰)

android-studio نسخه پیشنهادی و کامل همراه با sdk اندروید استودیو برای ویندوز

android studio نسخه مخصوص توزیع های لینوکسی

android studio نسخه مخصوص Mac os

Android SDK:

(نسخه r24.4.1)

اندروید sdk برای لینوکس

اندروید sdk برای مک

اندروید sdk ویندوز (installer_r24.4.1-windows.exe)

دانلود آخرین نسخه adt bundle برای برنامه نویسی اندروید

نسخه adt bundle 2014/07/02  :

adt bundle نسخه مخصوص ویندوز ۳۲ بیت(x86)

adt bundle نسخه مخصوص ویندوز ۶۴ بیت(x86)

jdk_ax_forlchd

دانلود کیت توسعه جاوا برای ویندوز:

لینک دانلود JDK-7 برای ویندوز ۳۲ بیتی

لینک دانلود JDK-7 برای ویندوز ۶۴ بیتی




منبع سایت اسفندونه