تولید کننده آموزش و محصولات مبتنی بر برنامه نویسی مدرن

۱۴ مطلب با کلمه‌ی کلیدی «کیوت» ثبت شده است

بررسی پرفورمنس ایتم سفارشی برای QML

با سلام در این پست قصد دارم توضیحی در مورد QtQuick Custom Item Performance بدم و بعد نقدی بر روش استفاده از ساخت ایتم از سی پلاس پلاس برای کیو ام ال داشته باشم .

در این پست توضیح داده که اگر بخوایم یک ایتم کاستوم بکشیم سه راه پیش رو داریم و بعد به روش های زیر اشاره کرده :

  1. کشیدن با استفاده از اوپن جی ال و QQuickItem ( یا استفاده از یک ایتم داخلی )

  2. کشیدن با استفاده از QPainter و QQuickPaintedItem

  3. کشیدن با canvas

ادامه مطلب...
۰۱ شهریور ۹۷ ، ۰۱:۳۳ ۲ نظر موافقین ۱ مخالفین ۰
بهنام صباغی

استفاده از Qt یا برنامه نویسی نیتیو برای موبایل

با سلام

با توجه به سوالات پیاپی دوستان در مورد برنامه نویسی توسط کیوت برای موبایل بهتر دونستم یک پست به این منظور منتشر کنم .

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

حالا که یک توضیح کلی از فریمورک کیوت داریم بهتره بررسی کنیم که آیا برنامه نویسی برای موبایل با کیوت بهتر هست یا برنامه نویسی با زبان نیتیو برای این منظور باید چندین فاکتور رو در نظر بگیریم

  • حجم خروجی که اگر در اندروید بررسی کنیم حجم خروجی یک اپ کیوت کمترین حجمش از 8 و خورده ای مگ شروع میشه که نسبت به اپ نیتیو یک مقدار بالاتر هست که البته با این حجم از اینترنت که این روزها توی ایران مصرف میشه این حجم دیگه بالا نیست .
  • از مشکلات دیگه ای که میتونه سر راه باشه برای برنامه نویسی با کیوت زبان سی پلاس پلاس هست که شاید توی کارهای خیلی سبک به مشکلی باهاش نخورید و لی در واقع توی سطح حرفه ای کار هر کسی نیست کار کردن با این زبان و باید توان و انرژی زیادی برای یاد گیری این زبان به صورت حرفه ای بگذارید وگرنه خروجی که میدید ممکنه براتون مشکلاتی ایجاد کنه که کمترینش میتونه نشت حافظه باشه البته اگر برنامه نویس زبان هایی بغیر سی و سی پلاس پلاس باشید احتمالا آشنایی زیادی باهاش ندارید کوتاه میتونم براتون بگم نشت حافظه یعنی مقداری از فضای رم گرفته میشه ولی آزاد نمیشه و این در طول زمان میتونه مشکل ساز باشه و این در صورتی پیش میاد که شما برنامه نویسی سی پلاس پلاس رو درست بلد نباشید و با سطح مبتدی یا متوسط برنامه نویسی کرده باشید که البته اشاره گر های هوشمند این مشکل رو تا حد خیلی خوبی حل کردند که البته استفاده از خود اونها هم نیاز به دانش سطح حرفه ای توی سی پلاس پلاس داره وگرنه ممکنه با اشاره گر های هوشمند هم باز نشت حافظه داشته باشید.
  • نکته دیگه ای که لازم هست بدونید این هست که برای استفاده از یک سری سرویس های اندروید مثل نوتیکیشن و ... نیاز هست کد جاوا توی پروژه سی پلاس پلاستون بزنید و با استفاده از JNI از اون استفاده کنید یعنی نیاز هست یک مقدار آشنایی با جاوا برای هندل کردن این قسمت داشته باشید .

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

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

  • استفاده از زبان طراحی فوق عالی QML که میتونید به راحتی باهاش ارتباط بر قرار کنید و طراحی های فوق حرفه ای UI رو در کمترین زمان ممکن و با بالاترین کیفیت ممکن ایجاد کنید .
  • پشتیبانی سی پلاس پلاس باعث میشه که شما برای کارهای خاص کتابخنه های از پیش آماده و پایداری داشته باشید که میتونند دنیا رو براتون قشنگ تر بکنند از جمله پردازش صدا و تصویر و ...
  • استفاده از کیوت باعث میشه کمی کد اضافه تر و البته بدون دست بردن توی هسته برنامه اصلی خروجی روی دیگر پلتفرم ها از جمله IOS رو بتونید بگیرید یعنی با هزینه خیلی کمتر نسبت به توسعه نیتیو جداگانه هر پلتفرم میتونید به کار ادامه بدید .
  • جمع شدن این همه کتابخانه در موضوعات عام و خاص باعث شده توی کارهای حرفه ای تر اصلا لنگ پیدا کردن کتابخانه نمونید تا حدی که بعضی از همین ماژول های کیوت توی سطح حرفه ای شاخه خودش پرکاربرد ترین هست .
  • پرفورمنس بالا به دلیل استفاده از سی پلاس پلاس که میتونه توی کارهای خاص مثل مثلا هوش مصنوعی و پردازش های گرافیکی و همینطور پردازش های محاسباتی به کمکتون بیاد .
  • جامعه کاربری فعال که بیشتر سوالات قبلا توش پاسخ داده شده و با یک جستجو میشه به جواب رسید و اگر هم جوابی نباشه میتونید با پرسیدن در کوتاه ترین زمان به پاسخ سوال دسترسی پیدا کنید .
  • مثال های فراوان خود کیوت و جامعه کاربری و همینطور پروژه های واقعی بسیار زیاد اوپن سورس که باعث میشه همیشه برای کاری که میخواید انجام بدید مثالی در دسترس داشته باشید .
  • داکیومنت فوق العاده برای استفاده از کتابخانه های مختلف فریمورک و البته مثال هایی در خلال توضیحات که به فهم هرچه بیشتر روند کارکرد کتابخانه کمک خواهند کرد .

و البته خوبی های دیگه ای که شاید الان من حضور ذهن ندارم بهشون اشاره کنم .

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

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

توسعه اپ هایی مثل انتی ویروس و ... که پردازش و کار با فایل زیاد دارند یا اکثر بازی ها که پردازش سه بعدی و گرافیکی دارند و همینطور اپ های هوش مصنوعی دار و ... همیشه بهتر هست با سی پلاس پلاس انجام بشه .

این نظرات شخصی و البه با توجه به تجربه بنده هست ممنون میشم بقیه دوستان هم نظراتشون رو منتشر کنند .

علی یارتون

۱۲ تیر ۹۷ ، ۱۵:۱۹ ۴ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

انتشار قسمت نوزدهم آموزش Qml به زبان فارسی استفاده از canvas در qml

قسمت نوزدهم از سری آموزش‌های QtQml با موضوع canvas در QML منتشر شد . امیدوارم که این آموزش مفید واقع بشود .

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

صلواتی بفرستید برای سلامتی و تعجیل در فرج آقا امام زمان (عج) .

ویدئو در ادامه مطالب :

ادامه مطلب...
۰۸ بهمن ۹۶ ، ۱۲:۲۳ ۴ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

انتشار قسمت هفدهم آموزش Qml به زبان فارسی(ارتباط بین qml و cpp ) قسمت اول

با سلام خدمت دوستان و همراهان همیشگی

در قسمت هفدهم از سری آموزش های Qml به نحوه ایجاد ارتباط بین c++  و Qml پرداختم و یکی از روش های موجود رو توضیح دادم امیدوارم که مفید باشه و متنظر نظرات و انتقاداتتون هستم .

 

 

لینک آپارات ویدئو

۱۵ دی ۹۶ ، ۲۱:۳۲ ۲ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

آماده سازی سیستم برای گرفتن خروجی اندروید با کیوت روی لینوکس اوبونتو

با سلام خدمت دوستان عزیز

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

خب بریم سر اصل مطلب مطمئنا چون من تازه برگشتم روی لینوکس کامل لینوکسم خالی بود و هیچی نداشتم روش و اینم بگم که این آموزش برای خروجی روی لینوکس هست اگر دوست داشتید میتونید روش خروجی گرفتن روی ویندوز رو هم راحت پیدا کنید .

 

ادامه مطلب...
۱۰ آذر ۹۶ ، ۰۴:۱۸ ۲ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

خرابی لینک های آموزش کیوت Qml

با سلام خدمت دوستان و همراهان همیشگی 

با توجه ه گزارش های اخیر دوستان در مورد خرابی لینک های اپارات تصمیم گرفتم تا به اینجای آموزش رو با کیفیت 1080 توی یک فایل فشرده اپلود کنم برای دوستانی که میخواند دانلودش کنند .

تا به اینجای کار 16 قسمت از آموزش منتشر شده و مورد استقال هم قرار گرفته و امیدوارم فرصت کنم تا بقیه قسمت ها رو هم به زودی منتشر کنم این هم :

لینک دانلود 16 قسمت ابتدایی دوره کیوت Qml

با تشکر از همراهیتون 

بهنام صباغی

۲۱ شهریور ۹۶ ، ۰۹:۲۳ ۳ نظر موافقین ۱ مخالفین ۰
بهنام صباغی

انتشار قسمت شانزدهم آموزش Qml به زبان فارسی

با سلام

دوستان بابت تاخیر این قسمت عذرخواهی میکنم و اینم بگم ممکنه قسمت بعدی هم دیر منتشر بشه چون دستم بند کار هست و زیاد وقت برای آموزش ندارم ولی تمام سعیم بر اینه که در اولین فرصت چند قسمت رو ضبط و منتشر کنم .

توی این قسمت در مورد پایه و اساس کیوت و سی پلاس پلاس صحبت میکنم و آماده میشیم برای آموزش ارتباط بین qml و سی پلاس پلاس ولی هنوز به خود آموزش ارتباط نرسیدیم متاسفانه ولی به امید خدا تلاشم بر این هست که زودتر منتشر کنم .

 

لینک آپارات ویدئو

۰۶ مرداد ۹۶ ، ۰۱:۲۱ ۱ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

انتشار قسمت پانزدهم آموزش Qml به زبان فارسی

با سلام خدمت دوستان و همراهان همیشگی

این قسمت درباره آموزش انواع انیمیشن در qml تهیه شده و در آن به بررسی چندین مثال از مثال‌های تهیه شده که در ریپازتوری گیتهاب به آدرس :

کد مثال انیمیشن با qml در گیتهاب

و در پایان

لینک آپارات ویدئو

فعلا به دلیل مشغله یه مدت وقفه میوفته بین آموزش ها ولی به محض این که فرصت پیدا کنم هم این دوره رو ادامه میدم هم بقیه دوره‌ها رو شروع میکنم laugh

۰۹ تیر ۹۶ ، ۲۱:۴۸ ۱۶ نظر موافقین ۲ مخالفین ۰
بهنام صباغی

انتشار قسمت دوازدهم آموزش Qml به زبان فارسی

با سلام

در این قسمت چند روش استفاده و نشان دادن چندین فرم در یک برنامه را به وسیله Loader و component و همینطور SwipeView را یاد می‌گیریم که درخواست یکی از دوستان بود که در قسمت نظرات اعلام کردند.

 

لینک آپارات ویدئو

۰۶ تیر ۹۶ ، ۲۳:۱۴ ۰ نظر موافقین ۰ مخالفین ۰
بهنام صباغی

انتشار قسمت یازدهم آموزش Qml به زبان فارسی

با سلام و عرض معذرت بابت دیرکرد این قسمت

ین قسمت در مورد استفاده از API وب برای دریافت مدل لیست به وسیله XML است که از یک سایت با API عمومی XML برای انجام این آموزش استفاده کردیم ولی شما میتوانید وبسرور خود را توسعه داده و API خود را استفاده کنید .

 

لینک آپارات ویدئو

۰۶ تیر ۹۶ ، ۲۳:۰۹ ۱ نظر موافقین ۰ مخالفین ۰
بهنام صباغی