روز گذشته نسخه ۵.۲ فریمورک برنامهنویسی کراس پلتفرم کیوت منتشر شد. این نسخه حاصل ۶ ماه تلاش و کار سخت برنامهنویسان و توسعه دهندگان این پروژه است که ویژگیهای جدید و قابل توجهی از قبیل پشتیبانی از انواع سیستمعاملهای موبایل را به همراه دارد.
پشتیبانی از سیستمعاملهای موبایل
کیوت ۵.۲ کاملا وارد دنیای موبایل شده و به عنوان بازیگر کلیدی شروع به ایفای نقش کرده است. این نسخه با پشتیبانی از اندروید، iOS، BlackBerry، SailfishOS و اوبونتو موبایل منتشر و مجموعه سیستمعاملهای پشتیبانی شده از این فریمورک بزرگتر از همیشه شده و کار اجرای برنامههای فعلی دسکتاپ یا سیستمهای توکار را در موبایلها و تبلتها بسیار آسان ساخته است.
همچنین پشتیبانی از Windows RT نیز در راه است که انتظار میرود در نسخه ۵.۳ به پایداری کامل برسد.
کیوت در اندروید و iOS
به دلیل تازگی پشتیبانی برای این دو سیستمعامل، تعدادی از API ها هنوز ساخته یا آماده نشدهاند. برای مثال Qt WebKit برای اندروید آماده نیست و توسعه دهندگان به دلیل مغایرت با سیاستهای App Store قادر به آماده سازی آن برای iOS نبودهاند. اما کار بر گنجاندن محتوای وب در دیگر API ها در جریان است و در آینده آماده سازی خواهد شد. در حال حاضر استفاده از API های بومی سیستمعامل در زمینه وب توصیه میشود. همچنین Qt Bluetooth و Qt NFC نیز هنوز آماده نشده و در نسخههای بعدی قرار خواهند گرفت.
با این حال تمامی API های دیگر (از جمله Qt Sensors، Qt Quick و Qt Multimedia) کاملا آماده استفاده هستند. توسعه دهندگان کیوت در صورت بروز مشکل در استفاده از این API ها، استفاده از API های بومی سیستمعامل را توصیه میکنند؛ که برای این کار در اندروید میتوان از طریق ماژول جدید Android Extras، از API مناسب برای دسترسی به رابط بومی جاوا (JNI) و بهره گیری از آن استفاده کرد. برای اطلاعات بیشتر به این لینک مراجعه فرمایید.
توسعه برنامههای کیوت برای موبایل از طریق Qt Creator IDE برای اندروید، BlackBerry و SailfishOS کاملا امکان پذیر میباشد. اما پشتیبانی آن از iOS هنوز در مرحله آزمایشی قرار دارد.
همچنین نسخه Qt Mobile نیز به همراه این کیوت ۵.۲ معرفی شده است. این نسخه یک بسته مخصوص و درخور برنامهنویسان موبایل است که به آنها کمک میکند تا از یک تکنولوژی واحد برای توسعه برنامه در مارکتهای fragmented استفاده کنند.
کار بر این نسخه تنها به پلتفرمهای موبایل محدود نبوده و شامل دیگر پلتفرمهای دسکتاپ نیز شده است. حدود ۱۵۰۰ باگ از بعد از انتشار نسخه ۵.۱.۱ رفع و بهبودهایی در کل کتابخانهها اعمال شده اند. ماژولهای جدید نیز با پشتیبانی platform-specific (پشتیبانی و بهرهگیری از ویژگیهای به خصوص هر پلتفرم) انتشار یافتهاند.
بهبودهای دسکتاپ
کیوت از سیستمعاملهای دسکتاپ شروع شد و دلیل اصلی موفقیت تا به اینجایش نیز همین است. از بهبودهایی که در زمینه دسکتاپ حاصل شده است، میتوان به موارد زیر اشاره کرد:
– بهبود Qt Quick Controls و آسان سازی گنجانیدن Qt Quick در برنامههای متکی بر QWidget؛
– باگفیکسها و بهبودهای بسیار در ماژول Qt Widgets؛
– افزوده شدن کلاس QKeySequenceEdit در قسمت QWidget به منظور آسان سازی تعیین کلیدهای میانبر مورد استفاده کاربر و تنظیم کردن آن؛
– پشتیبانی از Accessibility در تمامی پلتفرمهای دسکتاپ (و اندروید)؛
– ماژول Qt Windows Extras به منظور ادغام سازی با کد بومی در ویندوز؛
– ماژول Qt Mac Extras به منظور ادغام سازی با کد بومی در مک؛
– بهبود پشتیبانی از منطقه زمانی و تنظیمات محلی از طریق QTimeZone و QCollator؛
– پشتیبانی از بلوتوث در لینوکس از طریق ماژول Qt Bluetooth؛
– و فیکسهای بسیار دیگر به منظور پشتیبانی بهتر از OS X Mavericks
نوسازی Qt QML و Qt Quick
علاوه بر تغییرات مذکور، تغییرات دیگری نیز در سیستم داخلی اعمال شده است. ماژول Qt QML با یک موتور جدید همراه شده که وابستگی به موتور V8 JacaScript را حذف کرده است. این موتور کاملا از نو طراحی شده و QML به عنوان هدف اصلی آن در نظر گرفته شده است. از حالت تفسیری (interpreted) پشتیبانی میکند و بنابراین توانایی اجرا بر معماریهایی که JIT در آنها قابل اجرا نیست را دارد؛ برای مثال در iOS که JIT کردن مغایر با سیاستهای App Store است. در نسخههای قبلی کیوت، ادغام سازی با موتور V8 JavaScript دشوار بود و در هنگام جابجایی بین مرز کد کیوت و جاوا اسکریپت، مشکلات پرفرومنسی ایجاد میکرد. این مشکل به لطف موتور جدید (که از نوعهای داده کیوت مستقیما استفاده کرده و در ارتباط با کد کیوت به سرعت عمل میکند) برطرف شده است و بهبودهای محسوس را میتان در برنامههای QML مشاهده کرد.
با این وجود به دلیل تازگی این ویژگی در کیوت ۵.۲، برنامههایی که از جاوا اسکریپت در کد آنها بسیار استفاده شده کندتر از نسخه ۵.۱ اجرا میشوند. کیوت ۵.۲.۱ با بهبودهای دیگری در زمینه پرفورمنس همراه خواهد بود و موتور جدید در نسخه ۵.۳ طبق گفته تیم کیوت بهبودهای چشمگیری خواهد داشت.
تغییرات Qt Quick هم کم نبوده است. رندر کننده Scene Graph کاملا بازنویسی شده و بازدهی رندرینگ را بسیار بهبود بخشیده است که به آزاد شدن هر چه بیشتر تایم سیپییو برای استفاده خود برنامه میانجامد. علاوه بر آن تمامی QQuickView ها در thread مختص خود رندر میشوند تا از بلاک شدن یکی توسط دیگری جلوگیری شود. همچنین پشتیبانی از یک نوع انیمیشن جدید به نام Animator نیز افزوده شده که باعث اجرای بسیاری از برنامه ها در thread مخصوص رندرینگ میشود. نتیجه این تغییرات جلوگیری از بلاک انیمیشنها حتی در هنگام سنگین بودن بار بر thread اصلی میباشد.
Qt Creator 3.0 و دیگر ابزارها
کیوت ۵.۲ با Qt Creator 3.0 ارائه میشود. این نسخه جدید از Qt Creator پشتیبانی از پلتفرمهای موبایل را بهبود بخشیده و API های پلاگین آن پایدارتر شدهاند. همچنین به عنوان بنیادی برای ساخت افزونههای پلاگین شخص ثالث برای Qt Creator محسوب میشود که در آینده بهتر هم خواهد شد.
چندین ماژول و API های جدید نیز به کیوت ۵.۲ راه یافتهاند که از میان آنها میتوان به موقعیتیابی از طریق ماژول Qt Positioning، پشتیبانی از بلوتوث در لینوکس و BlackBerry با ماژول Qt Bluetooth، پشتیبانی از NFC در BlackBerry، پشتیبانی از مناطق زمانی و تلفیق یونیکد، و افزوده شدن ماژولهای Extras برای ویندوز، مک و اندروید اشاره کرد. QtWebKit نیز به روز رسانی شده و از میان ویژگیهای جدید آن میتوان CSS Blending، Geolocation، Web Notification و یک garbage collector در حالت thread بندی شده را نام برد.
برای تست کیوت میتوانید برنامههای Qt Quick جدید را از مارکت پلیس پلتفرم موبایل خود دریافت کنید. برای نمونه برنامه پیشبینی وضع هوا Quick Forecast از Google Play و App Store قابل دریافت و استفاده است.
برای دریافت کیوت نسخه ۵.۲ به وبسایت اصلی و به منظور دریافت نسخه انترپرایز با تریال ۳۰ روزه به اینجا مراجعه فرمایید. اگر هدف شما تنها برنامهنویسی برای موبایل است میتوانید تریال ۳۰ روزه Qt Mobile را از این لینک دریافت و نصب کنید.
7 دیدگاه برای این نوشته:
سعید زرین فام:
۲۲ آذر ۱۳۹۲ تشکر از مطالب خوبتون.موسی:
۲۲ آذر ۱۳۹۲ ممنون از خبر خوبتون.
ولی دیدن ترایال ۳۰ روزه برای کیوت اصلا حس جالبی نداشت!مجتبی:
۲۲ آذر ۱۳۹۲ ممنون بابت خبر
میشه بفرمایید نسخهی رایگان نسبت به نسخهی اینترپرایز چه محدودیتهایی داره؟عرفان طباطبائی:
۲۲ آذر ۱۳۹۲ نسخه انترپرایز ویژگیهای بیشتری از قبیل رسم انواع نمودار، تصویر سازی از داده به صورت سه بعدی و حالتهای دیگه و کتابخانهها و ابزارهای بیشتر مخصوص رفع نیازهای انترپرایز رو داره. برای لیست کامل و توضیح بیشتر اینجا رو ببینین.سروش:
۲۲ آذر ۱۳۹۲ هیچی. فقط نمیتونی زنگ بزنی به دیجیا و بگی مشکل دارم با کیوت، اونها هم مشکلت رو تلفنی برطرف کنن یا یه نفر بفرستن شرکتتون برای پشتیبانی.علیرضا:
۲۴ آذر ۱۳۹۲ تا اونجایی که من یادم بود، و قدیما از کیوتی استفاده میکردم، فقط نسخه ی GPL ،LGPL داشت، که اپن سورس هم بودن اگه اشتباه نکنم، ولی الان یکم اذیت کننده میشه با این دیدگاه تجاری،سروش:
۲۶ آذر ۱۳۹۲ الانم بهطور کامل متنبازه.
لایسنسش LGPL و Commercial هست