Farzad Sarseifi

مدیریت انجمن
  • تعداد ارسال ها

    2,051
  • تاریخ عضویت

  • آخرین بازدید

  • Days Won

    162

تمامی ارسال های Farzad Sarseifi

  1. دوره برنامه نویسی اندروید یکی از جذاب ترین دوره های آموزشی میباشد که مخاطبان دوره میتوانند در این دوره اصول طراحی اپلیکیشن های تحت اندروید را طراحی و پیاده سازی نموده و شروع به کسب درآمد در حوزه اپلیکیشن های موبایل نمایند.کاربران این دوره میتوانند با کسب مهارت های مطرح شده در سرفصلهای دوره گام بزرگ و سریعی جهت ورود به بازار اپلیکیشن های اندرویدی برداشته و با انتشار برنامه های طراحی شده خود در فضای مجاری کسب درآمد کنند.هم اینک ده ها هزار نرم افزار تحت موبایل در فضای اینترنتی منتشر شده که تعداد بی شماری از این نرم افزارها با دانلود های حیرت آور منبع درآمدهای چندین میلیونی برای طراح خود بوده اند.اگر قصد ورود به بازار نرم افزارهای موبایل دارید هم اینک در دروه آموزشی برنامه نویسی اندروید شرکت کنید. ثبت نام در دوره اهداف کلی این دوره: آموزش سیستم عامل اندروید آشنایی با UIاندروید، براساس XML اشنایی کامل با ساختار اندروید و پیاده سازی انواع اپلیکیشن پیاده سازی دیتابیس SQLite تسلط به وب سرویس های وب در اندروید آشنایی با فرگمنت طراحی برنامه برای دستگاه های اندرویدی توانایی ورود به بازار کار طراحی اپلیکیشن اندروید ثبت نام در دوره مشخصات دوره : مدرس (مدرسان) : فرزاد سرسیفی پیشنیاز: آشنایی با مفاهیم برنامه نویسی - آشنایی با زبان جاوا مدت زمان دوره: 9 جلسه ( کارگاه کاملا عملی تحت پروژه) به صورت کارگاهی (در مجموع 36 ساعت)(ظرفیت 10 نفر) تاریخ برگزاری: (دوره از 6 شهریور ماه 1396 به مدت 9 جلسه - روزهای دوشنبه 17 الی 21 و چهارشنبه ساعت 17 الی 21 ) مدرک: در پایان دوره مدرک پایان دوره از طرف انستیتو آموزشگاه اندروید ایران ارائه میگردد. سه دانشجو نمونه اول به شرکت های معروف ایرانی جهت همکاری معرفی می گردند. به شرکت کنندگان در دوره کد ویژه خرید محصولات شاپ دروید داده می شود و می توانند برای همیشه محصولات این فروشگاه را با تخفیف 50 درصدی تهیه کنند. ویژگی : آموزش در لابراتوار مجهز به سیستم های روز به صورت شبکه تحت NetSupport و متصل به اینترنت و کاملا اینتراکتیو تحت پروژه عملی انجام خواهد گرفت. مکان برگزاری : این دوره آموزشی با همکاری آموزشگاه ویستا برگزار خواهد شد ثبت نام در دوره راهنمای ثبت نام: ثبت نام خود را میتوانید از طریق فرم زیر انجام دهید.پس از واریز وجه نام شما در لیست ثبت نام قرار خواهد گرفت و قبل از شروع دوره با شما تماس حاصل خواهد شد و از طریق پیامک اطلاع رسانی میشود. جهت کسب هر نوع اطلاعاتی در خصوص دوره میتوانید با ایمیل info@android-learn.ir وشماره های تماس ۸۸۵۰۸۰۸۰ -۸۸۵۵۴۲۱۷ -۸۸۵۵۴۲۱۳ تلگرام همراه 09100046764 تماس حاصل نمایید. سرفصلهای دوره آموزشی برنامه نویسی اندروید به صورت کاملا عملی: ثبت نام در دوره فصل اول)فریمورک اندروید و راه اندازی اندروید استودیو آشنایی با اندروید لایه های نرم افزاری اندروید کتابخانه های اندروید ورژن های مختلف اندروید از ابتدا تا Marshmellow نصب و راه اندای اندروید استودیو نیازمندی مورد نیاز برای اندروید استودیو آشنایی با اندروید استودیو ماشین مجازی اندروید AVD ماشین مجازی genymotion آشنایی با دیباگ پروژه در اندروید استودیو فصل دوم) SDK اندروید و اکتیویتی ساختار پروژه های اندروید آشنایی با فایل مانیفست ساختار فایل مانیفست آشنایی با SDK اندروید آشنایی با اکتیوتی و مفهوم اکتویتی در اپلیکیشن های اندروید چرخه حیات اکتیوتی Life Cycle فصل سوم) فرگمنت،View ها و ListView آشنایی با فرگمنت View ها در اندروید آشنایی با ویجت های اندروید سایر استاندارد تصاویر در اندروید فصل چهارم)Intent ها و Intent filters آشنایی با Intent انتقال اطلاعات توسط Intent ارتباط بین اکتیویتی ها با Intent Register کردن IntentFilter فصل پنجم) Layout های اندروید و View های سفارشی آشنایی با مفاهیم Layout طراحی واسط کاربری برای سایز های مختلف Layout های چند زبانه ساخت View های سفارشی فصل ششم) منابع اندروید،Theme و متریال دیزاین معرفی منابع اندروید Theme های اندروید Style ها بکار گیری Material Design در طراحی اپلیکیشن Shape and Selector فصل هفتم)Ui اندروید-دیالوگ ها،منوها و WebView دیالوگ ها AlertDialog دیالوگ های سفارشی اکتیویتی دیالوگ ها منوها OptionMenu ContextMenu نمایشگر داخلی WebView فصل هشتم)ذخیره سازی اطلاعات و پردازش های پس زمینه ای روش های ذخیره سازی اطلاعات در اندروید خواندن و نوشتن در فایل SharedPrefrences ارتباط با اینترنت سرویس های پس زمینه Service BroadCastReciver فصل نهم)ذخیره سازی اطلاعات با دیتابیس Sqlite معرفی دیتابیس در اندروید پیاده سازی دیتابیس Sqlite در اندروید افزودن اطلاعات به دیتابیس ویرایش اطلاعات در دیتابیس حذف اطلاعات در دیتابیس نمایش اطلاعات در دیتابیس فصل دهم)Notification در اندروید پیاده سازی Notification در اندروید Notification های سفارشی طراحی واسط کاربری برای Notification آشنایی با Pending Intent Notification در اندروید 5 فصل یازدهم)Sms،شبکه ها ،بلوتوث ، wifi،ویبره ارسال SMS دریافت پیامک روشن کردن بلوتوث روشن کردن Wifi Detect کردن wifi کنترل کردن ویبره دستگاه فصل دوازدهم)وب سرویس ها- JSON مفهوم وب سرویس انواع وب سرویس ها ارتباط با وب سرویس آشنایی با وب سرویس JSON آشنایی با JSON Array آشنایی با JSON Object آشنایی با Volley دریافت اطلاعات وب سرویس Volley ارسال اطلاعات به سرور Volley Image Loader volley Image Loader Picasoo آشنایی با HttpGet و HttpPost آشنایی با HttpResponse ثبت نام در دوره فصل سیزدهم)گوگل مپ و موقعیت یابی گوگل مپ گوگل مپ ورژن دو آشنایی با Google Play Service Api گوگل مپ آشنایی با Keytool برای تعریف Sha تعریف api در مانیفست افزودن Permission های مورد استفاده به مانیفست آشنایی با MarkerOptions ایجاد نقاط(point) روی نقشه آشنایی با CameraOption تنظیم کردن Zoom نقشه ایجاد نماهای Normal،Satellite،Terrain،Hybrid بدست آوردن مکان جاری و نمایش آن روی نقشه آشنایی با Lat و Lang آشنایی با LocationListener بدست آوردن موقیت جاری از روی GPS و Internet فصل چهاردهم)آشنایی با تغییرات اندروید5 Material Design Toolbar MenuDrawer Shade Animation CardView and RecycleBinView FloatingActionButton SnackBar CordinatorLayout این دوره توصیه میشود به : اشخاصی كه علاقه مند به آشنایی و كار حرفه ای با اندروید هستند. اشخاصی كه قصد فراگیری كامل طراحی اپلیکیشن های موبایل از ابتدا توسط اندروید دارند. اشخاصی كه قصد راه اندازی اپلیکیشن موبایل شخصی خود توسط اندروید دارند. اشخاصی كه میخواهند با فراگیری حرفه ای شروع به كسب درآمد نموده و به عنوان توسعه دهنده اندروید فعالیت كنند. شركتها و سازمانهایی كه قصد راه اندازی اپلیکیشن موبایل اندروید اختصاصی خود را دارند. دانشجویان رشته های كامپیوتر كه قصد فراگیری كامل توسعه اپلیکیشن های اندروید دارند. اشخاصی كه قصد پیاده سازی ایده های اپلیکیشن های موبایل را در قالب اندروید دارند. اشخاصی كه قصد دارند وب سایت خود را به اپلیکیشن های موبایل اندروید تبدیل كنند. و... دانشجویان موفق دوره های قبلی آموزشگاه اندروید ایران نام و نام خانوادگی تاریخ دوره رزومه و برنامه های تولید شده محسن جهانی بهار 93 مصاحبه با وب سایت appvs علیرضا غمخوار مرداد 93 توسعه دهنده شرکت رهنما.برنامه تولید شده کفش دوزک گروه برنامه نویسی ادامدن تابستان 94 https://cafebazaar.ir/developer/noorali/?l=fa دانشجویان گذرانند این دوره قابلیت پیاده سازی اپلیکیش های به صورتی تحت دیتابیس و کاملا پویا را خواهند داشت و آماده ورود به بازار کار میباشند. ثبت نام در دوره
  2. مدت زمانی که از شروع تایم گذاشته را بدست میاورد
  3. GPS

    کد Manifest و اکیتیویتی که Google map را نمایش میدهید را قرار دهید
  4. میشه یک تصویر از مشکل گوگل مپ روو قرار بدین بررسی کنیم؟
  5. کد کلاس Adapter خود را قرار دهید
  6. آیا جواب قبلی راه گشای مشکل شما نیست ؟
  7. chronometer.setOnChronometerTickListener(new OnChronometerTickListener() { @Override public void onChronometerTick(Chronometer chronometer) { long timeElapsed = SystemClock.elapsedRealtime() - chronometer.getBase(); int hours = (int) (timeElapsed / 3600000); int minutes = (int) (timeElapsed - hours * 3600000) / 60000; int seconds = (int) (timeElapsed - hours * 3600000 - minutes * 60000) / 1000; if(hours==5 && minutes==55){ doYourStuff(); } } });
  8. برای اینکار میبایستی با VIewPager اینکار رو پیاده سازی کنید.بدین صورت 1- ابتدا لایوت زیر را در رابط کاربری خود اضافه کنید <android.support.v4.view.ViewPager android:id="@+id/pager" xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" /> 2-سپس یک فرگمنت را ایجاد کنید FragmentOne public class FragmentOne extends Fragment { public FragmentOne() { // Required empty public constructor } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment_one, container, false); } } 3- رابط کاربری فرگمنت fragment_one.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:background="#D81B60" android:layout_height="match_parent"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Fragment One" android:textSize="40dp" android:textStyle="bold" android:textColor="#fff" android:layout_centerInParent="true"/> </RelativeLayout> 4- ساخت Adapter برای ViewPager و ایجاد آیتم ها ublic class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ViewPager viewPager = (ViewPager) findViewById(R.id.pager); ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager()); // Add Fragments to adapter one by one adapter.addFragment(new FragmentOne(), "FRAG1"); adapter.addFragment(new FragmentTwo(), "FRAG2"); adapter.addFragment(new FragmentThree(), "FRAG3"); viewPager.setAdapter(adapter); TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs); tabLayout.setupWithViewPager(viewPager); } // Adapter for the viewpager using FragmentPagerAdapter class ViewPagerAdapter extends FragmentPagerAdapter { private final List<Fragment> mFragmentList = new ArrayList<>(); private final List<String> mFragmentTitleList = new ArrayList<>(); public ViewPagerAdapter(FragmentManager manager) { super(manager); } @Override public Fragment getItem(int position) { return mFragmentList.get(position); } @Override public int getCount() { return mFragmentList.size(); } public void addFragment(Fragment fragment, String title) { mFragmentList.add(fragment); mFragmentTitleList.add(title); } @Override public CharSequence getPageTitle(int position) { return mFragmentTitleList.get(position); } } }
  9. کد متد sendDataرو هم بزارید. مشکل احتمالا از اول کلاس هستش
  10. آیا در Manifest مجوز Internet را نوشته اید؟ <uses-permission android:name="android.permission.INTERNET" />
  11. مشکل از سرعت اینترنت و فیلتر شکنی میباشد که استفاده میکنید. بدین صورت که هنگامیکه در حال کار با Gradle در حالت آنلاین هستید ،کلیه کتابخونه ها را بصورت آنلاین از Repository ی Jcenter اجرا میکند، بخاطر همین این مدت زمان طول میکشد
  12. گیت ( Git) یک نرم‌افزار کنترل نسخه و از مدل نرم‌افزارهای آزاد و متن‌باز برای بازنگری کد منبع توزیع شده و مدیریت منبع کد است که برای دنبال کردن تغییر فایلهای کامپیوتری و دنبال کردن کردن کارهای انجام شده روی آنها توسط افراد مختلف است. هدف اولیه این نرم‌افزار برای استفاده در پروژه‌های نرم‌افزاری بوده است ولی می‌توان از آن تنها برای دنبال کردن تغییر فایل‌ها هم استفاده کرد. گیت ابتدا برای توسعهٔ لینوکس توسط لینوس تروالدز به وجود آمد و اکنون پروژه‌های فراوانی از آن الهام گرفته‌اند. هر دایرکتوری کاری در گیت یک مخزن کامل با تاریخچهٔ کامل تغییرها و قابلیت بازنگری آن‌ها است و برای کار با آن نیازی به دسترسی به شبکه یا سرور مرکزی وجود ندارد. گیت یک نرم‌افزار آزاد است که تحت عنوان جی‌پی‌ال نسخه ۲ توزیع شده است. تاریخچهٔ Git توسعهٔ گیت زمانی شروع شد که بسیاری از توسعه‌دهندگان لینوکس، در استفاده از بیت کیپر، که یک سیستم مدیریت کد می‌باشد که قبلاً برای توسعه هستهٔ لینوکس استفاده می‌شد، امتناع ورزیدند. نگهدارندهٔ کپی رایت، لری مک وی، حق استفادهٔ رایگان از این نرم‌افزار را پس از آن که اندرو تریدگل به روش مهندسی معکوس می‌خواست که پروتکل‌های بیت کیپر را پیاده کند، برداشت. توروالدز نیاز به سیستم توزیع شده‌ای داشت که بتواند از آن همانند بیت کیپر استفاده کند، ولی هیچ‌کدام از نرم‌افزارهای آزاد را مبتنی بر نیازهای خود ندید، به خصوص نیاز او به کارایی بالا. تا قبل از ۲۰۰۲ برای گسترش کرنل از هیچ نرم‌افزار کنترل نسخه استفاده نمی‌شد و هر فردی که در گسترش کرنل نقش داشت به شکل خصوصی از نرم‌افزارهایی مانند SVN/CVS استفاده می‌کرد و دلیلش آن بود که هیچ‌کدام از نرم‌افزارهای کنترل نسخه این توانایی را نداشتند که حجم تغییرهایی که در لینوکس اتفاق می‌افتاد را پشتیبانی کنند. در این سال لینوس از BitKeeper به عنوان نرم‌افزار کنترل نسخه رسمی لینوکس استفاده کرد که به گسترش دهنده‌های کرنل (هر پروژهی متن باز) اجازه می‌داد به صورت رایگان از BitKeeper استفاده کنند. در سال ۲۰۰۵ اجازهٔ استفاده رایگان از Bitkeeper برای گسترش دهندگان لینوکس محدود شد (به دلیل انجام مهندسی معکوس روی Bitkeeper) و لینوس شروع به جستجو برای یافتن جایگزینی مناسب کرد. اما نرم‌افزار مناسبی پیدا نکرد که بتواند حجم تغییر لینوکس را مدیریت کنند و این کمبود سبب شد تا توروالدز به فکر نوشتن یک نرم‌افزار کنترل نسخه بیفتد. توسعه گیت در ماه آوریل سال ۲۰۰۵ آغاز شد و تنها ۲ هفته بعد از شروع توسعه، گیت قادر بود شاخه‌ها (branch) را ادغام (merge) کند. ۲ ماه بعد گیت به عنوان نرم‌افزار کنترل نسخه رسمی برای گسترش لینوکس مورد استفاده قرار گرفت. ساختار گیت در طراحی گیت از نرم‌افزارهای Bitkeeper و Monotone الهام گرفته شده است. گیت در ابتدا به صورت یک نرم نرم‌افزار کنترل نسخه سطح پایین نوشته شد به این صورت که دیگران بتوانند برای آن نرم‌افزار لایه رویی بنویسند. با این که گیت از bitkeeper تاثیرها و الهام زیادی داشته است در آن تلاش شده است که روش‌های استفاده شده منحصر به فرد باشند. اطلاعات کلی تجربه سازنده گیت در لینوکس با توجه به بزرگی و توزیع شده بودن آن و همچنین آشنایی با فرمت فایل‌ها و نحوه ذخیره شدن و ساختار آن‌ها در ساخت گیت مؤثر بوده است. این تأثیر باعث به وجود آمدن این موارد در پیاده‌سازی آن شده است. حمایت قوی از برنامه‌نویسی غیر خطی گیت از ادغام‌سازی و شاخه‌سازی متوالی پشتیبانی می‌کند؛ و در آن ابزارهای ویژه تصویر و سازی و جست و جو در تاریخچه کد تعبیه شده است. در گیت فرض بر این بوده است که معمولاً ادغام سازی تغییرهای بیشتر از ایجاد و نوشتن تغییرهای جدید انجام می‌شود. همچنین در گیت شاخه‌سازی کم هزینه است و هر شاخه‌سازی تنها لینکی به یک تغییر دارد؛ و با استفاده از روابط وراثتی در شاخه سازی‌ها شکل کلی بعد از هر شاخه سازی بدست می‌آید. برنامه‌نویسی توزیع شده مانند بسیاری از نرم‌افزارهای کنترل نسخه دیگر گیت به هر کاربر یک تاریخچه از تمامی تغییرها می‌دهد. این تغییرها در شاخه‌های مختلفی اعمال می‌شوند و می‌توانند با نسخه‌های دیگر ادغام شوند. تطبیق پذیری و با سیستم‌های خارجی و پروتوکل‌ها تاریخچه می‌تواند در فرمت‌های مختلفی از جمله پروتکل انتقال ابرمتن (HTTP) و پروتکل انتقال فایل (FTP) و آرسینک و یا یک پروتوکل گیت تحت سوکت یا پوسته ایمن (SSH) منتشر شود. همچنین یک سازنده سرور سیستم نسخه‌های هم‌روند دارد که توسط آن سیستم نسخه‌های هم‌روند کاربر و محیط یکپارچه توسعه نرم‌افزار (IDE) می‌توانند به تاریخچه گیت دسترسی پیدا کنند. پردازش بهینه برای پروژه‌های بزرگ سازنده آن، آن را بسیار سریع و توسعه پذیر توصیف کرده است. تست‌های انجام شده بر روی آن توسط Mozilla نشان داده است که حدود ۱۰ برابر سریع‌تر از برخی دیگر از نرم‌افزارهای کنترل نسخه است و همچنین ذخیره تاریخچه تغییرها به صورت محلی باعث شده است که سر هم کردن آنها حدود ۱۰۰ بار سریع‌تر انجام شود. امنیت دسترسی پذیری به تاریخچه گیت به صورتی پیاده‌سازی می‌شود که شماره هر نسخه به شماره تمامی نسخه‌هایی که باعث بوجود آمدن آن نسخه شده‌اند وابسته است. بعد از منتشر شدن هر نسخه نمی‌توان در آن تغییری انجام داد که قابل مشاهده نباشد. طراحی وابسته به ابزار گیت در اصل به زبان C و همچنین تعدادی واسطه‌میان قسمت‌های آن به زبان shell script نوشته شده است. اکثر قسمت‌های آن برای افزایش بهینگی پردازش و افزایش امکان قابل حمل بودن تغییر یافته‌اند ولی ساختار طراحی آن به همان صورت اولیه باقی مانده است و هنوز اتصال موئلفه‌های آن به راحتی قابل انجام است. استراتژی‌های ادغام‌سازی قابل اتصال الگوریتم ادغام‌سازی گیت یک ادغام‌سازی کامل نیست؛ و در مواردی که نتواند ادغام سازی را انجام دهد به کاربر اطلاع داده و از اون می‌خواهد تا استراتژی مورد نظر خود برای ادغام‌سازی را انتخاب کند. آشغال‌ها باقی می‌مانند تا وقتی جمع‌آوری شوند. بعضی از قابلیت‌ها و بعضی از پردازه‌های استفاده نشده در پروژه برای پروژه بدون استفاده خواهند بود ولی در گیت باقی می‌مانند و به آنها اصطلاحاً آشغال گفته می‌شود. وقتی حافظه مربوط به آشغال‌ها پر شود گیت به صورت خودکار جمع‌آوری آشغال را انجام می‌دهد. همچنین می‌توان با این دستور آن را انجام داد. git gc --prune جمع‌آوری دوره‌ای داده‌های مجزا با گسترش پروژه حجم داده‌ها در فایل‌های مختلف بیشتر و بیشتر می‌شود و هرچند که هر فایل به صورت مجزا فشرده‌سازی می‌شود ولی در مجموع فایل‌ها حجم بالایی را اشغال خواهند و پردازش زیادی برای جست‌وجو در میان آن‌ها و پردازش آنها صرف می‌شود که این موضوع اصلاً بهینه نیست. برای حل این مشکل گیت مجموعه تعدادی از فایل‌ها را در یک بسته نگهداری می‌کند. روش آن بدین صورت است که احتمال می‌دهد فایل‌های با نام متشابه، محتوای متشابهی نیز داشته باشند و آن‌ها را در یک بسته ذخیره می‌کند. هرچند که این روش لزوماً درست نیست. عملیات جمع‌آوری به صورت دوره‌ای و در زمان‌هایی که فشار کمتری روی سرور باشد انجام می‌شود، مثل زمان‌های خارج از وقت اداری. داده ساختار گیت دو نوع ساختار دارد: یکی یک ساختار تغییرپذیر که در آن اطلاعات پوشه‌ای که در حال تغییر است و همچنین اطلاعات ساخت ورژن بعدی ذخیره می‌شود؛ و دیگری دادی ساختاری غیرقابل تغییر و تنها قابل اضافه کردن از یک پایگاه داده است. این پایگاه داده چهار نوع داده را ذخیره می‌کند. حباب (blob) شامل اطلاعات یک فایل است. blob دارای نام و یا تاریخ نیست و نام آن از اطلاعات داخل آن نشئت می‌گیرد. درخت (tree) نشئت گرفته از یک پوشه است و لیستی از مجموعه فایل‌ها را ذخیره می‌کند. در این لیست لینک‌های مربوطه به حباب‌ها ذخیره می‌شود. اعمال (commit) مجموعه‌ای از درخت‌ها را در خود ذخیره می‌کند. شمال اسم درخت‌ها، تاریخ اعمال، توضیحات (log message) و نام‌ها مربوط به اعمال‌های والدین خود است. تگ (tag) شامل یک اشاره به یک داده دیگر است که در آن فراداده مربوطه ذخیره می‌شود. اخیراً از آن برای نگهداری امضاهای مربوطه نیز استفاده می‌شود. سرورهای گیت عموماً از پورت (TCP port 9418) استفاده می‌کنند. رابطه‌ها هر داده‌ای داخل گیت که به آن رابطه‌ای اطلاق نشده باشد می‌تواند با اجرای دستور جمع‌آوری زباله و یا به صورت خودکار حذف شود. رابطه‌ها ممکن است از یک داده به داده‌ای دیگر و یا به صورت مجزا باشند. گیت مدل‌های مختلفی از رابطه دارد؛ و دستورها مختلفی برای دسترسی به آن‌ها وجود دارد. چند نمونه از انواع رابطه: سر (head): به صورت محلی به یک داده اشاره دارد. کنترل از دور (remote): به یک داده خارجی اشاره دارد. ذخیره‌ای (stash): به یک داده که هنوز اعمال نشده اشاره دارد. پرچم (tag): در بالاتر توضیح داده شد. در پوشهٔ پایهٔ هر پروژه که با استفاده از گیت مدیریت می‌شود پوشه‌ای با نام git. (نقطه git) وجود دارد که تمامی اطلاعات مربوط به پروژه (تاریخچه، برچسب‌ها، ...) را در خود نگه می‌دارد. این ساختار بر خلاف ساختار سابورژن است که در هر زیرشاخه یک پوشهٔ svn. (نقطه svn) دارد. از جمله پرونده‌هایی که در پوشهٔ git. وجود دارند، config است که تنظیمات مخزن را در خود نگه می‌دارد.
  13. این متد را اجرا کنید ublic boolean isStoragePermissionGranted() { if (Build.VERSION.SDK_INT >= 23) { if (checkSelfPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) { Log.v(TAG,"Permission is granted"); return true; } else { Log.v(TAG,"Permission is revoked"); ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1); return false; } } else { //permission is automatically granted on sdk<23 upon installation Log.v(TAG,"Permission is granted"); return true; } } Call back نتیجه Permission @Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); if(grantResults[0]== PackageManager.PERMISSION_GRANTED){ Log.v(TAG,"Permission: "+permissions[0]+ "was "+grantResults[0]); //resume tasks needing this permission } }
  14. گیت ( Git) یک نرم‌افزار کنترل نسخه و از مدل نرم‌افزارهای آزاد و متن‌باز برای بازنگری کد منبع توزیع شده و مدیریت منبع کد است که برای دنبال کردن تغییر فایلهای کامپیوتری و دنبال کردن کردن کارهای انجام شده روی آنها توسط افراد مختلف است. هدف اولیه این نرم‌افزار برای استفاده در پروژه‌های نرم‌افزاری بوده است ولی می‌توان از آن تنها برای دنبال کردن تغییر فایل‌ها هم استفاده کرد. گیت ابتدا برای توسعهٔ لینوکس توسط لینوس تروالدز به وجود آمد و اکنون پروژه‌های فراوانی از آن الهام گرفته‌اند. هر دایرکتوری کاری در گیت یک مخزن کامل با تاریخچهٔ کامل تغییرها و قابلیت بازنگری آن‌ها است و برای کار با آن نیازی به دسترسی به شبکه یا سرور مرکزی وجود ندارد. گیت یک نرم‌افزار آزاد است که تحت عنوان جی‌پی‌ال نسخه ۲ توزیع شده است.
  15. خیر باید Grant Permission را اعمال کنید برای اندروید 6 به بالاتر
  16. آیا Grant Permission برای Storage را در نظر گرفته اید ؟
  17. روی چه ورژن اندرویدی برنامه را تست میکنید؟
  18. باید با WebView اینکار را انجام دهید
  19. درود به همه کاربران انجمن اندروید ایران به عنوان یکی دیگر از هدایای سری جدید انجمن اندروید ایران پروژه کتاب ساز اندروید را برای شما آماده و در اختیار شما عزیزان قرار گرفت. از آنجایی که هدف انجمن اندروید ایران فقط و فقط خدمت به اندروید ایران است و رشد و توسعه آن در گرو همکاری همه عزیزان است لذا به عنوان یک عضو کوچک از این خانواده بزرگ تلاش خود را انجام میدهیم تا خدمتی صادقانه به شما عزیزان ارائه دهیم. چندین وقت بود نیاز بود راهی آسان برای ساخت و ایجاد اپلیکیشن های بر پایه تولید محتوا ایجاد شود،بر همین دلیل انجمن پی سی دروید این نیاز را با ارائه روش "کتاب ساز اندروید" نیز برای توسعه دهندگان گرامی اندروید رفع خواهد کرد. امید است دوستان گرامی بتواند اپلیکیشن های جذابی را در آینده تولید نمایند و باعت پیشرفت صنعت موبایل در کشور باشد از امکانات این کتاب ساز : ورق زدن صفخات بصورت راست به چپ قرار دادن تصاویر و متون در صفحات قرار دادن متون فارسی و ... امکان قرار دادن نامحدود صفحات استفاده از دیتابیس برای نمایش اطلاعات برای استفاده از این پروژه باید حتما کتابخانه FilpBook را نیز به پروژه خود اضافه کنید،کتابخانه مورد نظر نیز در پیوست قرار گرفته است. دانلود پروژه: http://p30droid.com/Uploader/do.php?id=359 کتابخانه پروژه: http://p30droid.com/Uploader/do.php?id=360 پیروز و سربلند باشید. انجمن اندروید ایران
  20. آیا کلاس را در Manifest معرفی کردید به تگ name ؟ چرا دیتابیس رو در کلاس Application میاید و open میکنید ؟ کد کلاس Application را قرار بدین
  21. کتاب آموزشی Kotlin Language Documentation عنوان کتاب:Kotlin Language Documentation حجم:1.42 مگابایت نویسنده: Kotlin چرا این کتاب را بخونم: Kotlin provides the ability to target JavaScript. It does so by transpiling Kotlin to JavaScript. The current implementation targets ECMAScript 5.1 but there are plans to eventually target ECMAScript 2015 also. When you choose the JavaScript target, any Kotlin code that is part of the project as well as the standard library that ships with Kotlin is transpiled to JavaScript. However, this excludes the JDK and any JVM or Java framework or library used. Any file that is not Kotlin will be ignored during compilation. The Kotlin compiler tries to comply with the following goals: Provide output that is optimal in size Provide output that is readable JavaScript Provide interoperability with existing module systems Provide the same functionality in the standard library whether targeting JavaScript or the JVM (to the largest possible degree). You may want to compile Kotlin to JavaScript in the following scenarios: Creating Kotlin code that targets client-side JavaScript Interacting with DOM elements. Kotlin provides a series of statically typed interfaces to interact with the Document Object Model, allowing creation and update of DOM elements. Interacting with graphics such as WebGL. You can use Kotlin to create graphical elements on a web page using WebGL. Creating Kotlin code that targets server-side JavaScript Working with server-side technology. You can use Kotlin to interact with server-side JavaScript such as node.js Kotlin can be used together with existing third-party libraries and frameworks, such as JQuery or ReactJS. To access third-party frameworks with a strongly-typed API, you can convert TypeScript definitions from the Definitely Typed type definitions repository to Kotlin using the ts2kt tool. Alternatively, you can use the dynamic type to access any framework without strong typing. Kotlin is also compatible with CommonJS, AMD and UMD, making interaction with different module systems straightforward. To find out how to start using Kotlin for JavaScript, please refer to the tutorials. دانلود کتاب kotlin-docs.pdf
  22. اندروید استودیو نام محیط یکپارچه‌ی توسعه (IDE) اختصاصی گوگل است که از آن برای ساخت برنامه‌های اندروید استفاده می‌شود. گوگل آخرین نسخه از اندروید استودیو با نام Android Studio 2.3 را در ماه مارس (۲ ماه پیش) سال جاری میلادی عرضه کرده بود. با توجه به جهش شماره‌ی نسخه‌ی جدید به ۳، می‌توان انتظار تغییرات بنیادین در ابزار برنامه‌نویسی گوگل داشت. (شماره‌ی نسخه‌های بتای بیلد جدید اندروید استودیو در ابتدا ۲.۴ بود؛ اما گوگل با توجه به گستردگی تغییرات، تصمیم به افزایش شماره‌ی نسخه گرفت.) تغییرات و ویژگی‌های جدید نسخه‌ی جدید اندروید استودیو از این قرار است: زبان برنامه‌نویسی Kotlin: می‌توانید به صورت هم‌زمان از کدهای Kotlin در کنار کدهای قدیمی اپلیکیشن اندروید خود استفاده کنید. با استفاده از ابزار تبدیل به کار گرفته‌شده در نسخه‌ی جدید (از مسیر Code → Convert Java File to Kotlin File) می‌توان از کدهای Kotlin در پروژه‌های قدیمی استفاده کرد؛ یا از طریق New Project Wizard می‌توان پروژه‌ای کاملا جدید بر مبنای Kotlin آغاز کرد. ویژگی‌های زبان Java 8: برای به‌روزرسانی اپلیکیشن‌های خود به‌منظور پشتیبانی از ابزارهای زبان جدید جاوا 8، کافی است به سادگی سطح سازگاری سورس و تارگت خود را در پنجره‌ی Project Structure به 1.8 افزایش بدهید. Layout Editor: قسمت ComponentTree با قابلیت Drag-and-Drop بهبود یافته و پنل ارور جدید به‌روزرسانی شده است. علاوه بر به‌روزرسانی ConstraintLayout، قابلیت اضافه کردن جداسازها (Barriers) و گروه‌بندی نیز به Layout Editor اضافه شده است. Adaptive Icon Wizard: یکی از قابلیت‌های جدید اندروید O، پشتیبانی از آیکون‌های انطباق‌پذیر (Adaptive) در لانچر است. این قابلیت باعث می‌شود آیکون یک اپلیکیشن هنگام نمایش در دستگاه‌های مختلف اندرویدی ظاهر متفاوتی به خود بگیرد. از طریق Wizard اختصاص داده شده به این قابلیت در نسخه‌ی جدید اندروید استودیو می‌توانید آیکون‌های جدید و قدیمی را به پروژه‌ی خود اضافه کنید و نحوه‌ی نمایش آن‌ها در لانچرهای مختلف را از طریق ابزار Preview مشاهده کنید. برای استفاده از این قابلیت در پروژه‌ی خود روی فولدر /res راست کلیک کنید و سپس به مسیر New → Image Asset → Launcher Icons → Adaptive and Legacy بروید. فونت‌های XML و فونت‌های قابل دانلود: با قابلیت جدید XML fonts preview و ابزار جدید انتخاب فونت، اضافه کردن فونت‌های اختصاصی به اپلیکیشن‌های اندروید O بسیار آسان شده است. در آپدیت جدید همچنین می‌توانید به جای گنجاندن فونت‌ها در فایل APK، آن‌ها را به صورت منابع دانلودی درون اپلیکیشن خود قرار دهید. (کاربران برای استفاده از این ویژگی به Google Play Services ورژن 11.2.63 یا بالاتر احتیاج خواهند داشت.) پشتیبانی از Android Things: در اندروید استودیو ۳ می‌توانید با استفاده از مجموعه‌ای از قالب‌های پیش‌فرض از طریق ویزاردِ New Project یا New Module به توسعه برای پلتفرم Android Things بپردازید. به‌روزرسانی پلتفرم IntelliJ: اIntelliJ 2017.1 با ویژگی‌های جدید از جمله پشتیبانی از بازسازی کدهای Java 8، برجسته‌سازی معنایی کدها، بریک‌پوینت‌های قابل درگ کردن، کنترل‌ورژن بهبودیافته و بسیاری قابلیت‌های جدید دیگر به‌روزرسانی شده است. پشتیبانی از Instant App: با استفاده از ماژول‌تایپ‌های جدید instant app و قابلیت جدید App Links Assistant می‌توانید از Instant App-ها در پروژه‌های خود استفاده کنید. برای این کار می‌توانید از طریق ویزاردِ New Module یا راست-کلیک روی کلاس مربوطه، به مسیر Refactor → Modularize بروید. افزایش سرعت بیلد: با استفاده از ماژول‌های جدید، سرعت اجرای پروژه‌ها بسیار افزایش یافته است. این بهبود به لطف استفاده از پلاگین جدید Android Gradle میسر شده است؛ بنابراین اگر برنامه‌ی شما به API-های پلاگین قدیمی وابسته است، باید قبل از مهاجرت به پلاگین جدید سازگاری برنامه‌ی خود با API-های جدید را تست کنید. برای این کار نسخه‌ی پلاگین درون فایل build.gradle باید به‌روزرسانی شود. ریپازیتوری Google Maven: وابستگی‌های Android Support Library قرار است از این پس خارج از Android SDK Manager و از طریق یک ریپازیتوری جدید با نام Maven در اختیار قرار بگیرند. ساخت، ادغام و مدیریت بیلدهای پیوسته با استفاده از Maven Repository بسیار آسان‌تر از گذشته خواهد بود. (برای استفاده از این منابع، آدرس https://maven.google.com را به فایل build.gradle اپ خود اضافه کنید.) ایمیج‌های سیستمی گوگل‌پلی: ایمیج‌های سیستمی شبیه‌ساز اندروید O از این به بعد شامل Google Play Store نیز می‌شوند. از این پس می‌توانید اپلیکیشن‌های خود را به صورت end-to-end با گوگل‌پلی تست کنید و Google Play services را درست مانند دستگاه‌های فیزیکی، در دستگاه اندروید مجازی (AVD) خود نیز به‌روزرسانی کنید. پشتیبانی از OpenGL ES 3.0 در Android Emulator: علاوه بر بهبودهای قابل توجه در عملکرد گرافیکی OpenGL ES 2.0 در شبیه‌سازهای قدیمی، پشتیبانی از OpenGL ES 3.0 به Android Emulator اضافه شده است. برای استفاده از این ویژگی، کارت گرافیک دستگاهی که اندروید استودیو ۳ روی آن نصب است باید از OpenGL 3.2 پشتیبانی کند. این قابلیت فعلا تنها برای ویندوز و لینوکس عرضه شده است و هنوز برای MacOS در دسترس نیست. App Bug Reporter: برای آسان‌تر شدن فرآیند به دست آوردن گزارش از باگ‌های اپلیکیشن، App Bug Reporter به Android Emulator اضافه شده است. همچنین لینکی برای به‌اشتراک‌گذاری باگ‌های خودِ شبیه‌ساز با تیم اندروید استودیو درون نرم‌افزار در نظر گرفته شده است. (برای این کار به مسیر Emulator Tool Bar → Extended Controls → Help → Emulator Help → File a Bug بروید.) پشتیبانی از پراکسی در اندروید: یک رابط کاربری برای مدیریت تنظیمات پراکسی مورد استفاده توسط امولاتور، به نسخه‌ی جدید اضافه شده است. Android Emulator به صورت پیش‌فرض از تنظیمات پراکسی اندروید استودیو استفاده می‌کند، اما از این پس می‌توانید این تنظیمات را از مسیر Extended Controls → Settings → Proxy تغییر بدهید. کنترل‌های Android Wear در امولاتور اندروید: کنترل‌های چرخشی اندروید ور ۲.۰ به ایمیج سیستمی امولاتور اضافه شده است. از این پس می‌توانید اپلیکیشن‌های اندورید ور خود را که شامل کنترل‌های چرخشی (برای اسکرول کردن) هستند را به‌راحتی در امولاتور اندروید تست کنید. هنگام انتخاب دستگاه اندروید ور در امولاتور، یک پنل برای شبیه‌سازی ورود کنترل‌های چرخشی در قسمت Extended controls به نمایش درمی‌آید. APK Debugging: در صورت داشتن نسخه‌ی قابل دیباگ یک APK، می‌توان به‌راحتی از طریق قابلیت جدید APK Debugging فایل خود را مانیتور، آنالیز و دیباگ کنید. اگر سورس فایل پروژه را نیز در اختیار دارید، می‌توانید با لینک کردن آن به فایل APK، سرعت و دقت فرآیند دیباگ را افزایش دهید. این قابلیت از مسیر File → Profile و سپس انتخاب گزینه‌ی debug APK در دسترس خواهد بود. Layout Inspector: قابلیت گروه‌بندی ویژگی‌ها (Properties) در دسته‌های متداول و اضافه شدن امکان جستجو در View Tree و پنل Properties، از جمله قابلیت‌های جدید Layout Inspector هستند. برای دسترسی به این ویژگی‌ها به مسیر Tools → Android → Layout Inspector بروید. Device File Explorer: دیوایس فایل اکسپلورر که در واقع نسخه‌ی پورت‌شده‌ی DDMS است، به شما این امکان را خواهد داد تا ساختار فایل‌ها و دایرکتوری دستگاه اندرویدی خود را در امولاتور مشاهده کنید. با استفاده از Device File Explorer می‌توان همزمان با تست اپلیکیشن، فایل‌های app data را در اندروید استودیو مشاهده و دستکاری کرد. Android Profiler: ابزارهای مانیتورینگ اندروید استودیو که پیش از این با نام Android Monitor در دسترس بودند، به‌طور کلی از نو نوشته شده و تحت عنوان Android Profiler جایگزین شده‌اند. هنگامی که یک اپلیکیشن را در دستگاه اندرویدی یا امولاتور اجرا می‌کنید، می‌توانید با استفاده از اندروید پروفایلر داده‌های مربوط به مصرف پردازنده، مموری و شبکه را به صورت real-time مانیتور کنید. هر کدام از عملکردهای اپلیکیشن در یک تایم‌لاین جدا به قسمت مربوطه در UI لینک شده است و با کلیک روی آن می‌توانید به جزئیات بیشتری از عملکرد اپلیکیشن خود در آن بخش دسترسی پیدا کنید. بهبودهای APK Analyzer: در نسخه‌ی جدید اندروید استودیو می‌توان با آنالیز فایل‌های زیپ Instant App و AAR-ها، سایز فایل APK نهایی را کاهش داد. APK Analyzer جدید امکان مشاهده‌ی بایت‌کدهای dex کلاس‌ها و متدها را نیز فراهم خواهد کرد. نسخه‌ی جدید اندروید استودیو هنوز در مرحله‌ی آزمایشی قرار دارد؛ اما خبر خوب اینکه می‌توانید همین حالا اندروید استودیو 3 را در کنار نسخه‌ی استیبل نصب، و همزمان مورد استفاده قرار دهید. ساخت اپلیکیشن‌های بهینه شده برای اندروید O، اینستنت اپ‌ها و برنامه‌نویسی به زبان Kotlin، همگی مستلزم استفاده از Android Studio 3 است. نسخه‌ی جدید ابزار توسعه‌ی گوگل را می‌توانید به صورت مستقیم از آدرس developer.android.com/studio برای ویندوز، لینوکس و مک دریافت کنید.
  23. آیا دیباگ کردید کدتون رو و وارد onErrorResponse نمیشه؟