پایتون برای اندروید — راهنمای کاربردی



تعداد بازدید ها:
0

در این مطلب، با مبحث برنامه‌نویسی پایتون برای اندروید آشنا خواهید شد. زبان جاوا، زبان رسمی توسعه برنامه‌های کاربردی در اندروید محسوب و توسط «اندروید استودیو» (Android Studio) پشتیبانی می‌شود. با این حال، فرایند یادگیری جاوا برای برنامه‌نویسی در اندروید تا حدودی سخت و وقت‌گیر است.

در سال‌های اخیر زبان دیگری به نام «کاتلین» (Kotlin) برای برنامه‌نویسی در اندروید معرفی شده است که از جهات زیادی به جاوا شباهت دارد و مبتنی بر آن توسعه داده شده است. هم اکنون، کاتلین به عنوان دومین زبان رسمی برای توسعه برنامه‌های اندرویدی محسوب می‌شود. ویژگی مهم کاتلین که در نقطه مقابل جاوا قرار دارد، «پرگویی» (verbose) کمتر، آسانی یادگیری، فرایند کدنویسی کوتاه‌تر و خوانایی بالاتر کدهای آن (نسبت به جاوا) است.

با این حال، در چند سال اخیر ابزارهای دیگری برای برنامه‌نویسی اندروید، در دیگر زبان‌های برنامه‌نویسی نیز ارائه شده است. هدف از ارائه این مطلب، آشناسازی خوانندگان و مخاطبان با مبحث استفاده از پایتون برای اندروید و توسعه برنامه‌های کاربردی توسط این زبان برنامه‌نویسی است. به طور ویژه، در این مطلب گام‌های لازم جهت توسعه یک برنامه کاربردی ساده برای سیستم عامل اندروید با استفاده از «زبان برنامه‌نویسی پایتون» (Python Programming Language) آموزش داده می‌شود.

پایتون برای اندروید

پیش از اینکه قادر به استفاده از کتابخانه Kivy در زبان پایتون، جهت توسعه برنامه‌های کاربردی اندرویدی باشید، لازم است تا ابتدا زبان پایتون را روی سیستم عامل مقصد خود نصب کنید. کاربران و مخاطبان این مطلب می‌توانند آموزش جامع نصب پایتون در سیستم‌های عامل مختلف را در اینجا مطالعه کنند. همچنین، مجموعه‌ای از آموزش‌های مرتبط با یادگیری پایتون و نصب نسخه 2 و 3 پایتون در سیستم‌های عامل ویندوز، لینوکس و مک نیز در اینجا گردآوری شده است.

جهت استفاده از زبان پایتون برای اندروید و توسعه برنامه‌های کاربردی در این سیستم عامل محبوب، از یک کتابخانه برنامه‌نویسی در زبان پایتون به نام Kivy استفاده می‌شود. کتابخانه Kivy، یک «ابزار و پلتفرم چندسکویی» (Cross-Platform Framework) در زبان پایتون برای اندروید و توسعه نرم‌افزارهای کاربردی در آن محسوب می‌شود. همچنین در این آموزش، از سیستم‌عامل لینوکس و توزیع Ubuntu جهت برنامه‌نویسی پایتون برای اندروید استفاده می‌شود.

پیش از آنکه قادر به نصب، اجرا و استفاده از Kivy جهت توسعه برنامه‌های کاربردی در اندروید باشیم، لازم است تا «وابستگی‌های برنامه‌نویسی» (Programming Dependencies) این ابزار کاربردی نصب و آماده شوند. شایان ذکر است که بیشتر زمان شما، صرف آماده‌سازی محیط kivy و نصب کتابخانه‌های لازم برای اطمینان از اجرای صحیح آن در تولید برنامه‌های اندرویدی می‌شود.

اگر چه نصب و آماده‌سازی بسته‌ها و وابستگی‌های برنامه‌نویسی Kivy ممکن است زمان‌گیر باشد، با این حال وجود آن‌ها جهت استفاده از پایتون برای اندروید و توسعه برنامه‌های کاربردی اندرویدی ضروری است. همچنین، برای جلوگیری از ایجاد خطاهای ناشی از تناقضات نسخه‌های مختلف بسته‌های برنامه‌نویسی با یکدیگر، کتابخانه Kivy در یک «محیط مجازی» (Virtual Environment) نصب خواهد شد.

پایتون برای اندروید

پایتون برای اندروید: تولید برنامه‌های اندرویدی با استفاده از Kivy

در این مطلب و برای آموزش پایتون برای اندروید و توسعه برنامه‌های کاربردی در این سیستم عامل، از توزیع Ubuntu سیستم عامل لینوکس استفاده شده است. همچنین، نسخه 3.6.5 زبان برنامه‌نویسی پایتون جهت اجرای Kivy و تولید برنامه‌های اندرویدی مورد استفاده قرار می‌گیرد. البته، از نسخه‌های به‌روزتر زبان پایتون نیز می‌توان برای اجرای Kivy استفاده کرد (تا زمان نگارش این مطلب، به‌روزترین نسخه زبان برنامه‌نویسی پایتون، نسخه 3.7.4 است). با این حال، تفاوت‌های اندکی در کدهای نوشته شده برای اجرای Kivy در نسخه‌های مختلف پایتون وجود دارد.

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

مطلب آموزش پایتون برای اندروید و چگونگی توسعه برنامه‌های اندرویدی در پایتون، به بخش‌های زیر تقسیم‌بندی می‌شود:

  • در بخش اول، مقدمه‌ای از کتابخانه kivy در زبان پایتون ارائه خواهد شد.
  • در بخش دوم، نصب وابستگی‌های برنامه‌نویسی لازم برای اجرای Kivy آموزش داده می‌شود.
  • در بخش سوم، ساختن محیط مجازی برای نصب کتابخانه Kivy آموزش داده خواهد شد.
  • در بخش چهارم، آموزش نصب کتابخانه Cython در زبان پایتون ارائه می‌شود.
  • در بخش پنجم، چگونگی نصب کتابخانه Kivy در پایتون نمایش داده می‌شود.
  • در بخش ششم، کتابخانه kivy در زبان برنامه‌نویسی پایتون import می‌شود تا برای ساخت برنامه‌های کاربردی اندرویدی مورد استفاده قرار بگیرد.
  • در بخش هفتم، یک برنامه کاربردی ساده، با استفاده از Kivy در زبان پایتون ساخته می‌شود تا در مراحل بعد، نسخه اندرویدی آن توسط کتابخانه‌های kivy و Buildozer تولید شود.
  • در بخش هشتم، نصب کتابخانه Buildozer در زبان پایتون ارائه می‌شود.
  • در بخش نهم، فایل تنظیمات کتابخانه Buildozer برای تولید برنامه‌های اندرویدی ساخته می‌شود.
  • در بخش دهم، برنامه کاربردی تولید شده، توسط کتابخانه Buildozer به نسخه اندرویدی آن تبدیل می‌شود.

بنابراین، جهت استفاده از پایتون برای اندروید و توسعه برنامه‌های اندرویدی، علاوه بر کتابخانه kivy، نصب و آماده‌سازی کتابخانه‌های دیگری نظیر Buildozer و Cython ضروری است.

پایتون برای اندروید: مقدمه

کتابخانه kivy برای تولید «واسط‌های کاربری» (User Interfaces) در پایتون مورد استفاده قرار می‌گیرد. برتری مهم kivy نسبت به دیگر کتابخانه‌های مشابه در پایتون، «انتزاعی» (Abstraction) و «پیمانه‌ای» (Modularity) بودن آن است. این کتابخانه، به برنامه‌نویس و توسعه‌دهندگان برنامه‌های کاربردی اجازه می‌دهد تا بدون درگیر شدن با جزئیات پیچیده و غیر ضروری، واسط کاربری طبیعی و کاربر پسند برای برنامه‌های کاربردی پایتون طراحی کنند.

به عبارت دیگر، کتابخانه Kivy یک «واسط برنامه کاربردی» (Application Programming Interface) برای انجام وظایف و کارهای پیچیده در اختیار کاربران، برنامه‌نویسان و توسعه‌دهندگان برنامه‌های کاربردی قرار می‌دهد. بنابراین، کتابخانه kivy یک ابزار انتزاعی برای برنامه‌نویسان و توسعه‌دهندگان برنامه‌های کاربردی در پایتون فراهم می‌کند. در مرحله بعد و برای تولید واسط کاربری گرافیکی توسط کتابخانه kivy، برنامه‌نویسان و توسعه دهندگان باید مشخص کنند که کتابخانه kivy باید از کدام کتابخانه backend برای انجام کارهای خود استفاده کند.

در این مطلب، جهت استفاده از پایتون برای اندروید و توسعه برنامه‌های اندرویدی، از یک کتابخانه چندسکویی (Cross-Platform) به نام SDL یا Simple DirectMedia Layer، به عنوان کتابخانه backend برای kivy استفاده می‌شود. مزیت مهم کتابخانه SDL، ایجاد «دسترسی سطح پایین» (low Level Access) به سخت‌افزارهای گرافیکی از طریق OpenGL است. همچنین، در کنار کتابخانه SDL، از کتابخانه‌های دیگری نظیر GStreamer جهت مدیریت صدا و تصویر استفاده می‌شود. از آنجایی که چنین کتابخانه‌هایی توسط زبان برنامه‌نویسی C نوشته شده‌اند، نصب کتابخانه Cython ضروری است.

پایتون برای اندروید: نصب وابستگی‌های برنامه‌نویسی کتابخانه kivy

با توجه به دستورالعمل‌های ارائه شده جهت نصب kivy در توزیع Ubuntu سیستم عامل لینوکس [+]، کتابخانه‌های زیر باید نصب شوند تا بتوان از kivy و کتابخانه‌های دیگر نظیر GStreamer و SDL2 برای توسعه یک واسط کاربری در زبان پایتون استفاده کرد.


شایان توجه است که این امکان برای برنامه‌نویسان فراهم شده است تا نسخه پایتون مورد نظر خود را برای کدنویسی با استفاده از kivy انتخاب کنند؛ کاربران و برنامه‌نویسانی که تمایل به استفاده از نسخه 3 پایتون دارند، می‌توانند از دستورات python-dev و python و آن دسته از برنامه‌نویسانی که تمایل به استفاده از نسخه 2 پایتون دارند، می‌توانند از دستورات python3-dev و python3 استفاده کنند. همچنین در مراحل بعدی، کتابخانه Pip برای آماده‌سازی محیط مجازی مورد نیاز برای نصب Kivy نصب می‌شود.

پایتون برای اندروید: تولید محیط مجازی برای نصب کتابخانه kivy

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

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


خروجی:

Collecting pip
Downloading https://files.pythonhosted.org/packages/30/db/9e38760b32e3e7f40cce46dd5fb107b8c73840df38f0046d8e6514e675a1/pip-19.2.3-py2.py3-none-any.whl (1.4MB)
100% |UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU| 1.4MB 499kB/s
Collecting virtualenv
Downloading https://files.pythonhosted.org/packages/8b/12/8d4f45b8962b03ac9efefe5ed5053f6b29334d83e438b4fe379d21c0cb8e/virtualenv-16.7.5-py2.py3-none-any.whl (3.3MB)
100% |UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU| 3.3MB 747kB/s
Collecting setuptools
Downloading https://files.pythonhosted.org/packages/b2/86/095d2f7829badc207c893dd4ac767e871f6cd547145df797ea26baea4e2e/setuptools-41.2.0-py2.py3-none-any.whl (576kB)
100% |UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU| 583kB 1.9MB/s
Installing collected packages: pip, virtualenv, setuptools
Found existing installation: pip 18.1
Uninstalling pip-18.1:
Successfully uninstalled pip-18.1

Collecting virtualenv
Using cached https://files.pythonhosted.org/packages/8b/12/8d4f45b8962b03ac9efefe5ed5053f6b29334d83e438b4fe379d21c0cb8e/virtualenv-16.7.5-py2.py3-none-any.whl
Collecting setuptools
Using cached https://files.pythonhosted.org/packages/b2/86/095d2f7829badc207c893dd4ac767e871f6cd547145df797ea26baea4e2e/setuptools-41.2.0-py2.py3-none-any.whl
Installing collected packages: virtualenv, setuptools
Found existing installation: setuptools 40.6.2
Uninstalling setuptools-40.6.2:
Successfully uninstalled setuptools-40.6.2
Successfully installed setuptools-41.2.0 virtualenv-16.7.5

از کتابخانه virtualenv برای ساختن محیط مجازی و از کتابخانه setuptools، برای «بسته‌ای سازی» (Packaging) پروژه‌های نرم‌افزاری در زبان برنامه‌نویسی پایتون استفاده می‌شود. پس از نصب یا به‌روزرسانی کتابخانه‌های virtualenv و setuptools، سیستم برای ساختن محیط مجازی آماده می‎‌شود. از دستور زیر، جهت ساختن یک محیط مجازی به نام mykivyinstall استفاده می‌شود.


در این دستور، از آرگومان no-site-packages– برای ایزوله کردن محیط مجازی ساخته شده، از محیط برنامه‌نویسی اصلی زبان پایتون استفاده می‌شود. با چنین کاری، برنامه‌نویسان و توسعه‌دهندگان پایتون قادر خواهند تا بدون اختلال در دیگر پروژه‌های نرم‌افزاری، آزادانه روی پروژه خود کار کنند.

پس از اجرای دستور بالا، مانند شکل زیر، پوشه‌ای به نام mykivyinstall (متناظر با نام محیط مجازی تولید شده) در دایرکتوری فعلی (یا پیش‌فرض) سیستم عامل لینوکس (توزیع Ubuntu) ایجاد می‌شود.

پایتون برای اندروید

دستور قبلی، از مفسر پیش‌فرض پایتون برای اجرای کدها در محیط مجازی استفاده می‌کند. مشکل اساسی در چنین حالتی این است که ممکن است برنامه‌نویس به دنبال استفاده از نسخه 3 پایتون برای پروژه‌نرم‌افزاری خود باشد، در حالی که نسخه 2 پایتون، به عنوان نسخه پیش‌فرض پایتون در سیستم عامل تعریف شده است. در چنین حالتی، با استفاده از گزینه p- و به شکل زیر، برای سیستم مشخص می‌کنیم که باید کدام یک از نسخه‌های نصب شده از پایتون، به عنوان مفسر اصلی جهت اجرای کدهای پایتون در محیط مجازی مورد استفاده قرار بگیرد.


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


از «نقطه» (dot | .) در دستور قبلی استفاده شده است. دستور نقطه (dot | .)، یک دستور داخلی و تعبیه شده است که محتویات پاس داده شده به عنوان آرگومان را، در سیستم عامل Ubuntu اجرا می‌کند. دستور نقطه (.)، مترادف دستور source است. در نتیجه، دستور قبلی کاملا مشابه دستور زیر است:


پس از اجرای این دستور و فعال‌سازی محیط مجازی، پنجره command prompt یا همان ترمینال به این شکل تغییر می‌کند:


پایتون برای اندروید: نصب کتابخانه Cython

پیش از نصب کتابخانه kivy، لازم است تا کتابخانه Cython با استفاده از دستور زیر در محیط مجازی نصب شود. از آنجایی که کتابخانه‌های GStreamer و SDL2 توسط زبان برنامه‌نویسی C نوشته شده‌اند، نصب کتابخانه Cython ضروری است.


خروجی:

Collecting cython==0.25.2
Downloading https://files.pythonhosted.org/packages/e2/da/0bb5a20302b99639417ea0450578de734971ee4457ccff77cf6263f7d7d0/Cython-0.25.2-cp27-none-win_amd64.whl (2.1MB)
100% |UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU| 2.1MB 1.5MB/s
Installing collected packages: cython
Successfully installed cython-0.25.2

شایان توجه است که نصب یک نسخه خاص از کتابخانه kivy، به نسخه نصب شده از کتابخانه Cython بستگی دارد. از آنجایی که به‌روزترین نسخه کتابخانه kivy، نسخه 1.11.1 است و این نسخه از kivy برای اجرا، به نسخه 0.25.2 از کتابخانه Cython احتیاج دارد، در دستور بالا نیز cython=0.25.2 توسط Pip نصب می‌شود.

پایتون برای اندروید: نصب کتابخانه kivy

برای نصب کتابخانه kivy در محیط مجازی، از خط دستور زیر استفاده می‌شود:


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

Collecting kivy
Downloading https://files.pythonhosted.org/packages/2b/a5/0c9b7e8d7970fcde223772487872aee499b56684da87e8fbf9b21fce7828/Kivy-1.11.1-cp27-cp27m-win_amd64.whl (4.3MB)
100% |UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU| 4.3MB 1.5MB/s
Collecting Kivy-Garden>=0.1.4 (from kivy)
Downloading https://files.pythonhosted.org/packages/7d/68/decaee596ff8168a39432eb3949fc7c0be952ebb9467806823bffc165d48/kivy-garden-0.1.4.tar.gz
Collecting pygments (from kivy)
Using cached https://files.pythonhosted.org/packages/5c/73/1dfa428150e3ccb0fa3e68db406e5be48698f2a979ccbcec795f28f44048/Pygments-2.4.2-py2.py3-none-any.whl
Collecting docutils (from kivy)
Downloading https://files.pythonhosted.org/packages/3a/dc/bf2b15d1fa15a6f7a9e77a61b74ecbbae7258558fcda8ffc9a6638a6b327/docutils-0.15.2-py2-none-any.whl (548kB)
100% |UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU| 552kB 1.4MB/s
Collecting requests (from Kivy-Garden>=0.1.4->kivy)
Downloading https://files.pythonhosted.org/packages/51/bd/23c926cd341ea6b7dd0b2a00aba99ae0f828be89d72b2190f27c11d4b7fb/requests-2.22.0-py2.py3-none-any.whl (57kB)
100% |UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU| 61kB 1.7MB/s
Collecting certifi>=2017.4.17 (from requests->Kivy-Garden>=0.1.4->kivy)
Downloading https://files.pythonhosted.org/packages/69/1b/b853c7a9d4f6a6d00749e94eb6f3a041e342a885b87340b79c1ef73e3a78/certifi-2019.6.16-py2.py3-none-any.whl (157kB)
100% |UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU| 163kB 1.9MB/s
Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 (from requests->Kivy-Garden>=0.1.4->kivy)
Downloading https://files.pythonhosted.org/packages/e6/60/247f23a7121ae632d62811ba7f273d0e58972d75e58a94d329d51550a47d/urllib3-1.25.3-py2.py3-none-any.whl (150kB)
100% |UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU| 153kB 2.0MB/s
Collecting idna<2.9,>=2.5 (from requests->Kivy-Garden>=0.1.4->kivy)
Downloading https://files.pythonhosted.org/packages/14/2c/cd551d81dbe15200be1cf41cd03869a46fe7226e7450af7a6545bfc474c9/idna-2.8-py2.py3-none-any.whl (58kB)
100% |UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU| 61kB 1.0MB/s
Collecting chardet<3.1.0,>=3.0.2 (from requests->Kivy-Garden>=0.1.4->kivy)
Downloading https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl (133kB)
100% |UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU| 143kB 2.0MB/s
Installing collected packages: certifi, urllib3, idna, chardet, requests, Kivy-Garden, pygments, docutils, kivy
Running setup.py install for Kivy-Garden ... done
Successfully installed Kivy-Garden-0.1.4 certifi-2019.6.16 chardet-3.0.4 docutils-0.15.2 idna-2.8 kivy-1.11.1 pygments-2.4.2 requests-2.22.0 urllib3-1.25.3

نکته شایان توجه در مورد استفاده از پایتون برای اندروید و توسعه برنامه‌های اندرویدی، چالش‌برانگیز بودن نصب کتابخانه kivy در محیط‌های مجازی است. زیرا، نصب شدن موفقیت آمیز بسیاری از وابستگی‌های برنامه‌نویسی لازم برای درست کار کردن این کتابخانه، به سیستم عامل نصب شده روی سیستم، مشخصات سیستم، کتابخانه‌های از پیش نصب شده در سیستم و حتی کتابخانه‌های از قلم افتاده بستگی دارد. از یک سو، فرایند نصب کتابخانه kivy و وابستگی‌های آن واضح و سر راست نیست و از سوی دیگر، راه حل مناسب و یکسانی نیز برای رفع خطاهای احتمالی در هنگام نصب آن‌ها ارائه نشده است. به عنوان نمونه، راه دیگر نصب کردن کتابخانه kivy، استفاده از فایل با فرمت wheel و یا «کلون» (Clone) کردن پروژه Github متناظر با این کتابخانه، از طریق خط دستوری زیر است:


پایتون برای اندروید: ایمپورت کردن کتابخانه kivy

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

پایتون برای اندروید

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

پایتون برای اندروید: ساختن یک برنامه کاربردی اندرویدی توسط kivy

برنامه‌های ساخته شده توسط kivy، یک فایل نوشته شده به زبان پایتون هستند که قالب کدهای کتابخانه kivy را در خود جای داده‌اند. فایل پایتون استفاده شده برای ساختن برنامه کاربردی، فایل main.py نام دارد. دلیل نام‌گذاری فایل پایتون به این شکل این است که هنگام ساختن برنامه کاربردی برای دستگاه‌ها وگوشی‌های همراه، حتما باید فایلی به نام main.py وجود داشته باشد تا به عنوان نقطه شروع برنامه و جهت اجرای برنامه کاربردی مورد استفاده قرار بگیرد. برنامه کاربردی که قرار است تولید شود، حاوی سه عنصر مرتبط با کتابخانه kivy خواهد بود:

  • «عنصر ورودی متنی» (TextInput Widget)
  • «عنصر برچسب» (Label Widget)
  • عنصر button

این عناصر، به صورت عمودی و از طریق عنصر طرح‌بندی boxLayout، در یک پنجره (واسط کاربری) قرار می‌گیرند. این عناصر، با توجه به ترتیب اضافه شدن آن‌هان به عنصر طرح‌بندی boxLayout، در پنجره ظاهر خواهند شد. به عنوان نمونه، با توجه به کدهای زیر، عنصر ورودی متنی یا TextInput اولین عنصر در بالای پنجره، عنصر برچسب یا Label دومین عنصر در وسط پنجره و عنصر button، سومین عنصر در پایین پنجره خواهد بود.

وقتی که کاربر روی عنصر button کلیک می‌کند، داده متنی وارد شده در عنصر ورودی متنی یا TextInput، در عنصر Label نمایش داده می‌شود. کد kivy این برنامه کاربردی ساده در زیر نمایش داده شده است:


پس از اجرای این برنامه کاربردی، تابع build اولین تابعی است که فراخوانی و اجرا می‌شود. بنابراین، تابع build در عمل تابع سازنده‌ای خواهد بود که برای مقداردهی اولیه «واسط گرافیکی کاربری» (Graphical User Interface) برنامه تولید شده به وسیله Kivy، فراخوانی و اجرا می‌شود. برای اینکه برنامه کاربردی ایجاد شده به درستی اجرا شود، باید اطمینان حاصل شود که در فایل main.py، متغیر __name__ در دستور if، مقداری برابر با __main__ دارد.

برای اجرای برنامه کاربردی پیاده‌سازی شده، ابتدا باید محیط مجازی kivy تعریف شده به نام mykivyinstall فعال شود. سپس، فایل main.py موجود در دایرکتوری پروژه اجرا شود. این مراحل، در شکل زیر نمایش داده شده‌اند.

پایتون برای اندروید

شکل زیر، نمایی از برنامه کاربردی ساخته شده و عناصر (Widget) موجود در آن را نمایش می‌دهد. شایان توجه است که ارتفاع پنجره اصلی این برنامه کاربردی، به طور برابر به سه بخش تقسیم و هر بخش، به یکی از عناصر اختصاص داده شده است. در مثال نمایش داده شده در شکل زیر، پیام Hello Kivy در عنصر ورودی متنی یا TextInput وارد شده است. وقتی که کاربر روی عنصر button (دکمه .Click Me) کلیک می‌کند، داده متنی وارد شده در عنصر ورودی متنی (TextInput) یا همان پیام Hello Kivy، در عنصر Label نمایش داده می‌شود.

پایتون برای اندروید

تا این قسمت از آموزش پایتون برای اندروید و ساختن برنامه‌های کاربردی اندرویدی، یک برنامه کاربردی Desktop، با استفاده از کتابخانه kivy ساخته شده است. در مراحل بعدی، هدف آموزش نحوه «بسته‌ای سازی» (Packaging) این پروژه به عنوان یک برنامه کاربردی اندرویدی است.

پایتون برای اندروید: نصب کتابخانه Buildozer

کتابخانه Buildozer، ابزاری برای بسته‌ای سازی پروژه‌های پایتون در قالب برنامه‌های اندرویدی است. پس از نصب کتابخانه Buildozer، فرایند ساختن برنامه‌های اندرویدی، از روی پروژه‌های پایتون نوشته شده توسط kivy خودکار می‌شود. پیش از نصب این کتابخانه لازم است تا وابستگی‌های برنامه‌نویسی لازم برای اجرای این کتابخانه نصب شوند. با توجه دستورالعمل‌های ارائه شده برای نصب این کتابخانه در [+]، با استفاده از دستور زیر در سیستم عامل Ubuntu قادر خواهید بود تا تمامی کتابخانه‌ها و وابستگی‌های برنامه‌نویسی لازم برای اجرای این کتابخانه را نصب کنید:


با استفاده از دستور زیر، کتابخانه Buildozer نصب می‌شود. این دستور برای سیستم مشخص می‌کند که باید آخرین نسخه از کتابخانه Buildozer در سیستم نصب شود:


خروجی:

 Collecting buildozer
Using cached https://files.pythonhosted.org/packages/49/07/62f479998ea5e8680ad33f0fbafdc96f721cbad69ff90cc957988b8cd252/buildozer-0.39.tar.gz
Requirement already satisfied, skipping upgrade: pexpect in c:python27libsite-packages (from buildozer) (4.7.0)
Requirement already satisfied, skipping upgrade: virtualenv in c:python27libsite-packages (from buildozer) (16.7.5)
Requirement already satisfied, skipping upgrade: sh in c:python27libsite-packages (from buildozer) (1.12.14)
Requirement already satisfied, skipping upgrade: ptyprocess>=0.5 in c:python27libsite-packages (from pexpect->buildozer) (0.6.0)
Installing collected packages: buildozer
Running setup.py install for buildozer ... done
Successfully installed buildozer-0.39

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

پایتون برای اندروید: ساختن فایل تنظیمات کتابخانه Buildozer برای تولید برنامه‌ اندرویدی

ساختار پروژه تولید برنامه اندرویدی از روی برنامه نوشته شده توسط کتابخانه kivy در شکل زیر نمایش داده شده است:

پایتون برای اندروید

برای این پروژه، پوشه‌ای به نام simpleapp تعریف شده است. در این پوشه، فایل main.py که در مراحل قبلی تولید شده بود، قرار داده می‌شود. ویژگی بسیار مهم و متمایزکننده kivy این است که فایل پایتون تولید شده (main.py)، بدون هیچ تغییری در نسخه اندروید برنامه نیز استفاده خواهد شد. علاوه بر فایل main.py، فایل دیگری به نام buildozer.spec نیز وجود دارد که برای تولید برنامه اندرویدی حیاتی است. این فایل اطلاعاتی در مورد برنامه اندرویدی نظیر نام و نسخه آن را در اختیار کاربران و برنامه‌نویسان قرار می‌دهد.

فایل buildozer.spec به راحتی از طریق ابزارهای کتابخانه Buildozer تولید می‌شود. پس از تغییر دایرکتوری فعال سیستم به دایرکتوری که فایل main.py در آن قرار داده شده است، دستور زیر جهت تولید فایل buildozer.spec اجرا می‌شود:


پس از اجرای این دستور، پیامی مبنی بر موفقیت‌آمیز بودن تولید فایل buildozer.spec، به شکل زیر نمایش داده می‌شود:

پایتون برای اندروید

برخی از مهم‌ترین ویژگی‌های برنامه اندرویدی که در فایل buildozer.spec تعریف شده است، در ادامه نمایش داده خواهد شد:


به عنوان نمونه، این فایل اطلاعاتی نظیر نام برنامه، دایرکتوری منبع (دایرکتوری قرار گرفتن فایل‌های برنامه؛ در این حالت دایرکتوری پیش‌فرض است)، نسخه نرم‌افزار، نسخه پایتون و kivy و سایر موارد را در خود جای داده است. همچنین این امکان برای برنامه‌‌نویسان فراهم شده است تا هر کدام از اطلاعات موجود در این فایل را تغییر دهند. پس از آماده‌سازی تمامی فایل‌ها لازم برای ساختن برنامه اندرویدی، در مرحله بعدی، فرایند ساختن آن آغاز می‌شود.

پایتون برای اندروید: ساختن برنامه‌ اندرویدی با استفاده از کتابخانه Buildozer

کتابخانه Buildozer، یکی از بهترین ابزارهای ساختن برنامه‌های اندرویدی از روی برنامه‌های نوشته شده توسط کتابخانه kivy است. این ابزار، به بهترین شکل ممکن، محیط برنامه‌نویسی را برای تولید برنامه اندرویدی آماده می‌کند. همچنین، تمامی نیازمندی‌های اساسی برای تولید برنامه اندرویدی، توسط این کتابخانه آماده‌سازی می‌شوند؛ مواردی نظیر python-for-android و Android SDK از جمله چنین نیازمندی‌هایی هستند. با تنظیم کردن دایرکتوری برنامه به عنوان دایرکتوری پیش‌فرض و اجرای دستور زیر، فایل نصبی برنامه اندرویدی ساخته می‌شود و در دایرکتوری برنامه قرار می‌گیرد.


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

پایتون برای اندروید

پس از اجرای این دستور، فایل اجرایی برنامه اندرویدی با پسوند APK در دایرکتوری زیر (درون دایرکتوری برنامه) قرار می‌گیرد:

simpleapp/.buildozer/android/platform/build/dists/simpleapp/bin/

برای نصب برنامه اندرویدی روی گوشی‌ها و دستگاه‌های اندرویدی، تنها کافی است فایل APK تولید شده را به دستگاه منتقل و اجرا کنید. همچنین با استفاده از دستور زیر و وصل کردن گوشی یا دستگاه اندرویدی به سیستم، عملیات ساختن برنامه، «به‌کاراندازی» (Deploying) و اجرای آن به طور همزمان انجام می‌شود.


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

پایتون برای اندروید

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

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

^^

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

telegram
twitter