آموزش پروژه محور کیوی __ ساخت اپ گردشگری (کار با دیتابیس و API)

مدت :

۶ ساعت

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

درباره مدرس 

اطلاعات دوره

توضیحات

در مسیر برنامه نویسی موبایل و دسکتاپ با پایتون حالا پس از آموزش مقدماتی کیوی (+) و آموزش طراحی متریال با کیوی (+) نوبت اجرای یک پروژه برای جمع‌بندی است. در این آموزش پروژه محور کیوی یک اپلیکیشن نقشه محور می‌سازیم. با دیتابیس کار می‌کنیم. کار با API در پایتون و سنسور GPS گوشی و بسیاری موارد جذاب دیگر! حتما ریز سرفصل‌ها را بخوانید.

این اپلیکیشن با زبان پایتون و کتابخانه کیوی نوشته می‌شود. آن را می‌توان روی موبایل (اندروید یا iOS) و دسکتاپ (ویندوز، لینوکس و مک) اجرا کرد.

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

 

کیوی چیست؟

کیوی به انگلیسی Kivy یک کتابخانه متن باز است. به کمک کیوی می‌توان برنامه نویسی چندسکویی با پایتون انجام داد. یعنی خروجی پروژه هم روی گوشی هوشمند و هم دسکتاپ اجرا شود.

 

آموزه‌های اصلی این بسته
  • اجرای یک پروژه از صفر تا صد
  • آموزش Kivy Garden و نقشه آن.
  • کار با پایگاه داده در کیوی و پایتون.
  • کار با API در پایتون و تجزیه JSON.
  • ساخت ویجت‌های سفارشی.
  • کار با انیمیشن در کیوی.
  • درک Geocoding و کار با آن.
  • خروجی گیری از یک پروژه واقعی.
  • کار با تجهیزات Native سیستم‌عامل.

 

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

از صفر با ساخت پروژه شروع می‌کنیم. همه کتابخانه‌های لازم مثل کیوی و … را با هم نصب می‌کنیم.

آنگاه سراغ Kivy Garden می رویم. از باغ کیوی یک نقشه به پروژه اضافه می‌کنیم. رویدادهای بزرگنمایی و جابجایی نقشه را مدیریت می‌کنیم.

یک دیتابیس را با استفاده از SQlite می‌سازیم. مشخصات نقاط گردشگری را در آن وارد می‌کنیم. سپس این پایگاه داده را در پروژه وارد می‌کنیم. یاد می‌گیریم که روی دیتابیس Query بزنیم.

یاد می‌گیریم که چگونه یک Widget سفارشی بسازیم. از ماژول دیالوگ KivyMD ارث می‌بریم. یک دیالوگ لیستی برای خود می‌سازیم.

با مفهوم Geocoding آشنا می‌شویم. یاد می‌گیریم که چطور متن یک نشانی تبدیل به موقعیت آن می‌شود.

در یک سرویس دهنده Geocoding API ایرانی ثبت نام می‌کنیم. کار با API در پایتون و کیوی را یاد می‌گیریم.

این API به ما امکان قرار دادن جستجو در نقشه را می‌دهد. یک دیالوگ طراحی می‌کنیم. در این دیالوگ کاربر می‌تواند نام محل را جستجو کند. نقشه به محل مورد جستجو هدایت خواهد شد. سپس به زیباسازی اپلیکیشن می‌پردازیم.

سرانجام سراغ خروجی گیری می‌رویم. خروجی اندروید از پروژه کیوی آن هم با چنین جزئیاتی نکاتی زیادی دارد. این نکات و قلق کار را با هم می‌آموزیم.

استخراج فایل APK و اجرای کد پایتون روی گوشی اندروید پایان این پروژه نیست.

در برنامه نویسی چندسکویی یکی از نکات مهم کار با امکانات اختصاصی یا بومی است. برای گوشی‌های هوشمند GPS دارند. ولی در دسکتاپ GPS نداریم.

یک مارکر GPS طراحی می‌کنیم. سپس کار با انیمیشن در کیوی را می‌آموزیم. کاری می‌کنیم که این مارکر مثل یک قلب به تپش درآید.

حالا نوبت به کار انداختن GPS است. به آموزش plyer در کیوی می‌پردازیم. از این کتابخانه متن باز استفاده می‌کنیم تا GPS به کار افتد.

سرانجام دوباره سراغ خروجی گیری می رویم. با استفاده از Buildozer خروجی پروژه کیوی را روی گوشی اندروید بررسی می‌کنیم.

در پایان این آموزش ایده‌هایی به شما برای ادامه کار می‌دهم.

 

چرا آموزش پروژه محور کیوی بی‌نظیر است؟
  • جنبه عملی و ورود به بازار کار دارد.
  • نخستین بار در کشور منتشر می‌شود.
  • بر اساس یک منبع معتبر و متن باز جهانی است.
  • علاوه بر کیوی مهارت پایتونی شما نیز بهبود می‌یاید.
  • با دیتابیس و انیمیشن و API و JSON و Buildozer کار می‌کنید.

 

پیشنیاز

1- آموزش مقدماتی برنامه نویسی کیوی (+)

2- آموزش KivyMD برای زیباسازی اپلیکیشن‌های کیوی (+)

 

منبع آموزش

با سپاس از تلاش‌های Erik Sandberg این دوره بر اساس پروزه متن باز خدمات کشاورزی وی طراحی شده است.

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

 

عبارت‌های کلیدی

آموزش پروژه محور کیوی | آموزش Kivy و KivyMD | کراس پلتفرم با پایتون | کار با API در پایتون | برنامه نویسی اندروید با پایتون | کار با دبتابیس در پایتون | آموزش کار با SQlite3 در python | آموزش برنامه نویسی کیوی | اجرای پایتون در اندروید | اجرای پایتون در ios | آموزش پایتون برای اندروید | کار با نقشه در پایتون | آموزش kivy garden | کار با نقشه در کیوی  | برنمه نویسی موبایل با پایتون .

سرفصل مطالب

سرفصل مطالب

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

درس یک: نصب ابزار و راه اندازی پروژه
– ایجاد پروژه و توضیح در مورد ابزار کدنویسی (هر IDE که راحت هستید)
– نصب پیش نیاز های کیوی
– نصب Kivy و Kivy-Garden
– نصب پیش نیاز های KivyMD
– نصب KivyMD
– ایجاد کلاس main و اولین اجرای آزمایشی پروژه

درس دو: ایجاد نقشه
– آشنایی با پروژه Garden و صفحه Kivy-Garden
– آشنایی با کتابخانه MapView در کیوی
– نصب MapView با دستور garden
– ایجاد کلاس servicesmapview در پایتون و kv
– ارث بری نقشه از MapView
– تنظیم lat و lon و zoom اولیه خاستگاه نقشه
– نمایش نقشه در صفحه در موقعیت خاستگاه دلخوان

درس سه: مدیریت رویدادهای بزرگنمایی و جابجایی نقشه
– آشنایی با تابع (Callback) بزرگنمایی یا on_zoom
– lat چیست ؟ lon چیست ؟ مفهوم latitude و longitude
– آشنایی با متد on_lat و on_lon و شخصی سازی آن در نقشه کیوی
– آشنایی با کلاس Clock و تابع schedule_once برای ایجاد زمان سنج (timer)
– واکنش تاخیری به رویداد جابجایی نقشه به کمک تایمر

درس چهار: ایجاد پایگاه داده
– اشنایی با ساختار اطلاعات مورد استفاده
– چطور مجموعه اطلاعات را به دیتابیس تبدیل کنیم
– ایجاد یک پایگه داده نوع اسکیولایت Sqlite
– ایجاد جدول در Sqlite
– وارد کردن داده ها در Sqlite
– مفهوم Primary Key و Foreign Key با یک مثال
– نکاتی پیرامون وارد کردن داده های پرحجم با import کردن csv

درس پنج: فراخوانی پایگاه داده
– تابع onStart در کیوی چه می کند؟
– آشنایی با تابع get_bbox برای دریافت lat و lot نقشه
– آشنایی با ماژول sqlite3 پایتون
– آشنایی با تابع connect از ماژول sqlite3
– آشنایی با تابع cursor روی دیتابیس در پایتون
– آشنایی با متد get_running_app در کیوی
– مقدمه‌ای به زبان SQL و معرفی مرجع آموزشی خوب
– نوشتن عبارت SQL برای SELECT به صورت شرطی
– فراخوانی داده ها از پایگاه داده ونمایش با تغییر موقعیت نقشه

درس ششم: نمایش مکان‌ها روی نقشه
– ایجاد تابع برای افزودن marker به نقشه
– استفاده از کلاس MapMarkerPopup برای ایجاد مارکر
– استخراج lat و lon از داده های استخراجی پایگاه داده
– نمایش مارکر با lat و lon مشخص
– افزودن مارکر به نقشه با تابع add_widget

درس هفتم: جلوگیری از ترسیم چند مارکر در یک مکان
– تعریف متغیر سراسری برای ذخیره مارکرهای ترسیم شده
– افزودن شرط ترسیم مارکر در صورت نبودن مارکر در نقشه

درس هشتم: نمایش دیالوگ با کلیک روی مارکر
– ساختار دیالوگ مورد نظر
– افزودن داده ها به مارکرهای ترسیم شده
– ارث بری از BaseDialog و ایجاد دیالوگ متریال دلخواه
– ایجاد کلاس ServicesMarkerPopup برای نمایش دیالوگ
– کار با تابع setattr در پایتون
– آشنایی با ماژول webbrwoser در پایتون
– نمایش دیالوگ با on_release مارکر

درس نهم: ایجاد نوار ابزار یا Toolbar
– یادآوری MDToolbar از KivyMD
– تنظیم ویژگی های md_bg_color و title
– تنظیم right_action_items برای افزودن گزینه جستجو در تولبار

درس دهم: نمایش دیالوگ جستجو
– چطور باید دیالوگ جستجو را مدیریت کنیم؟
– استفاده از MDInputDialog موجود در KivyMD
– شخصی سازی دیالوگ با ارث بری
– نمایش دیالوگ در پاسخ به lambda x گزینه جستجو

درس یازدهم: جستجوی نشانی با Geocoding
– مفهوم Geocoding چیست
– معنی Reverse Geocoding چیست
– خدمات Geocoder API چیست
– آشنایی با برخی سرویس دهنده های API نقشه
– آشنایی با سرویس Geocoding در گوگل و Here
– آشنایی با یک سرویس نقشه ایرانی
– ثبت نام و دریافت API Key از سرویس دهنده
– پیاده سازی درخواست API یا Endpoint در پایتون
– استفاده سریع از urllib پایتون و Request برای فراخوانی url
– اضافه کردن header به url در هنگام درخواست در پایتون
– خواندن محتوای url با urlopen و نمایش ساختار Json
– تجزیه Json و خزش پله پله برای رسیدن به مختصات جغرافیایی

درس دوازدهم: انتقال نقشه به محل جستجو شده
– – مرور دو درس گذشته
– پیاده سازی events_callback برای رویداد کلیک دیالوگ
– گرفتن متن جسجوی کاربر از Input Dialog
– استفاده از parse ماژول urllib پایتون برای تصحیح استرینگ در url
– استفاده از کلاس UrlRequest در ماژول network کیوی
– پیاده سازی کالبک های on_success و on_error و on_failure
– تنظیم Header به صورت Dictionary و ارسال کلید API
– تنظیم Header و مجوز SSL هنگام ارسال URL Request
– فرق json.load و json.dumps برای تجزیه json
– استخراج موقعیت جغرافیایی نقطه مورد جستجو
– اشاره به شی نقشه یا MapView با استفاده از Root.IDS در کیوی
– انتقال نقشه به نقطه جدید با on_center در Kivy Garden

درس سیزدهم: زیباسازی و اصلاح کاربری
– تصحیح عنوان اپلیکیشن
– تغییر primary palette یا رنگ اصلی اپلیکیشن
– تصحیح آیکن مارکرها (تغییر تصویر Marker)
– جلوگیری از باز شدن صفحه کلید مجازی در گوشی
– جلوگیری از ارسال Request در صورت خالی بودن متن
– خالی کردن متن جستجو پس از جابجایی نقشه
– تغییر عنوان یا Title دیالوگ جستجو

درس چهاردهم: تولید APK اندروید
– راه اندازی Buildozer با دستور init
– تنظیم فایل buildozer.spec برای مشاهده logcat
– رفع خطای Module Not Found
– رفع خطای شناسایی دیتابیس sqlite
– رفع خطای مجوز دسترسی یا permission
– روزآمدی ndk گوگل و sdk در صورت نیاز
– اجرای پروژه روی گوشی همزمان با خروجی apk
– بررسی مستمر خطاها و رفع و راهکاراها

درس پانزدهم: ایجاد نشانگر برای GPS
– مقدمه ای به کار با تجهیزات بومی یا native
– GPS چیست و در گوشی چه می‌کند؟
– پیاده سازی یک کلاس برای مارکر GPS
– نمایش GPS به صورت مارکر روی نقشه

درس شانزدهم: ساخت انیمیشن برای نشانگر GPS
– آشنایی با canvas و مفهوم canvas.before
– آشنایی با تنظیم Color به صورت rgba
– آشنایی با ترسیم RoundedRectangle
– تنظیم شعاع انحنا یا radius برای Rectangle
– تنظیم موقعیت pos و اندازه size ویجت
– فراخوانی ویژگی‌های فایل kv در کلاس پایتون
– آشنایی با کلاس Animation و متدهای start و bind
– پیاده سازی حلقه پویانمایی در کیوی برای تپش مارکر

درس هفدهم: کدنویسی GPS برای اجرا روی گوشی هوشمند
– آشنایی با کتابخانه plyer از کیوی
– آشنایی با متدهایconfigure و start در plyer
– آشنایی با پارامترهای on_location و on_status
– آشنایی با پارامترهای minTime و minDistance
– دریافت موقعیت جدید GPS از kwargs دریافتی کالبک
– نمایش دیالوگ عدم دسترسی به GPS با KivyMD
– نمایش دیالوگ Permission در اندروید
– دسترسی COARSE_LOCATION و FINE_LOCATION
– تنظیم دسترسی و ماژول plyer در buildozer
– خروجی گیری مجدد APK و اجرا روی گوشی هوشمند

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

نظرات (29)

29 دیدگاه برای آموزش پروژه محور کیوی __ ساخت اپ گردشگری (کار با دیتابیس و API)

  1. محمد طاها (خریدار محصول)

    سلام استاد. من همراه شما کد ها رو مینویسم اما قسمت Map Marker برای من نشانه هارو نمیاره درضمن هیچ خطایی نمیزنه و برنامه هم کار میکنه لطفا راهنمایی کنید.

    • مصطفی آصفی

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

  2. zeynabazari31@gmail.com (خریدار محصول)

    سلام و عرض ادب
    من تا قسمت ۵ فیلم آموزش جلو رفتم و تمامی کتابخانه رو نصب کردم .ولی برای من اجرا نمیشه و خطا میده مشکل از کجا هست ؟
    تا قسمت سه اجرا شد ولی قسمت ۵خیر

    • مصطفی آصفی

      سلام و وقت بخیر. لطفا خطای دریافتی رو اینجا بنویسید تا بتونیم هم فکری کنیم. اگه نیاز به ارسال عکس داشتین تصویر خطا رو تو آپلودسنتر رایگانی مثل پیکوفایل بارگذاری و لینکش رو اینجا ارسال کنید.
      پی‌نوشت: همون طور که در دوره مقدماتی (+) هم روزآمد کردم نسخه کیوی ۱ رو باستی حتما نصب کنید. pip install Kivy==1.11.1

  3. راشین لطیفی

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

    • مصطفی آصفی

      سلام. ببینید ما از دو نسخه کیوی استفاه نکردیم. نسخه ۱.۱۱ هست که تو این سورس (+) هم می بینید. من گمان می کنم شما با این که فراگیر بسته جامع هستید ولی احتمالا بخش دوم این بسته یعنی آموزش kivymd رو با دقت ندیدید. MDInputDialog یکی از ویجت های کتابخونه KIvyMD هست. این کتابخونه ورژن جدیدی از کیوی نیست. یک کتابخونه جانبی بر پایه کیوی هست. کار این کتابخونه اینه که روی کیوی سوار میشه و ویجت هایی رو اضافه می کنه که ظاهر زیباتری دارن.

  4. v_ahmadzadeh@hotmail.com

    سلام استاد. چه دلیلی داشت برای نقشه از کیوی گاردن استفاده کردید؟ میشد از apiهای دیگه هم استفاده کرد؟ کیوی گاردن چه مزیتی داره؟

    • مصطفی آصفی

      سلام به شما. دلیل ویژه ای نداره و شما اگه ابزار دیگه ای رو ببینین که برای کارتون مناسب تره طبیعتا می تونید همون رو استفاده کنید. علت انتخاب من این بود که پروژه گاردن در کل یه پروژه برای مشارکت همگانی در کیوی هست که ممکنه برای برنامه نویس های ایرانی هم که علاقه به مشارکت تو پروژه های بزرگ دارن جالب باشه. گاردن محدود به نقشه نیست. این مخزن Garden (+) رو ببینید.

  5. Ho33ein (خریدار محصول)

    چون احساس میکنیم که نیاز به یک پروژه محور دیگه هم داشته باشیم
    اگر که میتونید خیلی ممنون میشیم همگیمون

    • مصطفی آصفی

      سلام و ممنون از پیشنهاد خوب شما. توصیه می کنم این آموزش ساخت فروشگاه با جنگو (+) رو دنبال بفرمایید. اصل کار که طراحی سرور هست اینجا توضیح داده شده و سیستم API هم تا پایان دوره کامل میشه.
      اگه اون دوره کامل شد و باز در استفاده از اون API در گوشی مشکل داشتین همونجا این رو همفکری می کنیم که بیایم روی گوشی یا با PWA هم API رو بخونیم.

      پی‌نوشت: دقت کنید که کار با API رو در همین آموزش پروژه محور کیوی من توضیح دادم و عملا در انتهای اون دوره شما باید بتونید همون API رو با کمی تلاش تو قلب کیوی یا هر سیستم دیگه ای هم بخونید.

  6. Ho33ein (خریدار محصول)

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

  7. Ho33ein (خریدار محصول)

    با سلام و عرض ادب خسته نباشید میگم به تمامیه دوستان گرامی به خصوص استاد آصفی
    بنده دوره رو به اتمام رساندم باید بگم که یکی از بهترین آموزش هایی بود که تماشا کردم و حتما حتما پیشنهاد میکنم برای دریافت این دوره
    و اینکه استاد واقعا مسلط بودن به اینکار و خیلی منظم آموزش میدادن
    خیلی ممنون از شما استاد

    • مصطفی آصفی

      سلام مجدد و ممنون از انرژی مثبت و لطفی که دارید. خوشحالم که آموزش برای شما مفید بوده.

  8. Ho33ein (خریدار محصول)

    آقای آصفی خیلی ممنون برای نمایش دادن آیکون مارکر همون لینکی که فرستاده بودین رو تونسم اوکیش کنم
    ServicesMarker(lat = lat, lon = lon, source=’Marker.png’) با این روش

    • مصطفی آصفی

      سلام مجدد. دست شما درد نکنه که اطلاع دادین. خوشحالم که مشکلتون حل شد.

  9. Ho33ein (خریدار محصول)

    سلام خسته نباشید آقای آصفی
    یک مشکل داشتم اینه که چرا آیکون مارکر برام بالا نمیاره
    قسمت 6 MapMarkerPopup
    همه چی درسته نوشته شده
    اما آیکونش بالا نمیاره
    خیلی ممنون میشم کمک کنید
    توی قسمت نظرات هم نتونستم جوابمو پیدا کنم

    • مصطفی آصفی

      سلام به شما. بله تو جامعه کیوی در حال حاضر در نسخه ۲ کیوی این مشکل هست. ظاهرا مشکل اینه که جای آیکن مارکر رو نمی تونه خودبه‌خود پیدا کنه. این لینک (+)‌ رو بررسی کنید. در اون source آیکن مارکر دستی داده شده. اگه مشکل حل نشد ناچار باید کیوی نسخه ۱ رو مطابق آموزش نصب و فعلا از اون نسخه استفاده کنید.
      لطفا اگه نتیجه گرفتید اینجا گزارش کنید که دوستان بعدی هم متوجه بشن.

  10. رحیم خیرگو

    سلام استاد ممنون که راهنمایی کردید من مطلبی تو اینترنت دیدم که جالب بود بهتره با اجازه شما به اشتراک بذارم
    قبل از اجرای دستور buildozer android debug مستقل از بویلوزر و حتی بدون نیاز به فیلتر شکن میتوانیم sdk اندروید را به راحتی نصب کنیم و من امتحان کردم مشکلی نبود و شاید ndk رو هم بشه با این روش نصب کرد که من نیاز نداشتم و امتحان نکردم
    sudo apt update && sudo apt install android-sdk
    با نصب به این روش بویلدوزر از نصب sdk رد میشه

    • مصطفی آصفی

      سلام به شما. خیلی ممنون از اشتراک گذاری. این روحیه خیلی قابل تحسینه فقط ممنون میشم که در چنین مواردی لینک هم بگذارین.

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

  11. mahdi (خریدار محصول)

    سلام استاد یه سوال داشتم زمانی که در محدوده نقشه که latوlon. ان در بانک. اطلاعلاتی sqllite ثبت شده موس رو جابجا می کنیم اطلاعات از بانک اطلاعاتی به تاپل منتقل میشه اما ویجتی در روی نقشه نمیکاره. هیچ اروری هم نمیده ممنون میشم راهنمایی بفرمایید. تشکر

    • مصطفی آصفی

      سلام به شما. اگه از درستی کدتون مطمئن هستید توصیه می کنم یه پروژه آزمایشی کوچیک با ورژن متفاوتی از کیوی درست کنید و کد رو امتحان کنید. من خطای map روی ورژن کیوی ۲ رو دیدم که کاربران گزارش کردن. خودم البته هنوز امتحان نکردم.

  12. رحیم خیرگو

    سلام و خسته نباشید
    استاد شرمنده زیاد سوال میکنم
    در هنگام دانلود sdk توسط buildozer oxh خطا میده فیلتر شکن هم درست کار میکنه و آمریکا رو نشون میده تو براوسر حتی تو سایت کیوی هم رفتم تا از طریق
    Packaging with python-for-android به صورت دستی دانلود کنم باز صفحه اش رو باز نمیکنه
    متن خطا:
    rahim@rahim-G41MT-S2:~/Desktop/test$ buildozer android debug deploy run
    # Check configuration tokens
    # Ensure build layout
    # Check configuration tokens
    # Preparing build
    # Check requirements for android
    # Install platform
    # Apache ANT found at /home/rahim/.buildozer/android/platform/apache-ant-1.9.4
    # Android SDK is missing, downloading
    Traceback (most recent call last):
    File “/home/rahim/.local/bin/buildozer”, line 8, in
    sys.exit(main())
    File “/home/rahim/.local/lib/python3.8/site-packages/buildozer/scripts/client.py”, line 13, in main
    Buildozer().run_command(sys.argv[1:])
    File “/home/rahim/.local/lib/python3.8/site-packages/buildozer/__init__.py”, line 1058, in run_command
    self.target.run_commands(args)
    File “/home/rahim/.local/lib/python3.8/site-packages/buildozer/target.py”, line 92, in run_commands
    func(args)
    File “/home/rahim/.local/lib/python3.8/site-packages/buildozer/target.py”, line 102, in cmd_debug
    self.buildozer.prepare_for_build()
    File “/home/rahim/.local/lib/python3.8/site-packages/buildozer/__init__.py”, line 176, in prepare_for_build
    self.target.install_platform()
    File “/home/rahim/.local/lib/python3.8/site-packages/buildozer/targets/android.py”, line 468, in install_platform
    self._install_android_sdk()
    File “/home/rahim/.local/lib/python3.8/site-packages/buildozer/targets/android.py”, line 259, in _install_android_sdk
    self.buildozer.download(url,
    File “/home/rahim/.local/lib/python3.8/site-packages/buildozer/__init__.py”, line 686, in download
    urlretrieve(url, filename, report_hook)
    File “/usr/lib/python3.8/urllib/request.py”, line 1855, in retrieve
    block = fp.read(bs)
    File “/usr/lib/python3.8/tempfile.py”, line 612, in func_wrapper
    return func(*args, **kwargs)
    ValueError: read of closed file
    ممنون میشم راهنمایی کنید زیاد کلنجار رفتم نشد

    • مصطفی آصفی

      سلام به شما آقای خیرگو. خط نهم خطای دریافتی رو دفت کنید:
      Android SDK is missing, downloading
      این یعنی vpn شما نتونسته SDK رو دریافت کنه. متاسفانه موضوع اتصال به سرورهای گوگل سخت شده و باید از VPN خوب و پیوسته برقرار استفاده کنید.

      پی‌نوشت: فرآیند ایجاد APK با وجود چنین محدودیت هایی فرآیند دشواریه به ویژه اولین بار. صبور باشین.

  13. رحیم خیرگو

    سلام
    استاد برای تبدیل فایل به اندروید کتابخونه ها که داخل برنامه ایمپورت میکنیم رو در لینوکس باید نصب کنیم و همچنین پوشه venv رو هم باید کپی کنیم یا کلا فقط فایلهای پایتون و .kv کافی هستند

    • مصطفی آصفی

      سلام به شما آقای خیرگو. به نظرم آموزش رو با دقت نمی بینین. همون طور که تو درس ۱۴ آموزش مقدماتی کیوی و تو درس ۱۴ همین بسته اشاره کردم شما ماژول هایی که تو برنامه استفاده می کنید رو باید تو بخش requirements فایل spec اضافه کنید. لینک پایین هم از مستندات بیلدوزر یه نمونه افزودن کیوی و ریکوئست درج شده:
      Buildozer Specifications

  14. رحیم خیرگو

    سلام استاد موقع اجرا این خطا رو میده
    Unable to import package ‘kivy.garden.mapview.MapView’
    هم با pip نصب کردم هم با garden پیام نصب موفق رو میده
    Requirement already satisfied: mapview in h:\python\map\env\lib\site-packages (1.0.5)
    Requirement already satisfied: kivy-garden.mapview in h:\python\map\env\lib\site-packages (from mapview) (1.0.5)

    • مصطفی آصفی

      سلام به شما. یه فایل متنی روزآمدسازی نحوه نصب نقشه به اون درس پیوست کردم لطفاً مطالعه کنید.

  15. فاطمه

    سلام استاد
    استاد من زمانی میخوام خروجی بگیرم با این ارور KeyError: ‘kivy.garden.mapview
    مواجه میشم تمام راه هایی که گفتید به بقیه دوستان رو امتحان کردم و راه های دیگه از سایت های دیگه
    اما باز هم ارور میده
    کلی براش زمان گذاشتم ولی واقعا ناامید کننده است .
    اینکه نسخه پایتون 3.6 هست مشکلی ایجاد میکنه ؟؟؟

    • مصطفی آصفی

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

  16. فاطمه

    سلام استاد وقت به خیر
    استاد من یک عکس و یک دکمه رو در صفحه اول برنامم بالا اوردم اما با کلیک روی هر کدوم به صفحه بعدی دسترسی پیدا نمیکنم
    فایل کیوی :

    :
    name:”main0″
    ItemMenuForFitness:
    source:’P1.png’
    size_hint:None , None
    size: dp(500), dp(500)
    pos_hint: {“center_x”: 0.5 , “center-y”: 1.5}
    MDFillRoundFlatIconButton:
    icon:”login”
    text:”Login”
    pos_hint:{“center_x”: 0.5 , “center-y”: 0.5}
    on_release: root.manager.current=”Main1″
    :
    name:”main1″
    BoxLayout:
    padding: dp(75)
    MDLabel:
    “text:”welcom
    “halign:”center
    font_size:”25sp”

    و در main.py هم اینطوری نوشتم :
    class Manager(ScreenManager):
    pass
    class main0(Screen):
    pass
    class Main1(Screen):
    pass

    class MaiinApp(MDApp):

    def build(self):
    self.theme_cls.theme_style = “Dark”
    return Factory.main0()

    MaiinApp().run()

    • مصطفی آصفی

      سلام به شما. می بخشید که جوابتون خیلی دیر شد. ببینید در بخش نظرات بیشتر به رفع خطا می پردازیم. من با این که دوست دارم ولی حقیقتا نمی رسم که کدهای مفصل رو تست کنم. وقتی به خطایی می خورید خطا رو گزارش کنید تا هم فکری کنیم.
      در مورد سوالتون می تونم ارجاع بدم به آموزش KivyMD (+) و که درس‌های دهم یازدهم در مورد کلیک صحبت کردیم. لطفا برگردید و اون مباحث رو مرور کنید.

  17. محمد عطایی (خریدار محصول)

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

    • مصطفی آصفی

      سلام به شما. سلامت باشید همچنین.
      این موضوع در کیوی هنوز به شیوه رسمی حل نشده. اما همون طور که در درس نهم آموزش KivyMD (+) در موردش صحبت کردیم، برای این کار می‌تونید از دو کتابخونه arabic_reshaper و python_bidi استفاده کنید.

      پی‌نوشت: این ها در برخی پروژه ها موقع ایجاد خروجی اندروید اذیت می کنن.

  18. وحید ییلاق بیگی (خریدار محصول)

    سلام جناب آصفی عزیز ممنون از دوره های بسیار عالی
    من دوره های Python ، Kivy و KivMD رو تهیه کردم و گذروندم ولی فکر میکنم هنوز با طراحی ظاهر اپلیکیش مشکل دارم
    هدف من ساخت اپلیکیشن های ساده محاسبه گر مثل ماشین حساب هست ولی چیدن ویجت ها در جای مناسب خودشون هنوز برام گنگ هست
    این دوره رو هم تهیه کردم چون فکر میکردم بهم کمک کنه ولی دیدم به این موردی که من توش مشکل دارم پرداخته نشده
    آیا مثالی وجود داره مثل ساخت ماشین حساب با KivyMD که بتونم از اون استفاده کنم و اپلیکیشن مورد نظرم رو بسازم؟
    ممنونم از شما

    • مصطفی آصفی

      سلام به شما. این نمونه کد ماشین حساب با کیوی (+) می تونه به شما کمک کنه. شما یک بازبینی در مورد لیوت ها حتما در این آموزش مقدماتی کیوی (+) درس چهارم داشته باشید.
      ما یک مفهوم داریم به نام لیوت و یک مفهوم به نام ویجت. لیوت ها کمک می کنن به چیدمان ویجت ها. ضمنا در KivyMD هم همچنان این سلسله مراتب برقراره فقط شما در لیوت ها به جای چیدن ویجت های کیوی از ویجت های KivyMD استفاده می کنید که متریال هستن.

  19. طاها

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

  20. طاها

    سلام استاد.بنده همانطور که فرموده بودید با دستور from kivy_garden.mapview import MapView فراخوانی کردم.هنگام اجرا هیچ مشکلی نداره و به خوبی با دستورات جدید اجرا میشه.
    اما هنگام خروجی گرفتن با ارور زیر مواجه میشم:

    11-08 12:59:14.964 27494 27742 I python : Traceback (most recent call last):
    11-08 12:59:14.964 27494 27742 I python : File “/home/taha/Downloads/services_map/.buildozer/android/app/main.py”, line 2, in
    11-08 12:59:14.965 27494 27742 I python : File “/home/taha/Downloads/services_map/.buildozer/android/app/servicesmapview.py”, line 1, in
    11-08 12:59:14.966 27494 27742 I python : ModuleNotFoundError: No module named ‘kivy_garden’
    11-08 12:59:14.966 27494 27742 I python : Python for android ended.

    طبق ارور اصلا ماژول kivy_graden رو نمیشناسه.
    بنده در فایل buildozer.spec به صورت دستی garden_requirements = mapview را اضافه کردم.
    همچنین در بخش Application requirements یک بار kivy_garden و یک بار هم kivy_garden.mapview را اضافه کردم،اما همچنان با ارور ModuleNotFoundError: No module named ‘kivy_garden مواجه میشم.
    توی سایت های github,stackoverflow و… هم گشتم و راه کار های پیشنهادی را امتحان کردم،اما نتیجه تغییری نکرد.

    • مصطفی آصفی

      سلام مجدد. مطابق این گزارش (+) ظاهرا نحوه استفاده دز پیش نیازها عوض شده.
      باید garden_requirements = mapview رو حذف و در بخش پیش‌نیازها به این صورت کار کنید
      requirements = python3,kivy,kivy_garden.mapview
      فقط دقت کنید که سابقه بیلدوزر (پوشه ای که ساخته میشه و کتابخونه های دریافت شده)‌ رو پاک کنید. طبق این گزارش همه مشکل اینه که ماژول kivy_garden شناسایی نمیشه. اگر این کار مشکل رو حل نکنه نهایتا تنها چیزی که به ذهن من می رسه اینه که شاید این یک باگ باشه و ناشی از عدم تطابق نسخه کتابخونه ها. مثلا نسخه کیوی با گاردن یا حتی نسخه پایتون پروژه.
      چون گاهی اتفاقی میفته که نهایتا گزارش پیش فرضی که برنامه نویس قلب بیلدوزر براش در نظر گفته همون پیدا نشدن ماژول هست.
      لطفا اگه نتیجه ای گرفتید بنده رو هم مطلع کنید چون در حال حاضر سیستمی برای آزمایش کیوی ندارم.

  21. طاها

    سلام مجدد.mapview را با دستوری که فرمودید نصب کردم اما ارور بر طرف نشد.توی سورس کد ها باید mapview رو از طریق دیگری فراخوانی کنم؟یا همچنان باید با garden اون رو import کنم؟
    دستور from kivy.garden.mapview import MapView باید تغییر کند؟

    • مصطفی آصفی

      سلام مجدد. بله برای فراخوانی هم باید به شکل پایین بنویسید
      from kivy_garden.mapview import MapView
      ضمنا در بیلدوزر هم که حتما باید پیش نیازهای گاردن رو اضافه کنید
      garden_requirements = mapview

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

  22. طاها

    سلام استاد.بنده فایل biuldozer.spec را ساختم.اما توی اون فایل اصلا بخشی برای گاردن نیست تا پیشنیاز های اون که در این اپ mapview هست رو بخوام اضافه بکنم.هنگام خروجی گرفتن با خطای زیر مواجه میشم و اپ کرش میکنه:
    KeyError: ‘kivy.garden.mapview

    بخش garden requirements را هم به صورت دستی در فایل spec اضافه کردم اما همچنان با همون خطا مواجه میشم.
    ممنون میشم راهنمایی بفرمایید.

    • مصطفی آصفی

      سلام به شما. برای نصب نقشه از باغ کیوی به جای دستور
      garden install mapview

      به دلیل انتقال مخزن به نشانی زیر
      https://github.com/kivy-garden/mapview
      لطفا از پیپ برای نصب استفاده کنید
      pip install mapview

      این موضوع به عنوان اصلاحی و روزآمدسازی درس دو پیوست شد.

  23. هادی

    سلام آقای آصفی
    یک سوال ازتون داشتم ممنون میشم راهنمایی بنده را بکنید ، بنده می خواهم یک نرم افزار ویندوز با پایتون ایجاد نمایم اما متاسفانه بنده رابط گرافیکی خوبی که مد نظرم هست را نمیتوانم طراحی کنم . آیا می شود از react یا electron برای ایجاد رابط کابری پایتون استفاده نمود ؟ و اینکه بهترین رابط کاربری برای زبان پایتون kivy است ؟

    • مصطفی آصفی

      سلام به شما. برای رابط کاربری با پایتون شما می تونید از Tkinter و همین طور PyQt هم استفاده کنید. من البته Kivy رو بیشتر توصیه می کنم. به ویژه این که مطابق این آموزش KivyMD (+) امکان طراحی متریال هم داره.
      البته اگر برنامه فارسی زبان قصد دارید تولید کنید این کتابخونه هنوز پوشش کامل نیست و دردسرهایی داره که در همون آموزش هم توضیح دادم.

      اگر اپ فارسی زبان قصد دارید تولید کنید و برای ساخت پیش نمون (Prototype) عجله دارید توصیه می کنم Tkinter استفاده کنید.
      اما اگر قصد توسعه در آبنده دارید و شاید نسخه موبایل هم نیاز باشه در این صورت از کیوی گزینه بهتری هست. انشالله آموزش PyQt5 هم آبان ماه توسط آقای علیجانی در هم رویش منتشر خواهد شد. این نسخه PyQt هم قابلیت خروجی اندروید داره.

  24. حسین عنایتی

    سلام استاد
    خواستم یک سوال بپرسم
    ایا اشکال دارد بنده دوره شمارو خریداری و بعدشبیه مطالب شما رو حضوری یا مثلا انلاین اموزش بدم؟

    • مصطفی آصفی

      سلام به شما. وجود برنامه نویسانی مثل شما در کشور که چنین پایبند به حق نشر هستند، باعث افتخار و امیدواریه.

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

  25. sadeghisaa@yahoo.com

    [ERROR ] [Image ] Error reading file C:\Users\amin\PycharmProjects\main User\venv\lib\site-packages\kivy_garden\mapview\icons\marker.png
    استاد این برای چی هست

    • مصطفی آصفی

      سلام به شما. می گه این فایل عکس مارکر که در کد استفاه کردید رو پیدا نمی کنه. ظاهرا mapview آرکایور شده و منتقل شده به این نشانی:
      https://github.com/kivy-garden/mapview
      و باید از پیپ برای نصبب اون استفاده کرد (به جای garden که در درس 2 گفتم):
      pip install mapview

  26. سید محمد صادقی (خریدار محصول)

    استاد می شود بیشتر توضیح بدهید

  27. سید محمد صادقی (خریدار محصول)

    venv) C:\Users\sadeg\PycharmProjects\Raya User>python.exe C:\Users\sadeg\PycharmProjects\Raya User\venv\Scripts\garden install mapview
    C:\Users\sadeg\PycharmProjects\Raya User\venv\Scripts\python.exe: can’t find ‘__main__’ module in
    استاد در نصبgarden install mapview با ارور بالا برخورد می کنم

    • مصطفی آصفی

      سلام. از محل دکمه اجرای برنامه برید به تنظیمات اجرای فایل (Debug/Run Confuguration) و بعد مطمئن بشید که Script path رو به درستی برای فایل اصلی تنظیم کردید. ضمنا Python directory رو هم درست تنظیم کرده باشید.

  28. سید محمد صادقی (خریدار محصول)

    mod = __import__(package)
    File “”, line 983, in _find_and_load
    File “”, line 967, in _find_and_load_unlocked
    File “”, line 668, in _load_unlocked
    File “”, line 640, in _load_backward_compatible
    KeyError: ‘kivy.garden.mapview’
    چگونه این ارور را درست کنم و اگر می شود سوال قبلی من را هم پاسخ دهید

    • مصطفی آصفی

      سلام به شما. این خطا رو در بیلدوزر دریافت می‌کنید؟ در این صورت همون طور که در آموزش توضیح دادم باید در spec در بخش garden نام mapview رو اضافه کنید.

  29. علی

    سلام خسته نباشید
    ببخشید یک سوال داشتم!
    این دوره اموزش 0 تا 100 کیوی است ؟ یعنی اینکه من از کیوی هیچ چیزی بلد نیستم و ایا میتوانم با این اموزش کیوی را به خوبی یادبگیرم؟

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

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

29 دیدگاه برای آموزش پروژه محور کیوی __ ساخت اپ گردشگری (کار با دیتابیس و API)

  1. محمد طاها (خریدار محصول)

    سلام استاد. من همراه شما کد ها رو مینویسم اما قسمت Map Marker برای من نشانه هارو نمیاره درضمن هیچ خطایی نمیزنه و برنامه هم کار میکنه لطفا راهنمایی کنید.

    • مصطفی آصفی

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

  2. zeynabazari31@gmail.com (خریدار محصول)

    سلام و عرض ادب
    من تا قسمت ۵ فیلم آموزش جلو رفتم و تمامی کتابخانه رو نصب کردم .ولی برای من اجرا نمیشه و خطا میده مشکل از کجا هست ؟
    تا قسمت سه اجرا شد ولی قسمت ۵خیر

    • مصطفی آصفی

      سلام و وقت بخیر. لطفا خطای دریافتی رو اینجا بنویسید تا بتونیم هم فکری کنیم. اگه نیاز به ارسال عکس داشتین تصویر خطا رو تو آپلودسنتر رایگانی مثل پیکوفایل بارگذاری و لینکش رو اینجا ارسال کنید.
      پی‌نوشت: همون طور که در دوره مقدماتی (+) هم روزآمد کردم نسخه کیوی ۱ رو باستی حتما نصب کنید. pip install Kivy==1.11.1

  3. راشین لطیفی

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

    • مصطفی آصفی

      سلام. ببینید ما از دو نسخه کیوی استفاه نکردیم. نسخه ۱.۱۱ هست که تو این سورس (+) هم می بینید. من گمان می کنم شما با این که فراگیر بسته جامع هستید ولی احتمالا بخش دوم این بسته یعنی آموزش kivymd رو با دقت ندیدید. MDInputDialog یکی از ویجت های کتابخونه KIvyMD هست. این کتابخونه ورژن جدیدی از کیوی نیست. یک کتابخونه جانبی بر پایه کیوی هست. کار این کتابخونه اینه که روی کیوی سوار میشه و ویجت هایی رو اضافه می کنه که ظاهر زیباتری دارن.

  4. v_ahmadzadeh@hotmail.com

    سلام استاد. چه دلیلی داشت برای نقشه از کیوی گاردن استفاده کردید؟ میشد از apiهای دیگه هم استفاده کرد؟ کیوی گاردن چه مزیتی داره؟

    • مصطفی آصفی

      سلام به شما. دلیل ویژه ای نداره و شما اگه ابزار دیگه ای رو ببینین که برای کارتون مناسب تره طبیعتا می تونید همون رو استفاده کنید. علت انتخاب من این بود که پروژه گاردن در کل یه پروژه برای مشارکت همگانی در کیوی هست که ممکنه برای برنامه نویس های ایرانی هم که علاقه به مشارکت تو پروژه های بزرگ دارن جالب باشه. گاردن محدود به نقشه نیست. این مخزن Garden (+) رو ببینید.

  5. Ho33ein (خریدار محصول)

    چون احساس میکنیم که نیاز به یک پروژه محور دیگه هم داشته باشیم
    اگر که میتونید خیلی ممنون میشیم همگیمون

    • مصطفی آصفی

      سلام و ممنون از پیشنهاد خوب شما. توصیه می کنم این آموزش ساخت فروشگاه با جنگو (+) رو دنبال بفرمایید. اصل کار که طراحی سرور هست اینجا توضیح داده شده و سیستم API هم تا پایان دوره کامل میشه.
      اگه اون دوره کامل شد و باز در استفاده از اون API در گوشی مشکل داشتین همونجا این رو همفکری می کنیم که بیایم روی گوشی یا با PWA هم API رو بخونیم.

      پی‌نوشت: دقت کنید که کار با API رو در همین آموزش پروژه محور کیوی من توضیح دادم و عملا در انتهای اون دوره شما باید بتونید همون API رو با کمی تلاش تو قلب کیوی یا هر سیستم دیگه ای هم بخونید.

  6. Ho33ein (خریدار محصول)

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

  7. Ho33ein (خریدار محصول)

    با سلام و عرض ادب خسته نباشید میگم به تمامیه دوستان گرامی به خصوص استاد آصفی
    بنده دوره رو به اتمام رساندم باید بگم که یکی از بهترین آموزش هایی بود که تماشا کردم و حتما حتما پیشنهاد میکنم برای دریافت این دوره
    و اینکه استاد واقعا مسلط بودن به اینکار و خیلی منظم آموزش میدادن
    خیلی ممنون از شما استاد

    • مصطفی آصفی

      سلام مجدد و ممنون از انرژی مثبت و لطفی که دارید. خوشحالم که آموزش برای شما مفید بوده.

  8. Ho33ein (خریدار محصول)

    آقای آصفی خیلی ممنون برای نمایش دادن آیکون مارکر همون لینکی که فرستاده بودین رو تونسم اوکیش کنم
    ServicesMarker(lat = lat, lon = lon, source=’Marker.png’) با این روش

    • مصطفی آصفی

      سلام مجدد. دست شما درد نکنه که اطلاع دادین. خوشحالم که مشکلتون حل شد.

  9. Ho33ein (خریدار محصول)

    سلام خسته نباشید آقای آصفی
    یک مشکل داشتم اینه که چرا آیکون مارکر برام بالا نمیاره
    قسمت 6 MapMarkerPopup
    همه چی درسته نوشته شده
    اما آیکونش بالا نمیاره
    خیلی ممنون میشم کمک کنید
    توی قسمت نظرات هم نتونستم جوابمو پیدا کنم

    • مصطفی آصفی

      سلام به شما. بله تو جامعه کیوی در حال حاضر در نسخه ۲ کیوی این مشکل هست. ظاهرا مشکل اینه که جای آیکن مارکر رو نمی تونه خودبه‌خود پیدا کنه. این لینک (+)‌ رو بررسی کنید. در اون source آیکن مارکر دستی داده شده. اگه مشکل حل نشد ناچار باید کیوی نسخه ۱ رو مطابق آموزش نصب و فعلا از اون نسخه استفاده کنید.
      لطفا اگه نتیجه گرفتید اینجا گزارش کنید که دوستان بعدی هم متوجه بشن.

  10. رحیم خیرگو

    سلام استاد ممنون که راهنمایی کردید من مطلبی تو اینترنت دیدم که جالب بود بهتره با اجازه شما به اشتراک بذارم
    قبل از اجرای دستور buildozer android debug مستقل از بویلوزر و حتی بدون نیاز به فیلتر شکن میتوانیم sdk اندروید را به راحتی نصب کنیم و من امتحان کردم مشکلی نبود و شاید ndk رو هم بشه با این روش نصب کرد که من نیاز نداشتم و امتحان نکردم
    sudo apt update && sudo apt install android-sdk
    با نصب به این روش بویلدوزر از نصب sdk رد میشه

    • مصطفی آصفی

      سلام به شما. خیلی ممنون از اشتراک گذاری. این روحیه خیلی قابل تحسینه فقط ممنون میشم که در چنین مواردی لینک هم بگذارین.

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

  11. mahdi (خریدار محصول)

    سلام استاد یه سوال داشتم زمانی که در محدوده نقشه که latوlon. ان در بانک. اطلاعلاتی sqllite ثبت شده موس رو جابجا می کنیم اطلاعات از بانک اطلاعاتی به تاپل منتقل میشه اما ویجتی در روی نقشه نمیکاره. هیچ اروری هم نمیده ممنون میشم راهنمایی بفرمایید. تشکر

    • مصطفی آصفی

      سلام به شما. اگه از درستی کدتون مطمئن هستید توصیه می کنم یه پروژه آزمایشی کوچیک با ورژن متفاوتی از کیوی درست کنید و کد رو امتحان کنید. من خطای map روی ورژن کیوی ۲ رو دیدم که کاربران گزارش کردن. خودم البته هنوز امتحان نکردم.

  12. رحیم خیرگو

    سلام و خسته نباشید
    استاد شرمنده زیاد سوال میکنم
    در هنگام دانلود sdk توسط buildozer oxh خطا میده فیلتر شکن هم درست کار میکنه و آمریکا رو نشون میده تو براوسر حتی تو سایت کیوی هم رفتم تا از طریق
    Packaging with python-for-android به صورت دستی دانلود کنم باز صفحه اش رو باز نمیکنه
    متن خطا:
    rahim@rahim-G41MT-S2:~/Desktop/test$ buildozer android debug deploy run
    # Check configuration tokens
    # Ensure build layout
    # Check configuration tokens
    # Preparing build
    # Check requirements for android
    # Install platform
    # Apache ANT found at /home/rahim/.buildozer/android/platform/apache-ant-1.9.4
    # Android SDK is missing, downloading
    Traceback (most recent call last):
    File “/home/rahim/.local/bin/buildozer”, line 8, in
    sys.exit(main())
    File “/home/rahim/.local/lib/python3.8/site-packages/buildozer/scripts/client.py”, line 13, in main
    Buildozer().run_command(sys.argv[1:])
    File “/home/rahim/.local/lib/python3.8/site-packages/buildozer/__init__.py”, line 1058, in run_command
    self.target.run_commands(args)
    File “/home/rahim/.local/lib/python3.8/site-packages/buildozer/target.py”, line 92, in run_commands
    func(args)
    File “/home/rahim/.local/lib/python3.8/site-packages/buildozer/target.py”, line 102, in cmd_debug
    self.buildozer.prepare_for_build()
    File “/home/rahim/.local/lib/python3.8/site-packages/buildozer/__init__.py”, line 176, in prepare_for_build
    self.target.install_platform()
    File “/home/rahim/.local/lib/python3.8/site-packages/buildozer/targets/android.py”, line 468, in install_platform
    self._install_android_sdk()
    File “/home/rahim/.local/lib/python3.8/site-packages/buildozer/targets/android.py”, line 259, in _install_android_sdk
    self.buildozer.download(url,
    File “/home/rahim/.local/lib/python3.8/site-packages/buildozer/__init__.py”, line 686, in download
    urlretrieve(url, filename, report_hook)
    File “/usr/lib/python3.8/urllib/request.py”, line 1855, in retrieve
    block = fp.read(bs)
    File “/usr/lib/python3.8/tempfile.py”, line 612, in func_wrapper
    return func(*args, **kwargs)
    ValueError: read of closed file
    ممنون میشم راهنمایی کنید زیاد کلنجار رفتم نشد

    • مصطفی آصفی

      سلام به شما آقای خیرگو. خط نهم خطای دریافتی رو دفت کنید:
      Android SDK is missing, downloading
      این یعنی vpn شما نتونسته SDK رو دریافت کنه. متاسفانه موضوع اتصال به سرورهای گوگل سخت شده و باید از VPN خوب و پیوسته برقرار استفاده کنید.

      پی‌نوشت: فرآیند ایجاد APK با وجود چنین محدودیت هایی فرآیند دشواریه به ویژه اولین بار. صبور باشین.

  13. رحیم خیرگو

    سلام
    استاد برای تبدیل فایل به اندروید کتابخونه ها که داخل برنامه ایمپورت میکنیم رو در لینوکس باید نصب کنیم و همچنین پوشه venv رو هم باید کپی کنیم یا کلا فقط فایلهای پایتون و .kv کافی هستند

    • مصطفی آصفی

      سلام به شما آقای خیرگو. به نظرم آموزش رو با دقت نمی بینین. همون طور که تو درس ۱۴ آموزش مقدماتی کیوی و تو درس ۱۴ همین بسته اشاره کردم شما ماژول هایی که تو برنامه استفاده می کنید رو باید تو بخش requirements فایل spec اضافه کنید. لینک پایین هم از مستندات بیلدوزر یه نمونه افزودن کیوی و ریکوئست درج شده:
      Buildozer Specifications

  14. رحیم خیرگو

    سلام استاد موقع اجرا این خطا رو میده
    Unable to import package ‘kivy.garden.mapview.MapView’
    هم با pip نصب کردم هم با garden پیام نصب موفق رو میده
    Requirement already satisfied: mapview in h:\python\map\env\lib\site-packages (1.0.5)
    Requirement already satisfied: kivy-garden.mapview in h:\python\map\env\lib\site-packages (from mapview) (1.0.5)

    • مصطفی آصفی

      سلام به شما. یه فایل متنی روزآمدسازی نحوه نصب نقشه به اون درس پیوست کردم لطفاً مطالعه کنید.

  15. فاطمه

    سلام استاد
    استاد من زمانی میخوام خروجی بگیرم با این ارور KeyError: ‘kivy.garden.mapview
    مواجه میشم تمام راه هایی که گفتید به بقیه دوستان رو امتحان کردم و راه های دیگه از سایت های دیگه
    اما باز هم ارور میده
    کلی براش زمان گذاشتم ولی واقعا ناامید کننده است .
    اینکه نسخه پایتون 3.6 هست مشکلی ایجاد میکنه ؟؟؟

    • مصطفی آصفی

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

  16. فاطمه

    سلام استاد وقت به خیر
    استاد من یک عکس و یک دکمه رو در صفحه اول برنامم بالا اوردم اما با کلیک روی هر کدوم به صفحه بعدی دسترسی پیدا نمیکنم
    فایل کیوی :

    :
    name:”main0″
    ItemMenuForFitness:
    source:’P1.png’
    size_hint:None , None
    size: dp(500), dp(500)
    pos_hint: {“center_x”: 0.5 , “center-y”: 1.5}
    MDFillRoundFlatIconButton:
    icon:”login”
    text:”Login”
    pos_hint:{“center_x”: 0.5 , “center-y”: 0.5}
    on_release: root.manager.current=”Main1″
    :
    name:”main1″
    BoxLayout:
    padding: dp(75)
    MDLabel:
    “text:”welcom
    “halign:”center
    font_size:”25sp”

    و در main.py هم اینطوری نوشتم :
    class Manager(ScreenManager):
    pass
    class main0(Screen):
    pass
    class Main1(Screen):
    pass

    class MaiinApp(MDApp):

    def build(self):
    self.theme_cls.theme_style = “Dark”
    return Factory.main0()

    MaiinApp().run()

    • مصطفی آصفی

      سلام به شما. می بخشید که جوابتون خیلی دیر شد. ببینید در بخش نظرات بیشتر به رفع خطا می پردازیم. من با این که دوست دارم ولی حقیقتا نمی رسم که کدهای مفصل رو تست کنم. وقتی به خطایی می خورید خطا رو گزارش کنید تا هم فکری کنیم.
      در مورد سوالتون می تونم ارجاع بدم به آموزش KivyMD (+) و که درس‌های دهم یازدهم در مورد کلیک صحبت کردیم. لطفا برگردید و اون مباحث رو مرور کنید.

  17. محمد عطایی (خریدار محصول)

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

    • مصطفی آصفی

      سلام به شما. سلامت باشید همچنین.
      این موضوع در کیوی هنوز به شیوه رسمی حل نشده. اما همون طور که در درس نهم آموزش KivyMD (+) در موردش صحبت کردیم، برای این کار می‌تونید از دو کتابخونه arabic_reshaper و python_bidi استفاده کنید.

      پی‌نوشت: این ها در برخی پروژه ها موقع ایجاد خروجی اندروید اذیت می کنن.

  18. وحید ییلاق بیگی (خریدار محصول)

    سلام جناب آصفی عزیز ممنون از دوره های بسیار عالی
    من دوره های Python ، Kivy و KivMD رو تهیه کردم و گذروندم ولی فکر میکنم هنوز با طراحی ظاهر اپلیکیش مشکل دارم
    هدف من ساخت اپلیکیشن های ساده محاسبه گر مثل ماشین حساب هست ولی چیدن ویجت ها در جای مناسب خودشون هنوز برام گنگ هست
    این دوره رو هم تهیه کردم چون فکر میکردم بهم کمک کنه ولی دیدم به این موردی که من توش مشکل دارم پرداخته نشده
    آیا مثالی وجود داره مثل ساخت ماشین حساب با KivyMD که بتونم از اون استفاده کنم و اپلیکیشن مورد نظرم رو بسازم؟
    ممنونم از شما

    • مصطفی آصفی

      سلام به شما. این نمونه کد ماشین حساب با کیوی (+) می تونه به شما کمک کنه. شما یک بازبینی در مورد لیوت ها حتما در این آموزش مقدماتی کیوی (+) درس چهارم داشته باشید.
      ما یک مفهوم داریم به نام لیوت و یک مفهوم به نام ویجت. لیوت ها کمک می کنن به چیدمان ویجت ها. ضمنا در KivyMD هم همچنان این سلسله مراتب برقراره فقط شما در لیوت ها به جای چیدن ویجت های کیوی از ویجت های KivyMD استفاده می کنید که متریال هستن.

  19. طاها

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

  20. طاها

    سلام استاد.بنده همانطور که فرموده بودید با دستور from kivy_garden.mapview import MapView فراخوانی کردم.هنگام اجرا هیچ مشکلی نداره و به خوبی با دستورات جدید اجرا میشه.
    اما هنگام خروجی گرفتن با ارور زیر مواجه میشم:

    11-08 12:59:14.964 27494 27742 I python : Traceback (most recent call last):
    11-08 12:59:14.964 27494 27742 I python : File “/home/taha/Downloads/services_map/.buildozer/android/app/main.py”, line 2, in
    11-08 12:59:14.965 27494 27742 I python : File “/home/taha/Downloads/services_map/.buildozer/android/app/servicesmapview.py”, line 1, in
    11-08 12:59:14.966 27494 27742 I python : ModuleNotFoundError: No module named ‘kivy_garden’
    11-08 12:59:14.966 27494 27742 I python : Python for android ended.

    طبق ارور اصلا ماژول kivy_graden رو نمیشناسه.
    بنده در فایل buildozer.spec به صورت دستی garden_requirements = mapview را اضافه کردم.
    همچنین در بخش Application requirements یک بار kivy_garden و یک بار هم kivy_garden.mapview را اضافه کردم،اما همچنان با ارور ModuleNotFoundError: No module named ‘kivy_garden مواجه میشم.
    توی سایت های github,stackoverflow و… هم گشتم و راه کار های پیشنهادی را امتحان کردم،اما نتیجه تغییری نکرد.

    • مصطفی آصفی

      سلام مجدد. مطابق این گزارش (+) ظاهرا نحوه استفاده دز پیش نیازها عوض شده.
      باید garden_requirements = mapview رو حذف و در بخش پیش‌نیازها به این صورت کار کنید
      requirements = python3,kivy,kivy_garden.mapview
      فقط دقت کنید که سابقه بیلدوزر (پوشه ای که ساخته میشه و کتابخونه های دریافت شده)‌ رو پاک کنید. طبق این گزارش همه مشکل اینه که ماژول kivy_garden شناسایی نمیشه. اگر این کار مشکل رو حل نکنه نهایتا تنها چیزی که به ذهن من می رسه اینه که شاید این یک باگ باشه و ناشی از عدم تطابق نسخه کتابخونه ها. مثلا نسخه کیوی با گاردن یا حتی نسخه پایتون پروژه.
      چون گاهی اتفاقی میفته که نهایتا گزارش پیش فرضی که برنامه نویس قلب بیلدوزر براش در نظر گفته همون پیدا نشدن ماژول هست.
      لطفا اگه نتیجه ای گرفتید بنده رو هم مطلع کنید چون در حال حاضر سیستمی برای آزمایش کیوی ندارم.

  21. طاها

    سلام مجدد.mapview را با دستوری که فرمودید نصب کردم اما ارور بر طرف نشد.توی سورس کد ها باید mapview رو از طریق دیگری فراخوانی کنم؟یا همچنان باید با garden اون رو import کنم؟
    دستور from kivy.garden.mapview import MapView باید تغییر کند؟

    • مصطفی آصفی

      سلام مجدد. بله برای فراخوانی هم باید به شکل پایین بنویسید
      from kivy_garden.mapview import MapView
      ضمنا در بیلدوزر هم که حتما باید پیش نیازهای گاردن رو اضافه کنید
      garden_requirements = mapview

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

  22. طاها

    سلام استاد.بنده فایل biuldozer.spec را ساختم.اما توی اون فایل اصلا بخشی برای گاردن نیست تا پیشنیاز های اون که در این اپ mapview هست رو بخوام اضافه بکنم.هنگام خروجی گرفتن با خطای زیر مواجه میشم و اپ کرش میکنه:
    KeyError: ‘kivy.garden.mapview

    بخش garden requirements را هم به صورت دستی در فایل spec اضافه کردم اما همچنان با همون خطا مواجه میشم.
    ممنون میشم راهنمایی بفرمایید.

    • مصطفی آصفی

      سلام به شما. برای نصب نقشه از باغ کیوی به جای دستور
      garden install mapview

      به دلیل انتقال مخزن به نشانی زیر
      https://github.com/kivy-garden/mapview
      لطفا از پیپ برای نصب استفاده کنید
      pip install mapview

      این موضوع به عنوان اصلاحی و روزآمدسازی درس دو پیوست شد.

  23. هادی

    سلام آقای آصفی
    یک سوال ازتون داشتم ممنون میشم راهنمایی بنده را بکنید ، بنده می خواهم یک نرم افزار ویندوز با پایتون ایجاد نمایم اما متاسفانه بنده رابط گرافیکی خوبی که مد نظرم هست را نمیتوانم طراحی کنم . آیا می شود از react یا electron برای ایجاد رابط کابری پایتون استفاده نمود ؟ و اینکه بهترین رابط کاربری برای زبان پایتون kivy است ؟

    • مصطفی آصفی

      سلام به شما. برای رابط کاربری با پایتون شما می تونید از Tkinter و همین طور PyQt هم استفاده کنید. من البته Kivy رو بیشتر توصیه می کنم. به ویژه این که مطابق این آموزش KivyMD (+) امکان طراحی متریال هم داره.
      البته اگر برنامه فارسی زبان قصد دارید تولید کنید این کتابخونه هنوز پوشش کامل نیست و دردسرهایی داره که در همون آموزش هم توضیح دادم.

      اگر اپ فارسی زبان قصد دارید تولید کنید و برای ساخت پیش نمون (Prototype) عجله دارید توصیه می کنم Tkinter استفاده کنید.
      اما اگر قصد توسعه در آبنده دارید و شاید نسخه موبایل هم نیاز باشه در این صورت از کیوی گزینه بهتری هست. انشالله آموزش PyQt5 هم آبان ماه توسط آقای علیجانی در هم رویش منتشر خواهد شد. این نسخه PyQt هم قابلیت خروجی اندروید داره.

  24. حسین عنایتی

    سلام استاد
    خواستم یک سوال بپرسم
    ایا اشکال دارد بنده دوره شمارو خریداری و بعدشبیه مطالب شما رو حضوری یا مثلا انلاین اموزش بدم؟

    • مصطفی آصفی

      سلام به شما. وجود برنامه نویسانی مثل شما در کشور که چنین پایبند به حق نشر هستند، باعث افتخار و امیدواریه.

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

  25. sadeghisaa@yahoo.com

    [ERROR ] [Image ] Error reading file C:\Users\amin\PycharmProjects\main User\venv\lib\site-packages\kivy_garden\mapview\icons\marker.png
    استاد این برای چی هست

    • مصطفی آصفی

      سلام به شما. می گه این فایل عکس مارکر که در کد استفاه کردید رو پیدا نمی کنه. ظاهرا mapview آرکایور شده و منتقل شده به این نشانی:
      https://github.com/kivy-garden/mapview
      و باید از پیپ برای نصبب اون استفاده کرد (به جای garden که در درس 2 گفتم):
      pip install mapview

  26. سید محمد صادقی (خریدار محصول)

    استاد می شود بیشتر توضیح بدهید

  27. سید محمد صادقی (خریدار محصول)

    venv) C:\Users\sadeg\PycharmProjects\Raya User>python.exe C:\Users\sadeg\PycharmProjects\Raya User\venv\Scripts\garden install mapview
    C:\Users\sadeg\PycharmProjects\Raya User\venv\Scripts\python.exe: can’t find ‘__main__’ module in
    استاد در نصبgarden install mapview با ارور بالا برخورد می کنم

    • مصطفی آصفی

      سلام. از محل دکمه اجرای برنامه برید به تنظیمات اجرای فایل (Debug/Run Confuguration) و بعد مطمئن بشید که Script path رو به درستی برای فایل اصلی تنظیم کردید. ضمنا Python directory رو هم درست تنظیم کرده باشید.

  28. سید محمد صادقی (خریدار محصول)

    mod = __import__(package)
    File “”, line 983, in _find_and_load
    File “”, line 967, in _find_and_load_unlocked
    File “”, line 668, in _load_unlocked
    File “”, line 640, in _load_backward_compatible
    KeyError: ‘kivy.garden.mapview’
    چگونه این ارور را درست کنم و اگر می شود سوال قبلی من را هم پاسخ دهید

    • مصطفی آصفی

      سلام به شما. این خطا رو در بیلدوزر دریافت می‌کنید؟ در این صورت همون طور که در آموزش توضیح دادم باید در spec در بخش garden نام mapview رو اضافه کنید.

  29. علی

    سلام خسته نباشید
    ببخشید یک سوال داشتم!
    این دوره اموزش 0 تا 100 کیوی است ؟ یعنی اینکه من از کیوی هیچ چیزی بلد نیستم و ایا میتوانم با این اموزش کیوی را به خوبی یادبگیرم؟

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