Բջջային հավելվածների դասակարգում

Բջջային հավելվածների մշակումը բջջային սարքի վրա աշխատող ծրագրային ապահովման ծրագրերի ստեղծման գործընթաց է, որը օգտագործում է ցանցային կապ՝ աշխատելու հեռավոր հաշվիչ ռեսուրսների հետ:Վերջին տարիներին բջջային ինտերնետի տեխնոլոգիայի զարգացման հետ մեկտեղ բջջային հավելվածների թիվը կտրուկ աճում է։ Բազմաթիվ բջջային ծրագրերից օգտվողները հաճախ դժվարանում են գտնել համապատասխան հավելվածները։ Այդ պատճառով անհրաժեշտ է ավտոմատ կերպով դասակարգել ծրագրերն ըստ հավելվածների տեղեկատվության, որպեսզի օգտագործողներին առաջարկեն համապատասխան ծրագրեր։


== Բջջային հավելվածների տեսակները ==
Բջջային հավելվածներ կառուցելիս կա զարգացման երեք հիմնական մոտեցում։ Դրանք են՝

Մայրենի բջջային հավելվածներ,
Պրոգրեսիվ վեբ ծրագրեր և
Հիբրիդային բջջային ծրագրեր:


=== Մայրենի բջջային հավելվածներ ===
Մայրենի բջջային հավելվածները գրված են ծրագրավորման լեզվով և պլատֆորմի շրջանակներում, որոնք տրամադրված են պլատֆորմի սեփականատիրոջ կողմից և գործում են անմիջապես սարքի օպերացիոն համակարգում:Նման ծրագրերը մշակվում են բացառապես մեկ բջջային օպերացիոն համակարգի համար, հետևաբար դրանք «բնիկ» են որոշակի պլատֆորմի կամ սարքի համար։ IOS, Android, Windows հեռախոսների, Symbian- ի, Blackberry- ի նման համակարգերի համար ստեղծված հավելվածը չի կարող օգտագործվել այլ հարթակում, քան իրենց։ Այլ կերպ ասած, դուք չեք կարողանա օգտագործել Android ծրագիրը iPhone- ում։ Մայրենի հավելվածների հիմնական առավելությունը բարձր արդյունավետությունն է քանի որ մշակողները օգտագործում են հարազատ սարքի UI և մուտքի API- ների լայն տեսականի, որը սահմանափակում չի դնում հավելվածների օգտագործման վրա։ Եվ քանի որ բնիկ հավելվածները ուղղակիորեն կապվում են սարքի ապարատային համակարգի հետ, նրանց հասանելի է սարքի այնպիսի գործառույթների լայն ընտրություն, ինչպիսիք են Bluetooth, հեռախոսագրքերի կոնտակտները, տեսախցիկը, NFC և այլն։ Մայրենի բջջային հավելվածների մաս են համարվում նաև խաչաձև պլատֆորմի բնիկների բջջային ծրագրերը, որոնք կարող են գրվել տարբեր ծրագրավորման լեզուներով և շրջանակներով, բայց դրանք կազմվում են հարազատ ծրագրի մեջ, որն աշխատում է ուղղակիորեն սարքի գործավար համակարգում։ Այնուամենայնիվ, հայրենի հավելվածների հետ կապված խնդիրը կայանում է նրանում, որ եթե դուք սկսում եք դրանք զարգացնել, ապա պետք է կրկնապատկեք ջանքերը տարբեր հարթակներից յուրաքանչյուրի համար։ Մեկ պլատֆորմի համար ձեր ստեղծած ծածկագիրը չի կարող նորից օգտագործվել մեկ այլ հարթակի վրա։ Սա ինչպես նաև յուրաքանչյուր վարկածի ծածկագիրը պահելու և թարմացնելու համար անհրաժեշտ ջանքերը մեծացնում են ծախսերը։


=== Պրոգրեսիվ վեբ ծրագրեր ===
Վեբ հավելվածները աշխատում են մայրենի ծրագրերի նման, բայց մուտք են գործում ձեր բջջային սարքի վեբ զննարկչի միջոցով։ Դրանք ինքնուրույն ծրագրեր չեն ՝ այն իմաստով, որ ձեր սարքում պետք է կոդ ներբեռնեն և տեղադրեն։ Նրանք իրականում արձագանքում են կայքերին, որոնք հարմարեցնում են դրա օգտագործողի ինտերֆեյսը այն սարքին, որի վրա օգտվողն է։ Քանի որ բոլոր անձնական տվյալների շտեմարանները պահվում են սերվերի վրա, օգտվողները կարող են մուտք գործել ցանկացած սարքից, երբ առկա է ինտերնետ կապ։ Փաստորեն, երբ բախվում եք վեբ ծրագիր «տեղադրելու» տարբերակին, այն հաճախ պարզապես էջանշում է կայքի URL- ը ձեր սարքում։ Վեբ ծրագրերը մշակվում են HTML5, CSS, JavaScript, Ruby և նմանատիպ ծրագրավորման լեզուների միջոցով, որոնք օգտագործվում են վեբ աշխատանքի համար։ Վեբ հավելվածի տեսակներից մեկը Պրոգրեսիվ վեբ հավելվածն է (PWA), որը հիմնականում բնիկ ծրագիր է, որն աշխատում է զննարկչի մեջ։ PWA- ները առաջարկում են այլընտրանքային մոտեցում բջջային հավելվածների ավանդական զարգացմանը `շրջանցելով հավելվածների խանութներն ու հավելվածների տեղադրումները։ PWA- ներն այն վեբ հավելվածներն են, որոնք օգտագործում են զննարկչի մի շարք հնարավորություններ, ինչպիսիք են `անցանց ռեժիմում աշխատելը, ֆոնային գործընթաց վարելը և սարքի հիմնական էկրանին հղում ավելացնելը։ Առավելություններն կայանում են նրանում որ այն հիմնված է վեբի վրա և կարիք չկա հարմարեցնել պլատֆորմի հետ։ Սա կրճատում է զարգացման ծախսերը։ Բացի այդ, ներբեռնելու բան չկա։ Դրանք տեղ չեն զբաղեցնի ձեր սարքի հիշողության մեջ, ինչպես հարազատ հավելվածը, ինչը հեշտացնում է տեխնիկական սպասարկումը։ Օգտատերերը կարիք չունեն ներբեռնել թարմացումը հավելվածների խանութում։ Բայց մյուս կողմից վեբ հավելվածները ամբողջովին կախված են սարքի կողմից օգտագործվող զննարկչից։ Կլինեն մի գործարկիչներ, որոնք հասանելի կլինեն մեկ զննարկչի շրջանակներում, բայց հասանելի չեն լինի մեկ այլ բրաուզերում, նաև քանի որ դրանք վեբ-կայքերի <<պատյաններ>> են, դրանք ամբողջովին անցանց չեն աշխատելու։ Նույնիսկ եթե դրանք անցանց ռեժիմ ունեն, սարքին դեռ անհրաժեշտ կլինի ինտերնետ կապ ՝ ձեր սարքում պահեստավորված տվյալները պահելու, ցանկացած նոր տվյալներ առաջարկելու կամ էկրանին եղածը թարմացնելու համար։


=== Հիբրիդային բջջային ծրագրեր: ===
Սրանք վեբ ծրագրեր են, որոնք արտաքինից հարազատ հավելվածների տեսք ունեն։ Նրանք կարող են ունենալ հիմնական էկրանի հավելվածի պատկերակ, պատասխանատու դիզայն, արագ կատարում, նույնիսկ կարող են գործել անցանց, բայց դրանք իրականում վեբ հավելվածներ են։ Հիբրիդային հավելվածի կառուցումը շատ ավելի արագ և տնտեսական է, քան հայրենի ծրագիրը։ Բոլոր պլատֆորմների համար մեկ կոդի բազան ապահովում է էժանագին սպասարկում և սահուն թարմացում։ Հասանելի են լայնորեն օգտագործված API- ներ, ինչպիսիք են գիրոսկոպը, աքսելերոմետրը, աշխարհագրական դիրքը։ Դրանք նաև արագորեն բեռնվում են, իդեալական են դանդաղ ինտերնետ կապ ունեցող երկրներում օգտագործման համար և օգտնվողներին տալիս են կայուն օգտագործման փորձ։ Մյուս կողմից, հիբրիդային ծրագրերը չունեն կատարողականություն, արագություն և ընդհանուր օպտիմալացում, օրինակ ՝ հայրենի ծրագրերի նման։ Բացի այդ, կան որոշակի նախագծման խնդիրներ, որոնք կապված են հավելվածների անկարողության` երկու կամ ավելի հարթակներում ճիշտ նույն կերպ վարքագիծ դրսևորելու հետ։


== Աղբյուրներ ==
https://aws.amazon.com/mobile/mobile-application-development/
https://thinkmobiles.com/blog/popular-types-of-apps/ Archived 2020-11-11 at the Wayback Machine.
https://clevertap.com/blog/types-of-mobile-apps/


== Գրականություն ==
International Journal of Advanced Research in Science, Engineering and Technology.
Automatic Classification of Mobile Apps Reviews for Requirement Engineering: Exploring The Customer’s Need from The Healthcare Mobile Applications.
Applications of Security, Mobile, Analytic, and Cloud (SMAC) Technologies for Effective Information Processing and Management


== Տես նաև ==
Ինֆորմատիկա
Մեքենայական ուսուցում
Արհեստական բանականություն