ورچر - مرجع برنامه نویسی اندروید
67 subscribers
64 photos
1 video
3 files
23 links
کانال مرجع برنامه نویسی اندروید
varchar.ir
آموزش های برنامه نویسی اندروید و کتابخانه های کمکی اندروید

برای پیشنهاد مطالب به یوزر @TheLoneWolf پیام بدید
Download Telegram
آموزش متریال دیزاین - استفاده از منوی پایین صفحه (Bottom Navigation View)

http://varchar.ir/post/android-material-design-tutorials-bottom-navigation-view.html

#tutorial #material_design #bottomnav
رنگ های متریال دیزاین در colors.xml

تعداد زیادی در مورد این رنگ ها و پیدا کردن لیست کامل برای استفاده تو پروژه های اندرویدی سوال میکردن من قبلا پیدا کرده بودم و تو پروژه هام استفاده می کنم رو گیت هابم گزاشتم امیدوارم به دردتون بخوره

https://gist.github.com/The-LoneWolf/5cf23a01f420d233c5f86e4749fe080a

#material_design #colors
دوستان اتفاقی یه سایتی پیدا کردم دنبال ایده برای طراحی حالت خالی لیست ها تو اپ هام بودم که یه سایت هم موضوع باهاش پیدا کردم چک کنید شاید بدردتون خورد :)

http://emptystat.es/

#material_design #design #inspiration #ui #empty_states
دوستان در تاریخ 27 آوریل یک دوره رایگانی در سایت edx شروع خواهد شد برای برنامه نویسی پیشرفته اندروید. ظاهرا مطالب جالبی قراره تدریس بشه. مطالب پروژه محور هم خواهد بود.

https://www.edx.org/course/professional-android-app-development-galileox-caad003x#!

#tutorial #android
تکه کد کاربردی - غیرفعال کردن اسکرین شات در برنامه

http://varchar.ir/post/disable-screenshots-in-android-app.html
#code #screenshot
@varchar
دوستان کتابخانه SpotLight راستچین بودن رو ساپورت نمیکرد که امروز سورسش مورد بررسی و اصلاح قرار گرفت. سورس اصلاح شده اش در لینک زیر هست می تونید استفاده کنید.

https://github.com/The-LoneWolf/Spotlight
یکی از تغییرات جدید در گریدل که بعد از آپدیت به اندروید استودیو 3 مشاهده خواهید کرد دستور Implementation برای اضافه کردن کتابخانه هاست که به جای compile اضافه شده است.

در نسخه جدید گریدل دستور compile منسوخ(deprecate) شده است.

https://stackoverflow.com/questions/44493378/whats-the-difference-between-implementation-and-compile-in-gradle

#android_studio_3 #tip #update #deprecation #gradle
@varchar
آموزش کوتاه - ست کردن فونت در اندروید استودیو 3 و بدون کتابخانه اضافی

http://varchar.ir/post/set-fonts-with-android-studio-3.html

#font #tutorial
@varchar
تکه کد کاربردی - پرکردن گرید ریسایکلرویو از سمت راست

http://varchar.ir/post/create-rtl-grid-layout-manager.html

#rtl #code #gridlayoutmanager
@varchar
این تکنیک رو شاید بلد باشید ولی محض احتیاط برای تازه کارها میزارم

ایجاد سایه زیر تولبار به کمک ویو برای تلفن های با اندروید زیر 5

https://github.com/vipulasri/Toolbar-Elevation-Pre-Lollipop

#tip #shadow #pre_lolipop
@varchar
- برگشتن به اپ از یک آدرس وب خاص در مرورگر
- اضافه کردن درگاه پرداخت زرین پال به اپ
- کاربرد butterknife
- استفاده از رتروفیت
- ریز و بم کار با Gson
- ساخت فروشگاه خیلی ساده
- درست کردن ساختار mvp موقع کد نویسی
- استفاده از کاتلین
- ارسال و نمایش پوش نوتیفیکیشن کاستوم با firebase از سمت کدهای تحت وب خودمون
- استفاده از shapeshifter برای ساخت وکتورهای انیمیشنی برای دکمه ها و جاهای مختلف
و...

این مطالب هم بزودی ارسال میشه منتظر باشید دوباره برگشتم 😉😎

@varchar
آموزش کوتاه - بازگشت مستقیم به اپ از یک آدرس وب

http://varchar.ir/post/return-directly-to-app-from-web.html

#deeplink #redirect #tutorial
@varchar
روش استفاده از وکتورها به عنوان drawable right و ... که در حالت عادی کار نمیکنه

دوتا دستور تو گریدل هست برای وکتور ها
implementation 'com.android.support:support-vector-drawable:27.0.2'

یکی هم بخش دیفالت کانفیگ هست
vectorDrawables.useSupportLibrary = true

بعد دستور super.onCreate( این سطر رو باید بزاری
AppCompatDelegate.setCompatVectorFromResourcesEnabled(true);

بعد وکتورهایی که میخوای استفاده کنی عادی مثل همیشه اضافه میکنی اسمشم میزاری مثلا ic_email.xml

بعد میای توی فولدر دراوبل یه فایل xml دیگه ایجاد میکنی به اسم مثلا icon_email.xml و به شکل زیر محتواشو مینویسی
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:drawable="@drawable/ic_email" />

</selector>

آخر سر هم میبری ست میکنی به drawable right و یا بقیه دراوبل فیلد های ویو های مختلف
اسم icon_email رو

#drawable_right #fix #tutorial
@varchar
خیلی وقته مطلب تو بلاگ نمی نویسم فرصت نمیشه راستش شرمنده بابت این مورد 😁

امروز داشتم یه اپ موزیک مینوشتم که چندتا مورد پیدا کردم

اولی اینه که روند نشون دادن نوتیفیکیشن تو foreground service ها برای اندروید o عوض شده
لینک نمونه کدهاش اینجا هست
https://stackoverflow.com/questions/44658923/android-foreground-service-notification-not-showing/50634187#50634187

دومی هم برای کنترل موزیک پلیر با دکمه های هدفون - نوتیفیکیشن بار و ... کلا یه اینترفیس مانندی هست تو اندروید به اسم media session که دستورهای کنترل وضعیت پخش موزیک با اون رد و بدل میشه - یه سری پست هم از گوگل دولوپرز در مورش پیدا کردم
https://medium.com/google-developers/understanding-mediasession-part-1-3-e4d2725f18e4

#music #music_player #foreground_services
@varchar
امروز متوجه یه چیزی شدم هر تغییری تو کدهای نوتیفیکیشن ایجاد میکردم صدا و ویبره میزد اپ بعد سرچ دیدم باگ sdk 27 هست

https://issuetracker.google.com/issues/65108694

ظاهرا یه سری باگهای اساسی داره sdk 27 فعلا تو پروژه هاتون نسخه 26 یا 25 استفاده کنید

من که برگشتم رو 25 فعلا بیشتر از همه استیبل تر هست :))
#sdk #bug
@varchar
داخل نستد اسکرول ویو وقتی ریسایکلر ویو دارید و دیتا لود کنید میبینید که ویو خودش اتوماتیک به اونجا اسکرول میخوره که اذیت کننده هست برای غیر فعال کردنش باید به ویو بیرونی دستور
android:focusableInTouchMode="true"
رو اضافه کنید.

https://stackoverflow.com/a/37312042

#اندروید #اسکرول_ناخواسته #nested_scrollview
@varchar
حتما مشکل سوایپ ویوپیجری که بهش دایرکشن rtl دادید رو شما هم تجربه کردید :))

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

بعد یکم سرچ دیدم ویژگی به این شکل تو xml هست برای اندروید
android:rotationY="180"

اومدم این رو ست کردم به ویو پیجر یعنی این شکلی

<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:rotationY="180" />

با انجام این کار ویو برعکس کار میکنه مشکلی هم که داره محتویات داخلیش هم 180 درجه چرخیدن

بعدش اومدم به خارجی ترین لایه فرگمنت هام اینو اضافه کردم درست شد
android:rotationY="-180"

یعنی مثلا خارجی ترین لایه به این شکل هست

<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"
android:rotationY="-180"
tools:context=".fragment.FoodListFragment">

</LinearLayout>

بدون کتابخونه و کلی کد اضافی با یه سطر کد اومدم مشکل برعکس سوایپ شدن ویو پیجر رو حل کردم

#rtl #reverse_swipe #view_pager
@varchar
حل مشکل کش شدن open graph protocol سایت ها در تلگرام

یه یاداشت کوچیک برای کسایی که وب هم کار میکنن وقتی برای سایتتون تو هدر توضیحات شبکه های اجتماعی و عکس هاشو اضافه میکنید ممکنه اشتباهی پیش بیاد و لینک رو کپی کنید تو تلگرام بفرستید برا مشتری

یه مسئله ای پیش میاد اون هم اینه که تلگرام این توضیحات رو کش میکنه و حتی در صورت ویرایش هم درست نمیشه برای درست شدنش یه رباتی هست @webpagebot به این ربات لینک سایت مورد نظر رو بفرستید گزینه های آپدیت رو بزنید خودش درست میکنه :))

#web #telegram #open_graph #cache
@varchar
امروز یکی از سورسهای قدیمیم رو میخواستم با اس دی کا 28 کامپایل کنم یه ارور دیدم که مربوط به یک تغییری جالب تو اندروید P یا M هست.

Starting with Android 9 (API level 28), cleartext support is disabled by default.

یعنی از این به بعد اگه اپلیکیشن میخوایید بزارید رو گوگل پلی باید 100% گواهی ssl داشته باشید.

برای مارکت های دیگه چون تارگت اس دی کی مهم نیست میتونید دور بزنید.

روش دور زدن هم اضافی کردن android:usesCleartextTraffic="true" به تگ application تو منیفست هست

https://developer.android.com/training/articles/security-config#CleartextTrafficPermitted

اینجا هم یه رفیقمون یه مقاله ای درموردش نوشته که بعدا میخونم ببینم چی میگه
https://koz.io/android-m-and-the-war-on-cleartext-traffic/

#android #android_p #networking

@varchar