وقتی پسورد keystore اپلیکیشن رو فراموش کردیم !

استاندارد

یکی از بدترین اتفاقاتی که میتونه برای یک توسعه‌دهنده اندروید بیوفته ، فراموش کردن اطلاعات مربوط به sign اپلیکیشنه .
چرا ؟‌ چون بدون داشتن این اطلاعات باید فکر بروزرسانی کردن اپلیکیشنتون روی مارکت‌ها رو از سرتون بیرون کنید . منظور از بروزرسانی ، امکان نصب نسخه جدید به روی نسخه قدیمی بدون بوجود اومدن خطا در حین این کاره . یعنی کاربرتون به‌راحتی بدون نیاز به پاک کردن نسخه قدیمی نسخه جدید اپلیکیشنتون رو نصب کنه .
حالا چه اتفاقی میوفته اگه نسخه جدید اپلیکیشنمون رو با اطلاعاتی متفاوت از چیزی که نسخه‌‌های قبلی رو با اون sign کردیم sign کنیم ؟‌ تو این حالت اگه کاربرمون بخواد نسخه جدید رو نصب کنه به error زیر بر میخوره ( یا یه همچین چیزی ) .
photo_2016-06-21_11-07-06
در این حالت تنها کاری که کاربر میتونه برای نصب نسخه جدید انجام بده ، حذف نسخه قدیمی و بعد از اون نصب نسخه جدیده (که با این کار کاربرتون اطلاعات درون اپلیکشن رو از دست میده ).
خب حالا اگه این اتفاق بیوفته چیکار میتونیم بکنیم ؟
اول از همه اگه فایل keyStore تون رو گم کردین متاسفانه راهی براتون نمیمونه جز اینکه بیخیال بروزرسانی کردن نسخه قدیمی اپلیکیشنتون بدون حذف کردنش بشید .
ولی اگه فایل keyStore تون رو گم نکردید و فقط پسورد اون رو به خاطر نمیارید ، هنوز جای امیدواری هست .     به خواندن ادامه دهید

یک سال و دو روز پیش در چنین روزی !!!

استاندارد

خب خب خب (یا به قول غربیا well well well)، الان یک سال از روزی که اولین پستمو منتشر کردم میگذره ، یه سال پر فراز و نشیب چه تو زمینه کاری چه تحصیلی چه زندگی شخصی. تو این مدت ۳۲ تا پست منتشر کردم که قرار بود بیشتر از اینا باشه. سعی‌ام رو کردم که بتونم  مرتب بنویسم، ولی خب  بعضی وقتا به دلایل مختلف نشد. راجع‌به خیلی چیزی می‌خواستم بنویسم که وقت نشد ولی قطعاً در آینده می‌نویسم. ظاهر وبلاگم رو هم قرار بود عوض کنم که اونم وقت نشد ولی به زودی انجامش میدم.
ولی مهم‌ترین نکته توی این مدت حس و انرژی خیلی خوبی بود که از نوشتن گرفتم.

چندتا نکته کوچیک هم بگم :
اول اینکه امیدوارم از این به بعد بتونم پست‌های بیشتر و با کیفیت‌تری بنویسم.
دوم اینکه به همه توصیه اکید و شدید و … می‌کنم که شروع کنید به نوشتن (خوش میگذره).
سوم اینکه مثل همیشه خیلی خوشحال میشم اگه نظری، انتقادی، پیشنهادی دارید بهم بگید (غلط املایی رو میدونم، دارم روش کار می‌کنم: دی).

 

پیاده‌سازی Bottom navigation در متریال دیزاین

استاندارد

توی پست قبلی کمی راجع‌به خود Bottom navigation صحبت کردیم و باید و نباید‌هایی رو که باید برای پیاده‌سازی در نظر داشته باشیم رو برسی کردیم . حالا وقتشه که کمی هم درباره پیاده‌سازی این مدل صحبت کنیم . توی این پست ما قراره یک Bottom navigation بسازیم با تب‌های خانه ، پروفایل و نقشه و به وسیله اون بین صفحات مختلف حرکت کنیم . برای انجام این کار از کتابخونه AHBottomNavigation استفاده میکنیم .

ابتدا کتابخونه رو به پروژمون اضافه میکنیم .

توی اولین مرحله لازمه صفحات خانه ، نقشه و پروفایلمون رو بسازیم. برای این کار یک Fragment ساده مثل کد زیر میسازیم و با استفاده از یک TextView مشخص میکنیم الان توی کدوم صفحه هستیم .

حالا باید یک Adapter برای تغییر ViewPager بنویسیم .

در مرحله بعدی صفحه‌ای که میخوایم توی اون از Bottom navigation استفاده کنیم رو میسازیم .

برای View اصلی بهتره که از CoordinatorLayout استفاده کنیم تا اگه خواستیم از المان‌های دیگه مربوط به متریال رو توی صفحه‌مون استفاده کنیم به مشکلی برنخوریم . همینطور بهتره از ViewPager خود کتابخونه استفاده کنیم وگرنه باید ViewPager مون رو طوری تغییر بدیم که با حرکت دست نشه بین صفحه‌های مختلفش حرکت کرد.

و در مرحله آخر Activity ای که قراره Bottom navigation توی اون نمایش داده بشه رو میسازیم .

در کد بالا آرایه‌ای از تب‌هامون رو با استفاده از AHBottomNavigationItem میسازیم و اون رو به AHBottomNavigation مون اضافه میکنیم .
تابع  ()bottomNavigation.setColored یک مقدار boolean دریافت میکنه که به وسیله اون مشخص میکنه که توی انتخاب تب‌ها رنگ Bottom navigatoin رو به رنگ استفاده شده در AHBottomNavigationItem تغییر بده یا نه .

و این هم چیزی خواهد بود که در نهایت خواهیم داشت .

Screenshot_2016-05-31-10-27-03

معرفی Bottom navigation در متریال دیزاین

استاندارد

چند وقت قبل اندروید مدل جدیدی رو برای navigation در داخل اپلیکیشن‌ها معرفی کرد .مدلی به اسم Bottom navigation . چیزی خیلی شبیه به  مدل تب‌هایی( Tabs ) که از قبل در اندروید موجود بود ، ولی خیلی نزدیک‌تر به چیزی که توی IOS دیده بودیم  .bottom_nav توی این مدل تب‌ها از بالا به پایین صفحه منتقل شدند و کمی هم باید و نباید‌های جدید نسبت به مدل تب‌های سابق به اونها اضافه شده .
چیزی که توی این معرفی جالبه، اینه که قبلا بیشتر توسعه دهنده‌ها از جمله خودم وقتی کسی راجع‌به قرار دادن تب‌ها در پایین صفحه باهاشون حرف میزد ، یسری دلایل کاملا منطقی میاوردن که چرا پیاده کردن این مدل خیلی ایده خوبی نیست . یکی از مهم‌ترین این دلایل وجود ۳ دکمه اساسی هست که در پایین صفحه وجود داره و با قرار دادن تب‌ در اون ناحیه امکام وقوع اتفاق پیشبینی نشده (  مثلا کاربر دستش بخوره به یک دکمه که توقع‌ شو نداشته باشه ) بالا میره . با وجود معرفی رسمی این مدل ، من شخصا هنوز هم جزو طرفدار‌های این مدل نیستم و به نظرم ایراداتی که از قبل وجود داشته ، هنوز هم وجود داره . ولی با توجه به این موضوع که حالا این مدل توی Desing pattern های اندروید اومده و خیلی از اپلیکیشن‌های پر طرفدار دارن ارزش استفاده میکنن (مثل اینستاگرام ، کافه‌بازار و … ) گفتم شاید بد نباشه که درباره‌اش بنویسم .

چیزهایی که باید برای استفاده از Bottom navigation رعایت کنیم :
۱. تعداد تب‌های نمایش داده شده باید بین ۳ تا ۵ تب‌ باشه ، در صورتی احساس میکنید که کمتر یا بیشتر از این مقدار تب خواهید داشت بهتره سراغ این مدل نرید .
۲. برخلاف تب‌های معمول‌ ( بالای صفحه ) در این مدل نباید امکان scroll کردن ما بین تب‌ها وجود داشته باشه .
۳. همینطور برخلاف شیوه قدیمی نباید امکان تغییر بین تب‌ها بدون کلیک روی اونها (کشیدن انگشت به طرفین رو ) داشته باشیم .
۴. متن‌های استفاده شده در هر تب باید تا حد امکان کوتاه باشند ، همچنین استفاه از متن‌های چند خطی به هیچ وجه توصیعه نمیشه   .
۵. رنگ متن و ایکون‌های تب‌های مختلف نباید متفاوت باشن و فقط لازمه زنگ تب انتخاب شده تغییر کنه .
۶. اندازه‌ ایکون‌های استفاده شده باید ۲۴ در ۲۴ dp باشد .
موارد بالا خلاصه‌ای از مهم‌ترین موارد ذکر شده در صفحه مربوط به Bottom navigation بود . میتونید لیست کامل اون‌ها رو در اینجا بخونید .

چطور Bottom navigation رو توی پروژمون استفاده کنیم :
خب با توجه به اینکه توی نسخه‌های ‌کتابخونه‌های support گوگل فعلا خبری از پیاده‌‌سازی این مدل نیست ، یا باید خودمون این مدل رو پیاده‌سازی کنیم ، یا بگردیم دنبال کتابخونه‌هایی که آدم‌های باحال نوشتن و منتشر کردن . از اونجایی که توی این جور کارا این آدم‌های باحال همیشه فعال هستند بعد یه سرچ کوچیک میتونید چندتا کتابخونه برای پیاده کردن این مدل پیدا کنید . دو تا از بهترین کتابخونه‌ها برای انجام این کار AHBottomNavigation و BottomBar هستند که توضیحات و نحوه استفاده از هر کدومشون رو میتونید داخل صفحه گیت‌هابشون بخونید .
تو پست بعدی یه مثال از نحوه پیاده‌سازی Bottom navigation  با استفاده از کتابخونه AHBottomNavigation خواهم نوشت .

معرفی انیمیشن : اشتغال

استاندارد

این انیمیشن در سال ۲۰۰۸ توسط کارگردان و تصویرگر ارژانتینی santiago bou grasso ساخته شده .
در انمیشین اشتغال کارگردان جهانی رو به تصویر میکشه که در آن به انسان‌ها صرفاً به دید اشیا و ابزار نگاه میشه. جهانی بسیار دور از آرمان شهری که هر انسانی میتونه تصورش رو بکنه و بسیار نزدیک به چیزی که هر روز در دنیای اطرافش می‌بینه .
شاید خود ما هم اگر نگاهی دقیق‌تر به نحوه ارتباط بین خودمون و دیگر انسان‌ها داشته باشیم، بتونیم شباهت‌های بسیاری با جهان ساخت دست کارگردان پیدا کنیم . جهانی پر از منییت و خوخواهی‌ که در آن برای هر فرد مرز میان قربانی یا گناهکار بودن مشخص نیست .
ارتباط بین کشورها ، ارتباط مدیر با کارکنان، ارتباط کارمندان بالا رتبه‌تر با دیگر کارمندان  و هزاران مثال دیگر که با نگاه به هرکدام میتوان دنیای “اشتغال” را به خاطر آورد و دور شدن از ارزش‌های انسانی را به راحتی دید .
و در آخر در تحسین این انیمیشن همین بس که در مدت زمانی کمتر از ۷ دقیقه و بدون استفاده از دیالوگ میتونه شما رو به اندازه یک فیلم ۹۰ دقیقه‌ای به فکر فرو ببره .