Платформалық бағдарламалық жасақтама - Cross-platform software

Жылы есептеу, платформалық бағдарламалық жасақтама (сонымен қатар көп платформалы бағдарламалық жасақтама немесе платформадан тәуелсіз бағдарламалық жасақтама) болып табылады компьютерлік бағдарламалық жасақтама бірнеше есептеу платформаларында жүзеге асырылады.[1] Платформалық бағдарламалық жасақтаманы екі түрге бөлуге болады; біреуі қолдайтын әрбір платформа үшін жеке құрылыс немесе жинақтауды қажет етеді, ал екіншісі кез-келген платформада арнайы дайындықсыз тікелей іске қосылуы мүмкін, мысалы, аударылған тіл немесе алдын-ала жинақталған портативті байт коды ол үшін аудармашылар немесе жұмыс уақыты пакеттері - бұл барлық платформалардың жалпы немесе стандартты компоненттері.[2]

Мысалы, кросс-платформа қолдану іске қосылуы мүмкін Microsoft Windows, Linux, және macOS. Кросс-платформалық бағдарламалар барлық қолданыстағы платформаларда немесе екіден аз платформаларда жұмыс істей алады. Кросс-платформалық шеңберлер (мысалы Киви, Qt, Шырылдау, NativeScript, Камарин, Телефон аралығы, Иондық, және React Native ) платформаларды дамытуға көмектесу үшін бар.[3]

Платформалар

Платформа процессордың типіне немесе басқа амалдық жүйеге сілтеме жасай алады қолдану жүгіреді, түрі операциялық жүйе компьютерде немесе аппараттық құрал типі мен онда жұмыс істейтін амалдық жүйе типінің тіркесімі.[4] Жалпы платформаның мысалы болып табылады Microsoft Windows жүгіру x86 сәулеті. Басқа танымал жұмыс үстелі компьютерлік платформалары кіреді Linux /Unix және macOS - екеуі де кросс-платформа.[4] Сияқты көптеген құрылғылар бар смартфондар олар тиімді компьютерлік платформалар болып табылады, бірақ олар туралы аз ойланады. Қолданбалы бағдарламалық жасақтаманы белгілі бір платформаның ерекшеліктеріне байланысты - аппараттық құралға, операциялық жүйеге немесе виртуалды машина ол жұмыс істейді. The Java платформасы виртуалды машиналық платформа, көптеген операциялық жүйелерде және аппараттық құралдар типтерінде жұмыс істейді және бағдарламалық жасақтаманың жазылуына арналған жалпы платформа.

Аппараттық платформалар

Аппараттық платформа нұсқаулық жиынтығының архитектурасы. Мысалы: x86 архитектурасы және оның нұсқалары IA-32 және x86-64. Бұл машиналар көбінесе Microsoft Windows бір нұсқасын басқарады,[5] бірақ олар басқа операциялық жүйелерді, соның ішінде Linux-ты да басқара алады, OpenBSD, NetBSD, macOS және FreeBSD.

The 32 бит ARM архитектуралары (және жаңа) 64 бит нұсқасы) смартфондарда кең таралған және планшеттік компьютерлер, ол іске қосылады Android, iOS және басқа да мобильді операциялық жүйелер.

Бағдарламалық жасақтама платформалары

Бағдарламалық жасақтама платформалары не амалдық жүйе болуы мүмкін немесе бағдарламалау ортасы, көбінесе бұл екеуінің тіркесімі болып табылады. Бұған ерекше ерекшелік Java, ол үшін операциялық жүйені тәуелсіз виртуалды машинаны қолданады құрастырылған Java әлемінде белгілі код байт коды. Бағдарламалық платформалардың мысалдары:


Кіші / тарихи

Java платформасы

Бұрын айтылғандай, Java платформасы операциялық жүйенің бағдарламалық платформа екендігі туралы жалпы ережеге ерекшелік болып табылады. Java тілі әдетте виртуалды машинада жинақталады: тіл үшін жазылған барлық кодтарды басқаратын виртуалды процессор. Бұл мүмкіндік береді орындалатын екілік Java виртуалды машинасын (JVM) іске асыратын барлық жүйелерде жұмыс істеу. Java бағдарламаларын а Java процессоры. Бұл кең таралған емес және көбіне ендірілген жүйелер үшін қолданылады.

Жұмыс істейтін Java коды JVM егер тиісті артықшылықтар берілсе, енгізу-шығару дискісі және желіге кіру сияқты ОЖ-ге қатысты қызметтерге қол жетімді. The JVM Java қосымшасы атынан жүйелік қоңыраулар жасайды. Бұл орнату пайдаланушыларға сәйкес қорғаныс деңгейін шешуге мүмкіндік береді ACL. Мысалы, дискке және желіге кіру әдетте жұмыс үстелі қосымшалары үшін қосылады, бірақ браузерге негізделген емес апплеттер. JNI операциялық жүйенің арнайы функцияларына қол жеткізуді қамтамасыз ету үшін де қолданыла алады.

Қазіргі уақытта Java Standard Edition бағдарламалары Microsoft Windows, macOS, бірнеше Unix тәрізді операциялық жүйелерде және ендірілген жүйелер сияқты UNIX-ке ұқсас емес бірнеше операциялық жүйелерде жұмыс істей алады. Ұялы қосымшалар үшін Windows және Mac негізіндегі құрылғылар үшін браузер плагиндері қолданылады, ал Android-те Java-ға арналған қолдау бар. Сияқты Java жиынтықтары бар Java картасы немесе Java платформасы, Micro Edition, ресурстармен шектелген құрылғыларға арналған.

Іске асыру

Бағдарламалық жасақтама кросс-платформа деп саналуы үшін, ол бірден көп жұмыс істеуі керек компьютерлік архитектура немесе амалдық жүйе. Мұндай бағдарламаны жасау уақытты қажет етуі мүмкін, себебі әр түрлі операциялық жүйелер әр түрлі болады бағдарламалық интерфейстер (API). Мысалы, Linux қолданбалы бағдарламалық жасақтама үшін Windows-қа қарағанда басқа API пайдаланады.

Белгілі бір амалдық жүйеге арналған бағдарламалық жасақтама амалдық жүйе қолдайтын барлық архитектураларда автоматты түрде жұмыс істемейді. 2006 жылғы тамыздағы жағдайдың бір мысалы OpenOffice.org, ол жұмыс істемейтін AMD64 немесе Intel 64 компьютерлерге арналған x86-64 стандарттарын іске асыратын процессорлар желілері; содан бері бұл өзгертілді және OpenOffice.org бағдарламалық жасақтамасы осы 64 биттік жүйелер үшін «көбіне» тасымалданады.[7] Бұл сондай-ақ бағдарлама әйгілі бағдарламада жазылғандығына байланысты бағдарламалау тілі сияқты C немесе C ++, бұл ол бағдарламалау тілін қолдайтын барлық амалдық жүйелерде немесе тіпті басқа архитектурада бір амалдық жүйеде жұмыс істейді дегенді білдірмейді.

Веб-қосымшалар

Веб-қосымшалар әдетте кросс-платформа ретінде сипатталады, өйткені, ең дұрысы, оларға кез-келген қол жетімді веб-шолғыштар әр түрлі операциялық жүйелер шеңберінде. Мұндай қосымшалар әдетте a клиент-сервер жүйенің архитектурасы, сондай-ақ күрделілігі мен функционалдығы бойынша әртүрлі. Бұл кең өзгергіштік кеңейтілген функционалдылық мақсатымен үнемі қарама-қайшылықта болатын кросс-платформалық мүмкіндік мақсатын едәуір қиындатады.

Негізгі веб-қосымшалар а-дан барлық немесе көп өңдеуді орындайды азаматтығы жоқ сервер және нәтижені клиенттің веб-шолғышына жіберіңіз. Қолданушының қосымшамен барлық өзара әрекеттесуі қарапайым мәліметтер алмасу және серверлік жауаптардан тұрады. Қосымшалардың бұл түрлері алғашқы кезеңдерде қалыпты болды Дүниежүзілік өрмек қосымшаны әзірлеу. Мұндай қосымшалар қарапайым мәміле қызмет көрсетуге ұқсас модель статикалық веб-парақтар. Бүгінгі күні олар салыстырмалы түрде кең таралған, әсіресе платформалардың үйлесімділігі мен қарапайымдылығы жетілдірілген функционалдылыққа қарағанда маңызды болып саналады.

Жетілдірілген веб-қосымшалардың көрнекті мысалдарына Веб-интерфейс жатады Gmail, A9.com, Гугл картасы веб-сайт және Live Search қызметі (қазір Bing ) Майкрософттан. Мұндай жетілдірілген қосымшалар үнемі танымал веб-шолғыштардың соңғы нұсқаларында ғана болатын қосымша мүмкіндіктерге байланысты. Бұл тәуелділіктерге жатады Аякс, JavaScript, Динамикалық HTML, SVG, және басқа компоненттері Интернетке бай қосымшалар. Танымал веб-шолғыштардың ескі нұсқаларында белгілі бір мүмкіндіктерге қолдау жоқ.

Дизайн стратегиялары

Платформалар арасындағы үйлесімділік пен жетілдірілген функциялардың бәсекелес мүдделерінің арқасында көптеген баламалы веб-қосымшаларды жобалау стратегиялары пайда болды. Мұндай стратегияларға мыналар жатады:

Керемет деградация

Керемет деградация барлық пайдаланушыларға және платформаларға бірдей немесе ұқсас функционалдылықты қамтамасыз етуге тырысады, сонымен бірге бұл функционалдығы шектеулі клиенттік браузерлер үшін ең аз ортақ бөлгішке дейін азаяды. Мысалы, Gmail-ге кіру үшін шектеулі мүмкіндіктері бар браузерді қолдануға тырысқан пайдаланушы Gmail-дің функциясы төмендеуімен негізгі режимге ауысқанын байқауы мүмкін. Бұл басқа платформалар техникасынан ерекшеленеді, олар платформаларда барабар функционалдылықты ғана емес, баламалы функционалдылықты қамтамасыз етуге тырысады.

Бірнеше код негіздері

Бірнеше кодтар қолданбасы баламалы функционалдығы бар әр түрлі (аппараттық және ОЖ) платформалар үшін жеке код базаларын қолдайды. Бұл, әрине, кодты сақтауда күш-жігердің қайталануын қажет етеді, бірақ платформаға тән код мөлшері көп болған жағдайда пайдалы болуы мүмкін.

Бірыңғай код негізі

Бұл стратегия көптеген платформаларға арналған форматтарда жинақталуы мүмкін бір код базасына негізделген. Бір әдіс шартты жинақ. Осы техникамен барлық платформаларға ортақ код қайталанбайды. Тек белгілі бір платформаларға қатысты код блоктары шартты түрде жасалады, сондықтан олар тек қана болады түсіндірілді немесе құрастырылған қажет болғанда. Тағы бір әдіс - бұл функционалдылықты бөлу, ол клиенттің браузерлерінде немесе операциялық жүйелерде қолданылмайтын функцияны өшіреді, сонымен бірге қолданушыға толық қосымшаны ұсынады. (Сондай-ақ қараңыз: Мазасыздықты бөлу ). Бұл әдіс веб-дамытуда қолданылады, онда интерактивті код (сценарий тілдеріндегідей) әр түрлі блоктарды шартты түрде орындау үшін өзі жұмыс істейтін платформадан сұрау ала алады.[8]

Үшінші тарап кітапханалары

Үшінші тарап кітапханалары бірыңғай бірыңғай API артында клиенттің саралануының қиындығын жасыру арқылы платформалар мүмкіндігін жеңілдетуге тырысады.

Жауапты веб-дизайн

Жауапты веб-дизайн (RWD) дегеніміз - бұл ұялы телефоннан бастап жұмыс үстеліне дейінгі құрылғылардың кең ауқымы бойынша оңтайлы көру тәжірибесін қамтамасыз ету үшін сайттардың көрнекі орналасуын жасауға - өлшемін, панорамалауын және айналдыруын минимумға дейін жеңіл оқуға және навигацияға мүмкіндік беретін веб-дизайн тәсілі. компьютер мониторлары. Бұл техникада платформаға қатысты код аз немесе мүлдем қолданылмайды.

Тестілеу стратегиялары

Веб-қосымшаларды жобалаудың күрделі аспектілерінің бірі - қажеттілік бағдарламалық жасақтаманы тестілеу. Бұрын айтылған асқынулардан басқа, кейбір веб-шолғыштардың бір операциялық жүйеге бір шолушының әртүрлі нұсқаларын орнатуға тыйым салатын қосымша шектеулер бар. Компаниялар бірнеше платформаларды бағыттау үшін қолданатын бірнеше даму тәсілдері болғанымен, олардың барлығы қолдау көрсетілетін платформаларда тестілеу мен қызмет көрсету үшін айтарлықтай қол күшін қажет ететін бағдарламалық жасақтамаға әкеледі.[9] Сияқты әдістер толық виртуалдандыру кейде осы проблеманың шешімі ретінде қолданылады.

Бет нысаны моделі сияқты құралдарды қолданып, платформалардың кросс-тесттерін сценарийлердің біреуі қолданбаның бірнеше нұсқаларында қолдануға болатындай етіп жазуға болады. Әр түрлі нұсқалардың қолданушы интерфейстері ұқсас болған жағдайда, екі нұсқаны да бір уақытта, бір сынақ жағдайымен тексеруге болады.

Дәстүрлі қосымшалар

Веб-қосымшалар барған сайын танымал бола бастайды, бірақ көптеген компьютер қолданушылары клиенттің / веб-сервердің архитектурасына тәуелді емес дәстүрлі қолданбалы бағдарламалық жасақтаманы қолданады. Дәстүрлі және веб-қосымшалар арасындағы айырмашылық әрдайым айқын бола бермейді. Интернеттегі және дәстүрлі қосымшалардың ерекшеліктері, орнату әдістері мен архитектуралары бір-бірімен сәйкес келеді және бұлыңғыр етеді. Осыған қарамастан, бұл жеңілдететін айырмашылық жалпы және пайдалы жалпылау болып табылады.

Екілік бағдарламалық жасақтама

Дәстүр бойынша заманауи есептеу техникасында қолданбалы бағдарламалық жасақтама соңғы пайдаланушыларға екілік файл түрінде таратылды, әсіресе орындалатын файлдар. Орындалатындар тек олар үшін құрылған амалдық жүйені және компьютерлік архитектураны қолдайды, яғни бір кросс-платформаның орындалатындығын жасау үлкен тапсырма болатындығын білдіреді және әдетте қолдау көрсетілетін платформалар үшін орындалатын файлдардың таңдауын ұсынады.

Екілік орындалатын ретінде таратылатын бағдарламалық жасақтама үшін, мысалы C немесе C ++ тілінде жазылған бағдарламалық жасақтама үшін бағдарламашы қажет бағдарламалық жасақтаманы құру әр түрлі амалдық жүйелер мен компьютерлердің архитектурасы үшін, яғни бір кодтық базаны бірнеше екілік орындалатынға айналдыратын-транскомпиляциялайтын құралдар жиынтығын пайдалану керек. Мысалға, Firefox, ашық көзі бар веб-шолғыш, Windows, macOS-та (екеуі де) қол жетімді PowerPC және x86 арқылы Apple Inc. қоңырау а Әмбебап екілік ), Бірнеше компьютер архитектураларында Linux және * BSD. Төрт платформа (бұл жағдайда Windows, macOS, Linux және * BSD) бөлек орындалатын дистрибутивтер болып табылады, бірақ олар бір жерден шыққан бастапқы код.

Әр түрлі құрастыруды орындау үшін әр түрлі құралдар жиынтығын пайдалану әр түрлі платформалар үшін әр түрлі жұмыс істейтін орындалуға қол жеткіліксіз болуы мүмкін. Бұл жағдайда бағдарламалық жасақтама инженері міндетті порт бұл, яғни кодты компьютердің жаңа архитектурасына немесе амалдық жүйеге сәйкес келетін етіп өзгертіңіз. Мысалы, Windows жүйесінде x86 отбасында жұмыс істейтін Firefox сияқты бағдарламаны Linux-та x86 (және басқа архитектураларда) іске қосу үшін өзгертуге және қайта құруға болады. Кодтың бірнеше нұсқалары бөлек код базалары ретінде сақталуы немесе шартты компиляция арқылы бір код базасына біріктірілуі мүмкін (жоғарыдан қараңыз). Ескерту, платформалық ғимаратпен бірге жүру керек, керісінше емес.

Тасымалдауға балама ретінде, платформалық виртуалдандыру бір процессорға және операциялық жүйеге арналған қосымшалардың басқа CPU және / немесе амалдық жүйемен жүйеде бастапқы кодқа немесе екілік файлға өзгеріс енгізбей жұмыс жасауына мүмкіндік береді. Мысал ретінде Apple компаниясының Розетта, ол салынған Intel Macintosh компьютерлеріне негізделген, PowerPC процессорларын қолданған Mac-тің алдыңғы буынына арналған қосымшаларды іске қосады. Тағы бір мысал - IBM PowerVM Lx86 Linux / x86 қосымшаларына Linux / Power амалдық жүйесінде өзгертілмеген жұмыс істеуге мүмкіндік береді.

Сценарийлер және түсіндірме тілдер

Сценарийді кросс-платформа деп санауға болады аудармашы бірнеше платформаларда қол жетімді және сценарий тек тілмен қамтамасыз етілген мүмкіндіктерді пайдаланады. Яғни, жазылған сценарий Python үшін Unix тәрізді жүйе Windows-та өзгертулерсіз немесе мүлдем жұмыс істемеуі мүмкін, өйткені Python Windows-та да жұмыс істейді; сонымен қатар бірдей сценарийлерді басқаратын Python-дің бірнеше орындалуы бар (мысалы, IronPython үшін .NET Framework ). Дәл сол көптеген жағдайларға қатысты ашық көзі қол жетімді және бар бағдарламалау тілдері сценарий тілдері.

Екілік орындалатын файлдардан айырмашылығы, сол сценарийді сценарийді түсіндіру үшін бағдарламалық жасақтамасы бар барлық компьютерлерде қолдануға болады. Бұл сценарийдің әдетте сақталатындығына байланысты қарапайым мәтін ішінде мәтіндік файл. , Мысалы, кейбір мәселелер болуы мүмкін жаңа саптық кейіпкер сызықтардың арасында отырады. Әдетте, бір жүйеге жазылған сценарийді екінші жүйеге түсіру үшін аз жұмыс жасау керек немесе аз жұмыс істеу керек.

Кейбір өте танымал кросс-платформалық сценарийлер немесе аударылған тілдер мыналар:

  • bash - A Unix қабығы әдетте іске қосылады Linux және басқа заманауи Unix тәрізді жүйелер, сонымен қатар Windows арқылы Cygwin POSIX үйлесімділік қабаты.
  • Перл - A сценарий тілі алғаш рет 1987 жылы шығарылған. Пайдаланылған CGI WWW бағдарламалау, кішкентай жүйені басқару міндеттер және т.б.
  • PHP - A сценарий тілі веб-қосымшалар үшін ең танымал.
  • Python - заманауи сценарий тілі қайда назар аударылады қосымшаны жылдам әзірлеу және бағдарламаның жұмыс уақыты тиімділігінің орнына жазудың қарапайымдылығы.
  • Рубин - мақсаты объектіге бағытталған және оқуға жеңіл болатын сценарий тілі. Арқылы Интернетте де қолдануға болады Rails on Rails.
  • Tcl - веб-және жұмыс үстелі қосымшаларын, желіні, әкімшілендіруді, тестілеуді және басқаларын қоса алғанда, кең ауқымда қолдануға болатын динамикалық бағдарламалау тілі.

Видео Ойындары

Кросс-платформа немесе көп платформа - бұл термин де қолданыла алады Видео Ойындары диапазонында шығарылды бейне ойын консолі, ойындар ойнауға арналған мамандандырылған компьютерлер. Платформалар арасындағы бейне ойындардың мысалдары: Шахтер 2049er, Tomb Raider: Аңыз, FIFA (видео ойындар сериясы), НХЛ сериясы және Майнкрафт.

Олардың әрқайсысы әртүрлі ойын платформаларында шығарылды, мысалы Wii, PlayStation 3, Xbox 360, дербес компьютерлер (ДК), және мобильді құрылғылар.

Белгілі бір жүйенің сипаттамалары бірнеше платформаларда бейнеойынды жүзеге асыруға кететін уақытты ұзарта алады. Сонымен, бейне ойын бастапқыда бірнеше платформада шығарылуы мүмкін, содан кейін қалған платформаларда шығарылуы мүмкін. Әдетте, бұл жағдай жаңа ойын жүйесі шыққан кезде пайда болады, себебі бейне ойын әзірлеушілері жаңа консольмен байланысты аппараттық және бағдарламалық жасақтамамен таныстыру қажет.

Кейбір ойындар кросс-платформаға айналмауы мүмкін, себебі әзірлеушілер мен бейне ойын консолі өндірушілері арасындағы лицензиялық келісімдер ойынды дамытуды белгілі бір консольмен шектейді. Мысал ретінде, Дисней ең соңғы шығарылым ниетімен ойын құра алды Нинтендо және Sony ойын консолі. Егер Disney алдымен Sony ойынына лицензия берсе, Disney айырбастау үшін ойынды тек Sony консолінде қысқа уақытқа шығаруы мүмкін. немесе шексіз - кросс-платформаны шығаруға ұзақ уақытқа тиімді тыйым салу.

Кросс-платформалық ойын

Бірнеше әзірлеушілер әртүрлі платформаларды пайдалану кезінде онлайн режимінде ойын ойнаудың құралдарын іске асырды. Псионикс, Эпикалық ойындар, Microsoft, және Клапан барлығы Xbox 360 және PlayStation 3 ойыншыларына компьютерлік ойыншылармен ойнауға мүмкіндік беретін, тұтынушыларға қандай платформаны қолдану туралы шешім шығаратын технологияға ие. Компьютер мен консоль ойындары арасындағы интерактивтіліктің осы деңгейіне мүмкіндік беретін алғашқы ойын болды Жер сілкінісі 3.[10]

Кросс-платформасы бар ойындар онлайн ойнау қосу Ракета лигасы, Final Fantasy XIV, Street Fighter V, Killer Instinct, Парагон және Fable Fortune, және Майнкрафт Better Together жаңартылуымен Windows 10, VR басылымдары, Pocket Edition және Xbox One.

Платформалық бағдарламалау

Платформалық бағдарламалау - бұл бірнеше платформада жұмыс істейтін бағдарламалық жасақтаманы белсенді түрде жазу тәжірибесі.

Платформалық бағдарламалау тәсілдері

Кросс-платформалық қолданбалы бағдарламаны жазу мәселесіне жүгінудің әр түрлі тәсілдері бар. Осындай тәсілдердің бірі - жай бір бағдарламаның әртүрлі нұсқаларын жасау ағаштар- басқаша айтқанда, бағдарламаның Microsoft Windows нұсқасында бастапқы код файлдарының бір жиынтығы және Macintosh нұсқасында басқасы болуы мүмкін, ал а FOSS * nix жүйесінде басқасы болуы мүмкін. Бұл мәселеге тікелей көзқарас болғанымен, оның даму құны, даму уақыты немесе екеуі де, әсіресе корпоративті ұйымдар үшін едәуір қымбат болуы мүмкін. Мұның астарында бір-біріне ұқсас мінез-құлық қабілеті бар екіден көп түрлі бағдарламалар құру керек. Сондай-ақ, бұл платформалық қосымшаны дамыту құралы қателерді қадағалау мен түзетуге байланысты проблемаларға әкелуі мүмкін, себебі екі түрлі ағаштар әр түрлі бағдарламашыларға, әр нұсқадағы әр түрлі ақауларға ие болар еді.

Қолданылатын тағы бір тәсіл - бұл платформалар арасындағы айырмашылықтарды жасыратын алдын-ала бар бағдарламалық жасақтамаға тәуелді болу абстракция платформаның - бұл бағдарламаның өзі жұмыс істеп тұрған платформадан бейхабар. Мұндай бағдарламалар деп айтуға болады платформалы агностикалық. Java виртуалды машинасында (JVM) жұмыс істейтін бағдарламалар осы үлгіде құрастырылған.

Кейбір қосымшалар соңғы қосымшаны құру үшін платформалық бағдарламалаудың әр түрлі әдістерін араластырады. Бұған мысал ретінде Firefox веб-шолғышын алуға болады, ол абстракцияны кейбір төменгі деңгей компоненттерін құру үшін, платформаға арналған ерекшеліктерді (GUI сияқты) іске асыру үшін бөлек субтраттарды және жеңілдетуге көмектесетін бірнеше сценарий тілін жүзеге асырады. жеңілдігі портативтілік. Firefox құралдары XUL, CSS және классикалықтан басқа браузерді кеңейтуге арналған JavaScript Netscape -стильді шолғыш плагиндері. Браузердің көп бөлігі XUL, CSS және JavaScript тілдерінде жазылған.

Платформалық бағдарламалау құралдары мен орталар

Бірқатар құралдар бар[11][12] платформалық бағдарламалау процесін жеңілдетуге көмектесетін:

  • 8-ші: платформаны дамыту тілі Джуц оның GUI қабаты ретінде. Қазіргі уақытта ол қолдайтын платформалар: Android, iOS, Windows, macOS, Linux және Raspberry Pi.
  • Anant Computing: Барлық үнді тілдерінде, соның ішінде олардың пернетақталарында жұмыс істейтін мобильді қосымшалар платформасы, ол барлық операциялық жүйелерде AppWallet және Native өнімділіктерін қолдайды.
  • Пайда болу IQ Бағдарламаны әзірлеудің және кәсіпорын ортасында орналастырудың жұмыс процесін қолдайтын құрылым. Жергілікті контейнерлер мобильді құрылғылардың немесе планшеттердің аппараттық мүмкіндіктерін API арқылы HTML5 кодына дейін ұсынады, осылайша әр түрлі платформаларда жұмыс істейтін мобильді қосымшалар жасалады.
  • Боден: С ++ тілінде жазылған әр түрлі платформаларға арналған интерфейстік интерфейс-құрылым.
  • Каир: A ақысыз бағдарламалық жасақтама векторлық графикаға негізделген, құрылғыдан тәуелсіз API қамтамасыз ету үшін пайдаланылатын кітапхана. Ол әр түрлі артқы жағында екі өлшемді сурет салудың примитивтерін ұсынуға арналған. Каир Си тілінде жазылған және көптеген бағдарламалау тілдері үшін байланыстырылған.
  • Cocos2d: 2D және қарапайым 3D кросс-платформалы ойындар мен қосымшаларды әзірлеуге арналған ашық қайнар көз құралы және ойын қозғалтқышы.
  • Бір код: Java және Kotlin әзірлеушілеріне арналған Open Source Cross-платформасы.
  • Delphi: Паскаль тілін дамытуға арналған IDE кросс-платформасы. Қазіргі уақытта ол Android, iOS, Windows, macOS қолдайды.
  • Ecere SDK: кросс платформасы GUI & 2D / 3D графикалық құралдар және IDE, жазылған eC сияқты қосымша тілдерді қолдай отырып C және Python. Қазіргі уақытта ол Linux, FreeBSD, Windows, Android, macOS және Интернетті Emscripten немесе Binaryen (WebAssembly) арқылы қолдайды
  • Тұтылу: Ашық бастапқы платформалық дамытушы орта. Бағдарламалық жасақтаманы дамытуға арналған көптеген құралдарды қолдайтын конфигурацияланатын архитектурамен Java-да жүзеге асырылған. Қосымшалар бірнеше тілде, соның ішінде Java және C ++ тілдерінде қол жетімді.
  • FLTK: Тағы бір ашық бастапқы кросс платформалық құралдар құралы, бірақ ол GUI-мен шектелетіндіктен жеңілірек.
  • Шырылдау: Android және iOS жүйелеріне арналған кросс-платформалық интерфейс жүйесі Google.
  • fpGUI: Object Pascal-да толығымен іске асырылатын ашық кодты виджет құралдар жиынтығы. Қазіргі уақытта ол Linux, Windows және біраз Windows CE қолдайды.
  • GeneXus: Платформалық қосымшаны құруға және орналастыруға негізделген Windows жылдам бағдарламалық жасақтама шешімі білімді ұсыну және қолдау C #, COBOL, Java соның ішінде Android және BlackBerry ақылды құрылғылары, Мақсат-С үшін алма мобильді құрылғылар, RPG, Рубин, Visual Basic, және Visual FoxPro.
  • GLBasic: C ++ кодын шығаратын BASIC диалект және компилятор. Ол көптеген платформаларға арналған кросс-компиляторларды қамтиды және көптеген платформаларды қолдайды (Windows, Mac, Linux, Android, iOS және кейбір экзотикалық қол құрылғылар).
  • GTK +: X11 және Microsoft Windows жүйелері бар Unix тәрізді жүйелерге арналған виджеттің ашық бастапқы құралы.
  • Хакс: Ашық бастапқы платформалық тіл.
  • Джуц: C ++ тілінде жазылған бағдарламалық жасақтама, көптеген жүйелерде (Microsoft Windows, POSIX, macOS) жергілікті бағдарламалық жасақтаманы жазу үшін қолданылады, кодты өзгертусіз.
  • Киви: Интерфейстің ашық кодты бастапқы коды Python. Ол қолдайды Android, iOS, GNU /Linux, OS X, Windows және Таңқурай Pi.
  • Елазар: FreePascal компиляторына арналған бағдарламалау ортасы. Ол дербес графикалық және консольдық қосымшалар құруды қолдайды және Linux, MacOSX, iOS, Android, WinCE, Windows және WEB жүйелерінде жұмыс істейді.
  • Max / MSP: A визуалды бағдарламалау тілі платформаға тәуелді емес кодты платформаға арналған жұмыс істеу ортасымен, MacOS және Windows A кросс-платформалық Android жұмыс уақытына арналған қосымшаларға қосады. Ол өзгертілмеген Android қосымшаларына iOS және macOS жүйелерінде жұмыс істеуге мүмкіндік береді
  • Мендикс: Бұлтқа негізделген төмен кодты қосымшаны дамыту платформасы.
  • MonoCross: Ашық көзі модель-қарау-контроллері модель мен контроллер кросс-платформаны бөлісетін, бірақ көрінісі платформаға тән болатын дизайн үлгісі.[13]
  • Моно: Ашық қайнар көздің платформалық нұсқасы Microsoft .NET (қосымшалар мен бағдарламалау тілдеріне арналған негіз)
  • MoSync: C ++ отбасында мобильді платформалық қосымшаны дамытуға арналған ашық көзі SDK
  • Mozilla қолданбалы жүйесі: MacOS, Windows және Linux қосымшаларын құруға арналған ашық бастапқы платформа
  • Android және iOS әзірлемелеріне арналған JavaScript / TypeScript кросс-платформасы.
  • OpenGL: 3D графикалық кітапхана.
  • PureBasic: MacOS, Windows және Linux қосымшаларын құруға арналған меншікті платформалық тіл және IDE
  • Туған: React Native компаниясымен көп платформалы жобаларды құру үшін SDK әмбебап дамуы. Соңғы iOS, tvOS, Android, Android TV, Web, Tizen TV, Tizen Watch, LG webOS, macOS / OSX, Windows, KaiOS, Firefox OS және Firefox TV платформаларын қамтиды.
  • Qt: Қолданба шеңбері және виджет құралдар жинағы үшін Unix тәрізді жүйелері X11, Microsoft Windows, macOS және басқа жүйелер - екеуінде де қол жетімді ашық ақпарат көзі және жеке лицензиялар.
  • Қарапайым және жылдам мультимедиялық кітапхана: мультимедиялық C ++ API графикаға, кіріске, дыбысқа және т.с.с төмен және жоғары деңгейлі қол жетімділікті қамтамасыз ететін.
  • Қарапайым DirectMedia Layer: С-де жазылған, әртүрлі платформалардың графикасы, дыбысы мен кірісіне абстракция жасайтын ашық бастапқы коды бар платформалық мультимедиялық кітапхана API. Ол Linux, Windows және macOS сияқты көптеген операциялық жүйелерде жұмыс істейді және ойындар мен мультимедиялық қосымшаларға бағытталған.
  • Smartface: Android және iOS жүйелеріне арналған мобильді қосымшалар жасауға арналған кросс-платформаның жергілікті қосымшаларын жасау құралы WYSIWYG JavaScript код редакторы бар дизайн редакторы.
  • Tcl / Tk
  • Ultimate ++: Бағдарламашылардың өнімділігіне бағытталған жылдам қосымшаны әзірлеудің C ++ платформасы. Оның құрамына кітапханалар жиынтығы (GUI, SQL, т.б.) және интеграцияланған даму ортасы кіреді. Ол Windows және Unix тәрізді ОЖ-ны қолдайды. U ++ C / C ++ жұмыс уақытының сипаттамаларын сақтай отырып, танымал сценарий тілдерімен бәсекелеседі. Мұнда өзінің интеграцияланған даму ортасы бар TheIDE, ол BLITZ-құрастыру технологиясын C ++ қайта құруды 4 есеге дейін жылдамдатуға мүмкіндік береді.
  • Бірлік: Unity Engine қолданатын тағы бір кросс-платформалы SDK.
  • Uno платформасы: Windows #, macOS, iOS, Android, WebAssembly және Linux #.
  • Шынайы емес: Unreal Engine қолданатын кросс-платформалы SDK.
  • V-Play қозғалтқышы: V-Play - танымал Qt шеңберіне негізделген SDK платформасын дамыту. V-Play қолданбалары мен ойындары Qt Creator ішінде жасалады.
  • WaveMaker: Веб-және гибридті мобильді қосымшаларды (Android және iOS) құруға арналған кросс-платформалық төмен кодты әзірлеу құралы.
  • WinDev: Windows, Linux, .Net және Java үшін интеграцияланған даму ортасы (сонымен бірге қолдауымен Интернет және интранет ). Бағдарламалық жасақтаманы бизнесті басқарудың, бухгалтерлік есептің, өндірістік қосымшалардың, жоспарлау менеджментінің, кассалық бағдарламалық жасақтаманың, биллингтің бағдарламалық жасақтамасын құру үшін оңтайландырылған бағдарлама Негізгі артықшылығы: код модулінің санын азайтатын дайын модульдерді (редакциялау, штрих-кодты басқару, мәліметтерді енгізу, жоспарлау және т.б.) біріктіру есебінен даму жылдамдығы. Windev wlanguage - бұл императивті бағдарламалауға және объектіге бағытталған бағдарламалауға мүмкіндік беретін процедуралық бағдарламалау тілі.
  • wxWidgets: Ашық бастапқы коды бар виджет құралдар жиынтығы қолдану шеңбері.[14] Ол жалғасуда Unix тәрізді жүйелері X11, Microsoft Windows және macOS. Ол қолдануда жазылған бағдарламаларға, егер ол қолданбаны қолданбаса, ол қолдайтын барлық жүйелерде жұмыс істей алады операциялық жүйе -осы қосымша бағдарламалау.
  • Xojo: Жұмыс үстелі, веб және iOS қосымшаларын құру үшін объектіге бағытталған бағдарламалау тілін қолданатын Xojo, Inc әзірлеген RAD IDE. Xojo macOS, Windows, Linux және Raspberry Pi үшін дайындалған, жинақталған жұмыс үстелінің бағдарламаларын жасайды. Ол жеке серверлер ретінде немесе CGI арқылы іске қосылатын жинақталған веб-қосымшаларды жасайды. Жақында ол жергілікті iOS қосымшаларын жасау мүмкіндігін қосты.

Платформалардың дамуындағы қиындықтар

Платформалардың дамуына байланысты белгілі бір мәселелер бар. Олардың кейбіреулері:

  • Платформалық қосымшаларды тестілеу айтарлықтай күрделі болуы мүмкін, өйткені әр түрлі платформалар сәл өзгеше мінез-құлық немесе нәзік қателер көрсете алады. Бұл проблема кейбір әзірлеушілердің платформалық дамуды «бір рет жазыңыз, барлық жерде күйін келтіріңіз» деп қабылдауға мәжбүр етті Sun Microsystems ' "бір рет жаз, кез келген жерге жүгір «маркетинг ұраны.
  • Әзірлеушілерге көбінесе ең кіші ортақ бөлгіш барлық платформаларда қол жетімді мүмкіндіктердің жиынтығы. Бұл қосымшаның жұмысына кедергі келтіруі немесе әзірлеушілерге әр платформаның ең жетілдірілген мүмкіндіктерін қолдануға тыйым салуы мүмкін.
  • Әр түрлі платформаларда көбінесе пайдаланушылар интерфейсінің әр түрлі конвенциялары болады, платформалық қосымшалар әрдайым орналастырыла бермейді. Мысалы, macOS үшін әзірленген қосымшалар және GNOME ең маңызды батырманы терезенің немесе диалогтың оң жағына қою керек, ал Microsoft Windows және KDE керісінше конвенцияға ие болыңыз. Бұл айырмашылықтардың көпшілігі нәзік болғанымен, осы конвенцияларға сәйкес келмейтін кросс-платформалық қосымша қолданушыға ұнамсыз немесе жат болып көрінуі мүмкін. Тез жұмыс істегенде, мұндай қарама-қарсы конгресстер тіпті аяқталуы мүмкін деректердің жоғалуы сияқты, а сұхбат терезесі пайдаланушының файлға енгізілген өзгертулерді сақтағысы немесе алып тастағысы келетіндігін растайтын.
  • Сценарий тілдері мен виртуалды машиналар қосымша орындалған сайын, орындалу жазасын қолданып, орындалатын кодқа аударылуы керек. Сияқты алдыңғы қатарлы әдістерді қолдану арқылы бұл жазаны жеңілдетуге болады дәл қазір жинау; бірақ мұндай әдістерді қолданудың өзінде кейбір есептеу шығындары сөзсіз болуы мүмкін.
  • Әр түрлі платформалар жергілікті пакет форматтарын пайдалануды талап етеді RPM және MSI. Сияқты көп платформалы орнатушылар InstallAnywhere осы қажеттілікті шешіңіз.
  • Платформалардың орындалу ортасы платформалардың қауіпсіздігінде ақауларға ұшырауы мүмкін, бұл платформалар арасындағы зиянды бағдарламалар үшін қолайлы жағдай жасайды.[15]

Сондай-ақ қараңыз

Әдебиеттер тізімі

  1. ^ «Дизайн бойынша нұсқаулық: сөздік». java.sun.com. Алынған 2011-10-19.
  2. ^ «SDD Technology блогы: кросс платформасының анықтамасы». SDD технологиясы. Алынған 2020-10-18.
  3. ^ Ли П Ричардсон (2016-02-16). «Xamarin vs Ionic: A likhit likhit 161616161 Mobile, Cross Platform, Shootout».
  4. ^ а б «Платформа анықтамасы». Linux ақпараттық жобасы. Алынған 2014-03-27.
  5. ^ Net Marketshare веб-сайтында, Windows (барлық нұсқалары) 2011 жылдың наурызындағы жағдай бойынша ~ 89% нарық үлесіне ие
  6. ^ «Моно туралы». mono-project.com. Алынған 2015-12-17.
  7. ^ X86-64 порталы (AMD64, EM64T) - Apache OpenOffice Wiki. Wiki.services.openoffice.org (2012-06-22). 2013-07-17 аралығында алынды.
  8. ^ Corti, Sascha P. (қазан 2011). «Браузер мен функцияны анықтау». MSDN журналы. Алынған 28 қаңтар 2014.
  9. ^ Чудхари, С.Р. (2014). «Веб-мобильді қосымшалардың платформалық тестілеуі және техникалық қызмет көрсетуі». Бағдарламалық жасақтама бойынша 36-шы Халықаралық конференцияның Companion материалдары - ICSE Companion 2014 ж: 642–645. дои:10.1145/2591062.2591097. ISBN  9781450327688. S2CID  1903037.
  10. ^ Крибба. Quake III аренасы, Giant Bombcast, 2013 жылғы 15 ақпан.
  11. ^ GUI Toolkit, Framework беті
  12. ^ «Платформадан тәуелсіз сұрақтар». Архивтелген түпнұсқа 2008-08-16. Алынған 2009-04-25.
  13. ^ «Xamarin Cross-platform қосымшасын жасаудың 12 артықшылығы». HeadWorks. 15 наурыз 2019.
  14. ^ WxWidgets сипаттамасы
  15. ^ Уоррен, Том (2020-01-14). «Microsoft Windows 7-мен және оны басқарып отырған миллиондаған компьютерлермен қоштасады». Жоғарғы жақ. Алынған 2020-02-06.