
به نام مهربانترین
امروزه نسل گوشیهای همراهی که فقط قابلیت ایجاد تماس را داشتند، منقرض شده است و برقراری تماس، تنها یکی از بیشمار کارهایی شده است که در حال حاضر گوشیهای هوشمند با برنامههای کاربردی متنوع خود انجام میدهند. این تغییر و رشد در وسایل الکترونیکی که بر مبنای سیستمعاملهایی نظیر اندروید کار میکنند و همچنین به تبع آن رشد تعداد علاقهمندان به توسعه برنامههای کاربردی اندروید ما را بر آن داشت که نقطه شروعی برای تمامی علاقهمندان حوزه اندروید ایجاد کنیم.
کتابی که در حال حاضر روبروی شما قرار دارد برگرفته از کتاب Android Programming: The Big Nerd Ranch Guide، یکی از معروفترین کتابهای موجود در زمینه اندروید و همچنین تجربیات چند ساله مولفان کتاب است. ما معتقدیم که کسب مهارت در برنامهنویسی، فقط با خواندن مطالب و یادگیری مفاهیم امکانپذیر نخواهد بود و مانند همه زبانهای برنامهنویسی دیگر، تمرین نقش اول و مهمی را در برنامهنویسی اندروید بازی میکند.
این کتاب سعی دارد با استفاده از مثالهای ساده و کاربردی بهترین و سریعترین روش یادگیری برنامهنویسی اندروید را برای شما فراهم نماید. به همین دلیل، تعدادی برنامه در این کتاب مطرح شده است. بعضی از آنها سادهاند و فقط یک فصل را به خود اختصاص دادهاند. بعضی دیگر پیچیدهترند و در تعداد فصل بیشتری کامل میشوند. تاکید میکنیم که همه برنامههای این کتاب به هدف آموزش مفاهیم و تکنیکهای مهم و بالا بردن تجربه شما در برنامهنویسی اندروید، طراحی شدهاند.
در ادامه خلاصهای از ۱۶ فصل این کتاب تشریح شده است. اگر علاقهمند به دریافت کتاب هستید، میتوانید از لینکهای زیر کمک بگیرید:
آموزش جامع برنامهنویسی اندروید، پیشرفته – انتشارات دیباگران
آموزش جامع برنامهنویسی اندروید، پیشرفته – فیدیبو (نسخه الکترونیکی)
۱ رابط دو پنجرهای (اصلی-جزئیات)
دستگاههای مختلف اندرویدی بر اساس اندازه صفحه نمایش خود قابلیت نمایش متفاوتی از برنامههای یکسان را دارند. این قابلیت سبب میشود که برنامهها در صفحهنمایشهای بزرگ، بهتر و کاربردیتر ظاهر گردند. در این فصل برنامه 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 ایجاد خواهید نمود و کاربر با کلیک بر روی صفحه میتواند به تماشی غروب خورشید بنشیند.
پروژه فصل ۱۶ را از اینجا دانلود کنید.