درسهایی از ۲۱ برنامهی اندرویدی
«خواندن»، بهترین روش یادگیری است. روشی که برای هر موضوعی از جمله برنامهنویسی قابل اجراست. اگر میخواهید به توسعهدهندهی بهتری تبدیل شوید چارهای جزء خواندن کدهای بیشتر ندارید. البته کدی که بهتر از کدهای شما باشد. به همین سادگی! کتابها، وبلاگها و فرومهای برنامهنویسی همه خوب هستند ولی هیچکدام از آنها به پای پروژههای متنباز که برنامه و ریسورسهای استفاده شده را در اختیارتان میگذارند نمیرسد. به قول معروف، آش را با جاش میبرید!
در این پست، لیستی از برنامههای متنباز با ذکر گروه و ژانر آن معرفی شده است. بهتر است قبل از شیرجهی مستقیم در کدهای برنامه، نسخه نهایی آنها را از گوگلپلی دانلود کرده تا ابتدا با کارکرد برنامه آشنا شوید. درجه سختی هر برنامه کمک میکند تا بفهمید آمادگی لازم برای بررسی کدهای آن را دارید یا باید به چیز سادهتری اکتفا کنید.
LeafPic
گیتهاب | پلیاستور | درجه سختی: مقدماتی
گالری تصاویر و ویدیو از رایجترین برنامههای اندرویدی هستند که در هر اسمارتفونی وجود دارند. آیا تا الان فکر کردهاید که این برنامهها چطور ساخته میشوند؟ لیفپیک، یکی از بهترین گالریهای متنباز جهت استفاده کاربران و مطالعهی توسعهدهندگان است. درک این برنامه، آسان و انتخاب مناسبی برای کاربران مبتدی است. یکی از بهترین ویژگیهای این برنامه، تمهای پویا (داینامیک) آن است. چیزی که اغلب توسعهدهندگان در هنگام پیادهسازیاش با مشکل مواجه میشوند.
Simple Calendar
گیتهاب | پلیاستور | درجه سختی: مقدماتی
تقویم سادهای است که به زبان کاتلین نوشته شده و برای دوستداران این زبان میتواند یک پروژه تمرینی خوب باشد. کدهای این تقویم بسیار ساده نوشته شده که این موضوع یادگیری آن را سهولت میبخشد. با بررسی کدهای این برنامه، روش ساخت ویجتهای اندرویدی را هم فرا خواهید گرفت.
Amaze File Manager
گیتهاب | پلیاستور | درجه سختی: متوسط
فایلمنیجر یا ابزارهای مدیریت فایل از دیگر برنامههای اندرویدی هستند که تقریبا در هر اسمارتفونی یافت میشوند. ساخت این برنامه طوری که با همه دستگاهها و دیوایسهای اندرویدی سازگار باشند کار سختی است. با بررسی کدهای این برنامه چیزهای زیادی از جمله شیوهی صحیح مدیریت فایلها در کارتهای SD دستگیرتان میشود اما سعی نکنید استانداردهای کدنویسی این برنامه را دنبال کنید. بسیار بهتر میتوان کدهای برنامه را سازمان داد.
Easy Sound Recorder
گیتها | پلیاستور | درجه سختی: مقدماتی
اگر مایل هستید ضبط کردن صدا و دستکاری آن را در اندروید بیاموزید سراغ این برنامه ساده و باکیفیت بروید. این پروژه بسیار کوچک و تنها با یک اکتیویتی است؛ پس یادگیری آن ساده است. همچنین کاربران مبتدی با بررسی کدهای برنامه میتوانند اصول طراحی متریال را فرا بگیرند.
MLManager
گیتها | پلیاستور | درجه سختی: مقدماتی
مطالعه MLManager روش ایدهآلی برای آموختن شیوه دریافت اطلاعات و جزئیات برنامههای نصب شده بر روی گوشی، روش اکسترکت فایلهای APK، روش حذفشان و … است. استاندارد کدنویسی مورد استفاده در کدهای این برنامه الگوی خوبی برای دنبال کردن آن است. کدهای برنامه همچنین به شما ایدههای خوبی برای طراحی ساده و تمییز با استفاده از الگوی طراحی متریال میدهد.
PhotoAffix
گیتهاب | پلیاستور | درجه سختی: مقدماتی
فوتوافیکس، برنامهای ساده و تمییز برای اتصال عمودی یا افقی چندین عکس در یک تصویر واحد است. ساده به نظر میرسد نه؟ بله واقعا ایدهی ساده و جالبی است. فتوافیکس انتخاب ایدهآلی برای کاربران مبتدی است تا با اصول پایه برنامهنویسی اندروید آشنا شوند. استانداردهای کدنویسی این برنامه نیز بسیار مناسب بوده و توسعهدهندگان به راحتی میتوانند به عنوان یک الگو از آن استفاده کنند. با بررسی کدهای این برنامه همچنین با چگونگی ساخت ویوهای سفارشی ساده آشنا خواهید شد؛ چیزی که بعدها در هنگام ساخت ویوهای پیچیده به کارتان میآید.
MovieGuide
گیتهاب | درجه سختی: متوسط
هدف این برنامه بسیار ساده است: فهرست کردن فیلمها به همراه تریلر و نقدهای مرتبط؛ اما چیزی که این پروژه را بیشتر جذاب کرده، نحوه پیادهسازی آن است. برنامه از الگوهای جالب توسعه نظیر معماری کلین از عمو باب، RxJava و تزریق وابستگی به کمک ۲ Dagger استفاده کرده است. برنامه خودش چیز سادهای است اما روش پیادهسازی آن بسیار زیبا و لایق بررسی است.
AnExplorer
این فایلمنیجر سبک و مینمال برای گوشی و تبلت طراحی شده است. در این پروژه چیزهای زیادی برای یادگرفتن وجود دارد. از مدیریت فایل گرفته تا مدیریت روت، لودرها، ویوهای سفارشی و … . کدهای برنامه خیلی خوب نوشته شده و بررسی سازوکار برنامه فکر نمیکنم زمان زیادی ببرد.
Minimal ToDo
گیتهاب | پلیاستور | درجه سختی: مقدماتی
اگر مبتدی هستید، این برنامه ساده و زیبا، پروژهی خوبی برای شروع است. با خواندن کدهای برنامه، جنبههای اساسی برنامهنویسی اندروید را خواهید آموخت. برنامه خیلی زیبا طراحی شده است و انتخاب مناسبی برای کاربران مبتدی است اما استانداردهای کدنویسی و سازماندهی فایلهای پکیج برنامه را دنبال نکنید.
Timber
گیتهاب | پلیاستور | درجه سختی: پیشرفته
تایمبر، یک موزیکپلیر زیبای اندرویدی است. حتی اگر قصد داشته باشید موزیکپلیر اختصاصی خودتان یا هر برنامهی دیگری در حوزه موسیقی بسازید حتما بررسی کدهای تایمبر رهگشاست. این پروژه بزرگ است و جامعه کاربری فعالی دارد. کدهای این برنامه چندان مناسب مبتدیها نیست و بیشتر به درد توسعهدهندگان متوسط و حرفهای اندروید میخورد.
AnotherMonitor
گیتهاب | پلیاستور | درجه سختی: متوسط
اگر مایل هستید با مفاهیم نظارت پراسسها، مصرف حافظه، مصرف پردازنده و سایر موضوعات مرتبط آشنا شوید، این پروژه برای شماست. اگرچه استانداردهای کدنویسی این برنامه چنگی به دل نمیزند ولی بررسی کدهای ساده و قابل درکش، چیزهای زیادی به شما آموزش میدهد.
InstaMaterial
این پروژه که در تلاش است طراحی اینستاگرام را با استفاده از متریال دیزاین مجددا بازسازی کند انتخاب مناسبی هم برای یادگیری طراحی متریال و هم الگوهای به کار رفته در آن است. المانها، انیمیشنها و ترنزیشنهای زیادی در این برنامه پیادهسازی شده که به راحتی میتوانید در پروژههای خود از آنها استفاده کنید. کدها قابل فهم هستند و انتخابی مناسب برای توسعهدهندگان اندروید جهت ارتقاء سطح مهارتهای طراحی آنهاست.
CoCoin
کوکوین، یک برنامه جامع مالی و حسابداری با واسط کاربری زیبا و تمییز است که با بررسی کدهای آن چیزهای زیادی مثل چگونگی مدیریت حجم زیادی از دادههای کاربران، ترسیم چارتهای گرافیکی زیبا و ساخت ویوهای سفارشی دستگیرتان میشود.
OmniNotes
گیتهاب | پلیاستور | درجه سختی: متوسط
تصمیم دارید یک برنامه یادداشتبرداری مثل اورنت بسازید؟ اگر اینطور باشد، OmniNotes پروژهی جالبی است. این پروژه، تقریبا هرآنچه یک برنامهی یادداشتبرداری لازم دارد را پیادهسازی کرده؛ از جستجو و اشتراک یادداشتها، پیوست تصاویر، صوت و ویدیو گرفته تا چسباندن یادداشتها به یکدیگر، اضافه کردن یادآور و … . چیز جالب دیگری که میتوانید از این برنامه یاد بگیرید روش یکپارچهسازی برنامه با سرویس Google Now میباشد.
Clip Stack
گیتهاب | پلیاستور | درجه سختی: مقدماتی
برنامهای ساده، زیبا، تمییز و با کدهای قابل فهم برای مدیریت کلیپبورد است. تنها نکتهی بد این پروژه این است که ساختار فایلها، معماری، قواعد نامگذاری، استانداردهای کدنویسی آن خوب نبوده اما توسعهدهنده به روشی ساده و مناسب برای افراد مبتدی کدنویسی کرده است.
Super Clean Master
گیتهاب | درجه سختی: پیشرفته
تقریبا همه کاربران اندروید نیاز پیدا میکنند هرازچندگاهی دادههای بیاستفاده یا اصطلاحا Junk را پاک کنند. برای این کار بدون شک، کلینمستر انتخاب مناسبی است. Super Clean Master همانطور که از نامش پیداست یک کپی نسبتا مشابه از این برنامه است که بیشتر قابلیتهای کلینمستر را به شیوهای زیبا و تمییز پیادهسازی کرده است. درک کامل کدهای این برنامه نیازمند مطالعه بوده و در قسمتهایی لازم است به منابع اینترنتی برای کسب اطلاعات بیشتر مراجعه کنید.
Travel Mate
گیتهاب | درجه سختی: متوسط
آیا در حال ساخت برنامهای مبتنی بر نقشه و موقعیت جغرافیایی هستید؟ Travel Mate راستِ کار شماست. با اینکه طراحی و کیفیت کدهای این پروژه چندان بالا نیست ولی بازهم برنامه به صورت کلی خیلی خوب است. این پروژه، کلی چیزهای جالب برای یادگرفتن دارد؛ هم برای سطوح مبتدی و هم سطوح متوسط.
KISS
گیتهاب | پلیاستور | درجه سختی: متوسط
این لانچر ساده، فوق سریع و سبک، قابلیتهای خوبی دارد که مطالعهی آنها چیزهای زیادی به شما آموزش خواهد داد. افرادی که دوست دارند برای اندروید یک لانچر جدید طراحی کنند با این برنامه شروع کنند.
Turbo Editor
گیتهاب | پلیاستور | درجه سختی: متوسط
یک ویرایشگر متنی ساده و توانمند است که به دلیل پشتیبانی از سینتکس هایلایت برای زبانهای مختلف برنامهنویسی، جهت کدنویسی هم به کار میرود. این برنامه در هنگام باز کردن فایلهای متنی حجیم و سنگین کرش نمیکند و به راحتی قادر به مدیریت این فایلهاست. با بررسی کدهای این پروژه، شیوه ساخت چنین تکستادیتورهایی را خواهید آموخت.
Wally
گیتهاب | درجه سختی: مقدماتی
Wally یک برنامه ساده، سریع و کارآمد تصاویر زمینه در اندروید است. این پروژه، چیزهای زیادی برای آموزش افراد مبتدی در دل خود جای داده است. معماری این برنامه بسیار خوب و مرتب بوده که گسترش و مدیریت آن را آسان کرده است. با اینکه هدف این برنامه ساده و سرراست است، رویکرد توسعهدهندگان آن کلی و جامع بوده تا برای توسعه، نگهداری و مدیریت برنامه با مشکلی مواجه نشوند.
Pedometer
گیتهاب | درجه سختی: مقدماتی
گامشمار ساده و سبکی است که بدون تاثیر بد روی مصرف باتری با استفاده از حسگرهای سختافزاری، تعداد گامهای کاربر را محاسبه و نمایش میدهد. این پروژه، انتخاب خوبی برای آموختن چگونگی دستیابی به حسگرهای گوشی است. البته دنبالهرویِ استانداردهای کدنویسی آن نباشید.
وقت آن است که شما هم شروع کنید…
برنامههای معرفی شده، پروژههای خوبی برای شروع یادگیری برنامهنویسی اندروید و یا ارتقاء سطح مهارتهای کدنویسی در دستهبندیهای مختلف بود. پس دستدست نکنید؛ یکی را انتخاب کرده و شروع کنید. فراموش نکنید؛ آنهایی که برایتان جالب بود را با همکاران خود به اشتراک بگذارید و مطمئن باشید مخزن پروژهی مورد علاقه را در گیتهاب دنبال میکنید.
omid
یکشنبه ۱۴ بهمن ۱۳۹۷کل مطالب سایت عالیه و ارزش مطالعه رو داره