کتابخونه‌ای برای اضافه کردن صفحه دریافت رمز عبور در اندروید

استاندارد

sample

این کتابخونه بر پایه این پست که قبلا نوشته بودم نوشته شده .
برای استفاده ازش بعد از import کردنش توی پروژتون فقط کافی که یه کلاسی که از Application ارث میبره بسازید و اون رو توی AndroidManifest تون ست کنید . و داخل متد ()onCreate کلاستون کد (("registerActivityLifecycleCallbacks(new MyLifecycleHandler("1234 رو قرار بدید . این کد رفت آمدهای کاربر به داخل و خارج برنامه رو برسی میکنه و با توجه به اون در صورت نیاز کاربر رو به صفحه دریافت رمز عبور میفرسته .

توی این کتابخونه یک Activity پیش فرض برای گرفتن رمزعبور از کاربر وجود داره که برای استفاده ازش فقط کافیه که رمزعبوری که کاربر باید وارد کنه رو به Constructor کلاس MyLifecycleHandler بفرستید ، همینطور درصورت نیاز به تغییر متن‌هایی که در صفحه‌ی دریافت رمزعبور به کاربر نشون داده میشه میتونید از Constructor زیر استفاده کنید .

 MyLifecycleHandler (String password , String enterPassCodeTitle , String wrongPassCodeText , String submitButtonText ) .

اگه هم خواستید میتونید کاملا برای خودتون یه Activity دلخواه بسازید و Intent ای که قراره به کمکش اون Activity نمایش داده بشه رو به عنوان پارامتر به Constructor کلاس MyLifecycleHandler  بفرستید .

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

استاندارد


احتمالا شده بخواید از داخل اپلیکیشنتون امکان ارسال ایمیل رو به کاربرانتون بدید تا بتونند نظرات و پیشنهاداتشون رو به صورت مستقیم با شما درمیون بذارند . این ارسال میتونه مثلا از طریق فرم درباره ما توى اپلیکیشنتون باشه  .
روش معمول این کار اینه که شما از intent استفاده کنید تا یه اپلیکیشنى رو که قابلیت ارسال ایمیل داره رو فراخونى کنید و ادامه ماجرا .
حالا راه باحال تر چیه !؟ اینکه شما خودتون این ایمیل رو بدون درگیر کردن کاربراتون با استفاده از سرویس های خودتون یا سرویس های اماده  ارسال کنید. یه سرویس معروفى که کسایی که برنامه نویسى وب انجام میدن قطعا باهاش اشنایى دان سرویسی هست که سایت  mandrill در اختیار شما میذاره . من هم اینجا میخوام براى این کار از این سرویس استفاده کنم .
حالا نحوه کار با این سرویس چیه ؟

  1. خب اول فقط کافیه یه اکانت تو سایت بسازید. سایت در ابتدا یه اکانت رایگان در اختیارتون میذاره که احتمالا کارتون باهمون راه می‌افته (  واسه من که همیشه راه می‌افته :دى ) .
  2. بعدش باید یه api key برای ارسال ایمیل بسازیم . این کار رو میتونید از داخل منوی setting در زیرمنوی SMTP & API Info انجام بدین .Screenshot_2015-09-16-10-33-57

    حالا میریم سر اصل مطلب .
  3. کاری که باید انجام بدیم اینه که یک request با متد POST یه URL ذکر شده توی سایت (https://mandrillapp.com/api/1.0/messages/send.json) ارسال کنیم، این رکوست باید شامل ورودی با فرمت json باشه که با فیلدهای مورد قبول توی سایت ساخته میشه .

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

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

برای اینکار قدم اول استفاده از gradle هست .که باید فایل build.gradle توی زیر فولد app رو به شکل زیر تغیر بدین .

 

بعد از اضافه کردن کتابخونه به پرژتون فقط کافیه اطلاعات مربوط به ایمیل ارسالیتون رو مثل کد زیر پر کنید و تمام .

 

چطوری فونت تمام Widget های موجود توی اپلیکیشنمون رو کنترل کنیم

استاندارد

یه مشکلی که خیلی وقتا من رو تو پروژه‌هام اذیت میکرد تغییرات چند باره و چند باره‌ فونت widget هام  بود. مثلا فرض کنید یه پروژه رو تا انتها بردین جلو، حالا گرافیستتون یا مدیر پروژه میاد میگه اگه میشه فونت فلان جا رو عوض کن یا نمیدونم برای بعضی صفحات یه فونت دیگه ست کن. اگه توی این شرایط شما از اول پروژتون بفکر همچین سناریویی بوده‌اید که جای نگرانی نیست، ولی اگر نه باید بگم که احتمال اینکه اذیت بشید زیاده. اتفاقا همین چند روز پیش یکی از دوستام راجع به همین مسئله ازم پرسید و باعث شد این پست رو بنویسم و توش درباره این مشکل و راه‌حلی که براش استفاده میکنم بنویسم.

من این مشکل رو با استفاده از یه کتابخونه دم دستی به اسم CustomFontWidget که خودم نوشتم حل میکنم. این کتابخونه به شما این امکان رو میده که برای Widget هاتون فوفت‌های مختلفی رو ست کنید . ست کردن فونت‌ها از طریق xml هست و attribute ای به اسم customFont . همچنین شما میتونید یک فونت پایه برای پروژتون ست کنید که تمامی widget هاتون درصورتی که هیچ فونتی براشون ست نشده بود از اون استفاده کنن . فونت iran_sans هم برای استفاده در متن های فارسی به صورت default توی این کتابخونه وجود داره . به خواندن ادامه دهید