Qtیک چهارچوب توسعه چندسکویی: کمتر کد بزنید، بیشتر بسازید، همه‌جا اجرا کنید

کیوت چیست؟
کیوت یک چارچوب توسعه چندسکویی برنامه‌های گرافیکی بر پایه سی‌پلاس‌پلاس است که به شما امکان اجرای برنامه‌هایتان را روی سیستم‌عامل‌ها و سخت‌افزارهای مختلف با عملکردی بالا و سرعتی مانند برنامه‌های بومی آن، با ظاهری تقریبا یکسان با آن‌هامی‌دهد.
با استفاده از کیوت، شما یک بار برنامه خود را می‌نویسید و بعد از آن، تنها نیاز به کامپایل برنامه خود برای سیستم‌عامل‌های مختلف دارید.

کیوت از ابتدا با هدف تبدیل شدن به بهترین ابزار توسعه نرم‌افزارهای دارای رابط کاربری شروع شد

کیوت از ابتدا با هدف تبدیل شدن به بهترین ابزار توسعه نرم‌افزارهای دارای رابط کاربری شروع شد و در حال حاضر با توجه به گستردگی استفاده‌ از آن توسط شرکت‌های بزرگ و کوچک بسیار، می‌توان گفت به این هدف نزدیک شده است.

تاریخچه:
پروژه کیوت در سال ۱۹۹۱ توسط هاوارد نورد (Haavard Nord) و اریک کمب‌انگ (EirikChambe-Eng) شروع شد و سپس بعد از چند بار تغییر نام شرکت، شرکتی با نام «Trolltech» توسط این دو ثبت شد. در سال ۲۰۰۸ نوکیا این شرکت‌ را با هدف استفاده از کیوت در توسعه نرم‌افزارهای موبایلی خود مانند سیمبیان، مائمو و می‌گو خریداری کرد و بعد از انتشار اولین محیط توسعه خود بر پایه آن، کد کیوت را به سایت کنترل نسخه گیتوریوس منتقل کرد تا مانند قبل با کمک جامعه به انتشار نسخه‌های بعدی آن بپردازد. در نهایت در سال ۲۰۱۲ کیوت به شرکت دیجیا فروخته شد که در حال حاضر مجوز فروش و پشتیبانی تجاری کیوت را داراست و در کنار آن با جامعه ‌نرم‌افزار‌های آزاد همکاری لازم را دارد تا کیوت همچنان به صورت آزاد توسعه داده شود.
کیوت به صورت Qt نوشته می‌شود و به صورت رسمی کیوت خوانده می‌شود. نام Qtمخفف نیست و دلیل انتخاب این نام، زیبا به نظر رسیدن حرف Q در برنامه ‌ایمکس یکی از توسعه‌‌دهندگان اولیه کیوت بود و t هم با الهام از x toolkit)xt) به انتهای آن اضافه شد.

ساختار کیوت:
برای ساخت برنامه‌های کیوت دو راه اصلی وجود دارد که مدل اول استفاده از سی‌پلاس‌پلاس و در کنار آن استفاده از ویجت‌ها (widget) است که ساختار سنتی و اولیه استفاده از کیوت است که معمولا برای توسعه نرم‌افزارهای تحت دسکتاپ‌ و برنامه‌های توکار مورد استفاده قرار می‌گیرد.

QLabel *label = newQLabel(“Hello World!”);

مدل دیگر، استفاده از کیوت کوئیک (Qt Quick) و زبان کیو‌ ام‌ ال (QML) است که زبانی توصیفی با ساختاری شبیه جی‌سِن (JSON) است که برای توسعه رابط‌های کاربری برای محیط‌های لمسی ایده‌آل است.

Label {
   text : “Hello World!”}

نقاط قوت:
با استفاده از کیوت علاوه‌ بر مستقل بودن از بستر (cross platform)، زمان توسعه برنامه شما نسبت به ابزار‌های مشابه بسیار کمتر است و هزینه پشتیبانی و نگهداری کد‌ها نیز پایین‌تر خواهد بود.
شما به‌راحتی می‌توانید با ابزارهایی که در این کیت توسعه وجود دارد برنامه خود را به زبان‌های بین‌المللی مختلف ترجمه کنید و بازاری جهانی را هدف قرار ‌دهید.
با توجه به ساختار کیوت، برنامه شما برای سیستم‌عامل‌های مختلف، کامپایل می‌شود که این خود از لحاظ کارآیی (performace)، کیوت را در سطح بسیار بالا‌تری نسبت به سایر ابزارهای چند بستری (cross platform) قرار می‌دهد.

نقات ضعف:
در نهایت باید بدانید که هیچ ابزار صددرصد عالی‌ای وجود نداردو کیوت هم از این قاعده مستثنی نیست. به طور مثال خروجی برنامه‌ برای سیستم‌عامل اندروید (در صورتی که کتابخانه‌های کیوت داخل پروژه باشند) حجمی بیشتر از معادل همان برنامه که با ابزارهای پیش‌فرض اندروید توسعه داده شده باشد را داراست و همچنین برای ارتباط با بخش‌های خاص سیستم‌عامل‌های مختلف مانند دسترسی به پیام‌ها در سیستم‌‌عامل‌های موبایل یا امکاناتی نظیر آن،کار سخت‌‌تری را پیش رو خواهید داشت. اگرچه هر روز که می‌گذرد کیوت یکپارچه‌‌‌سازی بیشتری با سیستم‌عامل‌های موبایل پیدا کرده و این مشکلات کمتر می‌شوند.

مجوز:
کیوت هم به صورت تجاری و هم به صورت آزاد موجود است و بنابر نیاز خود می‌توانید از هر یک از این دو مجوز استفاده نمایید. مجوز‌های آزاد کیوت شامل GPL v3 ,LGPL v3 و LGPL v2 می‌شود که با توجه به قوانین مجوز LGPL، شما حتی امکان توسعه نرم‌افزارهای انحصاری را نیز به صورت قانونی دارا هستید.

پشتیبانی از زبان‌های مختلف:
برای کار با کیوت نیازی نیست تا برنامه‌نویس حرفه‌ایسی‌پلاس‌پلاس باشید و اکثر نیاز‌های شما، با دانشی متوسط از سی‌پلاس‌پلاس، برطرف خواهد شد اما در صورت عدم‌ تمایل به استفاده از آن، می‌توانید از زبان‌های مختلف دیگری نیز در کنار کیوت استفاده کنید و تنها رابط گرافیکی برنامه‌ را با استفاده از کیوت
توسعه ‌دهید.

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


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

یادگیری:
در صورت تمایل به یادگیری کیوت، ابتدا نیاز به تقویت دانش سی‌پلاس‌پلاس خود تا حدی متوسط دارید و بعد از آن بهتر است از کتاب‌های منتشر‌ شده موجود برای کیوت۴ (نسخه قدیمی‌تر کیوت) یک یا دو فصل را مطالعه کنید تا با مفاهیم اولیه کیوت آشنا شوید، سپس به وب‌سایتqmlbook.orgرفته که به آموزش آخرین نسخه کیوت (کیوت۵) می‌پردازد و نسبت به مطالعه و تمرین مطالب آن اقدام نمایید.
در نهایت مستندات رسمی کیوت را بررسی کنید و با ماژول‌ها و کلاس‌های مختلف کیوت آشنا شوید تا در صورت نیاز از وجود آن‌ها مطلع باشید.مثال‌های موجود در این مستندات طیف گسترده‌ای از برنامه‌ها را پوشش داده است و بررسی کد آن‌ها و تمرین و تغییر آن‌ها در فرآیند یادگیری کیوت بسیار مفید خواهد بود.

یکپارچه‌سازی:
با هدف کاهش سردرگمی کاربران تازه وارد شده به دنیای کیوت، به‌تازگی پرتال آزاد و تجاری کیوت با یکدیگر یکپارچه شد‌ه‌اند و از این پس، با مراجعه به آدرس qt.io، علاوه برامکان دریافت نسخه‌های مختلف تجاری و آزاد (متن‌باز) کیوت، امکان دسترسی به مستندات برخط کیوت را نیزاز آدرس
doc.qt.io خواهید داشت. سایر سرویس‌های موجود نظیر انجمن‌، ویکی‌ و… نیز در اوایل سال ۲۰۱۵ به طور کامل به این آدرس منتقل خواهند شد.

آینده:
شرکت دیجیا در کنار توسعه‌‌دهندگان آزاد کیوت، با توجه به کامل بودن این ابزار در دنیای دسکتاپ، به طور جدی به توسعه و پشتیبانی هر چه بیشتر کیوت از سیستم‌عامل‌های دنیای موبایل پرداخته ودر این مسیر تاکنون گام‌های جدی‌ای برداشته تا کیوت را تبدیل به بهترین ابزار توسعه‌ نرم‌افزار‌های موبایلی کند و در آینده‌ای نزدیک بتواند بخش بزرگی از توسعه‌‌دهندگان نرم‌افزارهای چندسکویی (cross platfrom) کنونی را به خود جذب کند.