Flutter Google-un hazırladığı, bir kodla iOS, Android, veb və kompüter üçün tətbiq yazmağa imkan verən pulsuz və açıq mənbəli texnologiyadır. Əvvəllər hər platforma üçün ayrıca tətbiq yazmaq lazım idi; Flutter kimi kross-platforma alətləri isə eyni kodu hər iki mağazaya çıxarır. Biznes üçün bu, daha qısa müddət və daha az xərc deməkdir.
Qısa xülasə:
- Flutter Google-un məhsuludur; tətbiqlər Dart dilində yazılır və bir koddan iOS və Android tətbiqi alınır.
- Əsas rəqibi Meta-nın hazırladığı React Native-dir; hər ikisi biznes tətbiqlərinin çoxu üçün kifayət edir.
- Native tətbiq hər platforma üçün ayrıca yazılır: ən yüksək imkan, amma iki kod və daha böyük büdcə.
- Texnologiya seçimi istifadəçinin görmədiyi, amma büdcəyə, müddətə və gələcək dəstəyə təsir edən qərardır.
- Sifarişçi üçün texnologiyanın adından daha vacib olan komandanın təcrübəsi və kodun kimə məxsus olmasıdır.
Flutter nədir?
Flutter mobil tətbiqlərin interfeysini və məntiqini bir kod bazasında yazmaq üçün alətlər dəstidir (ingiliscə framework). Onu Google hazırlayır və pulsuz paylayır; ilk stabil versiyası 2018-ci ilin dekabrında çıxıb (Google Developers Blog). Flutter tətbiqləri yenə Google-un yaratdığı Dart proqramlaşdırma dilində yazılır.
"Bir kod bazası" o deməkdir ki, proqramçı ekranı bir dəfə yazır və ondan həm iPhone, həm də Android tətbiqi alınır. Eyni koddan veb versiya və Windows, macOS, Linux proqramları da hazırlana bilər.
Flutter-in rəsmi nümunələr səhifəsində Google Pay, Google Ads və Google Classroom kimi Google tətbiqləri ilə yanaşı BMW, Toyota, eBay, Nubank və Wolt kimi şirkətlər göstərilir (Flutter).
Mobil tətbiqin özünün nə olduğunu və hansı hissələrdən ibarət olduğunu mobil tətbiq nədir yazısında izah etmişik.
Flutter necə işləyir?
Flutter ekranı özü çəkir. Adi (native) tətbiqdə düymələri və siyahıları telefonun əməliyyat sistemi göstərir; Flutter isə hər pikseli öz qrafik mühərriki ilə çəkir. Bunun iki nəticəsi var: tətbiq iPhone-da və Android-də eyni görünür, dizayner isə platformanın standart elementləri ilə məhdudlaşmır.
Flutter-in üç əsas anlayışı:
- Widget. Ekrandakı hər şey kiçik hissələrdən yığılır: düymə, mətn, şəkil, siyahı. Bunlara widget deyilir və ekran onlardan Lego kimi qurulur.
- Hot reload. Proqramçı kodu dəyişir və nəticəni bir-iki saniyəyə ekranda görür. Bu, iş sürətini artırır.
- Tərtib (kompilyasiya). Hazır tətbiq telefonun prosessorunun anladığı koda çevrilir, ona görə sürətli işləyir.
İstifadəçi tətbiqin Flutter-də yazıldığını hiss etmir: onu adi tətbiq kimi App Store və ya Google Play-dən yükləyir.
Flutter developer kimdir?
Flutter developer Flutter və Dart dili ilə mobil tətbiq yazan proqramçıdır. O, dizaynerin hazırladığı ekranları koda çevirir, tətbiqi serverə bağlayır, onu test edir və mağazalara yükləyir.
Sifarişçinin bilməli olduğu məqam budur: Flutter developer tətbiqin telefondakı hissəsini yazır. Server hissəsi (backend), idarəetmə paneli və dizayn ayrı işlərdir və çox vaxt ayrı mütəxəssislər tələb edir. "Bir Flutter proqramçısı hər şeyi edəcək" vədi kiçik layihələrdə mümkündür, mürəkkəb layihələrdə isə risklidir.
Native, kross-platforma və hibrid tətbiq: fərq nədir?
| Yanaşma | Necə hazırlanır | Texnologiyalar | Üstünlüyü | Məhdudiyyəti |
|---|---|---|---|---|
| Native | Hər platforma üçün ayrıca kod | iOS üçün Swift, Android üçün Kotlin | Ən yüksək sürət, yeni funksiyalara ilk çıxış | İki kod, iki komanda, daha uzun müddət |
| Kross-platforma | Bir kod, iki platforma | Flutter, React Native | Daha az xərc, eyni vaxtda buraxılış | Çox xüsusi funksiyalarda əlavə native iş |
| Hibrid | Veb sayt tətbiq "qabığına" yerləşdirilir | Capacitor və oxşar alətlər | Ən ucuz, veb komanda ilə hazırlanır | Daha zəif sürət və hiss, mağazada rədd riski |
Hibrid yanaşmada ehtiyatlı olun: sadəcə saytı tətbiqə "bükmək" App Store qaydalarına görə rədd səbəbi ola bilər, çünki tətbiq saytdan fərqlənən funksiya və interfeys təqdim etməlidir.
Flutter və React Native: fərq nədir?
Flutter və React Native eyni işi fərqli yolla görür: hər ikisi bir koddan iki platforma üçün tətbiq çıxarır.
| Meyar | Flutter | React Native |
|---|---|---|
| Kim hazırlayır | Meta | |
| Proqramlaşdırma dili | Dart | JavaScript və ya TypeScript |
| İnterfeys necə çəkilir | Öz qrafik mühərriki ilə | Platformanın öz (native) elementləri ilə |
| Görünüş | Hər platformada eyni | Hər platformanın öz üslubuna yaxın |
| Veb komanda üçün | Yeni dil öyrənmək lazımdır | Veb proqramçılar üçün tanış dil |
| Hazır kitabxanalar | Geniş, rəsmi paketlər çoxdur | Çox geniş, JavaScript ekosistemi |
| Ən güclü tərəfi | Fərdi, animasiyalı interfeys | Mövcud veb komanda və kodla uyğunluq |
Populyarlıqda onlar bir-birinə çox yaxındır: Stack Overflow-un hər iki texnologiyanı birlikdə göstərən son sorğusunda (2024) proqramçıların 9.4%-i Flutter-dən, 8.4%-i React Native-dən istifadə etdiyini bildirib (Stack Overflow). React Native-in rəsmi nümunələr səhifəsində isə Facebook, Instagram, Microsoft Outlook və Teams, Amazon Shopping və Shopify tətbiqləri göstərilir (React Native).
Praktikada fərq sifarişçi üçün texnologiyada yox, komandadadır. Yaxşı Flutter komandası zəif React Native komandasından yaxşı tətbiq yazacaq və əksinə. Ona görə "hansı daha yaxşıdır?" sualından əvvəl "komandanın bu texnologiyada mağazada canlı tətbiqi varmı?" sualını verin.
Flutter-in üstünlükləri və məhdudiyyətləri hansılardır?
Üstünlüklər:
- Bir kod, iki platforma. Dəyişiklik bir dəfə yazılır və bir dəfə test olunur.
- Eyni görünüş. Tətbiq hər iki platformada dizaynerin çəkdiyi kimidir.
- Sürətli hazırlanma. Hot reload və hazır widget-lər ilk versiyanı tez çıxarmağa kömək edir; ona görə Flutter tez-tez MVP üçün seçilir.
- Güclü dəstək. Arxasında Google dayanır, sənədləşmə genişdir.
- Genişlənmə. Eyni koddan veb və kompüter versiyası da çıxarmaq olur.
Məhdudiyyətlər:
- Tətbiqin ölçüsü. Flutter tətbiqi işləməsi üçün lazım olan bütün kodu, o cümlədən qrafik mühərriki özü ilə daşıyır (Flutter), ona görə fayl adətən native tətbiqdən bir qədər böyük olur.
- Platformanın yeni funksiyaları. Apple və ya Google yeni imkan çıxaranda native tətbiqlər ona birinci çatır.
- Çox xüsusi cihaz funksiyaları. Bəzi hallarda native kodla əlavə modul yazmaq lazım gəlir.
- Mütəxəssis bazarı. Dart JavaScript qədər yayılmayıb; komandanı dəyişmək lazım gəlsə, namizədlərin sayı daha az ola bilər.
Nə vaxt native tətbiq seçmək lazımdır?
Native yanaşma tətbiqin dəyəri telefonun dərin imkanlarına bağlı olanda seçilir:
- ağır qrafika və oyunlar;
- genişləndirilmiş reallıq (AR), mürəkkəb kamera və video emalı;
- ağıllı saat, avtomobil ekranı və ya ana ekran vidcetləri ilə sıx iş;
- arxa fonda daim işləyən funksiyalar;
- yalnız bir platforma üçün nəzərdə tutulan və orada mükəmməl olmalı tətbiqlər.
Aralıq yol da var: JetBrains-in Kotlin Multiplatform texnologiyası tətbiqin məntiqini platformalar arasında bölüşməyə imkan verir və 2023-cü ilin noyabrından stabil sayılır (JetBrains).
Bank, mağaza, rezervasiya, çatdırılma və loyallıq tətbiqlərinin çoxu bu siyahıya düşmür və kross-platforma ilə rahat qurulur.
Biznes üçün texnologiya necə seçilir?
Texnologiyanı sifarişçi yox, komanda təklif edir, amma qərarı anlamaq sizin işinizdir. Vəziyyətə görə adi seçim belədir:
| Vəziyyət | Adətən uyğun seçim | Niyə |
|---|---|---|
| İdeyanı tez yoxlamaq (MVP) | Kross-platforma | Bir kodla hər iki mağazaya tez çıxır |
| Mağaza, rezervasiya, loyallıq, kabinet | Kross-platforma | Standart funksiyalar hər iki texnologiyada var |
| Şirkətdə veb proqramçılar var | React Native | Komanda tanış dildə işləyir |
| Fərdi dizayn və animasiya ön plandadır | Flutter | Görünüşə tam nəzarət |
| Oyun, AR, mürəkkəb cihaz funksiyaları | Native | Maksimum sürət və imkan |
| Sadə kataloq və ya kabinet, mağaza vacib deyil | PWA | Ən ucuz, yükləmə tələb etmir |
Təklifləri müqayisə edərkən texnologiyanın adından əvvəl bu sualları verin:
- Bu texnologiyada mağazada canlı tətbiqiniz varmı? Link istəyin və yükləyib yoxlayın.
- Server hissəsi və idarəetmə paneli təklifə daxildirmi?
- Mənbə kodu və developer hesabları kimin adına olacaq? Hər ikisi sifarişçiyə məxsus olmalıdır.
- iOS və Android yeni versiya çıxaranda tətbiqi kim və hansı şərtlə yeniləyəcək?
- Başqa komanda layihəni davam etdirə biləcəkmi? Sənədləşmə və kodun təhvili müqavilədə yazılmalıdır.
Fərziyyəni kiçik versiya ilə yoxlamağın qaydasını MVP nədir yazısında, kod yazmadan qurulan variantları isə mobil tətbiq yaratmaq yazısında göstərmişik.
Texnologiya tətbiqin qiymətinə necə təsir edir?
Texnologiya qiymətə iki yerdə təsir edir: ilkin hazırlanmada və sonrakı dəstəkdə. İki native tətbiq iki kod bazası deməkdir: hər funksiya iki dəfə yazılır, iki dəfə test olunur və hər yenilik iki dəfə buraxılır. Kross-platformada bu işlərin böyük hissəsi bir dəfə görülür.
Amma texnologiya qiymətin yalnız bir hissəsidir. Büdcənin əsasını ekranlar yox, server, rollar, inteqrasiyalar və idarəetmə paneli formalaşdırır; bunlar isə Flutter və ya native seçimindən asılı deyil. Hesablamanı mobil tətbiq hazırlanması qiyməti yazısında pillələrlə göstərmişik.
Advertol texnologiyanı necə seçir?
Advertol-da tətbiq layihəsi texnologiyadan yox, biznes məqsədindən başlayır: ilk addım pulsuz strategiya görüşüdür və orada ilk versiyaya nəyin düşəcəyi müəyyən olunur. Təklif funksiyaların siyahısı, rollar və inteqrasiyalar aydınlaşdıqdan sonra fərdi hazırlanır; developer hesabları isə sifarişçi şirkətin adına açılır.
Tətbiqin dəyəri arxadakı sistemdədir və Advertol-un dərc olunmuş layihələri bu tərəfi göstərir: Momento Travel üçün qurulan xüsusi CRM üç kanaldan gələn müraciətləri bir paneldə toplayır, AVA panelində isə müştərilər reklam nəticələrini canlı izləyir. Advertol Bakıda yerləşən agentlikdir: sayt və mobil tətbiq hazırlanması, Meta və Google reklamı, SMM, CRM və AI avtomatlaşdırma bir komandada aparılır. İş qaydası sayt və tətbiq hazırlanması səhifəsində təsvir olunub.
Tez-tez verilən suallar
Flutter pulsuzdurmu?
Bəli. Flutter açıq mənbəli və pulsuzdur; ondan istifadə üçün Google-a ödəniş edilmir. Xərclər başqa yerdədir: proqramçıların əməyi, server, Apple Developer Program (ildə $99) və Google Play hesabı (bir dəfəlik $25).
Flutter ilə yazılmış tətbiq native tətbiqdən yavaşdırmı?
Adi biznes tətbiqlərində istifadəçi fərqi hiss etmir: siyahılar, formalar, xəritə və ödəniş rahat işləyir. Fərq ağır qrafika, mürəkkəb video emalı və oyunlarda üzə çıxa bilər. Sürətə texnologiyadan çox kodun keyfiyyəti təsir edir.
Flutter, yoxsa React Native: hansı daha yaxşıdır?
Hər ikisi yetkin texnologiyadır və biznes tətbiqlərinin çoxu üçün kifayət edir. Flutter fərdi dizayn və animasiyada, React Native isə veb komandası olan şirkətlərdə üstündür. Həlledici amil komandanın həmin texnologiyadakı təcrübəsidir.
Flutter ilə sayt da hazırlamaq olarmı?
Olar, amma hər sayt üçün yox. Flutter veb versiyası tətbiqə bənzər sistemlər, məsələn, idarəetmə paneli və ya kabinet üçün uyğundur. Google-da tapılmalı olan korporativ sayt və ya onlayn mağaza üçün adi veb texnologiyaları daha yaxşı nəticə verir.
Flutter-i öyrənmək çətindirmi?
Proqramlaşdırma təcrübəsi olan insan üçün yox: Dart dili sadədir və rəsmi sənədlər genişdir. Sıfırdan başlayanlar üçün isə əvvəlcə proqramlaşdırmanın əsaslarını öyrənmək lazımdır. Biznes sahibinə Flutter-i öyrənmək lazım deyil; nə olduğunu və nəyi dəyişdiyini bilmək kifayətdir.
Tətbiq Flutter-də yazılıbsa, sonradan başqa texnologiyaya keçmək olarmı?
Olar, amma bu, tətbiqin telefondakı hissəsini yenidən yazmaq deməkdir. Server, məlumat bazası və idarəetmə paneli isə olduğu kimi qalır. Ona görə əsas sərvət düzgün qurulmuş server hissəsidir və mənbə kodunun sizə məxsus olması vacibdir.
Nəticə
Flutter bir kodla iOS və Android üçün tətbiq yazmağa imkan verən Google texnologiyasıdır; əsas alternativləri React Native və native yanaşmadır. Biznes tətbiqlərinin çoxu üçün kross-platforma kifayət edir və büdcəyə qənaət edir; native isə ağır qrafika və dərin cihaz funksiyaları üçün seçilir. Texnologiyanın adından daha vacib olan komandanın canlı işləri, server hissəsinin keyfiyyəti və kodun sizə məxsus olmasıdır.
Tətbiq layihəniz üçün uyğun texnologiyanı və ilk versiyanın həcmini müzakirə etmək istəyirsinizsə, pulsuz strategiya görüşü təyin edin və ya Advertol komandasına yazın.