مدت :

۶ ساعت

قیمت : ۹۹,۰۰۰ تومان
LinkedIn
Twitter
Facebook
Telegram

درباره مدرس 

اطلاعات دوره

توضیحات

در این بسته به آموزش دیتابیس در اندروید می‌پردازیم. اما نه ساخت دیتابیس در اندروید به شیوه دستی سنتی! بلکه ساخت پایگاه داده Room در اندروید! یک کتابخانه نوین برای ایجاد و مدیریت دیتابیس به صورت حرفه‌ای و با معماری MVVM.

اگر با دیتابیس و مفاهیم آن آشنا نیستید جای نگرانی نیست. همه مفاهیم از پایه توضیح داده شده است.

در واقع این بسته، فصل ششم از بسته جامع آموزش برنامه نویسی اندروید با کاتلین و استاندارد گوگل (+) است.

پس تماشای بسته جامع می‌توانید دو آموزش زیر را نیز مستقل ببینید:

 

پایگاه داده Room چیست؟

یک پایگاه داده Room در واقع یک سیستم ذخیره و بازیابی اطلاعات در یک فایل SQLite مبتنی بر کتابخانه Room در اندروید است.

پیش از این در اندروید، کار با دیتابیس (پایگاه داده) امری دشوار و مستلزم استفاده از کدهای SQL به صورت مستقیم بود. کتابخانه Room به یک بیان ساده ابزاری برای مدیریت پایگاه داده با کدهای کاتلین یا جاوا است.

  • در سیستم Room شما می‌توانید هر جدول را به صورت یک Entity (یک کلاس کد) مدل کنید. دستورات SQL برای با این جدول و داده‌های آن نیز به صورت یک DAO (یک کلاس کد) مدل می‌شوند. همچنین دستورات ایجاد و فراخوانی فایل SQLite نیست یک کلاس کد مجزا هستند.
  • همچنین Room برقراری ارتباط زنده و روزآمد با دیتابیس را ممکن می‌کند. سیستم Room همگام با معماری MVVM است. کدهای کار با دیتابیس بسیار قابل مدیریت و تفکیک شده هستند.

 

این آموزش در یک نگاه

این آموزش اندروید نیز مانند فصل‌های گذشته پروژه محور است. سورس یک پروژه تحویل و در طول آموزش کامل می‌شود.

همچنین آموزش را با مفهوم دیتابیس از پایه شروع می‌کنیم. این که Database چیست و SQL چیست؟ این که SQLite چیست؟

سپس سراغ پروژه می رویم و یاد می‌گیریم که کتابخانه Room چیست؟ به آموزش دیتابیس در اندروید با Room می‌پردازیم.

مفهوم Entity را یاد می‌گیرید و یک Entity ایجاد می‌کنید. مفهوم DAO یا Data Access Object را می‌آموزید و یک DAO می‌سازید.

یاد می‌گیرید که چگونه به کمک Room کار با دیتابیس SQLite را مدیریت کنید.

همچنین در خلال این آموزش مباحث مهم دیگری را می‌آموزید. این که Multi-threading چیست؟ چند نخی در اندروید چگونه انجام می‌شود؟ مفهوم Coroutines در کاتلین چیست؟ چطور با کوروتین یا هم-روال می‌توان کدها را به thread دیگری منتقل کرد؟

همچنین گریزی به تست نویسی در اندروید و انواع Test در اندروید خواهیم زد. با ابزار دیباگ در اندروید آشنا خواهیم شد. و بسیاری مباحث کلیدی دیگر که در سرفصل‌ها به تفصیل آمده است.

در پایان این آموزش شما یک اپلیکیشن ساخته‌اید که دارای پایگاه داده است. داده ‌ها توسط این اپلیکشین در یک پایگاه داده ذخیره و از آن خوانده می‌شوند.

 

آموزه‌های اصلی
  • درک مفهوم Database و مفهوم SLQ
  • کار با دیتابیس در اندروید
  • درک مفهوم Room و  اجزای آن
  • کدنویسی دیتابیس با Room
  • برقراری ارتباط پایگاه داده و View-Model
  • مفهوم چند-نخی یا Multithreading در اندروید
  • مفهوم Coroutine در کاتلین

 

آموزه‌های فرعی
  • آشنایی با تست نویسی در اندروید
  • نمایش استرینگ های HTML با CDATA
  • آشنایی با StringBuilder و Html در اندروید
  • مفهوم دیباگ و Debugging در اندروید
  • نمایش پیغام با Snackbar در اندروید

 

این آموزش بی‌نظیر است زیرا:
  • کار با دیتابیس در اندروید را می‌آموزید!
  • آموزش پروژه محور و گام به گام است!
  • کار با پایگاه داده Room را می‌آموزید!
  • دیتابیس را منطبق با معماری mvvm می‌سازید!
  • تست نویسی با دیتابیس را فرامی‌گیرید!
  • نمایش خروجی دیتابیس به صورت استرینگ HTML را می‌آموزید!

 

پیشنیاز

آموزش معماری MVVM در اندروید (+)

 

کلیدواژگان

دیتابیس یا Database چیست – مفهوم SQL چیست -Sqlite چیست- دستورات SQL – کار با دیتابیس در اندروید – پایگاه داده در اندروید – پایگاه داده Room – کتابخانه Room – آموزش Room در اندروید – مفهوم Entity – مفهوم DAO – پایگاه داده با معماری MVVM – تست نویسی در اندروید – نمایش استرینگ HTML در اندروید – اتصال View-Model با دیتابیس در اندروید

سرفصل مطالب

سرفصل مطالب

درس صفر: معرفی دوره
– مرور سریع مطالب دوره
– معرفی اپلیکیشن این دوره در پایان راه
– مروری به تاریخچه دیتابیس

درس یک: معرفی پروژه
– تحویل فایل آغازین پروژه «پایش کیفیت خواب» به صورت فشرده
– باز کردن فایل پروژه در اندروید استودیو
– نگاهی به گریدل (Gradle) پروژه
– تمرین برای کاوش در پروژه

درس دو: مفهوم پایگاه داده و آشنایی با SQLite
– پایگاه داده یا Database چیست؟
– پایگاه داده رابطه‌ای یا Relational Database چیست؟
– مثالی از ارتباط جدول‌ها در دیتابیس
– زبان SQL چیست؟
– مفهوم Structured Query Language
– سیستم مدیریت دیتابیس یا Database management System
– نگاهی به اسکیولایت Sqlite و تاریخچه و ویژگی‌های آن
– کار با SQL و دستورات آن
– پایگاه داده در اندروید و کلاس SQLiteDatabase
– نمایش یک پایگاه داده اسکیولایت در سیستم

درس سه: مفهوم و طراحی Entity
– مشکل تعامل اندروید با پایگاه داده
– مدل کردن داده‌ در کاتلین با data class
– مدل کردن داده در دیتابیس با table
– تعامل اندروید و پایگاه داده
– نقش Room در تعامل اندروید و پایگاه داده
– مفهوم Entity و کار آن
– مفهوم Query و کار آن
– نقش انوتیشن یا Annotation
– تبدیل یک کلاس به entity
– مفهوم انوتیشن Entity و ویژگی tableName
– مفهوم انوتیشن PrimaryKey و ویژگی autoGenerate
– مفهوم انوتیشن ColumnInfo

درس چهار: ایجاد یک Entity
– ایجاد یک data class
– تعریف متغیرهای کلاس داده‌ای
– مقدار دهی اولیه یا initialize متغیرها
– تبدیل data class به entity
– بررسی مستندات Room و Annotation

درس پنج: مفهوم DAO
– منظور از DAO چیست ؟
– عبارت Data Access Object یعنی چه؟
– نگاهی به انوتیشن های DAO
– نگاهی به یک نمونه رابط DAO
– استفاده از LiveData در DAO

درس شش: ایجاد DAO
– ایجاد interface با انوتیشن Dao
– ایجاد متد درج در جدول با انوتیشن insert
– ایجاد متد روزآمدسازی جدول با انوتیشن update
– ایجاد متد با کوئری ویژه برای استخراج رکورد از جدول
– پاس دادن ورودی تابع به استرینگ SQL در تابع‌ ها
– روش های حذف رکورد از جدول در ROOM
– پاک کردن تمام سطرهای جدول با انوتیشن Query
– ایجاد متد برای خواندن و اجرای کوئری SELECT
– ویژگی Room در واکشی داده ها به صورت LiveData

درس هفت: ایجاد پایگاه داده
– فرآیند ساخت پایگاه داده Room
– ایجاد کلاس ابسترکت abstract ساخت پایگاه داده
– ارث بری یا Extend کردن RoomDatabase
– تعیین مشخصات entities و version و schema
– کاربرد انوتیشن Database
– کاربرد companion object در ساخت نمونه پایگاه داده
– مفهوم Volatile Annotation و ذخیره متغیر به صورت چابک
– مفهوم بلوک کد synchronized و کاربرد آن در کار با دیتابیس
– مفهوم Schema و Migrations برای روزآمدسازی دیتابیس
– فرآیند کار با دیتابیس Room در سه حالت اولیه، روزانه و روزآمدی

درس هشت: نوشتن Test برای پایگاه داده
– انواع تست در اندروید
– نوع Unit Test در اندروید و نقش آن
– نوع Instrumentation Test در اندروید و نقش آن
– نوع UI Test در اندروید و نقش آن
– معرفی نقش کتابخانه‌های Junit4 و Junit5 در تست
– معرفی نقش کتابخانه‌های Mockito و Espresso و Robolectric
– فرق پوشه Test و androidTest در اندروید
– کلاس تست برای ارزیابی محک عملکرد پایگاه داده
– متد یا تابع assertEquals و کاربرد آن
– ایجاد دیتابیس موقت در حافظه با inMemoryDatabaseBuilder
– متد allowMainThreadQueries برای کوئری در حافظه
– اجرای تست و بررسی نتیجه در دستگاه مجازی

درس نه: افزودن ViewModel و نقش آن
– بررسی نقش ViewModel در کار با پایگاه داده در معماری MVVM
– بررسی ساختار layout پروژه
– مفهوم تگ include و تگ merge
– ارث بری ViewModel از AndroidViewModel
– استفاده از ViewModelFactory برای برقراری ارتباط با دیتابیس
– استفاده از کلاس ابسترکت ایجاد پایگاه داده در ViewModel
– بایندینگ متغیر ViewModel در تگ دیتا با نمونه ساخته در فرگمنت

درس ده: مفهوم چندنخی یا Multithreading
– چند پردازشی یا Multiprocessing یعنی چه؟
– نخ یا ریسمان یا Thread یعنی چه؟
– چندنخی یا Multithreading یعنی چه؟
– مفهوم و علکرد Dispatcher و مفهوم Scheduler
– وظیفه Main Thread یا UI thread در اندروید
– تعداد آپدیت و رندر مجدد اسکرین در یک ثانیه در اندروید
– چرا نباید کار با دیتابیس در Main Thread اجرا شود

درس یازده: مفهوم Coroutine یا هم روال
– بررسی مفهوم callback
– الگوی callback چیست
– بررسی یک نمونه callback از اینترفیس OnClickListener
– ایراد callback برای جداسازی thread
– مفهوم coroutine در کاتلین
– شباهت و تفاوت callback و coroutine
– مفهوم Asynchronous
– مفهوم Non-blocking Code
– مفهوم Sequential Code
– مفهوم تابع suspend و Suspended Thread
– مفهوم Job و Dispatcher و Scope

درس دوازدهم: پیاده سازی رویدادها با Coroutine
– استفاده از Job و متد cancel برای بستن کوروتین
– تعریف Scope با CoroutineScope
– اتصال لایو دیتا به رکورد دیتابیس
– استفاده و مفهوم متد launch در scope
– استفاده و مفهوم متد withContext برای ایجاد Coroutine
– استفاده و مفهوم تابع Suspend
– کار با متدهای DAO در تابع Suspend
– بررسی پترن تعریف Coroutine و تعمیم به لیسنرهای دکمه‌ها
– مفهوم و کاربرد retutn@label در Kotlin

درس سیزدهم: اجرای اپ و نمایش داده‌های دیتابیس
– دریافت تمام سطرهای جدول دیتابیس به صورت LiveData
– استفاده از متد map کلاس Transformations برای روزآمدسازی
– استفاده از StringBuilder برای ایجاد استرینگ طولانی و پویا
– استفاده از متدهای apply و append در استرینگ بیلدر
– آشنایی با CDATA و کاربرد آن
– ساخت استرینگ حاوی تگ های html به کمک CDATA
– تجزیه استرینگ حاوی html به کمک متد fromHTML
– آشنایی با کلاس SimpaleDateFormat
– تبدیل تاریخ از Long به استرینگ فرمت شده
– تفاوت HtmlCompat و Html در ساخت Spanned
– مفهوم و کاربرد نوع داده Spanned
– اجرای اپ و بررسی عملکرد آن و نمایش داده‌ها
– استخراج فایل دیتابیس ساخته شده و نمایش داده جدول‌ها
– نمایش فایل SQLITE در نرم افزار رایگان Sqlite Studio

درس چهارده: جابجایی فرگمنت‌ها و ثبت نتیجه
– حرکت به فرگمنت دیگر و بردن شناسه رکورد دیتابیس
– روزآمدسازی پایگاه داده در فرگمنت جدید
– یادآوری از فصل قبل از بابت نحوه جابجایی
– تعریف State Variable برای دریافت رویداد جابجایی
– اجرای اپلیکیشن و بررسی نتایج

درس پانزده: عیب یابی و دیباگ
– دیباگ یا Debug یعنی چه؟
– تاریخچه و معنی Debugging
– روش‌های کشف خطای ناخواسته
– بررسی اپلیکیشن کنونی
– حذف عامل خطا با متغیر آزمون و تابع map
– نحوه استفاده از ابزار Debug در اندروید
– نگاهی به break point و نحوه کار با آن

درس شانزدهم: راهنمایی کاربر با Snackbar
– اسنک بار یا Snackbar چیست؟
– آشنایی با کلاس Snackbar در اندروید
– تنظیم متغیر رویداد برای نمایش snackbar
– نمایش snackbar با متد make از کلاس Snackbar
– آشنایی با معنی android.R.id.content در activity
– راهنمایی و سپردن تمرین برای نمایش دکمه در snackbar

درس هفده: راهی که آمدیم و راهی که پیش رو داریم
– مرور آنچه از فصل اول آموزش اندروید تا این فصل گذشت
– بیان شیوه ادامه آموزش‌ها در آینده
– بیان نکته‌های مهم در بسط یادگیری از این پس
– دعوت به همکاری و همفکری

نظرات (3)

3 دیدگاه برای آموزش اندروید با کاتلین و استاندارد گوگل __ فصل ۶- پایگاه داده Room

  1. ارسطو محمدقلی سنقری

    سلام جناب آقای آصفی عزیز
    بنده از این آموزش خیلی استفاده کردم ( بسته کامل 6 قسمتی )
    با چه ایمیلی میتونیم با شما تماس بگیریم ؟ برای پیشنهاد پروژه کاری
    ایمیل بنده باید در بخش خریداران این دوره باشه و خشحال میشم تماس بگیرید برای یک پیشنهاد کاری کاتلین .با تشکر

    • مصطفی آصفی

      سلام و سپاس از لطف و انرژی مثبتتون. خوشحالم که براتون مفیده. در مورد پیشنهاد همکاری بنده به خاطر تمرکز روی هم رویش نمی رسم که خدمتتون باشم ولی پیشنهاد می کنم این صفحه آموزش رتروفیت (+) یا این صفحه آموزش کاستوم ویو (+) رو ببینید و با کلیک روی نام مدرس هاشون وارد صفحه مدرسی این ها در هم رویش بشید و از فرم مربوطه پیشنهادتون رو براشون ارسال کنید. این دو عزیر کارآموز هم رویش بودن و داور هر دو دوره هم خودم بودم. کارشون خیلی خوب بود. نمی دونم که الان این دو عزیز روی همین حوزه متمرکز هستن یا نه ولی خب امتحانش ضرری نداره. نهایتا یه درخواست ارسال می کنید شاید باعث آشنایی شد.

  2. امین دهقان (خریدار محصول)

    سلام روز به خیر همانطور که مشخص هست در فصل ششم خیلی از مباحث آموزش داده شد(نسبت به فصل دو و سه و چهار )
    البته بعضی از بحث ها هم کامل نبود این روند در فصل 5 نیز وجود داشت اما میشد از این آموزش به عنوان یه سرنخ استفاده کرد و بقیه مطالب را از اینترنت جستجو کرد نکته مهم این است که موارد مهمی مانند di یا ارتباط با سرور یا recycler View و … چه شد!!!؟؟؟
    خواهشمند است آموزش را ادامه بدهید حتی اگر شده برای یک نفر
    چرا که
    به نظرم یک هم رویش (شاگرد) با کیفیت بهتر است از 100 شاگردی که مدام از این شاخه ب اون شاخه میپرند
    با تشکر

  3. امین دهقان (خریدار محصول)

    سلام روز به خیر میخاستم ببینم برای موضوع مهم DI تزریق وابستگی هم برنامه آموزشی دارید؟

    • مصطفی آصفی

      سلام به شما. موضوع مهمی هست. انشالله یادداشت می کنم بعد از بحث اینترنت روی این موضوع زمان بگذارم. ممنون از شما

دیدگاه خود را بنویسید

نظرات کاربران در خصوص دوره 

3 دیدگاه برای آموزش اندروید با کاتلین و استاندارد گوگل __ فصل ۶- پایگاه داده Room

  1. ارسطو محمدقلی سنقری

    سلام جناب آقای آصفی عزیز
    بنده از این آموزش خیلی استفاده کردم ( بسته کامل 6 قسمتی )
    با چه ایمیلی میتونیم با شما تماس بگیریم ؟ برای پیشنهاد پروژه کاری
    ایمیل بنده باید در بخش خریداران این دوره باشه و خشحال میشم تماس بگیرید برای یک پیشنهاد کاری کاتلین .با تشکر

    • مصطفی آصفی

      سلام و سپاس از لطف و انرژی مثبتتون. خوشحالم که براتون مفیده. در مورد پیشنهاد همکاری بنده به خاطر تمرکز روی هم رویش نمی رسم که خدمتتون باشم ولی پیشنهاد می کنم این صفحه آموزش رتروفیت (+) یا این صفحه آموزش کاستوم ویو (+) رو ببینید و با کلیک روی نام مدرس هاشون وارد صفحه مدرسی این ها در هم رویش بشید و از فرم مربوطه پیشنهادتون رو براشون ارسال کنید. این دو عزیر کارآموز هم رویش بودن و داور هر دو دوره هم خودم بودم. کارشون خیلی خوب بود. نمی دونم که الان این دو عزیز روی همین حوزه متمرکز هستن یا نه ولی خب امتحانش ضرری نداره. نهایتا یه درخواست ارسال می کنید شاید باعث آشنایی شد.

  2. امین دهقان (خریدار محصول)

    سلام روز به خیر همانطور که مشخص هست در فصل ششم خیلی از مباحث آموزش داده شد(نسبت به فصل دو و سه و چهار )
    البته بعضی از بحث ها هم کامل نبود این روند در فصل 5 نیز وجود داشت اما میشد از این آموزش به عنوان یه سرنخ استفاده کرد و بقیه مطالب را از اینترنت جستجو کرد نکته مهم این است که موارد مهمی مانند di یا ارتباط با سرور یا recycler View و … چه شد!!!؟؟؟
    خواهشمند است آموزش را ادامه بدهید حتی اگر شده برای یک نفر
    چرا که
    به نظرم یک هم رویش (شاگرد) با کیفیت بهتر است از 100 شاگردی که مدام از این شاخه ب اون شاخه میپرند
    با تشکر

  3. امین دهقان (خریدار محصول)

    سلام روز به خیر میخاستم ببینم برای موضوع مهم DI تزریق وابستگی هم برنامه آموزشی دارید؟

    • مصطفی آصفی

      سلام به شما. موضوع مهمی هست. انشالله یادداشت می کنم بعد از بحث اینترنت روی این موضوع زمان بگذارم. ممنون از شما

دیدگاه خود را بنویسید