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

4 سال پیش
نوشتن برنامه های پیشرفته در برنامه نویسی فلاتر
امتیاز دهید post

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

در این درس از آموزش های برنامه نویسی سایت سورس باران، ما نوشتن برنامه های پیشرفته در برنامه نویسی فلاتر را فرا خواهیم گرفت.

در این درس، ما می خواهیم نحوه نوشتن یک برنامه کامل تلفن همراه، expense_calculator را بیاموزیم. هدف از expense_calculator، ذخیره اطلاعات هزینه ماست. ویژگی نوشتن برنامه های پیشرفته در برنامه نویسی فلاتر به شرح زیر است –

  • لیست هزینه
  • فرم برای ورود به هزینه های جدید.
  • گزینه ای برای ویرایش / حذف هزینه های موجود.
  • کل هزینه ها در هر نمونه

 

ما قصد داریم با استفاده از نوشتن برنامه های پیشرفته در برنامه نویسی فلاتر و  ویژگی های پیشرفته فریم ورک فلاتر برنامه expense_calculator را بنویسیم

  • استفاده پیشرفته از ListView برای نشان دادن لیست هزینه.
  • برنامه نویسی فرم
  • برنامه نویسی پایگاه داده SQLite برای ذخیره هزینه های ما.
  • scoped_model مدیریت state برای ساده سازی برنامه نویسی ما.

 

بیایید برنامه نویسی را با برنامه program_calculator آغاز کنیم.

  • یک برنامه فلاتر جدید ، expense_calculator در Android studio ایجاد کنید.
  • pubspec.yaml را باز کرده و وابستگی های بسته را اضافه کنید.

 

این نکات را در اینجا مشاهده کنید –

  • sqflite برای برنامه نویسی پایگاه داده SQLite استفاده می شود.
  • path_provider برای بدست آوردن مسیر برنامه خاص سیستم استفاده می شود.
  • scoped_model برای مدیریت state استفاده می شود.
  • intl برای قالب بندی تاریخ استفاده می شود.

Android studio هشدار زیر را به روز می کند که pubspec.yaml به روز شده است.

Alert Writing Advanced Applications

 

  •  بر روی گزینه Get dependencies را کلیک کنید. Android studio بسته را از اینترنت دریافت کرده و به درستی برای برنامه پیکربندی می کند.
  • کد موجود را در main.dart حذف کنید.
  • برای ایجاد کلاس Expense، فایل جدید Expense.dart را اضافه کنید. کلاس expense دارای خصوصیات و متدهای زیر است.

 

  • property: id – شناسه منحصر به فرد برای نشان دادن ورود هزینه ها در پایگاه داده SQLite.
  • property: amount  – مقدار هزینه شده
  • property: date – تاریخ مصرف هزینه.
  • property: category – طبقه نشان دهنده منطقه ای است که مبلغ در آن هزینه می شود. به عنوان مثال غذا، سفر و غیره ،
  • formattedDate – برای قالب بندی ویژگی تاریخ استفاده می شود
  • fromMap – برای نقشه برداری از جدول از پایگاه داده به خاصیت موجود در شی expense  و ایجاد یک شی expense جدید استفاده می شود.

 

  • toMap – برای تبدیل شی هزینه به Dart Map استفاده می شود، که می تواند بیشتر در برنامه نویسی پایگاه داده مورد استفاده قرار گیرد

 

  • columns – متغیر استاتیک برای نمایش فیلد پایگاه داده استفاده می شود.

کد زیر را در پرونده Expense.dart وارد کرده و ذخیره کنید.

 

کد فوق ساده و قابل توضیح است.

برای ایجاد کلاس SQLiteDbProvider، فایل جدید Database.dart را اضافه کنید. هدف کلاس SQLiteDbProvider به شرح زیر است –

با استفاده از متد getAllExpensions تمام هزینه های موجود در پایگاه داده را دریافت کنید. برای لیست کردن تمام اطلاعات هزینه کاربر استفاده خواهد شد.

 

 

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

 

با استفاده ار متد getTotalExpense کل هزینه های کاربر را دریافت کنید. برای نشان دادن کل هزینه فعلی به کاربر استفاده خواهد شد.

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

با استفاده از روش بروزرسانی، اطلاعات هزینه موجود را به روز کنید. برای ویرایش و به روزرسانی ورودی هزینه موجود موجود در سیستم توسط کاربر استفاده خواهد شد.

با استفاده از روش حذف، اطلاعات هزینه موجود را حذف کنید. این مورد  برای حذف هزینه موجود موجود در سیستم توسط کاربر استفاده خواهد شد .

 

کد کامل کلاس SQLiteDbProvider به شرح زیر است

 

در اینا اینجا،

  • پایگاه داده ویژگی برای بدست آوردن شی SQLiteDbProvider است.
  • initDB متدی است که برای انتخاب و باز کردن پایگاه داده SQLite استفاده می شود.

برای ایجاد ExpenseListModel یک فایل جدید ایجاد کنید، ExpenseListModel.dart. هدف از این مدل نگهداری اطلاعات کامل هزینه های کاربر در حافظه و به روزرسانی رابط کاربری برنامه در هر زمان تغییر هزینه کاربر در حافظه است. این براساس کلاس Model از بسته scoped_model ساخته شده است. این ویژگی ها و روش های زیر را دارد –

  • _items – لیست خصوصی هزینه ها.
  • items − getter for _items به عنوان <UnmodifiableListView <Expense> برای جلوگیری از تغییرات غیرمنتظره یا تصادفی لیست.
  • totalExpense – دریافت کننده کل هزینه ها بر اساس متغیر اقلام.

 

  • load – برای بارگیری هزینه های کامل از پایگاه داده و در متغیر _items استفاده می شود. همچنین notifyListeners را برای به روزرسانی رابط کاربری فراخوانی می کند.

 

  • byId – برای بدست آوردن هزینه های خاص از متغیر _items استفاده می شود.

 

  • add – برای افزودن مورد جدیدی به متغیر _items و همچنین در پایگاه داده استفاده می شود. همچنین notifyListeners را برای به روزرسانی رابط کاربری فراخوانی می کند.

 

  • Update – برای به روزرسانی مورد هزینه در متغیر _items و همچنین در پایگاه داده استفاده می شود. همچنین notifyListeners را برای به روزرسانی رابط کاربری فراخوانی می کند.

 

  • delete – برای حذف مورد هزینه موجود در متغیر _items و همچنین از پایگاه داده استفاده می شود. همچنین notifyListeners را برای به روزرسانی رابط کاربری فراخوانی می کند.

 

کد کامل کلاس ExpenseListModel به شرح زیر است:

 

فایل main.dart را باز کنید. کلاسها را به شرح زیر وارد کنید –

 

با عبور از ویجت <ScopedModel <ExpenseListModel تابع اصلی را اضافه کرده و  runApp را فراخوانی کنید.

 

  • شی expenses  تمام اطلاعات هزینه های کاربر را از پایگاه داده بارگیری می کند. همچنین، هنگامی که برنامه برای اولین بار باز می شود، پایگاه داده مورد نیاز را با جداول مناسب ایجاد می کند.
  • ScopedModel اطلاعات کل هزینه را در کل چرخه زندگی برنامه فراهم می کند و از حفظ حالت برنامه در هر زمان اطمینان حاصل می کند. این ما را قادر می سازد تا از StatelessWidget به جای StatefulWidget استفاده کنیم.

با استفاده از ویجت MaterialApp یک MyApp ساده ایجاد کنید.

ویجت MyHomePage ایجاد کنید تا تمام اطلاعات مربوط به هزینه کاربر همراه با کل هزینه ها در قسمت بالا نمایش داده شود. از دکمه شناور در گوشه پایین سمت راست برای افزودن هزینه های جدید استفاده خواهد شد.

 

در اینجا:

  • ScopedModelDescendant برای انتقال مدل هزینه به ویجت ListView و FloatingActionButton استفاده می شود.
  • ویجت ListView.separated و ListTile برای لیست اطلاعات هزینه استفاده می شود.
  • ویجت Dismissible برای حذف ورودی هزینه با استفاده از اشاره کش رفتن استفاده می شود.
  • Navigator برای باز کردن رابط ویرایش ورودی هزینه استفاده می شود. با ضربه زدن روی ورودی هزینه می توان آن را فعال کرد.

یک ویجت FormPage ایجاد کنید. هدف از ویجت FormPage افزودن یا به روزرسانی ورودی هزینه است. همچنین اعتبار سنجی هزینه را کنترل می کند.

 

در اینجا:

  • از TextFormField برای ایجاد ورودی فرم استفاده می شود.
  • خصیصه validator از TextFormField برای اعتبارسنجی عنصر فرم به همراه الگوهای RegEx استفاده می شود.
  • از تابع _submit همراه با شی expenses برای افزودن یا به روزرسانی هزینه ها در پایگاه داده استفاده می شود.

کد کامل فایل main.dart به شرح زیر است

 

  • اکنون، برنامه را اجرا کنید.
  • با استفاده از دکمه شناور هزینه های جدید اضافه کنید.
  • با ضربه زدن روی ورودی هزینه ها، هزینه های موجود را ویرایش کنید.
  • با کشیدن ورودی هزینه در هر دو جهت، هزینه های موجود را حذف کنید.

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

Expense Calculator

Enter Expense Details

Total Expenses

Total Expenses

 

منبع.

لیست جلسات قبل آموزش برنامه نویسی فلاتر

  1. معرفی برنامه نویسی فلاتر
  2. آموزش نصب فلاتر
  3. اصول ایجاد یک برنامه فلاتر در Android Studio
  4. معماری فریم ورک برنامه نویسی فلاتر
  5. مقدمه ای بر برنامه نویسی دارت
  6. مقدمه ای بر ویجت ها در برنامه نویسی فلاتر
  7. آموزش طرح بندی در برنامه نویسی فلاتر 
  8. ژست های حرکتی در برنامه نویسی فلاتر 
  9. مدیریت State در برنامه نویسی فلاتر
  10. آموزش انیمیشن در برنامه نویسی فلاتر
  11. آموزش نوشتن کد خاص اندروید در برنامه نویسی فلاتر
  12. آموزش نوشتن کد مخصوص IOS در برنامه نویسی فلاتر
  13. مقدمه ای بر پکیج ها در برنامه نویسی فلاتر 
  14.  مفهوم پایگاه داده در برنامه نویسی فلاتر 
  15. آموزش بین المللی کردن در برنامه نویسی فلاتر
  16. تست کردن برنامه فلاتر
  17. آموزش استقرار برنامه فلاتر
  18. آموزش ابزارهای توسعه در برنامه نویسی فلاتر
امتیاز دهید post
0
برچسب ها :
نویسنده مطلب saber

دیدگاه شما

بدون دیدگاه