# Native Code > برنامه نویسی در Delphi > برنامه نویسی موبایل در Delphi >  بحث کلی برنامه نویسی موبایل و به طور مشخص با استفاده از دلفی

## Delphi Coder

سلام.
من خیلی وقت هس علاقه داشتم برنامه نویسی موبایل رو یاد بگیرم. خوب طبیعتا اولین چیزی که همه پیشنهاد میکنند اندروید استودیو هست حالا من این مورد رو همیجوری برعکس از اینطرف شروع میکنم و لطفا دوستان یا اساتید نظراتشون رو بگن تا حداقل من بدونم من دارم اشتباه میکنم یا کلا همه همچین نظری دارند. من اومدم شروع کردم به یادگیری و همون قدمهای اول دیدم یک مکافات عظمی فقط برای نصب صرفا اندروید استودیو و گذر از چالشهای فندق شکن و دانلودهای حجیم sdk و غیره و غیره و تنظیمات هست بعد وقتی یه پروژه خالی میای مثلا با یه button ایجاد کنی و میخوای کمپایل و اجرا کنی دوباره شروع میکنه به کلی دانلود و صرف زمان زیاد برای اجرای یه پروژه ای که عملا هیچی نداره. حالا این وسط یه مبحثهایی که کلا حداقل برای من یکی هضم نشد مثل gradle که میگن ابزار کمپایل و ساختن برنامه هست و من کلا نفهمیدم 2 خط کد command line در ویندوز که مثلا استفاده میشه برای تولید فایل اجرایی اصولا چرا باید در اندروید اینقدر پیچیده باشه که تازه نیاز به مبحث جداگانه ای مثل gradle ها باشه. حالا این وسط بماند مباحثی مثل make فایلها یا cmake که البته cmake جدیدا اومده و کلا برای خودشون زبان اسکریپتی یا برنامه نویسی مجزایی محسوب میشن.
اومدم برگشتم دلفی تا همینجا با همین دلفی که تجربشو دارم برم جلو باز هم توی نصب sdk ها گیرهایی بود که تونستم عبور کنم و بعد باز هم رسیدم به یک سری مشکلاتی که مثلا یک سری ارور در خود مثالهای دلفی بود که قادر به برطرف کردنش نبودم. یا مثلا میومد توی یه سری فایلها مشخصا یه فایل xml که زمان کمپایل خود دلفی تولید میکرد ارور میخورد و نمیشد فهمید داستان  از چه قراره چون این طرف هم برای برنامه نویسی موبایل با دلفی منابع خیلی کم هست در مقایسه با اندروید استودیو.
حالا در مقایسه اندروید استودیو بهبودهای چشمگیری در استفاده از امولاتورها داشته و سرعت اجرا و دیباگشون خیلی بهتر شده اما در دلفی من نتونستم امولاتورهای جدید رو راه بندازم. حالا در کل من فکر میکنم برنامه نویسی موبایل یعنی یک دردسر بزرگ غیر قابل تحمل برای یک برنامه نویس دلفی. چیز بهتری نیست که بشه یک بار افلاین نصب کرد توش برنامه نوشت و دیباگ بشه کرد و بشه راحت خروجی گرفت؟ حالا نمیگم مثل برنامه vcl برای ویندوز حداقل کمی نزدیک به این و با دردسر کمتر یاد بگیریم چه چیزی بهتر هست.

----------


## یوسف زالی

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

----------


## mafazel

سلام دوست عزیز 
من هم جدیدا به برنامه نویسی اندروید با دلفی علاقه مند شدم. و یه مقدار توی این مسیر پیش رفتم. ضمن پوزش از اساتید، خوشحال می شم که از اطلاعات همدیگه استفاده کنیم.
اون xml ها که اشاره کردید و دلفی خودش میسازه ارور نداره! (من اینترنت رو سرچ کردم بعضا میگن xml رو دستکاری کنید و فلان خط رو حذف کنید.) مشکل در نصب ابزارهای لازم و دادن مسیر ابزارها در دلفی هست.
وقتی دلفی رو نصب می کنید این فایل اجرایی رو دارید:
P1.jpg
حالا اونو اجرا کنید چیزی شبیه به این خواهید داشت. (البته این نرم افزار از آدرس های گوگل استفاده می کنه که برا ایران تحریمه و باید از قیلترشکن استفاده کنید و پروگسی رو توی تنظیمات اون ست کنید.)
P0.jpg
یکی از ابزارهای اصلی که لازم دارید همون Android SDK Build-tools (آخرین ورژن 29.0.3) هستش که باید نصب کنید.
وقتی نصب کنید یه پوشه میسازه که در مسیر زیره:
محل فایل Android Tools (تصویر اول) مثلا روی کامپیوتر من در مسیر زیره:
p2.jpg
حالا یه فولدر به عقب برگردید:
p3.jpg
حالا وارد فولدر build-tools بشید:
p4.jpg
این فولدر 29.0.3 مورد نیاز هستش و توی تنظیمات دلفی باید ست بشه.
البته یکی دو تا ابزار دیگه هم از Android Tools (تصویر اول) نیاز داریم.

----------


## dooghaie

مطلبا مفید بود

----------


## Delphi Coder

جالب بود این sdk manager قدیمی خود اندروید استودیو هست. البته دلفی 10.3 و  11 ندیدم چنین چیزی نصب کنه خودش. اما یکی دو سال پیش موفق شده بودم راهشون بندازم. توی یه پروژه تستی ساده ظاهرا خود دلفی یه فایل xml تو یه جایی درست میکرد که تو کمپایل ازش استفاده میکرد بعد میومد به فایلی که خودش اتوماتیک توی یه فولدر ناکجا اباد درست کرده بود گیر میداد از سرچ  گوگل هم نتیجه ای نگرفتم برای همین این بحث اندروید با دلفی به نظرم خیلی پایدار نیومد. از اونور با لازاروس توی اوبونتو نتایج خیلی بهتری در مقایسه با دلفی گرفتم اما اونم یه سری محدودیتها داره مثلا امولاتورهای x86 اینا که خیلی پرسرعت هستند رو نداره. یا اینکه خروجی 7 ARM میده فقط. شما اگر تونستید با دلفی 11 راش بندازید لطفا یه اموزش در همین حد بزارید. و اینکه چجوری گوشی یا امولاتور بهش معرفی کنیم برای اجرا و دیباگ.

----------


## mafazel

درست می فرمایید Delphi 11 این SDK Manager و AVD Manager رو نداره (البته داره ولی درست کار نمیکنه)،26.1.1 SDK بصورت خودکار با دلفی نصب میشه و نیازی به دانلود نیست.
البته میتونید SDK رو جداگونه از سایت های داخلی دانلود و در مسیر پیشفرض کپی کنید. نصب نداره.(در واقع دارم پست قبلی خودم رو نقض می کنم! نیازی به اون کار نیست. میتونید دانلود و توی مسیر پیشفرض کپی کنید).
برای امولاتور، من با استفاده از Android AVD Manager (توی تصویر اول) امولاتور تعریف کردم اما واقعیت نتونستم باهاشون کار کنم (توی Delphi 10.2.3)بسیار کُنده و خطا میده . بعدش adb رو نصب کردم (و چیزهای دیگه که نمیدونم موثر بوده یا نه!) و نهایتا گوشی خودم رو بعنوان یه امولاتور توی لیست میاره و با انتخاب اون، موقع اجرا برنامه روی گوشی اجرا میشه:
Z1.jpg
طبعا یه راهش هم نرم افزارهای شبیه سازی اندروید توی ویندوز مثل BlueStaxcks یا Nox Player هست که من امتحان نکردم.

----------


## mafazel

> جالب بود این sdk manager قدیمی خود اندروید استودیو هست. البته دلفی 10.3 و  11 ندیدم چنین چیزی نصب کنه خودش. اما یکی دو سال پیش موفق شده بودم راهشون بندازم. توی یه پروژه تستی ساده ظاهرا خود دلفی یه فایل xml تو یه جایی درست میکرد که تو کمپایل ازش استفاده میکرد بعد میومد به فایلی که خودش اتوماتیک توی یه فولدر ناکجا اباد درست کرده بود گیر میداد از سرچ  گوگل هم نتیجه ای نگرفتم برای همین این بحث اندروید با دلفی به نظرم خیلی پایدار نیومد. از اونور با لازاروس توی اوبونتو نتایج خیلی بهتری در مقایسه با دلفی گرفتم اما اونم یه سری محدودیتها داره مثلا امولاتورهای x86 اینا که خیلی پرسرعت هستند رو نداره. یا اینکه خروجی 7 ARM میده فقط. شما اگر تونستید با دلفی 11 راش بندازید لطفا یه اموزش در همین حد بزارید. و اینکه چجوری گوشی یا امولاتور بهش معرفی کنیم برای اجرا و دیباگ.



البته شما که با لازاروس توی اوبونتو برنامه نوشتید خودتون واردید. اما با دلفی هم زیاد مشکل نداره.
تا اونجا که من دیدم بیشترین Error های نامربوط موقع کامپایل مال این مسیر ها هستش که باید درست تنظیم بشه:
ضمیمه 153539
در مورد امولاتور هم توی پست بالا گفتم. من خیلی ور رفتم تا نهایتا دیدم گوشی که با کابل وصل کردم رو بعنوان امولاتور میاره. واقعیت دقیق نمیدونم از چه کاری بود.
(احتمالا باید ویندوز عوض کنم از اول نصب کنم تا دقیقش رو پیدا کنم :متفکر: !)

----------


## Delphi Coder

توی این چند مدت اخیر من این موضوع رو تا جایی که تونستم بررسی کردم. از  دلفی شروع میکنم. من بالاخره بعد از سعی و تلاش زیاد و خسته کننده تونستم  برنامه نویسی اندروید رو روی دلفی راش بندازم. خوب حقیقش این که خوب یا بد  بالاخره کار میکنه اما اصلا به نظر نمیاد اون انعطاف پذیری که خود اندروید  استودیو داره داشته باشه. علاوه از این یک سری از مثالهای خود دلفی هم برای  اندروید به exception میخوره که نتونستم بفهمم به خاطر ناشی گیری در  تنظیماتی بود که انجام داده بودم یا برنامه ایراد داشت. مشکل دیگری که  برنامه نویسی موبایل با دلفی داره این هست که جمعیت دلفی کاران خصوصا دلفی  برای اندروید به شدت کم هست در مقایسه با مثلا خود اندروید استودیو برای  همین پاسخ مشکلات احتمالی رو نمیشه به سادگی از اینترنت پیدا کرد. و یک  مشکل دیگه این که دلفی از امولاتورهای x86 یا x64 پشتیبانی نمیکنه و این  باعث میشه به هنگام توسعه برنامه برای اندروید با سرغت بسیار کم و کلافه  کننده ای سر و کار داشته باشیم. خوب طبیعتا از امکانات خاص اندروید استودیو  هم که ۳ سوت وسط دیباگ میشه کد رو تغییر داد و مجدد اجرا کرد خبری نیست.
در مورد لازاروس تحت سیستم عامل لینوکس هم من تونستم راش بندازم محیط رو و  برنامه بسازم اما اینجا هم دقیقا همون مشکلات وجود دارند و بدتر اینکه  لازاروس یک برنامه رایگان هست و پشتیبانی چندانی نداره که بشه بهش دلگرم  بود.
گزینه دیگر برای برنامه نویسی اندروید بیسیک فور اندروید یا همون به اصطلاح  B4A هست که میشه گفت خیلی خوب کار میکنه و شبیه دلفی قابلیت RAD رو داره.  به مراتب پشتیبانی بهتری هم داره. اما باز هم توی بحث امولاتورها و انعطاف  پذیری به هیچ وجه به پای اندروید استودیو نمیرسه.
سی شارپ و ویژوال استودیو رو امتحان نکردم چون علاقه ای بهشون ندارم.
با این اوصاف به نظر میاد تحمل دنگ و فنگهای اندروید استودیو فعلا بهترین راه برای برنامه نویسی اندروید هست. برای همین من با خود اندروید استودیو استارت زدم. زبانهای  کاتلین و فلاتر هم هستند که با اندروید استودیو میشه کار کرد. اینها مشکلات خاص اضافی خودشون رو دارند وهیچکدومشون به اندازه جاوا ریسورس پیدا نمیشه توی اینترنت برای مشکلات حین توسعه. نهایتا توصیه من به کسانی که دنبال انتخاب محیطی برای برنامه نویسی برای اندروید میگردن این هست که با حوصله همون خط اندروید استودیو و جاوا رو برن جلو بهتره.
نهایتا تاکید میکنم همه اینها نظرات شخصی بود که پس از یک سری بررسیهای اجمالی نتیجه گرفتم و الزاما نباید انتظار داشت ۱۰۰٪ درست باشه.

----------

