انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => برنامه‌سازی => نویسنده: { AliReaza } در 02 خرداد 1394، 03:17 ب‌ظ

عنوان: بهترین و مطمئن راه نوشتن برنامه به صورت Cross-Platform چیست؟
ارسال شده توسط: { AliReaza } در 02 خرداد 1394، 03:17 ب‌ظ
سلام دوستان

قراره یک برنامه بنویسم، که Cross-Platform باشه. به این صورت که در Android هم قابل استفاده باشه.  8)

خودم PHP بلدم. دنبال روش هایی گشتم تا بشه PHP را مثل یک Desktop Application درست کنم و به PHP Nightrain رسیدم. اما مشکل با Android هست.  :'(

می خوام از Python استفاده کنم. اما تاحالا برنامه کاملی با Python ننوشتم و این اولین برنامه من هست  ;D

متاسفانه وقت نکردم سراغ JAVA برم (تازه باید یاد بگیرم  ](*,) ) و برای این برنامه وقت کافی ندارم تا سراغ JAVA برم.  :-X

از عموگوگل پرسیدم و به این نتیجه رسیدم که Python بهترین گزینه برای منه.


چطوری می تونم مطمئن بشم که برنامه در همه جا کار میکنه و نیازی به دوباره نوشتن برنامه برای هر سیستم عامل نداشته باشم؟ و نیازی به آزمایش برنامه در سیستم عامل های مختلف نداشته باشم؟ ( یک بار بنویسم و مطمئن باشم در همه جا کار میکنه. )
عنوان: پاسخ : بهترین و مطمئن راه نوشتن برنامه به صورت Cross-Platform چیست؟
ارسال شده توسط: emertat89 در 02 خرداد 1394، 03:58 ب‌ظ
اگر مایل به استفاده از پایتون هستید، می تونید از pyqt یا kivy استفاده کنید

http://www.riverbankcomputing.com/software/pyqt/intro
http://kivy.org

ولی شرکت های تجاری بیشتر از c++ و کتابخانه qt استفاده می کنند
عنوان: پاسخ : بهترین و مطمئن راه نوشتن برنامه به صورت Cross-Platform چیست؟
ارسال شده توسط: 不眠症 در 02 خرداد 1394، 04:36 ب‌ظ
فلش!  :D

راه حل برای cross شدن Qt - Java - Flash

ولی برای آندروید فرقی نمیکند Qt باشد یا فلش چون هیچکدام نیتیو نخواهند بود.
عنوان: پاسخ : بهترین و مطمئن راه نوشتن برنامه به صورت Cross-Platform چیست؟
ارسال شده توسط: { AliReaza } در 02 خرداد 1394، 04:45 ب‌ظ
فلش!  :D

راه حل برای cross شدن Qt - Java - Flash

ولی برای آندروید فرقی نمیکند Qt باشد یا فلش چون هیچکدام نیتیو نخواهند بود.
اگر قرار باشه وقت بذارم برای یادگیری، میرم سمت JAVA.

اما متاسفانه وقت کافی برای یادگیری ندارم.

اگر مایل به استفاده از پایتون هستید، می تونید از pyqt یا kivy استفاده کنید

http://www.riverbankcomputing.com/software/pyqt/intro
http://kivy.org

ولی شرکت های تجاری بیشتر از c++ و کتابخانه qt استفاده می کنند
رفتم توکار PyQt تا ببینم چطوریاست.

دوستان عزیز دیگر، منتظر نظرات و راهنمایی های سبزتان هستم
عنوان: پاسخ : بهترین و مطمئن راه نوشتن برنامه به صورت Cross-Platform چیست؟
ارسال شده توسط: abdoullah در 02 خرداد 1394، 08:22 ب‌ظ
سلام
من نمیدونم python چه شکلیه یعنی نیاز به تغییر کد داره تو سیستم عامل ها یا همونو میتونی اجرا کنی ؟
ولی راستیتش توی جاوا به این شکل نیست که همون برنامه ایی که تو توی دستکاپ نوشتی رو بتونی توی اندروید اجرا کنی و نیاز به تغییراتی داره ولی توی سیستم عامل های دستکاپ مشکلی نیست و میتونی برنامه ی جاوا رو اجرا کنی
عنوان: پاسخ : بهترین و مطمئن راه نوشتن برنامه به صورت Cross-Platform چیست؟
ارسال شده توسط: { AliReaza } در 02 خرداد 1394، 09:15 ب‌ظ
سلام
سلام

من نمیدونم python چه شکلیه یعنی نیاز به تغییر کد داره تو سیستم عامل ها یا همونو میتونی اجرا کنی ؟
من هم در اصل دنبال همین جواب هستم.
عنوان: پاسخ : بهترین و مطمئن راه نوشتن برنامه به صورت Cross-Platform چیست؟
ارسال شده توسط: samis در 02 خرداد 1394، 10:11 ب‌ظ
من نمیدونم python چه شکلیه یعنی نیاز به تغییر کد داره تو سیستم عامل ها یا همونو میتونی اجرا کنی ؟
من هم در اصل دنبال همین جواب هستم.

شما هرجایی که مفسر پایتون رو داشته باشید میتونید کدتون رو اجرا کنید. یعنی شما برا انتقال برنامه های پایتون از سیستمی به سیستمی دیگه ، کد برنامه رو جابجا میکنید نه فایل اجرایی رو. اینم دلیلش مفسری بودن پایتونه. برخلاف زبانی مث سی که باید قبل از اجرا کامپایل بشه پایتون نیازی به این کار نداره و تفسیر و اجرا در یک مرحله انجام میشن. ینی هرخط کد به محض تفسیر اجرا هم خواهد شد. پس شما هرجایی که بتونید مفسر پایتون رو داشته باشید ، قادر خواهید بود کد مورد نظرتون رو هم اجرا کنید. البته باید در مورد کتابخانه های شخص ثالثی که عمولا برای برخی از راه حل ها وابسته به یه پلت فرم خاص منتشر میشه باشید.
عنوان: پاسخ : بهترین و مطمئن راه نوشتن برنامه به صورت Cross-Platform چیست؟
ارسال شده توسط: { AliReaza } در 02 خرداد 1394، 11:28 ب‌ظ
شما هرجایی که مفسر پایتون رو داشته باشید میتونید کدتون رو اجرا کنید. یعنی شما برا انتقال برنامه های پایتون از سیستمی به سیستمی دیگه ، کد برنامه رو جابجا میکنید نه فایل اجرایی رو. اینم دلیلش مفسری بودن پایتونه. برخلاف زبانی مث سی که باید قبل از اجرا کامپایل بشه پایتون نیازی به این کار نداره و تفسیر و اجرا در یک مرحله انجام میشن. ینی هرخط کد به محض تفسیر اجرا هم خواهد شد. پس شما هرجایی که بتونید مفسر پایتون رو داشته باشید ، قادر خواهید بود کد مورد نظرتون رو هم اجرا کنید. البته باید در مورد کتابخانه های شخص ثالثی که عمولا برای برخی از راه حل ها وابسته به یه پلت فرم خاص منتشر میشه باشید.
خیلی ممنون. از این جهت خیالم راحت شد.  \\:D/


فعلا مشکل من پیدا کردن یک GUI مناسب هست.  :'(
kivy همه چیزش خوبه، اما تا الان نتونستم راه حلی برای " فارسی نویسی " پیدا کنم.  :-X
با بقیه GUI ها مشکل اجرا نشدن در همه سیستم عامل ها را دارم.  :( ( مثلا برای PyQt و WX نتونستم پیدا کنم که در Android اجرا بشن و... )


دوستان کسی راه حلی داره که چطوری در kivy می توان فارسی نوشت؟  ???

راستی مشکل فارسی نویسی در PyQt ندارم، اما بجاش نمی دونم چطوری در Android اجراش کنم.

تازه بعد از فارسی نویسی دو مشکل RTL و یک منبع آموزشی برای kivy هم باید اضافه کرد.  ](*,)


در کل اگر ۴ مشکل زیر برطرف بشه، من شروع می کنم به نوشتن برنامه:
۱- فارسی نویسی
۲- RTL
۳- یک منبع آموزشی مناسب با GUI
۴- اجرا شدن در GNU/Linux, Windows, MacOS, Android و در صورت امکان iOS
عنوان: پاسخ : بهترین و مطمئن راه نوشتن برنامه به صورت Cross-Platform چیست؟
ارسال شده توسط: HSN6 در 03 خرداد 1394، 09:51 ق‌ظ
با fribidi می‌شه یه کارایی در مورد فارسی‌نویسی کرد .
منبع‌ش هم خود مستندات‌ش !
در همه‌ی این سکوهایی که فرمودید هم اجرا می‌شه ولی چون باید مفسر پایتون و کتاب‌خونه‌های کیوی رو داشته باشه ، حجم برنامه بیش‌تر از یک مثلاً برنامه‌ی جاوا در اندروید می‌شه .
عنوان: پاسخ : بهترین و مطمئن راه نوشتن برنامه به صورت Cross-Platform چیست؟
ارسال شده توسط: abyz در 03 خرداد 1394، 10:36 ق‌ظ
من با توجه به تجربیاتی که خودم دارم موارد زیر به ذهنم میرسه

چطوری می تونم مطمئن بشم که برنامه در همه جا کار میکنه و نیازی به دوباره نوشتن برنامه برای هر سیستم عامل نداشته باشم؟ و نیازی به آزمایش برنامه در سیستم عامل های مختلف نداشته باشم؟ ( یک بار بنویسم و مطمئن باشم در همه جا کار میکنه. )
اولا اینکه تقریبا غیر ممکنه که کد رو یکبار بنویسی و بدون آزمایش تو سیستم‌عامل‌ها مختلف کار کنه. حتما نیاز به آزمایش داره و معمولا به دلایل متفاوت نیاز به دیباگ و تغییرات کوچک داره

برای اجرای پایتون رو اندروید هم باید مفسر پایتون و لایبرری‌ها رو کامپایل کنید و به apk اضافه کنید. پس اگه میخواد qt روی اندروید داشته باشید باید مفسر پایتون و qt رو با استفاده از NDK کامپایل کنید و توی apk توی اضافه کنید تا اپلیکیشن کار کنه.

تا اونجایی هم که من میدونم احتمالا اینکه حتی کدی رو به جاوا بنویسید و روی دسکتاپ و اندروید اجرا بشه باز هم کمه. یعنی ساختار پنجره بندی و کار کردن اندروید به علت موبایل بودن با اکثر سیستم عاملهای دسکتاپ فرق داره پس کد اندروید به احتمال زیاد روی دسکتاپ به سختی اجرا میشه!


امیدوارم اینا به درد خورده باشه
عنوان: پاسخ : بهترین و مطمئن راه نوشتن برنامه به صورت Cross-Platform چیست؟
ارسال شده توسط: حامد مصافی در 03 خرداد 1394، 05:18 ب‌ظ
شماره یک کراس‌پلت‌فرم کیوت (Qt) هست.
کدی که با کیوت نوشته میشه در اکثر سیستم‌عامل‌ها اجرا میشه. من جمله اندرویدی که اشاره فرمودید.
اگر میخوای با کیوت کار کنی چرا لقمه‌رو دور سرت میچرخونی؟ با همون سی‌پلاس‌پلاس کار کن که مشکل مفسر نداشته باشی.
با یونیکد و بالطبع فارسی مشکلی نداره.
۲۰ ساله داره توسعه پیدا می‌کنه و هر روز داره کامل‌تر میشه.
عنوان: پاسخ : بهترین و مطمئن راه نوشتن برنامه به صورت Cross-Platform چیست؟
ارسال شده توسط: { AliReaza } در 03 خرداد 1394، 08:01 ب‌ظ
سلام به همه دوستان

تا اینجا نتیجه این شد که نمی توان صد در صد یک برنامه نوشت و در همه جا استفاده کرد. ( اما با توجه به جستجوهایی که داشتم kivy و Qt گفتن که " یک بار بنویس و همه جا استفاده کن " چنتا نمونه کوچولو با kivy درست کردم، مشکلی نداشتم و همه جا کار می کنه بخصوص در Android )

فعلا که وقت کافی برای رفتن سمت زبان های دیگر ندارم. اما اگر فاز اول کار تایید بشه. برای فاز دوم به بعد می تونم زمان بخرم، میرم سمت Cpp.

فعلا برای فاز اول یک هفته وقت دارم، با kivy کار میکنم و نتیجه را اینجا اعلام میکنم.
عنوان: پاسخ : بهترین و مطمئن راه نوشتن برنامه به صورت Cross-Platform چیست؟
ارسال شده توسط: محمد فدوی در 06 خرداد 1394، 05:12 ب‌ظ
سلام.
اگر می‌خوای برنامه‌ای داشته باشی که روی همه‌چیز(!) اجرا بشه، به نظرم راحت‌تری که برنامه‌ت رو به دوتا برنامه (یکی برای دسکتاپ و یکی برای اسمارت‌فون) تقسیم کنی.
برای اسمارت‌فون من Phonegap (http://phonegap.com/) رو پیشنهاد می‌کنم که روی همه‌چیز اجرا می‌شه (اندروید، ویندوزفون، آی‌اواس، فایرفاکس‌او‌اس و...)! برای دسکتاپ هم Electron (http://electron.atom.io/) خوبه به نظرم. هر دوی اینا به برنامه به چشم یه WebApplication نگاه می‌کنن پس تقریبا دوتا برنامه‌ت یه کد مشابه (با کمی تغییر) خواهد داشت.
خوبی دیگه اینه که به سادگی می‌تونی برنامه‌ت رو به یه WebApplication هم تبدیل کنی!
از همه‌ی اینا گذشته نیاز به یادگیری زبان خاصی نیست. اینا با ابزارهای روتین HTML + CSS + Javascript کار می‌کنن.
آخرین و بزرگ‌ترین مزیت هم گزینه‌های بی‌شمار روی میزه! چون دید این دوتا فریمورک جالب به برنامه مثل یه WebApplicaionئه ابزارای بی‌شماری مثل Bootstrap (http://getbootstrap.com/) و AngularJS (https://angularjs.org/) رو داری که زندگی رو آسون‌تر می‌کنن.

موفق باشی.
عنوان: پاسخ : بهترین و مطمئن راه نوشتن برنامه به صورت Cross-Platform چیست؟
ارسال شده توسط: { AliReaza } در 07 خرداد 1394، 09:00 ق‌ظ
سلام.
اگر می‌خوای برنامه‌ای داشته باشی که روی همه‌چیز(!) اجرا بشه، به نظرم راحت‌تری که برنامه‌ت رو به دوتا برنامه (یکی برای دسکتاپ و یکی برای اسمارت‌فون) تقسیم کنی.
برای اسمارت‌فون من Phonegap (http://phonegap.com/) رو پیشنهاد می‌کنم که روی همه‌چیز اجرا می‌شه (اندروید، ویندوزفون، آی‌اواس، فایرفاکس‌او‌اس و...)! برای دسکتاپ هم Electron (http://electron.atom.io/) خوبه به نظرم. هر دوی اینا به برنامه به چشم یه WebApplication نگاه می‌کنن پس تقریبا دوتا برنامه‌ت یه کد مشابه (با کمی تغییر) خواهد داشت.
خوبی دیگه اینه که به سادگی می‌تونی برنامه‌ت رو به یه WebApplication هم تبدیل کنی!
از همه‌ی اینا گذشته نیاز به یادگیری زبان خاصی نیست. اینا با ابزارهای روتین HTML + CSS + Javascript کار می‌کنن.
آخرین و بزرگ‌ترین مزیت هم گزینه‌های بی‌شمار روی میزه! چون دید این دوتا فریمورک جالب به برنامه مثل یه WebApplicaionئه ابزارای بی‌شماری مثل Bootstrap (http://getbootstrap.com/) و AngularJS (https://angularjs.org/) رو داری که زندگی رو آسون‌تر می‌کنن.

موفق باشی.
خیلی ممنون از پیشنهادهایتان

والا بیشتر دنبال اینم که یک بار بنویس و همه جا استفاده کنم. ( فعلا با Python )
تا الان kivy تونسته جوابگو باشه و ازش راضی هستم. ( هرچند توبعضی قسمتها اذیت میکنه )

چند دقیقه پیش برنامه را تحویل دادم و فاز یک تموم شده. فعلا منتظر جواب نهایی هستم.
برام دعا کنید دوستان  [-o<

اگر تایید بشه که خیلی عالی میشه.
اگر تایید نشه که میرم برای یادگیری JAVA و...  \\:D/