صفحه اصلی/ برنامه نویسی / برنامه نویسی Kivy
کیوی (Kivy) چیست؟
کیوی چیست و چه ویژگی هایی دارد و اصلاً چه دردی
می خورد؟ اگر برنامه نویسی اندروید با پایتون را مطالعه کرده حتما ببینید که کیوی یک
کتابخانه برای برنامه نویسی پایتون است که به ما امکان می دهد از زبان پایتون
استفاده کنید، اقدام به تولید و نوشتن اپلیکیشن های اندروید کنید. در ادامه به صورت
کامل جواب سوال کیوی چیست را می توان تا شما با این کتابخانه دوست داشتنی بیشتر
آشنا شوید. قبل از اینکه در مورد کیوی صحبت کنیم و بخواهیم جواب کیوی چیست را بدهیم،
توضیحی کوتاه در مورد زبان برنامه نویسی پایتون می دهیم. احتمالا شما آن را به
خوبی می شناسید اما زبانی خالی از لطف نیست. پایتون
زیان برنامه نویسی سطح بالاست که در توسعه وب،
توسعه اپلیکیشن ها، تولید GUI
های دسکتاپ، توسعه نرم افزارهای کاربردی و آنالیزهای عددی و علمی بسیار مورد
استفاده زبان می گیرد.
پایتون یکی از زبان های برنامه نویسی است که
بسیار در دانشگاه های معتبر تدریس می شود و در چارت درسی از دانشگاه های بزرگ دنیا
دیده می شود. دلیل شهرت و محبوبیت این زبان برنامه نویسی کاربردی بودن آن است زیرا
این زبان برای طراحی نرم افزارها مناسب است.
نکته مهم: زبان برنامه نویسی پایتون علاوه بر این که بوده و راحت
است، از خوانایی بسیار عالی است.
توجه: پایتون زبان برنامه نویسی قوی و سطح بالاست. برای مثال
اگر می توانید به قدرت و کاربردی بودن این زبان پی ببرید کافیست بدانید که Netflix،
Uber، Pinterest، Drobox
و... با استفاده از زبان برنامه نویسی پایتون نوشته شده است.
در حالت عادی اندروید از برنامهنویسی بومی
پایتون پشتیبانی نمیکند اما شما میتوانید با استفاده از ابزارهای موجود، برنامههایی
در این زبان بنویسید و بعد از آن به APK
تبدیل
میشوند که به با موفقیت بر روی دستگاههای اندروید قابل اجرا هستند.
در بالا گفتیم ابزاری وجود دارد که به ما
کمک کند برنامه با زبان پایتون بنویسیم و آن را به APK
تبدیل
کنیم. Kivy
یکی
از محبوبترین و قویترین راه حلها برای این کار است. نه تنها این برنامه به صورت
متنباز است، نه تنها برنامهای از ویندوز، مک، لینوکس و iOS،
جدای از اندروید، پشتیبانی میکند، بلکه به گونهای طراحی میشود که شما را به
برنامه نویسی سریع ترغیب کند. شما میتوانید از آن به عنوان ابزاری برای نمونهسازی
استفاده کنید و این کار را با چند خط کد انجام دهید.
کیوی کتابخانه متن باز پایتون برای توسعه
اپلیکیشنهای سریع است که از کاربردهای نوآورانه مانند اپلیکیشنهای چمد لمسی
استفاده میکند.
کتابخانه کیوی به شما امکان می دهد از پایتون
برای ایجاد اپلیکیشن برای دستگاه های تلفن همراه و دسکتاپ استفاده کنید. کیوی کد
شما را دریافت کرده و اپلیکیشن ها را از منطق شما ایجاد می کند. سپس، در هر برنامه
پایتون می توانید APK
را
نصب کنید.
کیوی در کنار پایتون فریمورک اصلی ارائه شده
توسط بنیاد کیوی برای اندروید، iOS
و کتابخانههای بسیار دیگری است که برای استفاده از کراس پلتفورم ساخته شدند. در
سال ۲۰۱۲ میلادی، کیوی ۵۰۰۰ دلار از بنیاد پایتون برای انتقال به نسخه ۳ پایتون دریافت
کرد.
نکته مهم: کیوی همچنین از رزبری پای (Raspberry pi) پشتیبانی میکند. رزبری پای بسیار کوچک و
ارزان با قابلیت های کامپیوترهای واقعی است که می توان از آن در سیستم های روباتیک،
اتوماسیون، اینترنت اشیاء و… استفاده کرد. کاربردهای پژوهشی و علمی این کامپیوتر در
مجله تخصصی که وابسته به بنیاد رزبری پای است به صورت ماهیانه مطرح میشود.
کتابخانه کیوی شامل تمام امکانات برای ساخت این
گونه نرم افزارها است:
تصویر زیر خروجی کیوی است که کلمه Hello World را نشان می دهد .
ویژگی های شاخص کتابخانه کیوی پایتون
کراس پلتفرم
کیوی در لینوکس، ویندوز، اندروید، IOS
و OS X
قابل اجرا است. شما می توانید همان کد اصلی را در تمام پلت فرم های پشتیبانی شده
اجرا کنید. این فریم ورک می تواند از بیشترین ورودی ها، پروتکل ها و دستگاه ها از
جمله WM-touch
و WM-Pen و Mtdev
استفاده
کند. همچنین در این فریم ورک، شبیه ساز ماوس چند لمسی گنجانده شده است.
کسب و کار دوستانه
فریم ورک یا بهتر است بگویم کتابخانه کیوی
صد در صد رایگان است. این ابزار به عنوان حرفه ای توسعه یافته، حمایت شده و مورد
استفاده قرار می گیرد و شما می توانید آن را در یک محصول تجاری استفاده کنید. این
فریم ورک پایدار و دارای یک API
مستند
و همچنین یک راهنمای برنامه نویسی برای کمک به شما در شروع کار است.
GPU شتاب گرفته
موتور گرافیکی بر روی OpenGL ES 2 ساخته شده و با استفاده از یک خط لوله مدرن
و سریع کار می کند. این ابزار با بیش از بیست ویجت همراه می باشد که همه آن موارد
بسیار قابل گسترش هستند. بسیاری از قطعات در C
با استفاده از Cython
نوشته
شده اند و با تست های رگرسیون آزمایش شده اند.
زبان Kv
زبان کی وی (Kv)
زبانی مرتبط با محیط کاربری است. مانند کیو ام
ال، به راحتی میتوان تمام ابزار ها را در آن ایجاد کرد. برای مثال، برای ساختن
یک پنجره که شامل یک مرورگر فایل و کلید لغو/تاید باشد، میتوان ابزار اصلی را در
پایتون ساخت و محیط کاربری در Kv
برنامهنویسی انجام داد.
· سازنده (Buildozer): بسته بندی عمومی پایتون برای اندروید و IOS
· پلیر (Plyer): بسته بندی پایتون مستقل از پلت فرم برای API
های وابسته به پلت فرم
· پایجنیوس (Pyjnius): دسترسی پویا به API
های
جاوا یا اندروید از طریق پایتون
· پایوبیوس (pyobjus): دسترسی پویا به API
های
Objective-C یا IOS
از
طریق پایتون
· Python-for-android: toolchain برای ساخت و بسته بندی برنامه های پایتون
برای اندروید
· Kivy آی او اس: toolchain
برای
ساخت و بسته بندی برنامه های کیوی برای IOS
· کتابخانه Audiostream: برای دسترسی مستقیم به میکروفون و بلندگو
· Kivy Designer: طراحی UI
برای
کیوی
· KivEnt: موتور بازی سازی بنا بر بنیاد برای کیوی
· garden: ایجاد و نگهداری ویجت ها و کتابخانه ها توسط
کاربر
· Kivy-sdk-package: اسکریپت برای نسل Kivy SDK در ویندوز، OS X
و لینوکس
· Kivy-remote-shell: برنامه پوسته پوستی SSH+Python از راه دور
پیش نیازهای توسعه اپلیکیشن با کیوی
اگر به فکر توسعه اپلیکیشن اندروید یا ios
با
استفاده از Kivy
هستید،
بهتر است که برنامه نویسی پایتون را بشناسید. البته لازم نیست ابتدا یک متخصص پایتون
تبدیل شوید و بعد از سمت کیوی ببینید. اما سعی کنید در مورد فایل های docs
و API
اطلاعات
و آشنایی با الگوهای MVC
کسب
کنید.
همچنین باید برخی از API
ها را که Kivy
پوشش
نمی دهد، مانند GPS
یا
نوتیفیکیشن ها را یاد بگیرید. با رایج ترین دستگاه ها با هر سیستم عاملی و نحوه اجرای شبیه سازها تا حدودی آشنایی
داشته باشید.
فصل اول: نصب Kivy روی ویندوز
– بررسی
وجود python روی سیستم
– بررسی
وجود pip روی سیستم
– نصب/روزآمدی pip و
virtualenv
– نصب کتابخانههای پیشنیاز kivy
– نصب
kivy و
نمونه مثالهای آن
– اجرای
یگی مثالهای خودآموز kivy
فصل دوم: نصب Kivy روی لینوکس
– آماده
سازی محیط و نگارش مورد نظر لینوکس
– شیوه
نصب با Anaconda و دستور
cond
– شیوه نصب با Software Packages
– شیوه نصب دستی با نصب کتایخانههای پیش نیاز
– نصب
کتابخانههای SDL و دیگر پیشنیازها
– نصب
دستی pip و سپس
cython و kivy
– دریافت مثالهای کیوی از گیت هاب آن
– اجرای
نمونه مثال بازی پینگ پنگ در بخش راهنمای کیوی
فصل سوم: ایجاد
اولین اپلیکیشن با کیوی
– استفاده
از Text Editor برای کدنویسی از پایه
– ایجاد
اولین فایل و آزمون شناخت ماژول
kivy
– آشنایی با کلاس App و
Label
– آشنایی با متد run و
build
– آشنایی با مفهوم __name__ و
__main__ در
پایتون
– اجرای
نخستین پروژه و بررسی صفحه
فصل چهارم: کار با Layout و Widget در کیوی
– مفهوم
لیوت (Layout) و ویجت
(Widget)
– آشنایی با GridLayout در کیوی
(Kivy)
– ایجاد یک کلاس اختصاصی MyGrid به عنوان لیوت
– کار
با TextInput برای دریافت ورودی از کاربر
– ماهیگیری
به جای ماهی: آشنایی با مستندات
API کیوی
– تعریف
تمرین برای گسترش مهارت
فصل پنجم: کار با
دکمه و رویداد کلیک در Kivy
– افزودن
دکمه (Button) به پروژه
– تعریف
تابع (callback) کلیک دکمه
– مقید
کردن (bind) دکمه به تابع بازگشتی کلیک
– آشنایی
با BoxLayout و وزن دهی به ویجتها
– آشنایی
با ویژگیهای font_size و
size_hint
– آشنایی با ویژگیهای spacing و
padding
فصل ششم: طراحی UI کیوی با Kivy Design Language
– مفهوم Separation of Concerns
– توجیه وجود پارادایمهای mvc، mvp و mvvm
– آشنایی با زبان طراحی کیوی (Kivy Design Language)
– جداسازی
UI و
منطق در یک پروزه نمونه کیوی
فصل هفتم: کار با
پراپرتی (Property) در کیوی
– معرفی
کلاس Property و مشتقات آن در مرجع کیوی
– نگاهی
به الگوی مشاهده کننده (Observer Pattern) در
OOP
– تعریف
Property در
کلاس و بخش طراحی
– مقید (bind) کردن
InputText ها
به پراپرتیهای کلاس
– تعریف
تابع کلیک دکمه (on_press) برای نمایش پراپرتی
فصل هشتم: کار با FloatLayout و Class Rule در کیوی
– افزودن
کلاس FloatLayout به پروژه کیوی
– تعریف FloatLayout در فایل استایل
(.kv)
– تنظیم قاعده استایل (Class Rule) برای دکمههای فرزند
– تنظیم
رنگ متن و پس زمینه دکمهها در فایل استایل
– آشنایی
کوتاه با RGBA و نحوه تنظیم رنگ بر اساس آن در کیوی
– تنظیم
ویژگی متن دکمه به صورت پویا بر اساس وضعیت
(State)
فصل نهم: پاسخ به رویداد Touch در Kivy
– معنی
پارادایم Even-based در برنامه نویسی
– بررسی
مستندات وبسایت kivy.org در مورد رویدادها
(Events)
– توابع
on_touch_down و on_touch_up و
on_touch_move
– دریافت مختصات نسبی و مطلق محل کلیک یا لمس
کاربر
– کار
با ویجتها با ترکیب ویژگیهای
Property و
توابع Event
– تغییر رنگ پس زمینه دکمه بر اساس رویداد
ورودی کاربر در صفحه
فصل دهم: ایجاد یک
اپلیکیشن نقاشی ساده با Kivy
– آشنایی
با ویژگی Canvas در
Widget های
کیوی
– آشنایی
با کلاس Rectangle و ایجاد یک مستطیل
– آشنایی
با کلاس Color و تعریف رنگ با پروتکل RGB
– آشنایی با کلاس Ellipse و ایجاد بیضی و دایره
– تعریف
اشیای گرافیکی در متد __init__
– تعریف پویای اشیای گرافیکی در متدهای Touch
– تعریف تصادفی رنگ با تابع random
فصل یازدهم: آشنایی
با Screen Manager و حرکت بین صفحههای اپلیکیشن
– بررسی Screen و
Screen Manager در
مرجع کیوی
– تعریف
یک اپلیکیشن چند صفحهای
– آشنایی
با کلاس Builder در کیوی
– طراحی
صفحه های اپلیکیشن در فایل
kv.
– تعریف کلاسهای مدیریت صفحهها
– تعریف
رویداد کلیک دکمه برای حرکت بین صفحهها
فصل دوازدهم:
بازطراحی اپلیکیشن نقاشی با Clear و صفحه About
– تعریف
ساختار پروزه و صفحههای آن
– بررسی
اهداف پروژه در آموزش کیوی
– طراحی
کلاس پایتون مرکزی پروژه
– طراحی
فایل استایل و تعریف صفحهها در آن
– طراحی
صفحه درباره اپلیکیشن
– جداسازی canvas و نوار ابزار در صفحه اصلی
– تعریف
عملکرد برای دکمه About
– تعریف عملکرد دکمه Clear برای پاک کردن صفحه
– تجمیع
آموختههای قبلی در قالب یک ساختار
فصل سیزدهم: تولید
فایل exe از پروژه کیوی برای نصب در ویندوز
– معرفی
و نصب کتابخانه pyInstaller
– بررسی مراحل استخراج فایل exe از فایل های پایتون
– ایجاد
فایل مشخصات (spec) به کمک
pyInstaller
– ویرایش فایل spec ویژه پروژههای
kivy
– استخراج فایل exe مرتبط با کتابخانههای همراه در dist
– روش باندل تمام پروژه کیوی در قالب یک فایل exe
– تعریف پروژه تمرینی برای مهارت آموزی فراگیر
فصل چهاردهم: تبدیل
پروژه Kivy به پروژه اندروید و تولید APK
– اشنایی
با Buildozer و کاربرد آن
– آشنایی
با Python for Android
– آشنایی با اپلیکیشن Kivy Launcher
– نصب کتابخانههای پیش نیاز Buildozer
– نصب
Buildozer با
دریافت نسخه آخر از گیت هاب
– اجرای
دستور buildozer init و بررسی فایل
buildozer.spec
– تنظیمات فایل spec مانند نام اپ، نسخه
API و …
– اجرای دستور buildozer debug برای تولید پروژه اندروید و APK
– بررسی چالشها و مزیتهای استفاده از Buildozer
فصل پانزدهم: اجرای
پروژه Kivy روی گوشی اندرویدی و تولید APK امضا شده
– اشنایی
با Buildozer و کاربرد آن
– آشنایی
با Python for Android
– آشنایی با اپلیکیشن Kivy Launcher
– نصب کتابخانههای پیش نیاز Buildozer
– نصب
Buildozer با
دریافت نسخه آخر از گیت هاب
– اجرای
دستور buildozer init و بررسی فایل
buildozer.spec
– تنظیمات فایل spec مانند نام اپ، نسخه
API و …
– اجرای دستور buildozer debug برای تولید پروژه اندروید و APK
– بررسی چالشها و مزیتهای استفاده از Buildozer
فصل شانزدهم: معرفی
منابع یادگیری و ایدههای جذاب توسعه کیوی
– بررسی
منابع مطالعاتی در بخش Help کیوی
– بررسی
منابع دریافت راهنمایی آنلاین از تیم توسعه کیوی
– معرفی
پروژه ها و پلتفرمهای جذاب توسعه کیوی
– ارزیابی
کیفیت توسعه چندسکویی Kivy و استفاده بهینه