واژه کراس پلتفرم Cross Platform در دنیای برنامه نویسی برای اپلیکیشن ها و نرم افزارهای مختلفی به کار می رود. اما منظور از این واژه چیست و اپلیکیشن ها و نرم افزارهای کراس پلتفرم چه خصوصیاتی دارند؟
می دانیم که امروزه دستگاه های هوشمند یا تلفن های همراه، هر کدام دارای پلتفرم ها یا سیستم عامل های مختلفی هستند. از این رو، در دنیای محصولات و تولیدات اپلیکیشن های موبایلی نیز هر محصول باید تابع یکی از این پلتفرم ها باشد و بتواند در یکی از این سیستم های موجود، نصب و راه اندازی شود.
برای مثال یک دستگاه هوشمند تلفن همراه یا تبلت، می تواند دارای پلتفرم اپل (IOS) یا اندروید باشد. در گذشته، زمانی که یک اپلیکیشن برای این دستگاه ها تولید می شد، باید بنا به اینکه قرار است در کدام پلتفرم از آن استفاده شود، مطابق استانداردها و زبان برنامه نویسی و قابل خوانش در همان پلتفرم طراحی و تولید می شد. چرا که هیچ کدام از کدهای برنامه نویسی در این پلتفرم ها برای یکدیگر مفهومی ندارد و قابل استفاده و اجرا نیست.
ایده کراس پلتفرم Cross Platform شکل گرفت تا به طور محسوسی از تلف شدن وقت و انرژی برنامه نویسان جلوگیری کند. کراس پلتفرم تکنولوژی خاصی است که برنامه نویسان را قادر می سازد تا همگی تحت یک زبان برنامه نویسی خاص و مشترک بتوانند یک بار اپلیکیشن خود را طراحی کنند و آن را در پلتفرم های مختلف مورد استفاده قرار دهند.
البته این اپلیکیشن های کراس پلتفرم یا به طور کلی این فضای تولید و توسعه کراس پلتفرم خصوصیات منحصر به خود را دارد و از مزایا و معایبی نیز برخوردار است که در ادامه درباره آن ها اطلاعاتی را ارائه می دهیم.
توسعه کراس پلتفرم یا Cross platform development چیست؟
همانطور که پیش تر اشاره شد، در حالت عادی زمانی که شما بخواهید یک اپلیکیشن طراحی کنید باید یکبار آن را برای پلتفرم اندروید و یکبار برای پلتفرم IOS اپل کدنویسی کنید، چرا که هر کدام زبان برنامه نویسی خاص خود را نیاز دارد. بنابراین باید طبق برنامه های زیر پیش بروید:
- اگر می خواهید برای اپل برنامه نویسی اپلیکیشن خود را انجام دهید باید از Objective C یا Swift استفاده کنید.
- اگر می خواهید برای اندروید برنامه نویسی اپلیکیشن خود را انجام دهید باید از Java یا کاتلین استفاده کنید.
- و اگر می خواهید اپلیکیشن شما در تلفن های هوشمند یا تبلت های دارای پلتفرم ویندوز قابل اجرا باشد، باید از C# یا XAML استفاده کنید.
از این رو اگر شما بخواهید تمام دارندگان تلفن های همراه با هر پلتفرمی بتوانند از اپلیکیشن شما بهره مند باشند، باید فرآیند طراحی و توسعه را برای هر کدام از این پلتفرم ها به صورت مجزا طی نمایید که این کار مشکلات و چالش های زیر را برای شما به همراه خواهد داشت:
۱- هزینه :
شما برای هر کدام از این پلتفرم ها نیاز به نیروی متخصص برای برنامه نویسی در آن پلتفرم دارید و باید هزینه هر نیرو را به صورت مجزا در نظر بگیرید.
۲- دانش :
پیدا کردن نیروهای متخصص حرفه ای که بتوانند کار طراحی برای هر کدام از این پلتفرم ها را به صورت دقیق و بی نقص انجام دهند نیز یک چالش اساسی است.
۳- یکسان سازی :
از آنجایی که هر کدام از این پلتفرم ها دارای مشخصات، زبان برنامه نویسی، رابط کاربری، استانداردها و ویژگی های مربوط به خود هستند، برای آنکه تمام کاربران اپلیکیشن شما یک تجربه کاربری یکسان داشته باشند، باید سعی کنید اپلیکیشن شما در تمام این پلتفرم ها یکسان و یکنواخت باشد و تمام فاکتورهای آن اعم از ساختار فنی و ظاهری آن تا جای ممکن شبیه به یکدیگر باشد. این موضوع خود یک دغدغه و چالش بسیار سنگین است زیرا آنچه در یک پلتفرم به راحتی قابل پیاده سازی است در پلتفرم دیگر یک محدودیت غیر قابل اجراست.
بنابراین، کراس پلتفرم پدیدار شد تا شما یکبار با استفاده از یک زبان برنامه نویسی مانند جاوا اسکریپت، اپلیکیشن مورد نظر خود را طراحی کنید و سپس آن را توسط کراس پلتفرم با تمام پلتفرم ها تطابق داده و به مرحله اجرا در آورید. این کار به ۲ روش قابل اجرا است:
۱- اپلیکیشن های بومی – توسعه کراس پلتفرم:
برای این کار می توانید از react native، Xamarin و native script استفاده نمایید. در این صورت در پایان کار شما دارای یک اپلیکیشن هستید که به طور بنیادی از API بومی استفاده می کند اما در تمام پلتفرم ها قابل اجراست بدون آنکه نیازی به کدنویسی های مجزا داشته باشد. این موضوع یک تجربه ایده آل از طراحی اپلیکیشن برای تمام پلتفرم ها به آسان ترین و کم هزینه ترین روش ممکن است.
۲- اپلیکیشن های ترکیبی – توسعه کراس پلتفرم :
این کار یک ردیف از توسعه اپلیکیشن های بومی کراس پلتفرم پایین تر است. در واقع اپلیکیشن های ترکیبی کراس پلتفرم، بر اساس ساختاری در یک مرورگر وب و HTML5، CSS و جاوا اسکریپت شکل می گیرند و کار می کنند.
به این ترتیب اپلیکیشن کدنویسی می شود و سپس در یک تلفن هوشمند از آن خروجی گرفته می شود. در این نوع توسعه و برنامه نویسی، کدنویسان از یک زبان برنامه نویسی بومی وب استفاده می کنند ولی در آخر آن را در یک لفافه مختص سیستم عامل های مختلف قرار می دهند و به اجرا در می آورند.
مزایای کراس پلتفرم چیست؟
استفاده از توسعه کراس پلتفرم مزایای مختلفی دارد:
- هزینه های طراحی اپلیکیشن بسیار کاهش می یابد، چرا که نیازی نیست هر بار به صورت مجزا برای یک پلتفرم خاص کدنویسی شود. همچنین زمانی که اپلیکیشن با یک باگ مواجه است نیازی نیست که در پلتفرم های مختلف دیباگ شود بلکه کافی است یکبار باگ را تشخیص داده و آن را از بین برد تا در تمام پلتفرم ها از بین برود.
- زمان بسیار کمتری صرف طراحی و تولید می شود و خیلی سریع می توان یک اپلیکیشن را برای پلتفرم های مختلف منتشر کرد.
- یکنواختی و یکسان بودن در تمام پلتفرم ها قابل مشاهده است و این امر سبب می شود تمام کاربران اپلیکیشن در هر پلتفرمی بتوانند تا جای ممکن از یک تجربه کاربری برخوردار باشند.
- کمپانی ها می توانند کاربران زیادی برای اپلیکیشن های خود داشته باشند چرا که هر کاربری با هر تلفن هوشمندی که دارد می تواند از اپلیکیشن طراحی شده کمپانی استفاده کند.
- ابزارهای تولید نرم افزار برای اکثر برنامه نویسان آشنا و قابل استفاده است و نیازی نیست برای طراحی هر نسخه از اپلیکیشن خود به دنبال نیروی متخصص و آشنا به آن پلتفرم خاص باشیم.
معایب یا محدودیت های کراس پلتفرم چیست؟
محدودیت ها و معایبی نیز در زمینه استفاده از کراس پلتفرم وجود دارد:
- برنامه ها و اپلیکیشن ها نمی توانند از آخرین حد کارآمدی خود بهره مند باشند چرا که مختص آن پلتفرم نوشته نشده اند و طوری نوشته شده اند که بشود از آنها در پلتفرم های دیگر نیز استفاده کرد. از این رو ممکن است در یک پلتفرم خاص، نتوانند از بیشترین حد کیفیت انمیشین، HTML5، سرعت و موارد دیگر برخوردار باشند.
- ممکن است که برنامه و اپلیکیشن ها برای یک پلتفرم خاص بسیار پیچیده و تعمیم یافته شوند در صورتی که اگر آن ها را به صورت مجزا برای آن پلتفرم طراحی می کردیم ممکن بود با این حجم از پیچیدگی ساختاری رو به رو نباشند.
- استفاده از امکانات پیشرفته و حرفه ای در اپلیکیشن های کراس پلتفرم مصرف باتری را بیشتر کرده و نیازمند فضای خالی بیشتری در دستگاه است.