Table of Contents[Hide][Show]
Tom qab muaj kev sib kis thoob ntiaj teb, muaj kev nce ntxiv hauv kev txhim kho mobile app, nce kev siv cov cuab yeej hla kev txhim kho app xws li Flutter.
Txawm hais tias nws muaj koob meej, Flutter muaj ntau qhov tsis zoo. Yog li, cov neeg tsim khoom tab tom nrhiav rau cov kev xaiv zoo dua.
Ua ntej peb tham txog qee qhov zoo tshaj plaws Flutter lwm txoj hauv kev, cia peb kawm paub ntxiv txog Flutter.
Yuav ua li cas yog Dej nrov?
Flutter, tshaj tawm thaum lub Tsib Hlis 2017, yog Google's UI cov cuab yeej los tsim kom muaj kev txaus siab, ib txwm tsim cov apps rau txawb, web, thiab desktop los ntawm ib qho codebase.
Hauv cov ntsiab lus, nws tso cai rau koj los tsim cov ntawv thov mobile hauv ib txwm muaj nrog ib tus lej codebase. Lub ntsiab lus koj tuaj yeem tsim ob qhov sib txawv apps siv ib hom lus programming thiab codebase (rau iOS thiab Android).
Dart, ib hom lus programming, yog siv los tsim Flutter apps. Lub tswv yim tseem ceeb ntawm Flutter, ntawm qhov tod tes, tig mus ncig widgets. Siv widgets, cov neeg siv yuav tsim kom tiav cov neeg siv interface.
Widgets tau muab faib ua cov qauv, cov ntsiab lus zoo nkauj, UI layout ntsiab, thiab lwm yam.
Flutter yog tag nrho cov khoom siv txhim kho software uas suav nrog cov tshuab ua haujlwm, CLI (cov cuab yeej hais kom ua kab sib txuas), cov cuab yeej tsim tawm, cov cuab yeej hloov tau tag nrho, kev sim, kev debugging ntau nrog kev txhawb nqa plugin, widget ntoo tshuaj xyuas, API interfaces, thiab ntau ntxiv.
Flutter Key Features
- Kev loj hlob sai: Flutter muaj ntau yam nta uas pab cov neeg tsim khoom tsim thiab xa cov apps sai sai, suav nrog cov ntaub ntawv offline. Ntau qhov kev teeb tsa tseem ceeb thiab cov ntsiab lus ntawm ib qho app yog tsim ua ntej raws li widgets hauv flutter, thiab qhov tseem ceeb tshaj plaws, lub xeev kub reload, uas txuag tau ntau lub sij hawm los ntawm kev tso cai rau lub app rov tsim dua hauv tsawg dua ib pliag.
- Native Performance: Ib qho ntawm qhov zoo tshaj plaws ntawm flutter yog tias nws yog qhov chaw qhib, tso cai rau txhua tus neeg uas muaj kev txawj ntse txaus los pab txhawb rau nws txoj kev loj hlob. Raws li qhov tshwm sim, flutter tau ua tiav qhov kev ua tau zoo uas feem ntau zoo li cov apps ib txwm muaj.
- Kev nthuav qhia thiab yoog raws tus neeg siv interface (UI): Ib tus neeg siv zoo interface (UI) yuav tsum yog qhov tseem ceeb ntawm txhua qhov kev tsim kho app hauv khw. Txawm li cas los xij, nrog kev pab ntawm nws cov nkoj nrawm nrawm zoo li cov khoom tsim, uas pab lub app zoo li tsis muaj kev ua haujlwm, flutter tau thawb nws mus rau lwm qib.
- Kev ua haujlwm hla platform: Flutter qhov zoo tshaj plaws feature yog thaum koj tsim ib lub mobile app, koj kuj tau txais ib lub web thiab desktop app.
Flutter Pain Points
Flutter muaj qee qhov zoo heev. Txawm li cas los xij, ntau yam yog txwv tsis pub cov neeg tsim khoom siv nws. Cov no suav nrog:
- Cov neeg tsim khoom yuav tsum siv sijhawm qee lub sijhawm kawm cov lus programming tshiab vim tias lub platform tau tsim los ntawm Dart.
- Yog tias koj xav tsim cov ntawv thov nrog cov cuab yeej tshwj xeeb, Flutter tsis yog rau koj.
- Tsis tas li ntawd, qee tus neeg tsim khoom hais tias Flutter tsis muaj txiaj ntsig rau kev tsim cov lag luam nyuaj.
Rau tag nrho cov laj thawj no, nrhiav txoj hauv kev zoo tshaj plaws rau Flutter tej zaum yuav yog qhov kev txiav txim siab zoo.
1. React haiv
React haiv tso cai rau koj los tsim mobile apps nkaus hauv JavaScript. Nws muaj tib lub tswv yim zoo li React thiab tso cai rau koj los tsim ib qho kev sib tw mobile UI siv cov lus tshaj tawm.
Koj tsis ua lub vev xaib mobile app, HTML5 app, lossis hybrid app nrog React Native; koj ua qhov tseeb mobile app uas yog indistinguishable los ntawm ib tug ua nrog Objective-C los yog Java.
Qhov tseem ceeb UI tsim cov khoom hauv React Native yog tib yam li hauv cov qauv iOS thiab Android apps. Koj tsuas yog muab cov ntawv no ua ke nrog JavaScript thiab React.
Nrog rau lub moj khaum no, koj tuaj yeem tsim cov apps zoo tshaj plaws rau ntau lub platform siv ib qho codebase. React Native Framework, qhov qhib-qhov, cross-platform mobile moj khaum, tau luam tawm xyoo 2015.
Vim nws lub peev xwm thiab cov txiaj ntsig zoo kawg, nws tau dhau los ua ib lub platform loj tshaj plaws rau kev sib tw mobile apps. Txawm li cas los xij, ntau tus neeg tsim tawm tau tig mus rau React Native los tsim cov ntawv thov hla lub platform muaj zog.
nta
- Lub platform uas yog qhib qhov chaw.
- Reusability ntawm Live React Code.
- Architecture uas yog modular thiab user-friendly.
pros
- Kev tsim sai dua - Lub sij hawm tsim kho txo qis yog React Native lub ntsiab muag muag. Lub moj khaum suav nrog ntau yam npaj txhij-rau-siv uas tuaj yeem pab ua kom ceev cov txheej txheem.
- Ib lub moj khaum, ntau lub platforms - React Native ua rau koj rov siv koj cov codebase (lossis ib feem ntawm nws) ntawm iOS thiab Android. Nyob ntawm seb tus naj npawb ntawm cov modules ib txwm siv hauv koj qhov kev zov me nyuam, kev txhim kho cross-platform tseeb yog ua tau rau qee qhov.
- Cov pab pawg me - Kev txhim kho haiv neeg rau Android thiab iOS hu rau tsim ob pab neeg ywj pheej. Nws tuaj yeem cuam tshuam tus tsim tawm kev sib koom tes thiab, vim li ntawd, kev txhim kho qeeb. Yog tias koj xaiv React Native, koj yuav xav tau ib qho JavaScript developer leej twg tuaj yeem sau cov lej rau ob lub platform.
- Simplified UI - React Native yog tsom rau kev tsim cov neeg siv xov tooj ntawm tes. Koj yuav tsum tsim kom muaj ib ntu ntawm kev ua hauv qhov kev zov me nyuam thaum lub sij hawm kev loj hlob ib txwm muaj. Vim tias RN siv cov lus tshaj tawm, qhov kev ua tiav ntawm kev ua haujlwm tsis tsim nyog lawm. Yog li ntawd, kev ua txhaum ntawm txoj hauv kev uas tus neeg siv tuaj yeem mus tau yooj yim dua los txheeb xyuas.
cons
- Compatibility thiab debugging teeb meem – Developers yuav ntsib ntau yam teeb meem nrog pob compatibility los yog debugging cuab yeej. Yog tias koj cov neeg tsim khoom tsis paub zoo nrog React Native, qhov no yuav muaj kev cuam tshuam rau koj txoj kev loj hlob thaum lawv siv sijhawm los daws teeb meem.
- Xav tau rau cov neeg tsim tawm hauv haiv neeg - Qee cov haiv neeg thiab cov qauv xav tau kev txawj ntse ntawm lub platform tshwj xeeb. Tsis muaj kev txhawb nqa tawm ntawm lub npov rau ntau lub peev xwm hauv lub tebchaws (xws li, cov ntawv qhia laub) yav dhau los yog ib qho kev txhawj xeeb loj nrog React Native txoj kev loj hlob.
2. Ionic
Ionic yog ib qho open-source UI toolkit txhawm rau tsim kom muaj kev ua tau zoo, ua haujlwm zoo hauv mobile apps, desktop apps, thiab cov vev xaib loj hlob siv lub vev xaib thev naus laus zis xws li HTML, CSS, thiab JavaScript.
Nws yog lub hauv ntej-kawg SDK lub moj khaum uas tso cai rau koj los tsim mobile apps rau iOS, Windows, thiab Android li siv tib codebase.
Nws ua pov thawj tias yog ib qho kev sib koom ua haujlwm sib koom ua ke rau cov khoom siv mobile. Nws ua rau cov programmer tsim ib zaug thiab khiav txhua qhov chaw.
Ionic yog qhov tseeb lub xov tooj ntawm tes kev txhim kho lub moj khaum rau HTML5 uas tsom mus rau kev siv hybrid. Lub Ionic feem ntau txhawj xeeb nrog cov neeg siv kev paub dhau los, lossis kev sib cuam tshuam UI, uas yog lub luag haujlwm rau koj lub app tag nrho cov tsos thiab kev xav.
Thawj qhov qauv ntawm lub moj khaum no, raws li Angular JS thiab Apache Cordova, tau tso tawm xyoo 2013, thiab nws yog qhov kev daws teeb meem zoo heev uas zoo ib yam li Flutter hauv qee txoj kev.
Nws yooj yim rau kev nkag siab thiab tuaj yeem ua haujlwm nrog lwm lub tsev qiv ntawv lossis cov haujlwm xws li Angular, Cordova, thiab lwm yam. Nws kuj tseem siv tau yam tsis muaj lub hauv ntej-kawg los ntawm kev siv cov ntawv sau yooj yim suav nrog. Nws muaj qhov hais kom ua-kab interface uas tso cai rau koj los tsim qhov program thaum txo lub sijhawm coding.
nta
- CSS Cheebtsam - Cov khoom no, nrog rau lawv cov tsos thiab kev xav, muab ze li ntawm txhua daim ntawv thov mobile xav tau. Cov khoom 'default style tuaj yeem hloov kho kom haum rau koj tus kheej tsim.
- Ionic CLI - Qhov no yog NodeJS qhov hluav taws xob uas muaj cov lus txib rau kev tsim, tsim, khiav, thiab simulating Ionic apps.
- AngularJS - AngularJS Ionic tsim sophisticated ib nplooj ntawv apps tsim rau cov khoom siv txawb siv AngularJS MVC architecture.
- Cordova plugins - Apache Cordova plugins muab API xav tau rau kev siv cov cuab yeej siv ua haujlwm nrog JavaScript code.
pros
- Thaum piv rau haiv neeg iOS / Android daim ntawv thov, nws ua kom txoj kev loj hlob sai.
- Tsuas yog qee qhov kev txhawb nqa plugin, nws tso cai rau koj los tsim cov apps rau ntau lub operating system siv tib codebase.
- Nws tso cai rau kev sim yooj yim ntawm cov modules thiab cov khoom siv.
- Nws muaj ntau plugins thiab reusable Cheebtsam.
- Nws suav nrog ntau yam UI Cheebtsam thiab tso cai rau kev tsim qauv sai.
- Nws muab ntau ntau ntawm plugins rau kev tsim ntau cov ntawv thov mobile dynamic.
- Koj yuav tau txais ntau yam UI uas yuav ua rau nws yooj yim rau siv thiab tswj.
cons
- Kev debugging yuav nyuaj siv ionic, thiab nws yuav siv sij hawm ntev los daws qhov teeb meem. Nws ua rau kev txiav txim siab qhov ua yuam kev nyuaj, thiab cov lus yuam kev yuav tsis meej meej nyob rau qee lub sijhawm.
- Nws suav nrog qee cov plugins ib txwm muaj uas yuav tsis ntseeg tau thiab tuaj yeem sib tsoo nrog ib leeg.
- Yog tias koj tab tom tsim hybrid apps, koj yuav ntsib teeb meem kev nyab xeeb thiab koj cov cai yuav ua rau muaj kev cuam tshuam rau cov neeg nyiag nkas.
- Thaum tsim cov ntawv thov kev siv xov tooj uas nyuaj thiab muaj peev xwm siv tau, tej zaum yuav muaj qee yam kev txhawj xeeb txog kev ua haujlwm.
- Yog tias koj pib nrog lub moj khaum ionic, koj yuav tsum tso siab rau plugins kom nkag mus rau ib txwm ua haujlwm.
3. Cordova
Apache Cordova yog qhov qhib-qhov chaw ua haujlwm uas ua rau cov neeg tsim khoom siv lub vev xaib siv cov ntsiab lus HTML, CSS, thiab JavaScript uas twb muaj lawm los tsim cov ntawv thov ib txwm muaj rau ntau yam ntawm cov khoom siv txawb.
Cordova siv ib haiv neeg WebView los ua koj daim ntawv thov web. Lub WebView yog ib qho khoom siv (zoo ib yam li lub pob lossis lub tab bar) uas qhia cov ntsiab lus hauv lub vev xaib hauv ib qho kev pab cuam ib txwm muaj.
Xav txog WebView los ua qhov web browser yam tsis muaj ib qho ntawm cov neeg siv kev sib cuam tshuam zoo ib yam li qhov chaw URL lossis qhov xwm txheej bar.
Nitobi kuj tau tsim Cordova, uas yog ib qho yooj yim thov kev txhim kho lub moj khaum.
Daim ntawv thov lub vev xaib ua haujlwm nyob rau hauv lub thawv no ua haujlwm zoo ib yam li lwm daim ntawv thov web uas khiav ntawm lub browser mobile - nws tuaj yeem qhib nplooj HTML ntxiv, ua JavaScript code, ua si cov ntaub ntawv xov xwm, thiab sib txuas lus nrog cov servers sab nraud.
Daim ntawv thov mobile no qee zaum hu ua hybrid daim ntawv thov. Cordova apps tau ntim raws li cov ntawv thov mobile uas muaj kev nkag mus rau APIs ntawm cov khoom siv ib txwm muaj. Lub moj khaum no tseem tso cai rau kev sib xyaw ntawm haiv neeg thiab hybrid code snippets.
nta
- Cordova Cov Cheebtsam Tseem Ceeb: Cordova suav nrog ntau yam ntawm cov khoom tseem ceeb uas xav tau los ntawm txhua daim ntawv thov mobile. Cov khoom siv no muab lub hauv paus ntawm ib qho app, tso cai rau peb tsom mus rau kev tsim peb tus kheej logic.
- Cordova Plugins: Nws muab API rau kev sib koom ua ke ntawm cov haujlwm mobile hauv peb qhov project JavaScript. Cov plugins no tso cai rau ib qho kev pab cuam nkag mus rau cov khoom siv xws li lub koob yees duab, roj teeb, kev sib cuag, thiab lwm yam.
- Command Line Interface (CLI): Qhov khoom siv hluav taws xob no yog tus saib xyuas tsim cov txheej txheem thiab txhim kho plugins rau ntau lub platform. Nws yog siv los ncaws tawm cov kev pib thiab ua kom txoj kev txhim kho mus zoo dua.
pros
- Nws yog ib qho yooj yim kawm thiab tej zaum yuav raug siv los tsim cov ntawv thov sib txawv.
- Nws yog lub platform dawb thiab qhib.
- Cordova daim ntawv thov kev loj hlob sai vim nws hloov mus rau hauv ib qho app uas tau sib xws nrog ntau lub platform.
- Nws tso cai rau koj los tsim cov apps rau ntau lub platform yam tsis tas yuav kawm cov lus programming tshiab.
- Nws yog ib phau ntawm cov plugins ua ntej uas tso cai rau kev nkag mus rau lub cuab yeej lub koob yees duab, GPS, thiab cov ntaub ntawv kaw lus.
cons
- Nws ceev raug kev txom nyem vim yog khiav nws cov cai nyob rau hauv lub browser saib.
- Nws tsis haum rau cov apps loj vim tias hybrid apps qeeb dua li cov apps hauv ib txwm muaj.
- Nws tsis yog qhov zoo tagnrho rau kev txhim kho daim ntawv thov kev ua si vim nws xav tau ntau lub plugins siab dua uas tam sim no tsis muaj.
4. Xamarin
Xamarin yog ib qho chaw qhib rau kev tsim cov apps tam sim no thiab performact.net rau iOS, Android, thiab Windows.
Xamarin apps yuav raug sau rau hauv PC lossis Mac thiab tom qab ntawd muab tso ua ke rau hauv cov ntawv thov ib txwm muaj xws li cov ntaub ntawv an.apk rau Android lossis an.ipa cov ntaub ntawv rau iOS.
Nws yog tsim los rau cov neeg tsim khoom uas xav qhia cov lej, xeem, thiab kev lag luam logic thoob plaws platforms thiab tsim cov ntawv hla platform hauv C # siv Visual Studio.
Koj tuaj yeem tsim ib lub xov tooj ntawm tes nrog lub ntsej muag thiab hnov ntxhiab. Hauv Xamarin, koj tuaj yeem tsim ib qho C# codebase uas tau nkag mus rau tag nrho cov haiv neeg SDK ua haujlwm.
Cov qauv no tso cai rau cov neeg tsim khoom sau tag nrho lawv cov kev lag luam logic hauv ib hom lus (lossis rov siv cov ntawv thov uas twb muaj lawm) thaum tseem ua tiav qhov kev ua tau zoo, zoo li, thiab xav tau thoob plaws lub platform.
nta
- Ua kom tiav SDK khi- Xamarin muaj kev khi rau txhua yam ntawm lub hauv paus platform SDKs hauv iOS thiab Android. Tsis tas li ntawd, cov kev tshawb pom no yog ntaus ntawv heev, uas txhais tau hais tias lawv yooj yim rau kev taw qhia thiab siv, thiab lawv ua kom paub meej hom kev kuaj xyuas ntawm lub sijhawm tsim thiab kev tsim kho. Kev khi uas tau ntaus ntawv ua rau muaj kev ua yuam kev tsawg dua thiab cov kev pabcuam zoo dua.
- Cov lus niaj hnub tsim- Xamarin apps tau sau hauv C #, cov lus niaj hnub nrog cov txiaj ntsig zoo ntawm Lub Hom Phiaj-C thiab Java, xws li cov lus muaj peev xwm ua tau zoo, kev tsim ua haujlwm zoo li lambdas, LINQ, kev sib txuas lus, generics, thiab ntau dua.
- Hla-platform kev txhawb nqa rau cov khoom siv txawb- Xamarin muab kev sib tw hla-platform sib raug zoo rau peb lub platform loj ntawm iOS, Android, thiab Windows. Nrog Xamarin, cov ntawv thov yuav raug tsim los qhia txog 90% ntawm lawv cov lej. Essentials muab API zoo ib yam rau kev nkag mus rau cov peev txheej sib koom thoob plaws peb lub platform. Rau cov neeg tsim khoom siv xov tooj ntawm tes, cov lej sib koom tuaj yeem txo cov nqi tsim kho thiab sijhawm rau kev ua lag luam.
- Robust Base Class Library (BCL) - Xamarin apps tau txais txiaj ntsig zoo ntawm .NET BCL, cov chav kawm loj loj uas muaj peev xwm nthuav dav thiab nthuav dav suav nrog XML, Database, Serialization, IO, String, thiab Networking txhawb, thiab lwm yam. C# code uas twb muaj lawm tuaj yeem muab tso ua ke rau siv hauv ib qho app, tso cai nkag mus rau ntau pua lub tsev qiv ntawv uas txuas ntxiv BCL lub peev xwm.
pros
- Kev loj hlob luv luv- Ib qho txiaj ntsig tseem ceeb ntawm Xamarin app kev txhim kho yog tias 90% ntawm cov lej tuaj yeem siv rov qab los yog rov siv dua los tsim cov ntawv thov rau ntau lub xov tooj ntawm tes. Bing tau tsim nrog C# thiab haiv neeg code. Cov tsev qiv ntawv Net thiab Xamarin app txhim kho pab txuag sijhawm thiab ua haujlwm ntau. Nws shortens txoj kev loj hlob ncua sij hawm thaum tsim cov apps rau ntau lub platforms.
- Kev them nyiaj yug tag nrho (piv txwv li lub koob yees duab, GPS)- Raws li Xamarin muab cov kev ua haujlwm hauv ib txwm ua haujlwm, nws zam kev txhawj xeeb txog kho vajtse, plugins, thiab APIs. Nws kuj tso cai rau koj mus txuas nrog cov tsev qiv ntawv ib txwm muaj. Cov neeg tsim tawm tuaj yeem tsim cov ntawv thov nrog cov cuab yeej siv ua haujlwm, thiab cov apps zoo li no yuav ua tau zoo nyob thoob plaws txhua lub platform loj. Kev kho kom zoo dua qub thiab kev paub zoo li ib txwm muaj rau Xamarin app cov kev pabcuam txhim kho tuaj yeem tau txais nrog cov nqi qis dua.
- qhib qhov thev naus laus zis nrog kev txhawb nqa muaj zog- Tom qab Microsoft tau txais Xamarin, muaj kev hloov pauv tseem ceeb. Xamarin SDK tau mus qhib qhov chaw, thiab tam sim no muaj rau txhua tus neeg nyob hauv MIT daim ntawv tso cai. Lub platform loj hlob nyob rau hauv muaj koob meej raws li lub hauv paus teeb meem - kev yuav daim ntawv tso cai - raug tshem tawm. Xamarin tau hloov zuj zus mus rau hauv cov txheej txheem thev naus laus zis uas tuaj yeem ntseeg tau thiab muaj zog rau kev txhim kho cov kev daws teeb meem hla platform.
cons
- Kev txhim kho UI siv sijhawm - Txawm hais tias feem ntau Xamarin software yuav rov qab siv tau thoob plaws lub platform, qhov kev tsim kho UI tseem tsis tau nqa mus. Cov neeg tsim khoom yuav tsum tau ua qee qhov coding lossis ua haujlwm hla ntau lub platform, uas yog cov txheej txheem siv sijhawm.
- Cov ntaub ntawv loj yuav tsum tau hloov kho - Cov neeg tsim khoom yuav tsum tau hloov pauv rau lub app cov ntaub ntawv loj. Qhov laj thawj tseem ceeb rau qhov no yog tias siv cov tsev qiv ntawv tseem ceeb thiab kev ua haujlwm ua rau muaj kev ntxhov siab rau lub khw app. Ua ntej xa koj lub Xamarin app rau lub khw app cuam tshuam, koj yuav tsum xyuas kom meej tias nws muaj qhov tsim nyog cov ntaub ntawv app loj. Qhov ntau thiab tsawg feem ntau txawv ntawm 3MB txog 15MB.
xaus
Yog li, cov no yog qee qhov saum toj kawg nkaus Flutter lwm txoj hauv kev los txiav txim siab thaum tsim kev yooj yim thiab zoo heev hla-platform daim ntaub ntawv.
Txawm li cas los xij, ua ntej txiav txim siab, nws yog ib qho tseem ceeb rau kev txheeb xyuas koj lub app cov yam ntxwv vim qhov no yuav qhia koj tias lub hauv paus twg haum rau nws.
Thaum kawg, koj qhov kev xaiv kev daws teeb meem yuav tsum yog raws li lub tswv yim uas koj sau npe rau, qhov twg thiab qhov koj xav siv koj lub app, thiab cov txuj ci uas koj tam sim no muaj lossis xav tau yav tom ntej.
Tau kawg, txoj hauv kev zoo tshaj plaws los txiav txim siab qhov twg yog qhov zoo rau koj yog pib txhim kho nrog txhua tus ntawm lawv thiab tom qab ntawd sib piv koj cov txiaj ntsig.
Sau ntawv cia Ncua