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

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: بهترین و مطمئن راه نوشتن برنامه به صورت Cross-Platform چیست؟  (دفعات بازدید: 5271 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین { AliReaza }

  • Hero Member
  • *
  • ارسال: 866
  • جنسیت : پسر
  • اگه کفشت پاتو می زد و از ترس قضاوت مردم پابرهنه نشدی و درد رو به پات تحمیل کردی، دیگر در مورد آزادی شعار نده...
سلام دوستان

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

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

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

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

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


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

آفلاین emertat89

  • Newbie
  • *
  • ارسال: 6
  • جنسیت : پسر
اگر مایل به استفاده از پایتون هستید، می تونید از pyqt یا kivy استفاده کنید

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

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

آفلاین 不眠症

  • Full Member
  • *
  • ارسال: 191
  • جنسیت : پسر
    • lazygeek
فلش!  :D

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

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

آفلاین { AliReaza }

  • Hero Member
  • *
  • ارسال: 866
  • جنسیت : پسر
  • اگه کفشت پاتو می زد و از ترس قضاوت مردم پابرهنه نشدی و درد رو به پات تحمیل کردی، دیگر در مورد آزادی شعار نده...
فلش!  :D

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

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

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

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

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

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

دوستان عزیز دیگر، منتظر نظرات و راهنمایی های سبزتان هستم

آفلاین abdoullah

  • Full Member
  • *
  • ارسال: 170
  • جنسیت : پسر
سلام
من نمیدونم python چه شکلیه یعنی نیاز به تغییر کد داره تو سیستم عامل ها یا همونو میتونی اجرا کنی ؟
ولی راستیتش توی جاوا به این شکل نیست که همون برنامه ایی که تو توی دستکاپ نوشتی رو بتونی توی اندروید اجرا کنی و نیاز به تغییراتی داره ولی توی سیستم عامل های دستکاپ مشکلی نیست و میتونی برنامه ی جاوا رو اجرا کنی
زندگی کردن با لینوکس رو دوست دارم

آفلاین { AliReaza }

  • Hero Member
  • *
  • ارسال: 866
  • جنسیت : پسر
  • اگه کفشت پاتو می زد و از ترس قضاوت مردم پابرهنه نشدی و درد رو به پات تحمیل کردی، دیگر در مورد آزادی شعار نده...
سلام
سلام

من نمیدونم python چه شکلیه یعنی نیاز به تغییر کد داره تو سیستم عامل ها یا همونو میتونی اجرا کنی ؟
من هم در اصل دنبال همین جواب هستم.

آفلاین samis

  • Full Member
  • *
  • ارسال: 112
من نمیدونم python چه شکلیه یعنی نیاز به تغییر کد داره تو سیستم عامل ها یا همونو میتونی اجرا کنی ؟
من هم در اصل دنبال همین جواب هستم.

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

آفلاین { AliReaza }

  • Hero Member
  • *
  • ارسال: 866
  • جنسیت : پسر
  • اگه کفشت پاتو می زد و از ترس قضاوت مردم پابرهنه نشدی و درد رو به پات تحمیل کردی، دیگر در مورد آزادی شعار نده...
شما هرجایی که مفسر پایتون رو داشته باشید میتونید کدتون رو اجرا کنید. یعنی شما برا انتقال برنامه های پایتون از سیستمی به سیستمی دیگه ، کد برنامه رو جابجا میکنید نه فایل اجرایی رو. اینم دلیلش مفسری بودن پایتونه. برخلاف زبانی مث سی که باید قبل از اجرا کامپایل بشه پایتون نیازی به این کار نداره و تفسیر و اجرا در یک مرحله انجام میشن. ینی هرخط کد به محض تفسیر اجرا هم خواهد شد. پس شما هرجایی که بتونید مفسر پایتون رو داشته باشید ، قادر خواهید بود کد مورد نظرتون رو هم اجرا کنید. البته باید در مورد کتابخانه های شخص ثالثی که عمولا برای برخی از راه حل ها وابسته به یه پلت فرم خاص منتشر میشه باشید.
خیلی ممنون. از این جهت خیالم راحت شد.  \\:D/


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


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

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

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


در کل اگر ۴ مشکل زیر برطرف بشه، من شروع می کنم به نوشتن برنامه:
۱- فارسی نویسی
۲- RTL
۳- یک منبع آموزشی مناسب با GUI
۴- اجرا شدن در GNU/Linux, Windows, MacOS, Android و در صورت امکان iOS

آفلاین HSN6

  • Hero Member
  • *
  • ارسال: 866
  • جنسیت : پسر
  • یک راَکتیست اسپرانتیست پایتونیست گودوئیست!
    • بلاگ شخصی
با fribidi می‌شه یه کارایی در مورد فارسی‌نویسی کرد .
منبع‌ش هم خود مستندات‌ش !
در همه‌ی این سکوهایی که فرمودید هم اجرا می‌شه ولی چون باید مفسر پایتون و کتاب‌خونه‌های کیوی رو داشته باشه ، حجم برنامه بیش‌تر از یک مثلاً برنامه‌ی جاوا در اندروید می‌شه .

آفلاین abyz

  • Jr. Member
  • *
  • ارسال: 83
  • جنسیت : پسر
    • تجربه‌های پراکنده
من با توجه به تجربیاتی که خودم دارم موارد زیر به ذهنم میرسه

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

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

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


امیدوارم اینا به درد خورده باشه
تجربه‌های پراکنده من http://blog.abyz.ir
بسازید شکست بخورید اما موفق شوید http://pretotyping.ir

آفلاین حامد مصافی

  • Jr. Member
  • *
  • ارسال: 60
شماره یک کراس‌پلت‌فرم کیوت (Qt) هست.
کدی که با کیوت نوشته میشه در اکثر سیستم‌عامل‌ها اجرا میشه. من جمله اندرویدی که اشاره فرمودید.
اگر میخوای با کیوت کار کنی چرا لقمه‌رو دور سرت میچرخونی؟ با همون سی‌پلاس‌پلاس کار کن که مشکل مفسر نداشته باشی.
با یونیکد و بالطبع فارسی مشکلی نداره.
۲۰ ساله داره توسعه پیدا می‌کنه و هر روز داره کامل‌تر میشه.
« آخرین ویرایش: 03 خرداد 1394، 10:53 ب‌ظ توسط حامد مصافی »

آفلاین { AliReaza }

  • Hero Member
  • *
  • ارسال: 866
  • جنسیت : پسر
  • اگه کفشت پاتو می زد و از ترس قضاوت مردم پابرهنه نشدی و درد رو به پات تحمیل کردی، دیگر در مورد آزادی شعار نده...
سلام به همه دوستان

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

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

فعلا برای فاز اول یک هفته وقت دارم، با kivy کار میکنم و نتیجه را اینجا اعلام میکنم.

آفلاین محمد فدوی

  • Sr. Member
  • *
  • ارسال: 485
  • جنسیت : پسر
  • آغاز آزادی از رایانهٔ شخصی
    • آغاز آزادی از رایانهٔ شخصی
سلام.
اگر می‌خوای برنامه‌ای داشته باشی که روی همه‌چیز(!) اجرا بشه، به نظرم راحت‌تری که برنامه‌ت رو به دوتا برنامه (یکی برای دسکتاپ و یکی برای اسمارت‌فون) تقسیم کنی.
برای اسمارت‌فون من Phonegap رو پیشنهاد می‌کنم که روی همه‌چیز اجرا می‌شه (اندروید، ویندوزفون، آی‌اواس، فایرفاکس‌او‌اس و...)! برای دسکتاپ هم Electron خوبه به نظرم. هر دوی اینا به برنامه به چشم یه WebApplication نگاه می‌کنن پس تقریبا دوتا برنامه‌ت یه کد مشابه (با کمی تغییر) خواهد داشت.
خوبی دیگه اینه که به سادگی می‌تونی برنامه‌ت رو به یه WebApplication هم تبدیل کنی!
از همه‌ی اینا گذشته نیاز به یادگیری زبان خاصی نیست. اینا با ابزارهای روتین HTML + CSS + Javascript کار می‌کنن.
آخرین و بزرگ‌ترین مزیت هم گزینه‌های بی‌شمار روی میزه! چون دید این دوتا فریمورک جالب به برنامه مثل یه WebApplicaionئه ابزارای بی‌شماری مثل Bootstrap و AngularJS رو داری که زندگی رو آسون‌تر می‌کنن.

موفق باشی.
« آخرین ویرایش: 06 خرداد 1394، 05:18 ب‌ظ توسط محمد فدوی »
اگر به بهداشت و فرهنگ رفتار با حیوانات علاقه دارید، از vetMD.ir دیدن کنید.
وبلاگ شخصی من: http://fadavi.net

آفلاین { AliReaza }

  • Hero Member
  • *
  • ارسال: 866
  • جنسیت : پسر
  • اگه کفشت پاتو می زد و از ترس قضاوت مردم پابرهنه نشدی و درد رو به پات تحمیل کردی، دیگر در مورد آزادی شعار نده...
سلام.
اگر می‌خوای برنامه‌ای داشته باشی که روی همه‌چیز(!) اجرا بشه، به نظرم راحت‌تری که برنامه‌ت رو به دوتا برنامه (یکی برای دسکتاپ و یکی برای اسمارت‌فون) تقسیم کنی.
برای اسمارت‌فون من Phonegap رو پیشنهاد می‌کنم که روی همه‌چیز اجرا می‌شه (اندروید، ویندوزفون، آی‌اواس، فایرفاکس‌او‌اس و...)! برای دسکتاپ هم Electron خوبه به نظرم. هر دوی اینا به برنامه به چشم یه WebApplication نگاه می‌کنن پس تقریبا دوتا برنامه‌ت یه کد مشابه (با کمی تغییر) خواهد داشت.
خوبی دیگه اینه که به سادگی می‌تونی برنامه‌ت رو به یه WebApplication هم تبدیل کنی!
از همه‌ی اینا گذشته نیاز به یادگیری زبان خاصی نیست. اینا با ابزارهای روتین HTML + CSS + Javascript کار می‌کنن.
آخرین و بزرگ‌ترین مزیت هم گزینه‌های بی‌شمار روی میزه! چون دید این دوتا فریمورک جالب به برنامه مثل یه WebApplicaionئه ابزارای بی‌شماری مثل Bootstrap و AngularJS رو داری که زندگی رو آسون‌تر می‌کنن.

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

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

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

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