Кіріспе
PIGUI (Platform Independent Graphical User Interface) - бағдарламалаушы бірнеше компьютерлік платформалар үшін GUI кодын шығаруға пайдаланатын бағдарламалық кітапхана. Пакет бағдарламалаушының мақсат еткен GUI-ден тәуелсіз субпрограммалар мен/немесе объектілерді (бағдарламалау әдісімен бірге) ұсынады. Бағдарламалық жасақтама PIGUI ретінде танылу үшін ол кем дегенде екі түрлі операциялық жүйелердегі бірнеше графикалық графикалық интерфейстерді қолдауы керек (мысалы, екі Unix қорабындағы OPEN LOOK және X11 қолдауын ғана есептемейді). Құрамында қосымша тасымалдауға мүмкіндік беретін қосымша құрылғылар болуы шарт емес. Туған жердің көрінісі мен сезімін сезіну - бұл жақсы қасиет, бірақ PIGUI үшін маңызды емес.
Қарастырылатын мәселелер
PIGUI пайдалануда шектеулер бар, мысалы, PIGUI тек бағдарламаның графикалық интерфейс аспектілерімен айналысады, сондықтан бағдарламашы басқа переносимость мәселелеріне жауапты, PIGUI-дің көпшілігі алынған кодты орындауды баяулайды, ал бағдарламашылар негізінен PIGUI-де көрсетілген мүмкіндіктер жиынтығымен шектеледі. PIGUI-ге тәуелділік жобаның қиындықтарына әкелуі мүмкін, өйткені белгілі бір PIGUI-ді платформаға тән GUI-ге қарағанда кодтауды білетін адамдар саны аз, озық көмек бере алатын адамдардың санын шектейді, егер сатушы істен шықса, одан әрі қолдау болмауы мүмкін, оның ішінде болашақ OS жетілдірілуі, бірақ бастапқы кодтың болуы бұл мәселені жеңілдете алады, бірақ оны жоймайды. Сонымен қатар, кез келген пакеттегі, соның ішінде PIGUI-дегі қателер өндірістік кодқа дейін сүзгіленеді.
Баламалы тәсілдер
Веб-браузерлер көптеген қолданбалар үшін ыңғайлы балама ұсынады. Веб-браузерлер HTML-ді орталық серверде орналастырылған қосымшалар үшін презентация қабаты ретінде пайдаланады, ал веб-браузерлер барлық платформалар үшін қол жетімді. Алайда, кейбір қосымшалар веб-парадигмасына жақсы сәйкес келмейді, GUI мүмкіндіктері бар жергілікті қосымшаны қажет етеді. Мұндай қосымшалар бірнеше платформаларды қолдау керек болған жағдайда, PIGUI-ге көбірек сәйкес келуі мүмкін. PIGUI пайдаланудың орнына, әзірлеушілер өз бағдарламаларын GUI және GUI емес объектілерге бөлуге және GUI объектілерін жергілікті API-де іске асыруға болады. Кейін порттау кезінде жаңа платформаға тек GUI объектілерін қайта жазу керек. Кейбір бағдарламалық жасақтама жасаушылар осы әдісті ұсынады, өйткені ол әр платформаға жақсы сәйкес келеді және PIGUI құрал-жабдықтарымен жиі байланысты болатын үстеме шығындарды жояды. Әрине, бұл бастапқы дамуда да, ағымдағы қызмет көрсетуде де көбірек күш салуды талап етуі мүмкін (бірден-бір бастапқы код базасы жоқ). Бұл сонымен қатар әрбір мақсатты платформа үшін кодтауды үйренуді білдіреді, бұл (әдетте) қарапайым тапсырма емес, сондықтан PIGUI пакеттерінің нарығы.
Пайдаланушы интерфейсінің тәсілдері
PIGUI-ның көпшілігі, егер бәрі болмаса, платформа тәуелсіздігін қамтамасыз ету үшін үш тәсілдің біреуін қолданады. Екі ең көп таралған тәсілдер "қабатты" және "эмуляцияланған" пайдаланушы интерфейсі, бірақ болашақ тәсіл "API эмуляцияланған" интерфейс. Әр түрлі графикалық интерфейстердің сәйкестігін қамтамасыз ету үшін қабатты интерфейсті пайдаланатын топтамалар жергілікті, үшінші тараптың графикалық интерфейстерін құрастыру құралы жиынтығына қол жеткізеді. Қабатты пайдаланушы интерфейстерінің артықшылығы бар, өйткені олар бір GUI-ге шоғырланған басқа өнімдерге тәуелді, олар эмуляцияланған интерфейстерге қарағанда аз бағдарламалық қамтамасыз етуді қамтамасыз етуі керек (және, сондықтан, әдетте, арзан). Қабатты интерфейстер барлық платформаларда дұрыс көрініс пен сезімге ие болу ықтималдығы жоғары. Эмуляцияланған пайдаланушы интерфейсінде PIGUI-дің нәтижесінде пайда болған код төменгі деңгейдегі шақыруларды шығарады және барлық көрініс пен сезімді PIGUI бағдарламалық жасақтамасы өзі басқарады (мысалы, OpenWindows қолдау үшін бағдарламалық жасақтама XView бағдарламасын жасамайды, ол XView құрал-жабдықтар жинағымен құрастырылуы керек; бағдарламалық жасақтама тікелей X ішкі ерекшеліктерімен интерфейс жасайтын кодты шығарады). Эмуляцияланған пайдаланушы интерфейсін қамтамасыз ету үшін пакет провайдері көрініс пен сезімді қолдау үшін қосымша кодты көп әзірлеуі керек. Эмуляцияланған пайдаланушы интерфейстерінің артықшылығы бар, мысалы, X11 жұмыс станциясындағы біреу Macintosh стильіндегі UI-нің қалай көрінетінін көре алады (себебі, сыртқы көрініс пен сезім өнімнің бір бөлігі). Эмуляцияланған интерфейстер қабатты интерфейске қарағанда жылдам графикалық интерфейсті қамтамасыз ету мүмкіндігіне ие; сонымен қатар, графикалық интерфейс бағдарламалық жасақтамасын құру үшін басқа пакеттерді сатып алуды (немесе пайдалануды үйренуді) қажет етпейді. Платформа тәуелсіздігіне үшінші тәсіл - басқа ГУИ-ді мақсат ету үшін қолдау көрсетілетін мақсаттың API-лерінің біріне (әдетте, Microsoft Windows API) эмуляция жасау. Осы өнімдердің бірінде эмуляцияланған API-ді пайдалана отырып бағдарламалау керек және код (өнімнің тасымалдануы бойынша) басқа GUI-ге тасымалданатын болады.