Пандемиядан кийин мобилдик тиркемелерди иштеп чыгууда олуттуу өсүш байкалып, Flutter сыяктуу платформалар аралык колдонмолорду иштеп чыгуу куралдарын колдонуу көбөйдү.
Анын популярдуулугуна карабастан, Flutter бир нече кемчиликтери бар. Ошентип, иштеп чыгуучулар жакшыраак альтернативаларды издеп жатышат.
Флуттердин эң мыкты альтернативаларын талкуулоодон мурун, келгиле, Flutter жөнүндө көбүрөөк билели.
Эмне Flutter?
2017-жылдын май айында сунушталган Flutter – бул мобилдик, веб жана иш тактасы үчүн бир коддук базадан жагымдуу, түпнуска курулган колдонмолорду түзүү үчүн Google'дун UI инструменттери.
Кыскача айтканда, бул сизге бир код базасы менен жергиликтүү мобилдик тиркемени курууга мүмкүндүк берет. Бир программалоо тилин жана код базасын (iOS жана Android үчүн) колдонуп, эки башка тиркемени түзө аласыз дегенди билдирет.
Dart, программалоо тили, Flutter колдонмолорун түзүү үчүн колдонулат. Флуттердин негизги концепциясы, экинчи жагынан, виджеттердин тегерегинде. Виджеттерди колдонуу менен колдонуучулар толук колдонуучу интерфейсин түзө алышат.
Виджеттер структуралык элементтерге, эстетикалык элементтерге, UI макет элементтерине ж.б.
Flutter – бул программалык камсыздоону иштеп чыгуу комплекти, анын ичине рендеринг кыймылдаткычтары, CLI (командалык интерфейс куралдары), иштеп чыгуучунун куралдары, толугу менен өзгөрүлүүчү виджеттер, тестирлөө, плагиндердин колдоосу менен кеңири мүчүлүштүктөрдү оңдоо, виджет дарагынын инспектору, API интерфейстери жана башка көптөгөн нерселер кирет.
Flutter Негизги өзгөчөлүктөрү
- Тез өнүгүү: Флуттерде иштеп чыгуучуларга колдонмолорду, анын ичинде оффлайн документтерин тез түзүүгө жана жайылтууга жардам берген көптөгөн функциялар бар. Колдонмонун көптөгөн маанилүү макеттери жана элементтери виджеттер катары алдын ала курулган жана эң маанилүү өзгөчөлүк, абалды билдире турган ысык кайра жүктөө, бул колдонмону бир секундага жетпеген убакытта кайра курууга мүмкүндүк берип, көп убакытты үнөмдөйт.
- Native Performance: Флтер жөнүндө эң сонун аспектилердин бири - бул ачык булак, адекваттуу интеллекти бар адамга анын өсүшүнө салым кошууга мүмкүндүк берет. Натыйжада, Flutter көбүнчө жергиликтүү колдонмолор сыяктуу эң сонун көрсөткүчкө жетишти.
- Экспрессивдүү жана ийкемдүү колдонуучу интерфейси (UI): Жакшы колдонуучу интерфейси (UI) рынокто колдонмолорду иштеп чыгуу технологиясынын маанилүү аспектиси болушу керек. Бирок, материалдык дизайн сыяктуу тез кеме өзгөчөлүктөрүнүн жардамы менен, колдонмо эч кандай жумушсуз эле мыкты көрүнүүгө жардам берет, флтер аны башка деңгээлге көтөрдү.
- Платформалар аралык операциялар: Flutter'тин эң сонун өзгөчөлүгү - мобилдик тиркемени түзүп жатканда, сиз веб жана рабочий колдонмону да аласыз.
Flutter Pain Points
Flutter кээ бир сонун өзгөчөлүктөргө ээ. Бирок, көптөгөн факторлор иштеп чыгуучуларга аны колдонууга тоскоол болууда. Аларга төмөнкүлөр кирет:
- Иштеп чыгуучулар жаңы программалоо тилин үйрөнүүгө бир аз убакыт коротушу керек, анткени платформа Dart үстүнө курулган.
- Эгер сиз түзмөккө тиешелүү мүмкүнчүлүктөрү бар тиркемелерди түзгүңүз келсе, Flutter сиз үчүн эмес.
- Андан тышкары, кээ бир иштеп чыгуучулар Flutter коммерциялык жактан татаал колдонмолорду түзүү үчүн натыйжасыз деп айтышат.
Ушул себептерден улам, Флуттерге эң сонун альтернатива издөө туура чечим болушу мүмкүн.
1. иш-аракет кылгыла эне
иш-аракет кылгыла эне толугу менен JavaScript менен мобилдик колдонмолорду түзүүгө мүмкүндүк берет. Ал React сыяктуу эле концепцияга ээ жана декларативдик компоненттерди колдонуу менен татаал мобилдик UI түзүүгө мүмкүндүк берет.
Сиз мобилдик веб тиркемесин, HTML5 колдонмосун же React Native менен гибриддик колдонмону жасабайсыз; сиз Objective-C же Java менен жасалгандан айырмаланбаган чыныгы мобилдик колдонмону жасайсыз.
React Nativeдеги UI куруунун маанилүү компоненттери стандарттуу iOS жана Android колдонмолорундагыдай. Сиз жөн гана бул бөлүктөрдү JavaScript жана React менен бириктиресиз.
Бул алкак менен сиз бир код базасын колдонуу менен көптөгөн платформалар үчүн эң чоң колдонмолорду түзө аласыз. React Native Framework, ачык булактуу, кайчылаш платформа мобилдик алкагы 2015-жылы басылып чыккан.
Анын укмуштуудай мүмкүнчүлүктөрүнүн жана артыкчылыктарынын аркасында ал тез арада платформалар аралык мобилдик колдонмолор үчүн эң чоң платформалардын бири болуп калды. Бирок, иштеп чыгуучулардын саны барган сайын көбөйүп, күчтүү кросс-платформа тиркемелерин түзүү үчүн React Nativeге кайрылып жатышат.
Өзгөчөлүктөрү
- Ачык булактуу платформа.
- Live React Code көп жолу колдонулушу.
- Архитектура модулдук жана колдонууга ыңгайлуу.
жакшы
- Тезирээк куруу – Кыскартылган иштеп чыгуу убактысы - React Nativeдин негизги сатуу өзгөчөлүгү. Алкак процессти тездетүүгө жардам бере турган көптөгөн колдонууга даяр компоненттерди камтыйт.
- Бир алкак, бир нече платформа – React Native сизге коддук базаңызды (же анын бир бөлүгүн) iOS жана Android ортосунда кайра колдонууга мүмкүндүк берет. Программаңызда колдонулган түпнуска модулдардын санына жараша, чыныгы кросс-платформаны иштеп чыгуу кандайдыр бир деңгээлде ишке ашат.
- Кичинекей командалар - Android жана iOS үчүн жергиликтүү өнүгүү эки көз карандысыз команданы түзүүнү талап кылат. Бул иштеп чыгуучулардын кызматташтыгын муунтуп, натыйжада өнүгүүнү жайлатышы мүмкүн. Эгерде сиз React Native тандасаңыз, сиз биринчи кезекте а JavaScript иштеп чыгуучусу ким эки платформа үчүн код жаза алат.
- Жөнөкөйлөштүрүлгөн UI – React Native мобилдик колдонуучу интерфейсин түзүүгө бекем багытталган. Сиз жергиликтүү өнүгүү учурунда программадагы иш-аракеттердин ырааттуулугун түзүшүңүз керек болот. RN декларативдик программалоону колдонгондуктан, милдеттерди ишке ашыруунун мындай ырааттуулугу мындан ары зарыл эмес. Натыйжада, колдонуучу бара турган жолдордогу кемчиликтерди аныктоо оңой болот.
жактары
- Шайкештик жана мүчүлүштүктөрдү оңдоо маселелери - Иштеп чыгуучулар пакеттин шайкештиги же мүчүлүштүктөрдү оңдоо куралдары менен ар кандай көйгөйлөргө туш болушу мүмкүн. Эгерде сиздин иштеп чыгуучуларыңыз React Native менен жакшы билбесе, бул сиздин өнүгүүңүзгө терс таасирин тийгизиши мүмкүн, анткени алар көйгөйлөрдү чечүү үчүн убакыт коротушат.
- Түпкүлүктүү иштеп чыгуучуларга муктаждык - Кээ бир жергиликтүү функциялар жана модулдар белгилүү бир платформанын терең тажрыйбасын талап кылат. Көптөгөн жергиликтүү колдонмолордун мүмкүнчүлүктөрү үчүн кутудан тышкаркы колдоонун жоктугу (мисалы, түртүү эскертмелери) мурун React Native иштеп чыгуусу үчүн негизги маселе болгон.
2. иондук
Иондук болуп саналат ачык булактуу UI куралдар топтому HTML, CSS жана JavaScript сыяктуу веб-технологияларды колдонуу менен жогорку натыйжалуу, сапаттуу мобилдик колдонмолорду, рабочий колдонмолорду жана прогрессивдүү веб-тиркемелерди түзүү үчүн.
Бул алдыңкы бөлүк SDK бир эле код базасын колдонуу менен iOS, Windows жана Android түзмөктөрү үчүн мобилдик тиркемелерди түзүүгө мүмкүндүк берген алкак.
Бул мобилдик түзмөктөр үчүн кайчылаш платформа программалоо куралы болуп саналат. Бул программисттерге бир жолу түзүп, каалаган жерде иштетүүгө мүмкүнчүлүк берет.
Ionic, чынында эле, гибриддик тиркемелерге багытталган HTML5 үчүн мобилдик тиркемелерди иштеп чыгуу негизи. Ionic биринчи кезекте колдонуучунун алдыңкы тажрыйбасына же колдонмоңуздун жалпы көрүнүшүнө жана сезимине жооп берген UI өз ара аракетине байланыштуу.
Angular JS жана Apache Cordovaга негизделген бул алкактын баштапкы версиясы 2013-жылы чыгарылган жана бул кандайдыр бир жагынан Flutterге окшош укмуштуудай чечим.
Аны түшүнүү оңой жана Angular, Cordova жана башкалар сыяктуу башка китепканалар же алкактар менен иштей алат. Ал ошондой эле жөнөкөй скрипт кошууну колдонуу менен алдыңкы алкаксыз колдонулушу мүмкүн. Ал коддоо убактысын кыскартуу менен программаны түзүүгө мүмкүндүк берген буйрук сап интерфейсине ээ.
Өзгөчөлүктөрү
- CSS компоненттери - Бул компоненттер, алардын түпкү көрүнүшү жана сезими менен, мобилдик тиркемеге керектүү дээрлик бардык бөлүктөр менен камсыз кылат. Компоненттердин демейки стили өзүңүздүн дизайныңызга ылайыкташтырылышы үчүн оңой эле өзгөртүлүшү мүмкүн.
- Ionic CLI - Бул Ionic колдонмолорун ишке киргизүү, иштеп чыгуу, иштетүү жана симуляциялоо үчүн буйруктарды камтыган NodeJS утилитасы.
- AngularJS – AngularJS Ionic AngularJS MVC архитектурасын колдонуу менен мобилдик түзмөктөр үчүн ылайыкташтырылган татаал бир беттик колдонмолорду түзөт.
- Cordova плагиндери – Apache Cordova плагиндери JavaScript коду менен түпнуска түзмөктүн иштешин колдонуу үчүн талап кылынган API менен камсыз кылат.
жакшы
- Жергиликтүү iOS/Android тиркемелери менен салыштырганда, ал тезирээк иштеп чыгууга мүмкүндүк берет.
- Кээ бир плагин колдоосунан тышкары, ал бир эле код базасын колдонуу менен бир нече операциялык системалар үчүн колдонмолорду курууга мүмкүндүк берет.
- Бул модулдарды жана компоненттерди жөнөкөй тестирлөөгө мүмкүндүк берет.
- Анын көптөгөн плагиндери жана кайра колдонула турган компоненттери бар.
- Ал ар кандай UI компоненттерин камтыйт жана тез прототиптештирүүгө мүмкүндүк берет.
- Ал динамикалык мобилдик тиркемелерди түзүү үчүн көптөгөн плагиндерди камсыз кылат.
- Сиз колдонууну жана башкарууну жөнөкөйлөтүүчү көптөгөн UI компоненттерин аласыз.
жактары
- Иондук колдонуу менен мүчүлүштүктөрдү оңдоо кыйын болушу мүмкүн жана маселени чечүү үчүн көбүрөөк убакыт талап кылынат. Бул катанын себебин аныктоону кыйындатат жана ката кабары кээде бүдөмүк болушу мүмкүн.
- Ал ишенимдүү эмес жана бири-бири менен кагылышы мүмкүн болгон кээ бир жергиликтүү плагиндерди камтыйт.
- Эгерде сиз гибриддик колдонмолорду иштеп чыгып жатсаңыз, коопсуздук көйгөйлөрүнө туш болушуңуз мүмкүн жана кодуңуз хакерлерге алсыз болушу мүмкүн.
- Татаал жана ресурсту көп талап кылган мобилдик тиркемелерди иштеп чыгууда, кээ бир иштешине байланыштуу көйгөйлөр болушу мүмкүн.
- Эгер сиз иондук алкактан баштасаңыз, жергиликтүү функцияга жетүү үчүн плагиндерге таянышыңыз керек.
3. Кордоба
Apache Cordova бул ачык булактуу алкак, ал веб-иштеп чыгуучуларга учурдагы HTML, CSS жана JavaScript мазмунун бир катар мобилдик түзмөктөр үчүн жергиликтүү тиркемелерди түзүү үчүн колдонууга мүмкүндүк берет.
Кордова сиздин веб тиркемеңизди көрсөтүү үчүн түпнуска WebView колдонот. WebView - бул жергиликтүү программанын ичиндеги веб мазмунду көрсөткөн колдонмо компоненти (баскычка же өтмөк тилкесине окшош).
WebViewди URL талаасы же статус тилкеси сыяктуу типтүү колдонуучу интерфейсинин эч бири жок веб браузер деп эсептеңиз.
Nitobi ошондой эле Колдонмо иштеп чыгуу үчүн ыңгайлуу негиз болгон Cordova түздү.
Бул контейнерде иштеген веб-тиркеме мобилдик браузерде иштеген башка веб-тиркемелерге окшош иштейт — ал кошумча HTML барактарын ачып, JavaScript кодун аткарып, медиа файлдарды ойнотуп жана тышкы серверлер менен байланыша алат.
Мобилдик тиркеменин бул формасы кээде гибриддик тиркеме деп аталат. Cordova колдонмолору жергиликтүү түзмөктөрдүн API'лерине кирүү мүмкүнчүлүгү бар мобилдик түзмөк колдонмолору катары топтолгон. Бул алкак ошондой эле жергиликтүү жана гибриддик код үзүндүлөрүн айкалыштырууга мүмкүндүк берет.
Өзгөчөлүктөрү
- Cordova Негизги компоненттери: Cordova ар кандай мобилдик тиркемеде талап кылынган ар кандай негизги компоненттерди камтыйт. Бул компоненттер колдонмонун пайдубалын түзүп, өзүбүздүн логиканы иштеп чыгууга көңүл бурууга мүмкүнчүлүк берет.
- Cordova Plugins: Бул биздин JavaScript долбоорго жергиликтүү мобилдик функцияларды интеграциялоо үчүн API камсыз кылат. Бул плагиндер программага камера, батарейка, байланыштар жана башкалар сыяктуу түзмөк функцияларына кирүү мүмкүнчүлүгүн берет.
- Command Line Interface (CLI): Бул утилита процесстерди түзүү жана ар кандай платформалар үчүн плагиндерди орнотуу үчүн жооптуу. Бул демилгелерди баштоо жана өнүгүү процессин бир калыпта жүргүзүү үчүн колдонулат.
жакшы
- Аны үйрөнүү оңой жана платформалар аралык тиркемелерди түзүү үчүн колдонулушу мүмкүн.
- Бул эркин жана ачык платформа болуп саналат.
- Cordova тиркемесин иштеп чыгуу тез, анткени ал ар кандай платформаларга шайкеш келген колдонмого айланат.
- Бул жаңы программалоо тилдерин үйрөнбөстөн, көптөгөн платформалар үчүн колдонмолорду түзүүгө мүмкүндүк берет.
- Бул түзмөктүн камерасына, GPSке жана файл тутумуна кирүүгө мүмкүндүк берген алдын ала түзүлгөн плагиндердин жыйындысы.
жактары
- Анын ылдамдыгы анын кодун браузердин көрүнүшүндө иштеткендиктен азаят.
- Гибриддик колдонмолор жергиликтүү колдонмолорго караганда жайыраак болгондуктан, ал чоң колдонмолор үчүн ылайыктуу эмес.
- Бул оюн тиркемелерин иштеп чыгуу үчүн идеалдуу эмес, анткени ал учурда жеткиликсиз болгон бир нече жогорку класстагы плагиндерди талап кылат.
4. Xamarin
Xamarin - iOS, Android жана Windows үчүн заманбап жана performact.net колдонмолорун иштеп чыгуу үчүн ачык булак платформасы.
Xamarin колдонмолору компьютерде же Macта түзүлүп, андан кийин Android үчүн an.apk файлы же iOS үчүн an.ipa файлы сыяктуу жергиликтүү тиркеме пакеттерине түзүлүшү мүмкүн.
Бул кодду, тестти жана бизнес логикасын платформалар менен бөлүшүүнү жана Visual Studio аркылуу C# тилинде кайчылаш платформа колдонмолорун түзүүнү каалаган иштеп чыгуучулар үчүн иштелип чыккан.
Сиз толугу менен жергиликтүү көрүнүшү жана сезими менен мобилдик колдонмо түзө аласыз. Xamarinде сиз бардык SDK функцияларына кирүү мүмкүнчүлүгү бар бир C# код базасын кура аласыз.
Бул үлгү иштеп чыгуучуларга бардык бизнес логикасын бир тилде жазууга (же учурдагы колдонмонун кодун кайра колдонууга) мүмкүнчүлүк берет, ошол эле учурда платформалардагы жергиликтүү аткарууга, көрүнүшкө жана сезимге жетишет.
Өзгөчөлүктөрү
- Толук SDK байланыштыруу - Xamarin iOS жана Android эки платформасындагы дээрлик бардык SDK платформалары үчүн байланыштарга ээ. Андан тышкары, бул табылгалар абдан терилген, демек, аларды чабыттоо жана колдонуу оңой жана алар куруу убагында жана иштеп чыгуу учурунда типти комплекстүү текшерүүгө мүмкүндүк берет. Катуу терилген байланыштар аткаруу убактысынын каталарын азайтат жана сапаттуу программаларды жаратат.
- Заманбап тил конструкциялары - Xamarin колдонмолору C# тилинде жазылган, Objective-C жана Javaга караганда бир топ артыкчылыктарга ээ заманбап тилде, мисалы, динамикалык тил мүмкүнчүлүктөрү, lambdas, LINQ сыяктуу функционалдык конструкциялар, параллелдүү программалоо, генериктер жана башкалар.
- Мобилдик түзмөктөр үчүн кайчылаш платформалык колдоо - Xamarin iOS, Android жана Windows үч негизги платформалары үчүн ар тараптуу кайчылаш платформа шайкештикти камсыз кылат. Xamarin менен, алардын кодунун 90% га чейин бөлүшүү үчүн тиркемелер иштелип чыгышы мүмкүн. Essentials үч платформада тең бөлүшүлгөн ресурстарга жетүү үчүн бирдиктүү API менен камсыз кылат. Мобилдик иштеп чыгуучулар үчүн жалпы код иштеп чыгуу чыгымдарын, ошондой эле рынокко чыгуу убактысын кескин кыскартат.
- Roust Base Class Library (BCL) — Xamarin колдонмолору башкалардын арасында күчтүү XML, Берилиштер базасы, Сериялаштыруу, IO, Стринг жана Тармактык колдоону камтыган кеңири жана жөнөкөйлөштүрүлгөн мүмкүнчүлүктөрү бар класстардын чоң топтому. Учурдагы C# коду BCL мүмкүнчүлүктөрүн кеңейткен жүздөгөн китепканаларга кирүүгө мүмкүндүк берүүчү колдонмодо колдонуу үчүн түзүлүшү мүмкүн.
жакшы
- Кыскараак иштеп чыгуу циклдери - Xamarin тиркемесин иштеп чыгуунун бир маанилүү артыкчылыгы - коддун 90% көп мобилдик платформалар үчүн тиркемелерди түзүү үчүн кайра колдонулушу же кайра иштетилиши. Bing C# жана жергиликтүү код менен курулган. Таза китепканалар жана Xamarin тиркемесин иштеп чыгуу көп убакытты жана жумушту үнөмдөөгө жардам берет. Ал бир нече платформалар үчүн колдонмолорду жаратып жатканда иштеп чыгуу мөөнөттөрүн кыскартат.
- Түзмөктү толук колдоо (б.а. камера, GPS) - Xamarin жергиликтүү деңгээлдеги колдонмо функциясын камсыздагандыктан, ал аппараттык шайкештик көйгөйлөрүн, плагиндерди жана API'лерди качат. Ал ошондой эле жергиликтүү китепканалар менен байланышууга мүмкүнчүлүк берет. Иштеп чыгуучулар жалпы түзмөк функциялары менен тиркемелерди түзүшү мүмкүн жана мындай колдонмолор бардык негизги платформаларда үзгүлтүксүз иштешет. Жакшыраак ыңгайлаштыруу жана Xamarin колдонмолорун иштеп чыгуу кызматтары үчүн жергиликтүү тажрыйбаны азыраак кошумча чыгымдар менен алууга болот.
- Ачык булак күчтүү колдоосу менен технология - Microsoft Xamarin сатып алгандан кийин, саясатта олуттуу өзгөрүүлөр болду. Xamarin SDK ачык булак болуп калды жана ал азыр MIT лицензиясы боюнча бардыгына жеткиликтүү. Платформанын популярдуулугу өстү, анткени негизги тоскоолдук - лицензияны сатып алуу алынып салынды. Xamarin платформалар аралык колдонмолорду иштеп чыгуу чечимдери үчүн ишенимдүү жана күчтүү технологиялык стекке айланган.
жактары
- UI иштеп чыгуу убакытты талап кылат - Xamarin программалык камсыздоосунун көбү платформаларда кайра колдонулушу мүмкүн, бирок UIдин негизги курулушу азырынча көчмө эмес. Иштеп чыгуучулардан кандайдыр бир коддоо жүргүзүү же ар кандай платформаларда иштөө талап кылынышы мүмкүн, бул көп убакытты талап кылган процедура.
- Файлдын өлчөмүн тууралоо керек болушу мүмкүн – Иштеп чыгуучулар колдонмонун файл өлчөмүнө өзгөртүүлөрдү киргизүүгө туура келиши мүмкүн. Мунун негизги себеби - негизги китепканаларды жана функцияларды колдонуу колдонмолор дүкөнүнө олуттуу басым жасайт. Xamarin колдонмоңузду тиешелүү колдонмолор дүкөнүнө тапшыруудан мурун, анын акылга сыярлык колдонмо файлынын өлчөмү бар экенин текшеришиңиз керек. Өлчөмдөрү адатта 3МБдан 15МБга чейин өзгөрөт.
жыйынтыктоо
Ошентип, булар жеңил жана эң сонун платформалар аралык тиркемелерди иштеп чыгууда эске алынуучу эң мыкты Flutter альтернативаларынын айрымдары.
Бирок, чечим кабыл алуудан мурун, колдонмоңуздун мүнөздөмөлөрүн талдап алуу абдан маанилүү, анткени бул сизге кайсы алкак үчүн эң ылайыктуу экенин айтып берет.
Акыр-аягы, чечимди тандоо сиз жазылган философияга, колдонмоңузду кайда жана кантип жайылтууну кааласаңыз, жана сизде азыр кандай таланттар бар же келечекте ээ болгуңуз келет.
Албетте, кайсынысы сиз үчүн идеалдуу экенин аныктоонун эң жакшы ыкмасы - алардын бардыгы менен иштеп чыгуу жана андан кийин өз натыйжаларыңызды салыштыруу.
Таштап Жооп