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

۳ مطلب در تیر ۱۳۹۷ ثبت شده است

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

با سلام

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

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

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

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

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

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

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

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

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

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

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

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

علی یارتون

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

اطلاعات زیاد کم ارزش یا اطلاعات کم پر ارزش

خب طبق معمول خیلی وقت ندارم ولی این عنوان رو دیدم توی دیجیاتو نتونستم ساکت بمونم

بازیکنی که روزانه ۱۲ ساعت پای Quiz of Kings می‌گذراند: کاملا ارزشش را داشت

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

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

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

  1. اول این که اینها عامه پسند هستند و سعی میکنند همه افراد از همه اقشار جامعه رو جذب کنند پس نمیتونند وارد مباحث سنگین بشند
  2. دلیل دیگه این هست که اینها میخواند مردم حس دانایی بکنند و قطعا کسی حاضر نمیشه بازی که سوالات و محتوای سنگین داره رو بازی کنه و مدام شکست بخوره پس سوالات آبکی میشند و بدون محتوا تا حس قدرت به افراد دست بده
  3. ابن بازی ها طراحی حداقلی دارند یعنی این که نمیشه توی یه سوال تست که باید توی زمان مشخص جواب داده بشه یک مبحث مهم و بزرگ و چالشی رو عنوان کرد چون کاربر ها توقع دارند با گزینه های مقابل هم روبرو بشند تا بتونند جواب رو پیدا کنند
  4. و در آخر اگر یک قدم عقب تر بریم حتی اگر فرض کنیم کاربر داره این مسائل رو یاد میگیره و یک مجموعه بزرگ از سوال و جواب های این چنینی هست بازم کمکی به کسی نمیکنه یعنی دونستن همه سوالات و جواب های مسخره و عمومی این بازی ها کمکی به فرد در زندگی نمیکنه نه از نظر شخصیتی نه از نظر موقعیت شغلی و اقتصادی اینها صرفا دارند افراد رو درگیر میکنند تا از مسیر باز بمونند

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

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

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

علف هرز

بچه که بودم وقت آزادم از درس رو توی گلخونه بابام مشغول بودم همیشه علف های هرز رو از خاک بیرون میکشیدیم و دور مینداختیم من اوایل درست نمیتونستم علف هرز رو از گل تشخیص بدم چون هردوتا گیاه بودند و سبز رنگ شناختشون مهارتی میخواست که شاید توقع داشتن اون مهارت از یه بچه زیاد باشه برای همین بعد از کلی تلاش که سعی میکردند از راه نشون دادن علف و گل بهم تفاوتهاشون رو بفهمونند آخرش میگفتند اونی که وسط گلدونه و از همه بزرگتره گله بقیه علف هرزند ولی مشکل اینجا بود که همیشه اینطوری نبود یعنی بعضی وقتا گله دقیقا وسط نبود یا بعضی وقتا یکی از این علف ها انقدر خوشگل بود و بزرگ که آدم دلش نمیاومد اون رو از خاک بیرون بکشه معمولا من گل و بقیه علف ها رو میکندم و علف بزرگه رو میذاشتم بمونه و البته کلیم سر این کارهام دعوام کرد بابام 🤣
یکم که بزرگ تر شدم دیگه میتونستم تشخیص بدم ولی هنوز به علف های هرز امید داشتم یروز یکیشون رو که از خاک بیرون اورده بودم تمیز شستم و توی یه گلدون جدا کاشتم و گذاشتمش یه جایی که کسی نبینه بعد یه مدت جون گرفت اوردم نشون بابام دادم بهم گفت
-‏ این به درد نمیخوره کسی حاضر نیست اینو بخره توی خونش نگهداری کنه
درکش برام سخت بود ولی باهاش کنار اومدم بعدها یه وقتایی بوته گوجه توی گلدون ها در میومد و باید با اونها هم مثل علف هرز برخورد میکردیم یعنی باید میکندیم مینداختیم دور ولی دیگه برام سخت نبود چون فهمیده بودم هر چیزی جایی داره جای گوجه توی گلدون گل نیست همینطور جای علف هرز هم توی گلدون نیست
از اونجا یاد گرفتم اگر جایگاهم رو نشناسم و توی یه جایگاه درست قرار نگیرم فرقی نمیکنه به اندازه بوته گوجه مفید باشم یا اندازه علف هرز به هر حال باهام برخوردی که باید نمیشه .

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

اگر بتونی جایگاه درستت رو بشناسی روز به روز ارزشمند تر میشی اگرم نشناسی که وای به حالت ...

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