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

فصل اول: رابط دو پنجره‌ای (اصلی-جزئیات)

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

فصل دوم: بومی‌سازی

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

فصل سوم: دسترسی‌پذیری

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

فصل چهارم: اتصال داده و معماری MVVM

این فصل با برنامه جدیدی به نام BeatBox شروع می‌شود و در این برنامه معماری MVVM مطرح می‌گردد. معماری MVVM برای برنامه‌هایی با مقیاس بزرگ مناسب است. در این معماری قسمت زیادی از کدهای کنترل‌کننده درون فایل‌های layout برده می‌شود. هم‌چنین کدهایی نیز به لایه مدل‌نما منتقل می‌شوند. این جابه‌جایی‌ها باعث خلوت شدن کد و فهم و آزمون راحت‌تر آن خواهد شد.

فصل پنجم: تست واحد و پخش صوت

یک روش برای اطمینان از عملکرد صحیح برنامه، تست واحد است. تست واحد، عملی است که طی آن برنامه‌های کوچکی برای تایید صحت عملکرد مستقل هر واحد از یک برنامه، نوشته می‌شوند. این فصل چگونگی نوشتن تست واحد برای برنامه‌های کاربردی را به شما آموزش خواهد داد.
از طرف دیگر هدف برنامه BeatBox پخش تعدادی فایل صوتی است. در این فصل برای پخش آن‌ها از ابزاری به نام SoundPool استفاده خواهد شد و روشی به کار گرفته می‌شود تا بار سنگینی بر تلفن همراه وارد نشده و اجرای برنامه متوقف نگردد.

فصل ششم: استایل و تم

موضوع این فصل استایل و تم در برنامه‌های کاربردی اندروید است. برنامه BeatBox در این فصل تغییر عملکردی نخواهد داشت و تمامی تغییرات آن مربوط به ظاهر برنامه است. این فصل می‌کوشد تا برنامه را با رابط کاربری زیباتری به مخاطب خود نمایش دهد.

فصل هفتم: شی‌های ترسیمی XML

در ادامه تغییرات ظاهری برنامه، در این فصل تغییراتی بر روی نمایش دکمه‌ها اعمال می‌کنیم. این‌که دکمه ها به صورت دایره نمایش داده شوند و یا بعد از کلیک تغییر کنند تا دکمه کلیک شده، مشخص باشد از مباحث اصلی این فصل است.

فصل هشتم: جزئیات بیش‌تر در مورد Intent و Task

در این فصل یک برنامه کاربردی جدید به نام RedappsLauncher ایجاد خواهیم کرد و آن را به عنوان برنامه راه‌انداز در اندروید معرفی می‌کنیم. شما در حین ساخت برنامه RedappsLauncher با taskها و چگونگی اجرای آن‌ها در اندروید آشنا می‌شوید. Taskها وضعیت کاربر را برای هر برنامه کاربری که در یک دستگاه اجرا می‌شود، نگه‌داری می‌کنند. بنابراین شما می‌توانید با استفاده از آن‌ها کاربر را به همان وضعیت قبلی در برنامه‌هایی که اجرا کرده است، ببرید.

فصل نهم: HTTP و Taskهای پس‌زمینه

برنامه‌های کاربردی اندروید می‌توانند از طریق شبکه با سایت‌های مختلف ارتباط برقرار کرده و با آن‌ها تعامل داشته باشند. این فصل به سراغ برنامه کاربردی جدیدی به نام PhotoGallery می‌رود. این برنامه تمامی داده‌های موردنیاز خود را از یک سایت و از طریق درخواست‌های HTTP دریافت می‌کند. شما در این فصل برای نوشتن برنامه PhotoGallery با روش راه‌اندازی پیش‌نیازهای شبکه در برنامه، فرستادن درخواست، دریافت پاسخ، پردازش آن و نمایش نتیجه به کاربر آشنا خواهید شد. قابل ذکر است که درخواست‌های این برنامه در قالب JSON می‌باشند.

فصل دهم: آشنایی با مفاهیم Loopers، Handler و HandlerThread

در فصل قبل با نخ اصلی در برنامه‌های کاربردی اندروید که شروع کار برنامه از آن‌ها می‌باشد، آشنا شدید. برنامه‌های کاربردی همیشه کارهای ساده‌ای انجام نمی‌دهند. گاهی یک برنامه، انجام کارهای سنگینی مانند دانلود و نمایش تصاویر زیاد را برعهده دارد. اجرای این کارها در نخ اصلی، کارهای ضروری دیگر در برنامه را با اختلال مواجه خواهد کرد. این فصل به شما آموزش می‌دهد که چگونه کارهای سنگین را با استفاده از نخ پس‌زمینه و نه در وسعت زیاد بلکه بر مبنای تقاضای کاربر انجام دهید.

فصل یازدهم: جستجو

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

فصل دوازدهم: سرویس‌های پس‌زمینه

همه چیز در اندروید به رابط کاربری ختم نمی‌شود. گاهی لازم است کارهایی در پس‌زمینه اجرا شده و در پایان کار به کاربر اطلاع داده شود. این مجموعه از کارها سرویس نامیده می‌شوند. در این فصل سرویسی در پس‌زمینه و بدون این‌که کاربر از آن اطلاعی داشته باشد، اجرا می‌شود تا از ورود آیتم‌های جدید به سایت خبردار شود. سپس این رخداد را به کاربر خود اطلاع می‌دهد.

فصل سیزدهم: Intentهای پخش همگانی

ممکن است اتفاقاتی در یک دستگاه اندرویدی رخ دهد که آگاهی از آن‌ها برای تعدادی از برنامه‌های کاربردی مهم باشد. برای مثال یک برنامه می‌خواهد از قطع و یا وصل شدن شبکه، ایجاد یک تماس تلفنی و یا دریافت یک پیغام باخبر شود تا بتواند کار خود را بر این اساس و به شکلی دیگر ادامه دهد. Intentهای پخش همگانی این قابلیت را برای برنامه‌های کاربردی فراهم می‌کنند، تا آن‌ها بتوانند اطلاعات موردنیاز خود را از اتفاقات رخ داده شده در دستگاه کسب کنند. برای کسب اطلاعات در این زمینه با این فصل همراه شوید.

فصل چهاردهم: نمایش صفحات وب

نمایش صفحات وب در برنامه‌های کاربردی اندروید به دو شکل امکان‌پذیر است. یکی این‌که صفحه وب در یک مرورگر وب نمایش داده شود و دوم این‌که با استفاده از WebView مقدمات نمایش یک صفحه در برنامه فراهم گردد. در این فصل برنامه PhotoGallery، آدرس URL را که در بین اطلاعاتی دریافتی، خود دارد، با استفاده از روش‌هایی که ذکر شد، نمایش می‌دهد.

فصل پانزدهم: نماهای سفارشی و رویدادهای لمسی

پروژه DragAndDraw در این فصل به هدف کار با رویدادهای لمسی در یک برنامه اندروید ایجاد می‌شود. در این پروژه کاربر می‌تواند با لمس صفحه نمایش اشکال مستطیلی را در رسم نماید.

فصل شانزدهم: انیمیشن

گاهی اضافه کردن چند حرکت به یک برنامه، تاثیر زیاد و سودمندی بر آن برنامه دارد. این فصل کار با انیمین را به شما آموزش می‌دهد. شما منظره‌ای از خورشید را در برنامه Sunset ایجاد خواهید نمود و کاربر با کلیک بر روی صفحه می‌تواند به تماشی غروب خورشید بنشیند.

کدهای مربوط به این کتاب را از اینجا دانلود کنید.

برای تهیه این کتاب می‌توانید به دیباگران مراجعه کنید.