در این مقاله من قصد دارم روش درست یادگیری برنامه نویسی اندروید با زبان جاوا را به شما آموزش دهم. این روش از بهترین متدهای آموزش گام به گام برنامه نویسی اندروید بوده و در جهان طرفداران بسیاری دارد.
از مزیت های این روش آن است که نیاز به هیچ گونه پیش نیاز خاصی نداشته و هر کسی با هر سطح از دانش کامپیوتر میتواند از آن استفاده کند.
اگر بخواهیم به چند سال پیش برگردیم بدون شک یکی از بزرگ ترین مشکلات برنامه نویسان عدم دسترسی به منابع یادگیری برای بهبود دانش برنامه نویسی و همچنین رفع مشکلات و سوالات خود در این حوزه بود. در کنار این دو مشکل نه چندان کوچک، نبود محیط های توسعه نرم افزار از عواملی بود که خیلی ها را از مسیر ورود به دنیای برنامه نویسی دور میکرد.
خب این موضوع چه ارتباطی با توسعه و طراحی اپلیکیشن های اندروید دارد؟
الان با هم خواهیم دید:
در گذشته برای توسعه اپلیکیشن های اندروید نیاز بود تا کمی با زبان جاوا آشنا باشیم و از ابزار ساختی به اسم maven برای طراحی اپ مورد نظر خود استفاده کنیم.
اما حالا…
ما باید علاوه بر تسلط بر زبان برنامه نویسی جاوا، با محیط اندروید، مفاهیم UI/UX، الگوهای طراحی، نوشتن تست نرم افزار، کتابخانه های مختلف و چندین مفهوم و ابزار دیگر آشنا باشیم.
این موارد قطعا باعث طولانی شدن زمان یادگیری برنامه نویسی جاوا اندروید شده است مخصوصا اگر بدون نظم و ترتیب اصولی به دانشجویان آموزش داده شود و یا دانشجو بدون دانستن گام های اصلی یادگیری جاوا اندروید وارد این مسیر شود.
اگر من تصمیم به یادگیری جاوا اندروید داشته باشم باید چه کار کنم؟
در این مقاله من قصد دارم شما را دقیقا به راهی که باید آن را طی کنید راهنمایی کنم. پس بدون فوت وقت برویم سراغ طی کردن مراحل:
آنچه در این نوشته خواهیم داشت
گام اول: یادگیری و آشنایی با زبان برنامه نویسی (جاوا)
اگر تصمیم دارید به صورت تخصصی به توسعه و طراحی اپلیکیشنهای اندروید بپردازید، به شما توصیه میکنم در ابتدا با زبان جاوا به طور کامل آشنا شوید چراکه سنگ بنای طی کردن مراحل بعدی قطعا یادگیری و تسلط به جاوا به عنوان بهترین زبان برنامه نویسی اندروید میباشد. چرا جاوا؟
یکی از پیش نیاز های یادگیری برنامه نویسی اندروید آشنایی با مفاهیم شی گرایی (که در ادامه به آن خواهیم پرداخت) است. جاوا ذاتا یک زبان شی گرا بوده و شما در آن به جای درگیر شدن با توابع و متغیرهای نه چندان آسان به صورت مستقیم با OBJECTها در ارتباط خواهید بود.
مزیت کدنویسی به روش شی گرا چیست؟
در این روش مدیریت و نگهداری کدها برای شما بسیار راحت تر بوده و زمان کدنویسی نیز به طرز چشم گیری کاهش پیدا می کند. همچنین شما میتوانید از کدهای خود در پروژه های دیگر نیز استفاده کرده و حجم کار خود را به شکل قابل توجهی باز کاهش دهید.
در این قسمت شما همچنین باید با مفاهیم مشترک در تمام زبان های برنامه نویسی که شامل موارد زیر است آشنا شوید:
آرایه ها
متغیر ها
توابع
شی ها و کلاس ها
حلقه ها
متدها و …
نکته: اگر شما از قبل دانش برنامه نویسی نداشته باشید شاید این مفاهیم در ابتدا کمی شما را گیج کند ولی این یه هیچ وجه مشکل بزرگی نیست چرا که در گام های بعدی شما به خوبی نحوه کار و پیاده سازی این مفاهیم کاربرد هرکدام رادر نرم افزارهای واقعی خواهید آموخت.
گام دوم: آشنایی با شئ گرایی و درک عمیق نسبت به آن
اگر بخواهم به طور خلاصه و ساده به تعریف برنامه نویسی شئ گرا بپردازم باید به شما بگویم که در این زبان ها، برنامه ما به شیء گرایش پیدا میکند.
یعنی چه؟
این به آن معنی است که داده ها و توابعی که برای این داده ها نوشته شده است در قالبی به اسم شئ در کنار یک دیگر قرار می گیرند و نسبت به فضای خارج از برنامه کلاس بندی می شوند، این مورد نه تنها کدنویسی شما را کاهش می دهد بلکه باعث میشود توابع بیرونی بر کلاس های شما و داده های درون شئ شما هیچ تاثیری نداشته باشند.
در این مرحله شما همچنین باید به مطالعه کلاس ها، خصوصیات و رفتار، پکیج ها، مدیریت فایل ها در یک برنامه جاوا، رفتار برنامه در زمان اجرا پرداخته و به تمام این مفاهیم مسلط شوید.
گام سوم: تکمیل دانش جاوا با تمرکز بر قوانین شی گرایی
در این قسمت شما باید با مهم ترین ویژگی های شئ گرایی که شامل موارد زیر است آشنا شوید:
وراثت (Inheritance)
چندریختی (Polymorphism)
انتزاع یا تجرید (Abstraction)
کپسوله سازی (Encapsulation)
Java Statics
Java Interface
InnerClass and NestedClass
Java Generics
این مفاهیم به دلیل گستردگی و پراکندگی در مقالات بعدی به طور کامل برای شما توضیح داده خواهد شد. در کلاس های جاوا اندروید آکادمی آمانج این قسمت را به صورت پروژه محور به دانشجویان آموزش می دهیم.
گام چهارم: طراحی رابط کاربری و material design component
در گذشته مبحث UI خیلی در برنامه نویسی اندروید مطرح نبود ولی با پیشرفت تکنولوژی و گسترش برنامه ها در تمامی زمینه ها و در نتیجه بالارفتن رقابت در حوزه اپلیکیشن های اندروید این موضوع جایگاه خودش را در حوزه برنامه نویسی اپلیکیشن ها نیز پیدا کرد.
ممکن است که این سوال برای شما پیش بیاید که UI چیست؟
رابط کاربری یا UI مخفف User Interface می باشد. در واقع UI موجب بهبود تعامل سیستم با کاربر میشود، UI در تمام ابعاد زندگی دیجیتال و غیردیجیتال از سایت ها تا نرم افزار، اپلیکیشن ها و… وجود دارد.
می توان گفت هر ابزاری که ما با آن کار می کنیم یک بعد UI در آن نهفته است. امروزه بهبود رابط کاربری یکی از اساسی ترین مباحث در دنیای دیجیتال میباشد و شرکت های بزرگ معمولا در پی استخدام متخصصان در این حوزه هستند.
در این قسمت شما باید موارد زیر را به دقت مطالعه کرده و کاربرد هر یک را به خوبی متوجه شوید:
کار با Contained, Outline , Text Button
کار با Floating Action Button
کار با نوار ابزار (Toolbar)
افزودن منو به نوار ابزار (Popup menu items)
سفارشی سازی نوار ابزار
آیکن ها در نوار ابزار
اضافه کردن Click and Action Listener به نوار ابزار
گرفتن ورودی از کاربر TextInputLayout
استفاده از تمامی ویژگی های ویو ها
ساخت شمارشگر کاراکتر
آشنایی با Navigation Drawer
ساخت و اضافه کردن آیتم
تکمیل و نمایش
سفارشی سازی Navigation Drawer
بیشتر بخوانید: “منوها در اندروید چگونه ساخته میشوند؟“
گام پنجم: کار با لیست ها و نمایش لیستی اطلاعات
گام پنجم از یادگیری زبان برنامه نویسی اندروید باید به آشنایی و کار با لیست ها اختصاص یابد. لیست ها در اصل نوعی مجموعه هستند و میتوانند هر نوع داده یا رشته ای را در خود داشته باشند.
در این بخش شما باید با موارد زیر به طور کامل آشنا شوید:
استفاده از ListView
آشنایی با Recyclerview
ساخت Recyclerview
آشنایی با مفهوم Adapter برای لیست ها
ساخت CardView
سفارشی سازی CardView
نحوه استفاده از CardView
حذف و اضافه کردن آیتم ها
انیمیشن در RecyclerView
تکنیک های افزایش سرعت RecyclerView
گام ششم: آشنایی با ذخیره سازی
اندروید قابلیت این را دارد تا داده های اپلیکیشن را در سیستم هایی نظیر فایل ذخیره سازی کند. در اصل برنامه های اندرویدی به ازای هر اپلیکیشن یک پوشه data/application package ایجاد میکنند.
اندروید برای ذخیره سازی داده ها در سیستم به طور معمول از روش های زیر پیروی میکند:
Files: این یکی از روش های قدیمی ذخیره سازی اطلاعات میباشد و با آن می توان داده ها را در فایل ذخیره کرده و بروز رسانی نمود.
Preferences: اندروید به شما این امکان را میدهد تا اطلاعات مربوط به تنظیمات انتخابی را به صورت کلید-مقدار ذخیره سازی کنید.
SQLite database: در این روش شما می توانید نمونه یا نسخه های موجود از دیتابیس SQLlite که حامل اطلاعات اپلیکیشن است را در سیستم فایل ذخیره کنید.
این موارد کلیتی از فرایند ذخیره سازی در جاوا می باشد اما شما باید در این قسمت به مباحث زیر با تمرین مسلط شوید:
استفاده Shared Preferences
آشنایی با SQLiteOpenHelper
پیاده سازی دیتابیس Sqlite
ایجاد جداول و لیست های مختلف
آشنایی با نرم افزارهای مدیریت Sqlite
افزودن اطلاعات به دیتابیس
ویرایش اطلاعات در دیتابیس
حذف اطلاعات از دیتابیس
نمایش اطلاعات از دیتابیس
آموزش کار با Room Architecture Component
انجام تمام عملیات های کار با داده در Room
گام هفتم: اتصال به سرور در برنامه نویسی اندروید
در این بخش شما باید با مفهوم Api، سرور، کلاینت، نحوه کار پروتوکل ها، ارتباط با سرورها آشنا شده و پس از آن به یادگیری جزییات زیر بپردازید:
آشنایی مفاهیم در RestApi
آشنایی با داده های جی سان (Json Data Format)
Get Request
Post Request
MultiPart and Json Body
تبدیل جی سان به مدل های جاوا
استفاده از کتابخانه GSON
استفاده از کتابخانه Retrofit و انجام تمامی درخواست ها
گام هشتم: آشنایی با سرویس ها در اندروید
در برنامه نویسی و توسعه اپلیکیشن های اندرویدی، ما برای پردازش های طولانی یا عملیات هایی که در پس زمینه فعالیتی دیگر همچنان در حال اجرا میباشند از کامپوننتی به اسم سرویس استفاده میکنیم.
سرویس ها هیج ارتباطی با رابط کاربری نداشته و به دور از چشم کاربر به فعالیت خود ادامه می دهند.
در این بخش شما باید با مفاهیم زیر آشنا شوید:
مفهوم Thread یا نخ
مفهوم پردازش Process
مفهوم Worker, Main Thread
آشنایی با BoundService
آشنایی با IntentServices
استفاده از WorkerManger Architecture Component
اضافه کردن workerManager به اپلیکیشن
کنترل ورودی و خروجی WorkerManager
کنترل انجام کارهای به صورت زنجیره ایی (Chain your work)
کنترل وضعیت کارهای درحال انجام (background task status)
انجام کار در شرایط خاص (Work Constraints)
گام نهم: کار با کتابخانه های کاربردی
در این بخش شما باید با کتابخانه های زیر آشنا شوید ( در مقالات بعدی حتما در مورد بهترین کتابخانه های اندروید با شما صحبت کرده و به بررسی هر یک خواهیم پرداخت.)
Glide
Gson
Calligraphy
ImageSlider
io.realm
بعد از آن مباحث زیر نیز باید مورد توجه شما قرار بگیرد:
کار با نمودار ها به صورت اجمالی MpChart
کار با نقشه به صروت اجمالی MapBox
پرداخت انلاین Zarinpal
Chrome Custom Tab
DataBinding
جمع بندی
با ظهور و گسترش گوشی های هوشمند به خصوص گوشی های اندرویدی بازار جدید و بزرگی برای برنامه نویسان و متخصصان کامپیوتر ایجاد شد. به تدریج با افزایش کاربرد این دست از تلفن های همراه، نیاز به نرم افزارهای مختلف اندروید روز به روز گسترده تر شد و برنامه نویسی اندروید را به یکی از پردرآمد ترین و محبوب ترین شاخه های برنامه نویسی تبدیل کرد.
شما برای آموزش برنامه نویسی جاوا اندروید نیاز به یک مسیر منطقی و کاملا تست شده دارید. ما در این مقاله سعی کردیم ۹ قدم اصلی برای یادگیری برنامه نویسی اندروید با زبان جاوا را برای شما به طور کامل شرح دهیم.
البته این مورد قابل ذکر میباشد که ما در کلاس های حضوری و غیر حضورری برنامه نویسی اندروید کاملا مبتنی بر این روش و با ارائه پروژه های عملی و انجام قدم به قدم آن شما را در مسیر تبدیل شدن به یک متخصص برنامه نویسی اندروید همراهی خواهیم کرد.
علی سخا
آکادمی آمانج