معرفی و برسی Android Architecture Components

استاندارد

گوگل در آخرین کنفرانس I/O خودش بعد از مدت‌ها و بعد از درخواست‌های زیاد ، یک معماری پیشنهادی برای پیاده‌سازی اپلیکیشن‌های اندرویدی ارائه داد .
همچنین گوگل یک سری کتابخانه برای استفاده از این معماری پیشنهادی معرفی کرد ، که اسم این مجموعه کتابخونه‌ها Android Architecture Components هست . البته این کتابخانه‌ها حتی وقتی شما قصد استفاده از معماری پیشنهادی گوگل رو هم نداشته باشید میتونن بسیار مفید و به درد بخور باشند .
این کتابخونه‌ها به توسعه‌دهند‌ه‌ها کمک میکنه تا به راحتی لایه‌های اپلیکیشن‌شون رو از هم جدا کنند(تقریبا) وکد‌های تمیزتری داشته باشن . در ادامه این componentهای معرفی شده رو نام میبرم و دربارشون کمی توضیح میدم  :

  • Lifecycle-Aware
  • LiveData
  • ViewModel
  • Room ORM

به خواندن ادامه دهید

چگونه برای ارائه‌‌‌ هامون اسلاید‌های بهتری بسازیم

استاندارد

قطعاً برای هممون پیش اومده که در یک کنفرانس یا گردهمایی یا … با ارائه‌هایی با موضوعات بسیار جذاب مواجه بشیم که به واسطه شرایط و نوع نامناسب ارائه شدن این موضوعات ، دلسرد میشیم . یا شاید با خودمون بگیم بجای هدر دادن این حجم از زمان میتونستیم با کمی جستجو در وب به مطالبی بهتر و مفهوم‌تر از چیزی که توی این ارائه بیان شد برسیم . در حالت خوش‌بینانه این حس زمانی در ما بوجود میاد که ارائه دهنده بر روی مطلب ارائه شده تسلط کافی داره ولی در نوع ارائه دادن موضوع و منتقل کردن اون به مخاطب مشکل داره . حالا فرض کنید که خودمون قراره درباره موضوع یا مطلبی ارائه داشته باشیم ، و نمیخوایم که این حس رو در مخاطبینمون بوجود بیاوریم . برای این کار باید روی چند موضوع اصلی تمرکز کنیم که یکی از اون‌‌ها ساخت ‌اسلایدهای مناسب برای ارائه‌ هست . که میتونه به ما برای جذب هر چه بیشتر مخاطبانمون کمک کنه و جلوی خسته شدنشون رو بگیره . نمونه این نوع اسلاید‌های با کیفیت و حرفیه رو میتونیم توی ارائه‌هایی مثل ted talk ها ببینیم .
حالا چطور میتونیم برای ارائه‌هامون اسلاید‌های جذاب و با کیفیت بسازیم ؟ در ادامه نکته‌هایی درباره اینکه چطور اسلایدهامون رو بهتر و با کیفیت‌تر کنیم آورده ام  . به خواندن ادامه دهید

آموزش پیاده‌سازی Shared Element در اندروید

استاندارد

در اپلیکیشن‌های اندرویدی ، به صورت پیش‌فرض حرکت بین Activity یا Fragment هامون دارای انیمیشن ورود و خروج هستن . این انیمیشن‌ها شامل انیمیشن‌های پیشفرضی مثل fade in ، slide یا explode هست ، همینطور علاوه بر اینها ، شما میتونید از انیمیشن‌های دلخواه خودتون که ساختین استفاده کنید .
حالا گاهی پیش میاد که بین Activity یا Fragment هایی که قراره بین اونها حرکت کنیم کامپننت‌های گرافیکی مشابهی وجود داشته باشه . توی این حالت میتونیم با استفاده از Shared Element ، در حین حرکت بین دو activity (یا fragment) این کامپننت‌ها رو نگه داریم و فقط اونها رو از موقعیتی که در activiy (یا fragment) اول حضور دارن به موقعیت جدیدشون در activity (یا fragment) دوم منتقل کنیم . مثل زیر .

sharedelementgif

نکته : Shared Element فقط در اندروید ۵ ( api ۲۱) و بالاتر از اون پشتیبانی میشه .

حالا میریم سراغ سناریو مثالی که ما میخوایم اون رو پیاده‌سازی کنیم .  فرض کنید دوتا activity داریم ، activiy اول شامل یک لوگو با اندازه بزرگ در وسط صفحه‌ ، که نقش صفحه اسپلش رو برای ما بازی میکنه و activity دوم صفحه ثبت‌نام اپلیکیشن هست که باز هم شامل همون لوگو هست اما در اندازه کوچک‌تر . ما قراره با باز کردن اپلیکیشن با دیدن actitiy اسپلش ، بعد از ۲ ثانیه وارد activity ثبت‌نام بشیم . در حرکت بین این دو صفحه قراره لوگوی ما ( ImageView) از وسط صفحه‌ اسپلش با استفاده از Shared Element به جای جدیدش در activity ثبت‌نام منتقل بشه . دقیقا مثل روندی که کمی بالاتر در تصویر دیدیم . به خواندن ادامه دهید

معرفی فیلم کوتاه : زندگی و مرگ یک ایفون

استاندارد

 

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

اگه کنجکاوید که دنیا از زاویه دید تلفنتون چه شکلیه ، توصیه میکنم این فیلم ۷ دقیقه‌ای رو حتما ببینید .

امکان ورود و ثبت‌نام در اپلیکیشن بدون نیاز به سرور ، با فایربیس

استاندارد

یکی دیگه از امکانات خیلی خوب و مفید پلتفرم فایربیس امکان انجام احراز هویت و ورود و ثبت‌نامه . این قابلیت به شما این امکان رو میده که بدون داشتن دغدغه پیاده‌سازی وب سرویس ، عملیات ورود و ثبت‌نام  رو برای اپلیکیشنتون پیاده‌سازی کنید . با کمک اینکار شما فقط کافیه تمرکز خودتون رو معطوف به پیاده‌سازی کلاینت کنید .
اما از معایب این سرویس هم باید گفت ، بزرگترین مشکل این سرویس برای ما ایرانی‌ها ست (مثل همیشه !!!) و اون مشکل اجازه ندادن ‌فایربیس برای استفاده از این سرویس در داخل ایرانه . یعنی اگه شما اپلیکیشنتون رو برای کاربران داخل ایران توسعه بدید و اگه کاربرانتون با ip های داخلی بخوان از سرویس‌های احراز هویت شما که توسط فایربیس پیاده شده استفاده کنند به مشکل بر میخورند . ولی خب اگه میخواید اپلیکیشنی با کاربر‌های هدف غیر ایرانی داشته باشید این مشکل بی معنی خواهد بود.
در ادامه روند پست قبل رو دنبال میکنیم و برای آشنایی با این سرویس یک مثال از اون رو با هم پیاده میکنیم . کاری که میخوایم در ادامه انجام بدیم ساخت یک اپلیکیشن با فرم‌های ورود ، ثبت‌نام و فراموشی رمزعبورر هست ، و برای انجام این عملیات‌ قصد داریم از سرویس‌هایی که فایربیس در اختیارمون میذاره استفاده کنیم .
فایربیس در سرویس احراز هویتش به ما علاوه بر امکان ثبت‌نام و ورود از طریق ‌ایمیل و پسورد ، امکان استفاده از حساب‌ کاربری شبکه‌های اجتماعی رو هم میده . حساب‌‌های کاربریی مثل فیسبوک ، توییتر ، گیت‌‌هاب ، گوگل .در صورت موفقیت آمیز بودن ورود ، شما به اطلاعات پایه کاربرتون دسترسی خواهید داشت .
عملکرد فایربیس به این صورته که در ابتدا شما اطلاعات مربوط به ورود یا ثبت‌نام رو از کاربر میگیرید و اون‌ها رو به Firebase Authentication SDK میفرسیتد و منتظر میمونید تا بعد از برسی و احراز هویت توسط فایربیس ، داخل اپلیکیشن پاسخ این برسی رو دریافت کنید .
در این مثال ما قصد داریم امکان ثبت‌نام و ورود از طریق ‌ایمیل و پسورد رو برای کاربرمون قرار بدیم .

مرحله اول

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

مرحله دوم

وارد پنل فایربیس بشید و به صفحه مربوط به Auth برید و مطابق تصاویر زیر عمل کنید .
auth firebase tut1
Screen Shot 2016-08-11 at 3.54.54 PM
Screen Shot 2016-08-11 at 4.05.00 PMحالا میتونیم بریم سراغ پیاده‌سازی اپلیکیشنمون . به خواندن ادامه دهید