نقص در برنامه های جهانی
4 دقیقه خواندن
منتشر شده در
صفحه افشای ما را بخوانید تا بدانید چگونه می توانید به MSPoweruser کمک کنید تا تیم تحریریه را حفظ کند ادامه مطلب
مایکروسافت شروع به تشویق توسعه دهندگان به انتقال برنامه های خود به برنامه های یونیورسال کرده است، اما برخی از توسعه دهندگان هنوز متقاعد نشده اند. چندی پیش سرمقاله ای به نقل از توسعه دهندگان نوشتم در مورد امکان سنجی برنامه های جهانی و اینکه چرا آنها هنوز دنیا را به آتش نمی کشند. امروز، یکی دیگر از توسعهدهندگان قطعهای از تجربیات خود با برنامههای جهانی منتشر کرد (که با اجازه در اینجا بازتولید خواهیم کرد)
Windows Phone 8.1 XAML و Universal Apps شامل APIهای WinRT هستند که مشکلات زیادی دارند، از جمله برخی از آنها که راه حلی برای آنها وجود ندارد. اما ابتدا اجازه دهید در مورد نام «برنامههای جهانی» صحبت کنیم. من فکر میکنم این کاملاً متکبرانه است که چیزی را جهانی مینامیم که دو پلتفرم را هدف قرار میدهد، که صادقانه بگویم کاربران زیادی از آن استفاده میکنند یا به آن اهمیت نمیدهند. همچنین اگر فقط به پلتفرم های ویندوز فکر می کنید، این برنامه ها نیز جهانی نیستند، زیرا نمی توانند رایج ترین نسخه های ویندوز (7 و XP) را هدف قرار دهند. اما من پرت می شوم.
او در اینجا به نکته ای اشاره می کند که چندی پیش به آن اشاره کردم. نه WP8.1 و نه W8.1 هنوز ارزش کافی برای توسعه دهندگان برای توسعه برای هر یک از آنها فراهم نمی کنند، زیرا همانطور که گفتم "ویندوز کاربرانی دارد، اما این کاربران لزوماً برنامه ها را نمی خواهند. کاربران ویندوز فون برنامه ها را می خواهند، اما تعداد زیادی از آنها وجود ندارد.
با این حال، کاربران تنها چیزی نیستند که مانع از انتقال برنامهنویسان به برنامههای WinPRT 8.1 میشوند. مشکلات فنی نیز وجود دارد:
API های آشفته تر
بنابراین API پخش صدای پسزمینه برای Windows Phone 8.1 خراب است، چیز دیگری؟ مطمئن. BackgroundDownloader مثال دیگری است. در Silverlight، BackgroundDownloader وجود داشت که کاملاً محدود بود، اما کار می کرد. در Universal Apps، BackgroundDownloader جدیدی وجود دارد که برخی از ویژگیهای جدید، و برخی از موارد ضروری از دست رفته است. به عنوان مثال، در Silverlight، هر بارگیری میتواند یک برچسب داشته باشد، جایی که میتوانید هر دادهای را ذخیره کنید تا پس از پایان دانلود، اطلاعاتی در مورد آن بدانید (به کدام نهاد تجاری و غیره تعلق دارد). دیگر در برنامه های جهانی وجود ندارد. هیچ برچسبی وجود ندارد، بنابراین شما باید برای همه بارگیریها، نوع فهرست خود را بسازید و مدیریت کنید تا بتوانید آنها را با نهادهای تجاری خود مطابقت دهید. آزاردهنده است، اما چیزی که نتوانید مدیریت کنید، درست است.
یک نظر دهنده در وبلاگ همچنین اضافه کرد که apis دوربین به خوبی سیلورلایت نیست و به من گفته شده که api 8.1 فاقد لنز یکپارچه است.
دوربین API در WP8.1 نیز به طرز وحشتناکی کاهش یافته است. هیچ راهی برای دریافت فریم های پیش نمایش وجود ندارد. با استفاده از Silverlight API میتوانید به سادگی در یک رویداد مشترک شوید و فریمهای با رزولوشن پایین را از طریق ZXing با چند فریم در ثانیه فشار دهید. در WinRT بهترین کاری که می توانید انجام دهید این است که عکس های زیادی پشت سر هم بگیرید، گاهی اوقات با فلاش و حدود 0.8 فریم در ثانیه اسکن کنید.
عملکرد همچنین با افزایش میزان کار مورد نیاز برای اسکرول صاف در 8.1 در مقابل 8.0 ضربه می زند.
عملکرد
در Silverlight، معمولاً از LongListSelector برای نمایش دادهها استفاده میکردم و زمانی که نیاز به ایجاد طرحبندی دو ستونی داشتم، از آن با WrapPanel استفاده میکردم. LongListSelector از بین رفته است، در Universal Apps باید از GridView در ویندوز فون نیز استفاده کنید. یا می توانید از ListView با یک پنل بسته بندی سفارشی که خودتان می نویسید یا در جایی دانلود می کنید استفاده کنید، اما برای اینکه مجازی سازی را به درستی انجام دهید، کمی تلاش می کند.
بنابراین شما از GridView در Windows Phone 8.1 و Windows 8.1 استفاده میکنید تا آن را ثابت کنید. ده ها مورد با تصاویر را به آن اضافه کنید و عملکرد واقعاً دچار مشکل می شود. متغیرهای خاکستری ظاهر می شوند و مهمتر از آن، هرگز ناپدید نمی شود. شما به رویداد نیازی به تصاویر ندارید، فقط حدود 300 مورد فقط متنی را به GridView اضافه کنید و متغیرهای خاکستری هنگام پیمایش شروع به نمایش خواهند کرد.
هدف این پست ضربه زدن به مایکروسافت نیست، بلکه توضیح این است که چرا توسعه دهندگان ممکن است هنوز مایل به ایجاد برنامه های جهانی نباشند. آنها روش کاملاً بهتری نیستند، آنها در برخی زمینه ها ارتقاء و در برخی دیگر یک کاهش هستند (کاربران Windows Phone این احساس را به خوبی می دانند). اگر مایکروسافت می خواهد توسعه دهندگان را جذب کند، آنها باید سریعتر از آنچه در حال حاضر انجام می دهند کار کنند، «به زودی» و «در ماه های آینده» برای افرادی که معیشتشان به «دیروز» بودن «به زودی» بستگی دارد جذاب نیست. خوشبختانه، نشانه هایی وجود دارد که ممکن است در حال تغییر باشد. WP 8.1.1 تعدادی api جدید (هرچند محدود شده) به ارمغان آورد و گفته می شود که 8.1.2 (در پستی که اکنون پنهان شده است) به توسعه دهندگان اجازه می دهد تا برنامه های عالی جدید ایجاد کنند. مایکروسافت ممکن است در آینده تغییر کند و این عالی است. برای بسیاری از برنامهنویسهایی که اکنون تحت فشار هستند تا برنامههای جهانی بسازند، آینده نمیتواند به این زودیها به اینجا برسد.
برای اطلاعات بیشتر از تکههایی که در اینجا دریافت میکنید، قطعه کامل را بخوانید اینجا کلیک نمایید. برای قطعه دقیق تر من، نگاه کنید اینجا.