۱۳۸۸ خرداد ۱۰, یکشنبه

اولین Widget من برای Android

می‌دونم، می‌دونم، باور کنید که خودم می‌دونم. ما ایرانیها هروقت که یک پلتفرم جدید برای برنامه‌نوشتن یا ویجت‌نوشتن پیدا می‌کنیم، اولین کاری که می‌کنیم نوشتن یک برنامه تقویم جلالی (هجری شمسی) هست. باور کنید منم به اندازه شما از این واقعیت ناراحتم و حتی بدم میاد، اما خوب چه‌کار میشه کرد؟ بعد از نوشتن "!Hello, World" ساده‌ترین کاریه که میشه کرد (و از حق هم که نگذریم یکم به درد بخوره). به‌هرحال من اولین Widget رو برای Android نوشتم، هرچند که از خیلی قبل از این روی یه پروژه دیگه کار می‌کردم، اما خوب اون هنوز آماده نشده.

این ویجت خیلی سادست، فقط تاریخ امروز رو نشون میده، همین! و ذکر این نکته که این ویجت فقط برای اندروید ۱.۵ هست هم ضروری به نظر میرسه.

هرچند که این پروژه خیلی ساده‌ایی بود، اما خوب یکم هم بحث فنی در موردش شاید بد نباشه.

مهمترین تفاوتی که برنامه‌هایی که روی موبایلها اجرا می‌شوند با برنامه‌های عادی دسکتاپ در کمبود منابع سیستمی و از اون مهمتر عمر کم باتری آنهاست، پس یکی از مهمترین دغدغه‌های یک برنامه‌نویس برنامه‌هایی که قرار برروی این نوع دیوایسها اجرا بشند، حداقل استفاده از منابع هست.

در چارچوب AppWidget اندروید شما می‌توانید خیلی ساده یک وقفه مشخص کنید و پس از آن اندروید به‌طور مرتب در آن بازه‌های زمانی ویجت را به‌روز می‌کند، برای ویجتی مثل این خیلی ساده یک برنامه‌نویس بی‌وجدان! می‌تونست بازه‌های زمانی ۱ثانیه را مشخص کند و اصلا دغدغه اینکه ممکنه کاربر روز/ساعت/منطقه‌زمانی رو تغییر بده و یا حتی اینکه کی ساعت ۰۰:۰۰ میشه و روز بعد فرا‌ می‌رسد را نداشته باشد. اما خوب با توجه به میزان اندک وجدانی که من دارم این برنامه یکم بهتر کار می‌کنه. این ویجت یک BroadcastReceiver داره که به تغییراتی که ممکنه کاربر در تنظیمات دستگاهش بده گوش می‌کنه و در مواقع نیاز تمام ویجتهای نصب شده را به‌روز می‌کند. همچنین یک AlarmManager هم برای این ویجت پیش‌بینی شده که در صورتی که تاریخ خود دستگاه عوض شد (ساعت ۰۰:۰۰) تمام ویجتها را به‌روز می‌کنه.

با توجه به بحث همیشگی و تکراری تحریم و ... نمیشه که این برنامه رو به Android Market اضافه کرد (حتی اگر هم که می‌تونستم، کسی نمی‌تونست از Android Market نصبش کنه ;)) اگر کسی علاقه‌منده که نصبش کنه می‌تونه از اینجا بارگذاری کنه.

نکته: از یکی مثل من (با توجه به باورها و عقاید) منتشر نکردن کد یکم بعیده، اما مطمئنا کدش رو (هرچند که خیلی سادست) به زودی ریلیز می‌کنم، مشکل اینه که فکر می‌کنم یه مشکل لایسنس کوچیک وجود داره که تا رفع نشده بهتره که کد ریلیز نشه.

۷ نظر:

  1. سلام دوست عزیز کار جالبی بود و نصبش کردم
    برای شروع خیلی خوبه..
    موفق باشید ;)

    پاسخحذف
  2. آره magic دارم و فعلا گیر root کردنش هستم :D

    پاسخحذف
  3. 32A هست و asia version هست
    بالاخره تونستم Amon Ra's Recovery رو روش load کنم
    مشکل این سری این هست که با Android SDk نمیشه recovery رو توی fastboot بیاری بالا remote not allow میده!..

    پاسخحذف
  4. آقا این برنامه ویدگت جلالی که نوشتی خیلی کار راه بندازه. با توجه به این که چیزی توی این مایه ها برای کاربرای فارسی زبان وجود نداره خیلی جای کار و توسعه داره. امیدوارم یه اتفاقی بیفته که شما تصمیم بگیری برنامه کوچیکتو توسعه بدی. در ضمن حالا که راه دسترسی به مارکت توی ایران هم کشف شده جاش توی مارکت هم خالیه.
    راستی روی آندروید 2.1 چند ماهه که ازش استفاده میکنم و هیچ مشکلی با این ورژن نداره.
    dyaco8464@yahoo.com

    پاسخحذف
  5. سلام

    خیلی ممنون از این ویجت کارا.
    آیا میتونم از شما چند راهنمایی کوچک در مورد برنامه نویسی آندروئید بگیرم؟ اگر بله لطفا به شکلی که صلاح میدونید من رو مطلع کنید.
    humvee.h13 [at] gmail [dot] com

    متشکرم
    موفق و موید باشید

    پاسخحذف