مدتی است که سیستم عاملهای گوشیهای هوشمند بسیار پیشرفت کردهاند و گل سرسبد این سیستمها هم اندروید یک سیستم عامل مبتنی بر لینوکس و آشناست که بسیاری از کاربران تلفنهای همراه هر روز از آن استفاده میکنند. سوالی که در این زمینه پیش میآید این است که حال که گوشیهایی با CPU های اینچنین قدرتمند وجود دارند و میتوان هسته لینوکس را نیز از طریق آنها به اجرا درآورد، چه کارهای دیگری را میتوان با این گوشیها انجام داد؟ یکی از چیزهایی که نظر مرا جلب کرد، برنامه نویسی بود که ابزارهای فوقالعادهای نیز برای آن پیدا کردم که شرح آنها را بیان میکنم.
در سیستم عاملهای غیر آزاد کارهایی صورت پذیرفته که تنها یکی از آنها برای من بسیار چشمگیر بود و آن، برنامه TouchDevelop ساخته Microsoft Research است. تاچدولپ خود یک زبان و یک برنامه به همین اسم برای اجرای این زبان است. نکته ی خیلی جالب این است که با این که تاچدولپ محصول غول انحصارهای جهان است اما شما برای این که بتوانید برنامهای را منتشر کنید ملزم به این هستید که کد آن را نیز منتشر کنید!!! (تاچدولپ را میتوانید در اینجا پیدا کنید)
اما برنامههای آزاد و متن بازی که شما میتوانید از آنها استفاده کنید به شرح زیر هستند:
SL4A
اولین و شاید بهترین چیزی که تا به حال نوشته شده (از نظر من) SL4A (مخفف: Scripting Layer For Android) یکی از پروژههای متن بازی است که توسط یکی از برنامه نویسان اندروید در گوگل شروع شده است که البته ربطی به گوگل ندارد. این پروژه، یک محیط برای اجرای برنامهها به صورت ترمینالی، یک ویرایشگر، تعدادی API برای ساختن امکانات پایه ای رابط کاربری مثل دیالوگهای درخواست متن و مسیج باکسهاو… و استفاده از امکانات، سنسورها، هسته و… در اندروید و تعداد زیادی مفسر برای زبانهای مختلف به همراه دارد که تعدادی از این مفسرها به صورت پیشفرض نصب هستند و تعداد دیگری را باید خودتان تهیه کرده و به مجموعه اضافه کنید. این برنامه تا به اینجا میتواند زبانهای: Shell, BeanShell 2.0b4, HTML, JavaScript, JRuby, Lua 5.1.4, PHP 5.3.3, Perl 5.10.1, Python 2.6.2 و Rhino 1.7R2 را پشتیبانی کند! عالی نیست؟ این برنامه همچنین امکانات دیگری مانند موتور TTS (نوشته به صدا) و چند ویژگی دیگر برای وب و… را نیز به زبانها اضافه کرده است. همانطور که شما میتوانید برنامهها را با مفسرها اجرا کنید، میتوانید مفسرها را به طور جداگانه نیز اجرا کرده و اسکریپت نویسی لحظهای انجام دهید.
Terminal IDE
تقریبا تمام کسانی که مثل ما از سیستم عاملهای شبه یونیکس (به جز Mac) استفاده کردهاند ترمینال را دوست دارند و یا عاشق آن هستند. ابزار خیلی جالبی به نام Terminal IDE در اندروید پیدا کردم که تقریبا همان امکانات ترمینال در سیستم عاملهای شبه یونیکس را با کمی تغییر داراست. همچنین امکاناتی خارقالعاده نیز برای گوشیهایتان به همراه دارد که خیلی دوستش خواهید داشت! برنامههایی که در محیط این ابزار وجود دارند عبارتند از VIM, GNU Nano, GNU Midnight Commander, TMUX, BitchX, GIT و ابزارهای کامپایل جاوا. یک کیبورد مخصوص با دکمههای ناوش (بالا، پایین و…) و CTRL, ALT, TAB,FN و SHIFT به شما توانایی استفاده از این محیط را میدهد. این برنامه همچنین مستندات بسیار کاملی درباره ی کامپایل کردن برنامههای Java, C و ++C دارد. من خودم تا به حال با این برنامه کار نکردم، تنها نکته ی غمانگیز درباره این برنامه دوست داشتنی، عدم وجود GCC در ابزارها است و راستش را بخواهید نصب GCC هم تقریبا مقدور نیست (به خاطر محدودیتهای لایه root) اما به عنوان یک ترمینال برای من ابزاری عالی است. (این برنامه تحت GPL منتشر شده است)
Androidmono
(با برنامه Mono For Android که توسط Xarmin تولید شده اشتباه نشود) اندرویدمونو یک نسخه ی غیر رسمی از runtime معروف مونو میباشد که تقریبا تمامی امکانات مونو را در اختیار کاربر قرار میدهد! شما کافیست این برنامه را اجرا کنید و سپس به ترمینال بروید، حالا فایل EXE خود را که با کامپیوتر یا به وسیله ابزارهای دیگر ساختهاید در ترمینال اجرا کنید. میدانم که این برنامه، ابزار کامپایل نیست و IDE هم نیست اما یک runtime کامل است که به توسعه برنامهها بسیار کمک میکند! این پروژه دیگر توسعه داده نمیشود اما به خاطر اپن سورس بودن آن میتوانید خودتان مشکلاتش را برطرف کنید! متاسفانه من نتوانستم این برنامه را راه بیندازم و این همه آن چیزی بود که من از این برنامه دیدم:
Addi
این برنامه را میتوان نسخه ی پورت شده GNU Octave دانست. به راحتی میتوانید با زبان Matlab اسکریپت کنید و محاسباتتان را انجام دهید، همه چیز بر اساس هسته اصلی اکتاو به خوبی طراحی شده و برنامه میتواند فایلهای M اکتاو را هم پشتیبانی کند. یک نسخه دیگر شبیه به این برنامه به اسم AddiPlot هم توسط شخصی دیگر تولید شده که در آن روی بخش ترسیم گراف و نمودارها بیشتر کار شده و برنامه در این زمینه پایدارتر عمل میکند.
اینها همه آن چیزی بود که من تا به حال پیدا کردهام اما واقعیت این است که همه این ابزارها با وجود تلاش بینظیر سازندگان و کاربرانشان هنوز بسیار ساده و ابتدایی هستند و مشکلات بزرگی در سر راهشان قرار دارد. من هنگامی که وارد دنیای گوشیهای هوشمند شدم از همان ابتدا به دنبال ابزارهای برنامه نویسی روی این گوشیها بودم و برنامههای زیادی را امتحان کردم (این برنامهها تنها برنامههای درست و حسابی و آزاد بودند) اما در تمام این مدت برنامهای پیدا نکردم که قابلیت ساختن UI کامل داشته باشد یا API های خوبی برای شما فراهم کند. همه این پروژهها برای شروع بسیار خوب هستند ولی محدود و کوچکند و شخصا آرزو میکنم روزی امکان نوشتن برنامههای عالی برای تلفنهای همراه و در تلفنهای همراه واقعا وجود داشته باشد!
اگر برنامه «آزاد» و یا «متن باز» دیگری در این زمینه پیدا کردید خیلی خوشحال میشویم که در کامنتها به ما معرفیشان کنید.
6 دیدگاه برای این نوشته:
- همایون:
۱۴ مرداد ۱۳۹۱
درود
من با terminal IDE تجربه کردم بد نبود
خودش جاوا رو ساپورت میکنه٬ و اگه به کمک برنامه Install Linux یه نسخه از دبیان رو نصب کنید (شبیه ساز دبیان با کرنل خود آندروید) میتونید خیلی از امکانات برنامه نویسی رو داشته باشید مثل python و حتی gcc و gppAIDE هم یک IDE مناسب برای جاواست که قابلیت کامل کردن خودکار کد رو هم داره
DOS Box رو هم میشه برای اسمبلی استفاده کرد
- karux:
۱۵ مرداد ۱۳۹۱
درود بر شما!
> من هم AIDE رو استفاده کردم برنامه ی جالبی بود فقط چون اطلاعاتی درباره ی مجوزش پیدا نکردم از اوردن اسمش خوداری کردم! - dddsa:
۱۶ مرداد ۱۳۹۱
Y U No N900? - karux:
۱۷ مرداد ۱۳۹۱
راستش این یک داستان خیلی متفاوت است. این برنامه ها مخصوص سیستم عاملشات و مخصوص امکانات سیستم عاملشان ساخته شده اند و هیج کدام از این برنامه ها قابل اجرا بر روی سیستم های دیگر نیستند! و راستش N900 و Meamo راستش یجورایی اصلا پیشرفت نکردند و به خاطر این که خیلی سیستم ساده ای داشتند برنامه نویسان کمی بهش جذب شدند و یک جورایی همچین برنامه هایی براش نوشته نشد (حدافل من تا حالا ندیدم) اما رو Meamo شما ترمینال دارید و هرجایی که ترمینال باشه قدرت و خلاقیت هم هست! شما میتونید نسخه ی ARM برنامه ی gcc نصب کنین (البته فک کنم باید اول روی کامپیوترتون کامپایل شه و بهد بریزینش روی گوشیتون بعد احتمالا خواهید تونست برنامتون رو باهاش کامپایل کنید. من خیلی در این زمینه وارد نسیستم و فک نکنم بتونم به جز اندروید و ویندوزفون و ای او اس در این زمینه درباره ی گوشی دیگه ای حرف بزنم - علی:
۲۰ مرداد ۱۳۹۱
من با محیط توسعه Eclipse و افزونه ی ADT که خاص برنامه نویسی آندروید نوشته شده و زبان جاوا برای آندروید برنامه نوشتم. تجربه ی خوبی بود. و به نظرم میاد تو زبانهای موجود جاوا و پایتون از همه قابل تر باشند. - karux:
۲۱ مرداد ۱۳۹۱
بحث اون به کناره! اینجا سعی شده برنامه هایی که میتونین رو خود اندروید به توسعه ی برنامه بپردازید رو دربارش بحث کنیم اما بله اون هم روش اصلی ی! من خودم از Mono For Android که ی افزونه برای MonoDevelop هستش خیلی خوشم اومده ی ایده ی خیلی جالب هم برای ساختن برنامه های آندروید دیدم MIT App Inventor که به کسانی که برنامه نویسی بلد نیستن امکان برنامه نویسی اندروید میده