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

Kivy  چیست؟

همانطور که میدانید زبان برنامه نویسی پایتون امروزه برای توسعه وب و هوش مصنوعی و … استفاده میشود. دلیل این قدرت برنامه نویسی پایتون را میتوان در انواع مختلف کتابخانه های این زبان جست و جو کرد. اگر بخواهیم به طور مستقیم با استفاده از برنامه نویسی به زبان پایتون و بدون استفاده از ماژول ها و کتابخانه ها برای اندروید برنامه نویسی کنیم، به دلیل عدم پشتیبانی اندروید از پایتون به در بسته خواهیم خورد و نتیجه ای را برای ما در بر نخواهد داشت. در اینجاست که کتابخانه ای به نام Kivy به کمک ما می آید. این کتابخانه یک کتابخانه متن باز است که با استفاده از آن میتوانیم برنامه نوشته شده توسط خود را به صورت یک فایل APK تبدیل کرده و بتوانیم از آن استفاده کنیم. البته لازم به گفتن است که با استفاده از کتابخانه Kivy علاوه بر اندروید میتوانیم برای دسکتاپ نیز برنامه های خود را بنویسیم و از طرفی به دلیل نحوه کار این کتابحانه برنامه نویسی ما سرعت بیشتری نیز بگیرد.

 

چرا Kivy را انتخاب کنیم؟

در این قسمت به توضیحی راجع به ویژگی های کتابخانه کیوی میپردازیم. فریمورک کیوی همانطور که در توضیحات بالا نیز به آن اشاره شد یک کتابخانه متن باز و همچنین رایگان است که این خود یکی از ویژگی های اصلی این فریمورک است. از طرفی ماژول Kivy در پایتون از قابلیت Multi touch ( ویکی  پدیا ) پشتیبانی میکند که یکی از قابلیت های مهم برای برنامه نویسی موبایل است و تقریباً همه نرم افزار های موبایل باید از آن استفاده کنند. اگر موارد بالا هنوز هم شما را به استفاده از کیوی مجاب نکرده است و هنوز به استفاده از این کتابخانه علاقه مند نشده اید باید ادامه این بخش را با دقت بخوانید. مواردی که در بالا گفته شد ویژگی های بسیار مهمی از کتابخانه Kivy بودند اما ویژگی های آن به همین قسمت ختم نمیشود. کتابخانه کیوی در پایتون دارای یک رابط گرافیکی است که در هنگام برنامه نویسی و به خصوص برنامه نویسی موبایل به شکل قابل توجهی به کمک شما می آید و به شما کمک میکند نتیجه کار خود را در لحظه مشاهده کنید و اما بزرگترین ویژگی Kivy که هر برنامه نویسی را به خود جلب میکند قابلیت کراس پلتفرم ( cross platform ) بودن این کتابخانه است. این قابلیت شاید بهترین قابلیت این کتابخانه باشد. شما با استفاده از قابلیت کراس پلتفرم کیوی میتوانید برای اندروید و IOS به کمک KivyIOS برنامه نویسی کنید. از طرفی این کتابخانه علاوه بر موارد گفته شده در بالا برای برنامه نویسی در دسکتاپ نیز به یاری شما شتافته و با استفاده از آن میتوانید برای لینوکس و ویندوز و مک برنامه نویسی کنید. این کتابخانه حتی raspberry Pi را نیز پشتیبانی میکند که این قابلیت نیز خود میتواند عده بسیار زیادی از افراد را به استفاده از Kivy علاقه مند کند.

 

کیوی چگونه کار میکند؟

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

$ python3 -m venv my_kivy_$ python3 -m venv my_kivy_projectproject

 

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

$ source $ source bin/activatebin/activate

 

حال باید pip را برای نصب کیوی اجرا کنیم که به واسطه کد زیر اجرا می شود. در ویندوز مراحل پیچیده تری وجود دارد اما با کد زیر میتوانید به راحتی میتوانید در مک و لینوکس pip را اجرا کنید.

$ python -m pip install kivy

 

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

from kivy.app import App
from kivy.uix.label import Label

class MainApp(App):
    def build(self):
        label = Label(text='Hello from Kivy',
                      size_hint=(.5, .5),
                      pos_hint={'center_x': .5, 'center_y': .5})

        return label

if __name__ == '__main__':
    app = MainApp()
    app.run()

اگر بخواهیم توضیحاتی راجع به کد بالا بدهیم باید گفت که ما برای ساخت این برنامه از یک ویجت استفاده کردیم. در تعریف ویجت باید گفت که ویجت ها کنترل هایی بر روی صفحه هستند که با کاربران تعامل دارند. یعنی به طور کلی هر نوع از رابط های گرافیکی که ما مشاهده می کنیم با دسته ای از ویجت ها همراه است. فریمورک Kivy در پایتون دارای تعداد بسیار زیادی از ویجت ها بوده که در درون فریمورک قرار دارند به طور کلی هر برنامه ای که با کیوی مینویسیم به یک زیرکلاس app و یک Override به شکل build() نیاز دارد. پس از انجام اینکار یک ویجت label ساخته و با استفاده از size hint و pos hint به ترتیب سایز متن و همچنین مکان متن برروی صفحه را مشخص میکنیم. استفاده از این دو برای ساخت برنامه اجباری نیست اما خب با استفاده از آن ها ظاهر بهتری را برای برنامه خود به ارمغان خواهید آورد. همچنین در Size_hint عدداول نشانگر طول و عدد دوم نشانگر ارتفاع متن انتخابی میباشد.

نتیجه کد زنی های ما برای برنامه بالا به شکل زیر به کاربر نمایش داده می شود.

چگونه در کیوی تصویر را نمایش دهیم؟

برای نمایش تصویر در کیوی تعداد زیادی از ویجت ها وجود دارد همچنین شما میتوانید به سادگی و با استفاده از image میتوانید تصاویر موجود در درون هارد خود را درون برنامه قرار دهید. از طرفی اگر دستور AsyncImage میتوانید تصاویر را به صورت یک URL وارد برنامه خود کنید.

from kivy.app import App
from kivy.uix.image import Image

class MainApp(App):
    def build(self):
        img = Image(source='/path/to/real_python.png',
                    size_hint=(1, .5),
                    pos_hint={'center_x':.5, 'center_y':.5})

        return img

if __name__ == '__main__':
    app = MainApp()
    app.run()

 

برنامه بالا نحوه قرار گیری یک تصویر را در برنامه شما با استفاده از کیوی و زبان برنامه نویسی پایتون نشان میدهد. در این قسمت ما کلاس image را از پکیج kivy.uix.image درون برنامه خود قرار دادیم که یکی از زیر پکیج های کیوی است. Image دارای تعداد بسیار زیادی از دستورات است که ما در اینجا از تابع source استفاده کردیم. این تابع در حقیقت محل عکس ما را برای نمایش در برنامه نشان داده و با استفاده از آن میتوانیم تصویر مورد نیاز خود را در درون برنامه قرار دهیم. ادامه کد کاملاً شبیه کد زده شده در قسمت قبلی بوده و تفاوت زیادی با آن ندارد. نتیجه برنامه بالا به مانند عکس زیر خواهد شد.

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