مقدمه
در ابتدا مقدمات کوتاهی از برنامه نویسی اندروید و پایتون را بیان خواهیم کرد و در ادامه، مراحل کامل از ۰ تا ۱۰۰ ایجاد اپلیکشن اندرویدی را گام به گام و به صورت تصویری توضیح خواهیم داد. همچنین در خلال آموزش، بهترین منابع آموزشی از سایت های معتبر مانند فرادرس را معرفی خواهیم کرد.
برنامه نویسی اندروید با پایتون
همانطور که می دانید پایتون Python یک زبان همه منظوره است یعنی از این زبان برای ساخت و توسعه انواع برنامه های تحت وب و تحت سیستم عامل می توان استفاده کرد. مزیت استفاده از این زبان برنامه نویسی بیشتر در متن باز بودن و قابلیت چند پلت فرمی آن است که به برنامه نویسان این اجازه را می دهد تا در یک زبان برنامه نویسی کنند و به راحتی در هر سیستم عاملی از آن استفاده کنند.
زمانی که صحبت از برنامه نویسی اندروید می شود ناخودآگاه زبان برنامه نویسی جاوا Java رخ نشان می دهد چرا که هسته و اساس اولیه اندروید با جاوا نوشته شده و توسعه یا ایجاد برنامه در اندروید با جاوا انجام می شود. حالا اگر بخواهیم با زبان های دیگری به برنامه نویسی اندروید بپردازیم بایستی بتوانیم با وابستگی های آن یعنی SDK، JDK و مواردی از این قبیل ارتباط برقرار کنیم. جالب است بدانید تمامی این موارد با زبان جاوا توسعه داده شده اند و یک زبان برنامه نویسی از طریق واسط های زبانی می تواند با آن ها ارتباط برقرار کند.
برخلاف تصور عموم، اندروید یک زبان برنامه نویسی نیست و همانطور که قبلاً هم گفته شد هسته اولیه آن از جاوا تشکیل شده است. شاید بتوان گفت اندروید یک فریم ورک یا چارچوبی نشأت گرفته از جاوا است. ولی بدلیل استفاده عموم از واژه برنامه نویسی اندروید ما نیز از همین ادبیات استفاده می کنیم.
اگر قبلاً برنامه نویسی اندروید کرده اید حتماً با نحوه کد نویسی و برنامه نویسی در اندروید استادیو آشنایی دارید. حال اگر بخواهیم در زبان دیگری مانند پایتون، برنامه نویسی اندروید انجام دهیم آیا روال کار مانند اندروید استادیو خواهد بود؟ جواب خیر است. روال کاری در هر زبان برنامه نویسی با زبان دیگر متفاوت است.
می دانیم اندروید یک سیستم عامل است و زبان برنامه نویسی پایتون مستقل از یک سیستم عمل می کند از اینرو ما در پایتون برنامه نویسی انجام می دهیم و با استفاده از واسط های برنامه نویسی، کد های ایجاد شده را برای یک سیستم عامل، قابل استفاده می کنیم. پس ما در پایتون فارغ از سیستم عامل برنامه نویسی می کنیم و کدهای تولید شده را به برنامه های قابل اجرا در سیستم عامل مورد نظر تبدیل می کنیم.
فریم ورک Kivy
فریم ورک کیوی یکی از چارچوب های برنامه نویسی در پایتون است که با واسط های گرافیکی آن امکان ایجاد و توسعه اپلیکشن های کاربردی در سیستم عامل های مختلف فراهم می گردد. بنابراین ما می توانیم با استفاده از فریم ورک قدرتمند kivy برنامه های خود را فارغ از سیستم عامل بنویسیم و به راحتی با سازوکارهایی که در این فریم ورک وجود دارد کدهای خود را به برنامه یا اپلیکشین های مورد استفاده در سیستم عامل های مختلف برگردانیم.
قبل از آموزش برنامه نویسی اندروید با پایتون لازم است با فریم ورک کیوی Kivy و نحوه کار با آن آشنایی داشته باشیم برای این منظور می توانید آموزش آشنایی با فریم ورک کیوی را تهیه و مطالعه فرمایید. زمانی که توانستیم در این فریم ورک برنامه ای بنویسیم براحتی می توانیم با ابزارهای موجود در آن، برنامه ایجاد شده را به اپلیکشن اندرویدی تبدیل کنیم. یکی از ابزار های تبدیل برنامه های ایجاد شده در کیوی به اندروید، کتابخانه Buildozer است که براحتی روی پایتون نصب می شود و براحتی با استفاده از این کتابخانه می توانید کد های خود را به اپلیکشین اندرویدی تبدیل کنید.
نحوه کارکرد کتابخانه Buildozer و کدهای لازم برای نصب وابستگی های این کتابخانه در لینوکس انجام می شود یا حداقل در لینوکس راحت است. اما برای استفاده از قابلیت های این کتابخانه در ویندوز مراحلی وجود دارد که در این آموزش آنها را بازگو خواهیم کرد. پس کمربندهای خود را محکم ببندید چون چاله های هوایی زیادی داریم!
مراحل آموزش برنامه نویسی اندروید با پایتون در ویندوز ۱۰
اگر برای اولین بار است که با پایتون کار می کنید لازم است پایتون را نصب کنید مراحل نصب پایتون در ویندوز را می توانید در همین سایت مطالعه کنید پس از آن بایستی فریم ورک Kivy را بر روی پایتون خود نصب کنید. مراحل نصب یک فریم ورک یا پکیج را نیز می توانید مطالعه کنید. یک برنامه کوچک مانند ماشین حساب را مانند آنچه در آموزش فریم ورک کیوی Kivy گفته بودیم را انجام دهید. پس از نصب پایتون و فریم ورک کیوی در ویندوز ۱۰، از کد زیر می توانید اجرا بگیرید:
from kivy.app import App from kivy.uix.boxlayout import BoxLayout from kivy.uix.button import Button from kivy.uix.textinput import TextInput class MainApp(App): def build(self): self.operators = ["/", "*", "+", "-"] self.last_was_operator = None self.last_button = None main_layout = BoxLayout(orientation="vertical") self.solution = TextInput( multiline=False, readonly=True, halign="right", font_size=55 ) main_layout.add_widget(self.solution) buttons = [ ["۷", "۸", "۹", "/"], ["۴", "۵", "۶", "*"], ["۱", "۲", "۳", "-"], [".", "۰", "C", "+"], ] for row in buttons: h_layout = BoxLayout() for label in row: button = Button( text=label, pos_hint={"center_x": 0.5, "center_y": 0.5}, ) button.bind(on_press=self.on_button_press) h_layout.add_widget(button) main_layout.add_widget(h_layout) equals_button = Button( text="=", pos_hint={"center_x": 0.5, "center_y": 0.5} ) equals_button.bind(on_press=self.on_solution) main_layout.add_widget(equals_button) return main_layout def on_button_press(self, instance): current = self.solution.text button_text = instance.text if button_text == "C": # Clear the solution widget self.solution.text = "" else: if current and ( self.last_was_operator and button_text in self.operators): # Don't add two operators right after each other return elif current == "" and button_text in self.operators: # First character cannot be an operator return else: new_text = current + button_text self.solution.text = new_text self.last_button = button_text self.last_was_operator = self.last_button in self.operators def on_solution(self, instance): text = self.solution.text if text: solution = str(eval(self.solution.text)) self.solution.text = solution if __name__ == "__main__": app = MainApp() app.run()
و خروجی زیر را مشاهده کنید:
توجه داشته باشید این خروجی فقط در سیستم شما ظاهر شده است چون پایتون و فریم ورک کیوی را در سیستم خود نصب کرده اید. برای گرفتن خروجی از این برنامه در اندروید بایستی این برنامه را با استفاده از Buildozer به یک اَپ اندرویدی تبدیل کنید. پس لازم است Buildozer را نیز بر روی پایتون نصب کنید. Buildozer دارای وابستگی های زیادی است و در براحتی در سیستم عامل لینوکس نصب می شود. در سیستم عامل ویندوز ۱۰ نیز از لینوکس کمک می گیریم و Buildozer را نصب خواهیم کرد.
قبل از نصب این کتابخانه، ابتدا کد بالا را در یک فایل با نام main.py قرار دهید و در یک فولدر با نام مثلاً appp قرار دهید. ما این فولدر را در مسیر C:\Users\Pc\AppData\Local\Programs\Python\Python39\appp قرار داده ایم. البته شما می توانید مسیر دیگری در نظر بگیرید.
۱- نصب Ubuntu Shell روی ویندوز
در فولدر appp همانند شکل زیر، با نگه داشتن Shift و راست کلیک باید بتوانید Shell ویندوزی خود را ببینید ولی هدف ما استفاده از Shell لینوکس هست. اگر این گزینه در ویندوز شما وجود نداشت جای نگرانی نیست. براحتی می توانید به Shell لینوکس دسترسی پیدا کنید.
در ادامه آموزش برنامه نویسی اندروید با پایتون در ویندوز ۱۰ از منوی استارت Start ویندوز خود طبق شکل زیر Settings را انتخاب کنید.
بر روی Update & security کلیک کنید:
در ستون سمت چپ بر روی For Developers کلیک کنید:
کمی صبر کنید تا ویژگی های Developers نصب شود. سپس طبق شکل به Control Panel بروید و گزینه Program and Features را انتخاب کنید:
ویندوز ریستارت خواهد شد و پس از بالا آمدن دوباره به فولدر خود بروید و با Shift + Right Click خواهید دید گزینه Open Linux Shell Here ظاهر شده است. اما به احتمال زیاد اگر روی آن کلیک کنید صفحه Shell فوری ظاهر و خارج می شود. علت این است که هنوز بر روی سیستم ویندوزی شما افزونه لینوکس نصب نیست. خوشبختانه مایکروسافت امکان استفاده از لینوکس را در ویندوز فراهم کرده پس با دقت مراحل نصب لینوکس اوبونتو روی ویندوز را دنبال کنید.
۲- نصب لینوکس Ubuntu روی ویندوز
برای نصب لینوکس Ubuntu روی ویندوز از طبق شکل زیر به Microsoft Store بروید:
با جستجوی Ubonto در این محیط گزینه مشخص شده در شکل که یک نسخه از لینوکس در ویندوز است را انتخاب کنید و طبق شکل بعدی آن را نصب کنید.
مدتی طول می کشد تا دانلود و نصب شود. پس از نصب گزینه launch را بزنید تا روی سیستم بنشیند و احتمالاً طبق شکل های زیر مراحل نصب بصورت زیر برای شما نشان داده خواهد شد.
برای ایجاد اکانت لینوکس از شما یک نام کاربری و کلمه عبور خواسته می شود. یک نام کاربری و کلمه عبور به دلخواه انتخاب کنید.
اکنون مرحله نصب لینوکس Ubuntu روی ویندوز تمام شده و اگر دوباره به فولدر خود بروید و Shift + Right Click و گزینه Open Linux Shell Here را انتخاب کنید Linux Shell باز خواهد شد.
۳- مراحل نصب Buildozer با Ubuntu Shell روی ویندوز
اگر تا این مرحله از آموزش برنامه نویسی اندروید با پایتون بخوبی پیش رفته باشید می توانید Linux Shell را روی دایرکتوری کد پایتون فعال کنید. مسیر باید بصورت زیر باشد.
طبق راهنمای نصب Buildozer در مستندات خودش، دستور زیر را در ادامه تایپ کرده و کلمه عبور لینوکس که در مرحله قبلی وارد کرده بودید را برای ارائه مجوز نصب را وارد کنید.
sudo apt update
طبق شکل زیر کمی زمان می برد تا پروسه برزرسانی کامل شود.
پس از پایان این مرحله، دستور زیر را برای نصب وابستگی ها و نیاز مندیهای Buildozer وارد کنید.
sudo apt install -y git zip unzip openjdk-8-jdk python3-pip autoconf libtool pkg-config zlib1g-dev libncurses5-dev libncursesw5-dev libtinfo5 cmake libffi-dev libssl-dev
پس از این مرحله دستور زیر را ساخت مسیر bin (پوشه ای که app شما در آن قرار خواهد گرفت) وارد کنید.
export PATH=$PATH:~/.local/bin/
حال می توانید با استفاده از ابزار pip3 کتابخانه Buildozer را نصب کنید. دستور زیر را وارد کنید.
pip3 install --user --upgrade buildozer
صبر کنید تا عملیات نصب انجام شود:
خوب تا الان توانستیم با موفقیت کتابخانه Buildozer را برای تبدیل کدهای پایتون به اپلیکشن اندروید نصب کنیم. در مراحل بعدی نحوه تبدیل کد پایتون به برنامه اندرویدی توضیح داده خواهد شد.
۴- مراحل تبدیل کد پایتون به برنامه اندرویدی
تا این قسمت از آموزش برنامه نویسی اندروید با پایتون در ویندوز ۱۰، توانستیم احتیاجات لازم برای استفاده از دستورات اجرای اندروید با استفاده از کتابخانه Buildozer را نصب کنیم. اکنون وقت آن رسیده تا کد ایجاد شده در پایتون خود را به اپلیکشن اندرویدی تبدیل کنیم. طبق شکل زیر می توانید در Linux Shell دستور Buildozer
تایپ کنید.
توجه داشته باشید حتماً در دایرکتوری کد خود باشید و نام فایل هم main.py باشد.
پس از اجرای این دستور یک فایل با نام buildozer.spec ایجاد می شود که مشخصات app تولید شده در آن قرار دارد می توانید نام app یا مورارد دیگری را در این فایل تغییر دهید.
[app] # (str) Title of your application title = KvCalc # (str) Package name package.name = kvcalc # (str) Package domain (needed for android/ios packaging) package.domain = org.kvcalc
خوب حالا وقت آن رسیده که دستور debug را برای تبدیل کد به app اندرویدی را بزنید. دستور زیر را تایپ کنید.
buildozer android debug deploy run
احتمالاً هنگام اجرای این دستور با خطای Operation not permitted مواجه شوید که بیشتر به خاطر مشکلات پارتیشن بندی و تفاوت پارتشین بندی در لینوکس و ویندوز است. اگر خطایی این چنینی دارید از Linux Shell خارج شوید و دوباره در یک درایور دیگر Linux Shell را باز کنید و فرمت درایوی که برنامه main.py شما در آنجاست را تغییر دهید. همانطور که در این آموزش مشاهده کردید برنامه ما در دایرکتوری درایو C قرار دارد. پس از درایو دیگری مانند D پارتیشن آن را تغییر می دهیم. دستورات زیر را تایپ کنید:
sudo umount /mnt/c sudo mount -t drvfs C: /mnt/c -o metadata
خوب پس از اجرای دستورات بالا دوباره به فولدر برنامه خود برگردید و Linux Shell را باز کنید و دستور زیر را تایپ کنید:
buildozer android debug deploy run
خوب زمان زیادی طول خواهد کشید تا کد شما به برنامه اندروید تبدیل شود چون برای اولین بار، فایل ها و نیازمندی های لازم، برای پروژه شما ایجاد می شود. بسته به نوع سیستم و سخت افزار شما می تواند این زمان کم یا بیشتر شود. در سیستم من تقریباً ۲۹ دقیقه زمان صرف شد. پس از اتمام مراحل اگر به فولدر bin بروید app اندروید خود را خواهید دید و بدین ترتیب آموزش برنامه نویسی اندروید با پایتون تمام می شود.
سخن آخر درباره آموزش برنامه نویسی اندروید با پایتون در ویندوز ۱۰
در آموزش برنامه نویسی اندروید با پایتون در ویندوز ۱۰ مراحل کاملی از نحوه برنامه نویسی اندروید در پایتون توضیح داده شد. اگر علاقه مند به برنامه نویسی اندروید در پایتون هستید حتماً فریم ورک kivy را خوب یاد بگیرید چون علاوه بر تولید برنامه های اندرویدی می توانید به راحتی اپلیکشن های ویندوز یا IOS را نیز تولید کنید و این یک مزیت است چرا که یک بار کد می زنید و اپلیکشن های مختلفی را برای هر پلت فرم را تولید می کنید.
اگر می خواهید آموزش اصولی و پایه ای داشته باشید می توانید از آموزش های فرادرس استفاده کنید چون با تحقیقات و بازخوردی ها که ما از فراگیران عزیز داشته ایم این سایت آموزش های اصولی و کاربردی در برنامه نویسی را به بهترین نحو ارائه می دهد. در پایان منتظر نظرات و دیدگاه های شما هستیم. موفق و پیروز باشید.
2 پاسخ
می تونم ازتون تو برنامه نویسی کمک بگیرم؟
من موقع خروجی خطای valueError: read of closed file دارم
دلیل چیه