Evrensel mobil uygulamalar ve yerel uygulamalar arasında seçim yapmanız gereken bir zaman vardı. Evrensel uygulamalar, mobil cihazlarda genellikle kötü performans gösteren HTML ve JavaScript gibi web teknolojilerini kullandı. Yerel uygulamalar, desteklemek istediğiniz her platform için ayrı ayrı yazıldığından daha iyi performans gösterdi, ancak pahalıydı ve her platform için özel bir geliştirme ekibi gerektiriyordu.
Google tarafından geliştirilen açık kaynaklı bir çerçeve olan Flutter bunu değiştirdi. Günümüzde geliştiriciler, Ionic, React Native ve Xamarin dahil olmak üzere birden çok platformda çalışan hızlı mobil uygulamalar oluşturmak için daha fazla seçeneğe sahip. Flutter ve yerleşik programlama dili Dart, popülerliğini koruyor ve yaygın olarak kullanılıyor.
Bu yılın başlarında piyasaya sürülen Flutter 3, orijinal Android, iOS, web ve Windows hedeflerine ek olarak macOS ve Linux masaüstü uygulamaları için destek ekler. Sürüm ayrıca şunları içerir: performans geliştirmeleri fark edilir UI duraklamalarını düzeltmek için.
Flutter 3 ile çoklu platform geliştirme
Flutter, Google tarafından geliştirilen ve tek bir kod tabanından yerel olarak derlenmiş, çok platformlu uygulamalar oluşturmanıza olanak tanıyan açık kaynaklı bir çerçevedir. Flutter 3, altı platform hedefini destekler: Android, iOS, Windows, macOS, Linux ve web uygulamaları.
Flutter widget’ları, React’ten ilham alan modern bir çerçeve kullanılarak oluşturulmuştur. Aşağıdaki Şekil 1’de gösterildiği gibi, en çok kullanılan widget’lar ve düzenler metin widget’ları, Flexbox satır ve sütun düzenleri, yığın mutlak konumlandırma düzenleri, konumlandırılmış widget’lar ve kapsayıcı widget’larıdır.
Diyelim ki Flutter ile başlayan çok platformlu bir uygulama oluşturuyorsunuz. Malzeme Uygulaması widget’ı. Bu pencere aracı, bir gezgin de dahil olmak üzere uygulamanızın kökünde çeşitli diğer yararlı pencere öğeleri oluşturur. Gezgin, diziler tarafından tanımlanan bir dizi widget’ı yönetir. rotalar Flutter’da. Gezgin, uygulama ekranları arasında sorunsuz geçiş yapmanızı sağlar.
iOS merkezli bir tasarım oluşturmak için bkz. Cupertino bileşenleri paketi. Flutter ekibi, Cupertino bileşenlerinin yalnızca iOS’a özel uygulamalarda kullanılmasını önerir; çok platformlu uygulamalar için başka bir widget seti kullanmayı düşünün; örneğin, Malzeme Tasarımı Ayarlamak.
Aşağıdaki ilk üç ekran görüntüsü, durum bilgisi olmayan pencere öğelerini, hareket işlemeyi ve durum bilgisi olan pencere öğelerini gösterir. ile başlayarak tüm Flutter geliştirme eğitimini gözden geçirmeye değer. widget’lar tanıtımı burada başladık. Ayrıca denemeye değer DartPad örnekleri ve görüntüleme Çarpıntı galerisidenemenin yanı sıra Flutter kod laboratuvarları.
Widget’ların ve düzenlerin ötesinde, Flutter’da gezinme ve yönlendirme, animasyonlar, eylemler ve amaçlar, kısayollar, durum yönetimi, ağ oluşturma ve HTTP, JSON serileştirme ve Firebase entegrasyonu bulunur.
Şekil 1, bir web tarayıcısında DartPad kullanan bir Flutter Material widget örneğini göstermektedir. Dart kodu solda ve web ekranı sağda.
Şekil 1. DartPad kullanan bir Flutter Material widget örneği.
Şekil 2, Flutter’da bir jest işleme örneğini göstermektedir. bu onTap
ekli durumsuz GestureDetector pencere aracının yöntemi Angaje etmek düğmeye basıldığında düğme yanar.
Şekil 2. Çarpıntı hareketi işleme örneği.
Şekil 3, durum bilgisi olan bir widget’ın bir örneğidir. tuşuna basmak artış ElevatedButton widget’ı, onPressed
özel işlevi çağıran yöntem _increment
. bu çağırır setState()
Flutter’a bir şeyin değiştiğini söylemek ve _counter
değişken. Ardından, çerçeve şunları çağırır: build()
düğmeyi ve metni yeniden çizme yöntemi.
Şekil 3. Durum bilgisi olan bir pencere öğesi örneği.
Çarpıntı ve Dart
Flutter tarafından desteklenmektedir Dart oyunu, herhangi bir platformdaki hızlı uygulamalar için optimize edilmiş bir dil. Dart daha çok Java, Kotlin, Swift ve TypeScript’e benziyor (karşılaştırma için Şekil 4’e bakın). Herhangi bir nesne yönelimli dili anlıyorsanız, Dart’ı hızlı bir şekilde alabilirsiniz. En azından geçmeye değer Dart turu.
Çok basit bir Dart programı şunlar olabilir:
// Define a function.
void printInteger(int aNumber) {
print('The number is $aNumber.'); // Print to console.
}
// This is where the app starts executing.
void main() {
var number = 42; // Declare and initialize a variable.
printInteger(number); // Call a function.
}
Dart güçlü bir şekilde yazılmıştır, ancak Dart türler hakkında çıkarsama yapabildiği için tür açıklamaları isteğe bağlıdır. Tercih edilen stil kullanmaktır var
ve yerel değişkenler için çıkarım ve işlevler ve genel değişkenler için güçlü yazma yazın. Java’dan farklı olarak Dart, anahtar kelimelere sahip değildir. public
, protected
ve private
. Bir tanımlayıcı alt çizgi ile başlıyorsa (_
), kendi kütüphanesine özeldir.
Dart, mobil, masaüstü ve arka uç uygulamaları için ARM ve x64 makine kodunun yanı sıra web için JavaScript’i derleyebilir. Hata ayıklama modunda Dart, kaynak kodundaki değişiklikleri kaydettikten sonra çalışan uygulamaları çalışırken yüklemenize olanak tanır. Dart’ın hem JIT (tam zamanında) hem de AOT (zamandan önce) derleyicileri vardır.
Dart’ın isteğe bağlı sıfır güvenliği vardır. Minimum SDK kısıtlamanız (uygulamanızın pubspec.yaml
dosya) en az 2.12.0 ise, boş güvenliği seçtiniz. Bu durumda, yalnızca bir tür ve ardından bir soru işareti olan değişkenler (ör. “int?"
) boş değerler içermesine izin verilir.
Şekil 4. Dart ile Kotlin, Swift ve TypeScript karşılaştırması.
Flutter 3 özellikleri ve yükseltmeleri
İçinde Blog yazısıGoogle’ın Flutter ve Dart ürün müdürü Tim Sneath, Flutter 3’teki yeni özellikleri özetledi ve “Flutter 3, mobil merkezli bir çerçeveden çok platformlu bir çerçeveye geçiş yol haritamızı tamamlıyor.”
Flutter 3, mevcut platform hedeflerini macOS ve Linux masaüstü uygulaması desteğini içerecek şekilde genişletir, Flutter ile Firebase’i tamamen entegre eder, Apple Silicon için yerel geliştirme desteği ekler ve çok sayıda üretkenlik ve performans özelliği içerir.
Flutter Vitrini ve Flutter Galerisi
bu Çarpıntı Vitrini esasen Flutter ile oluşturulmuş üretim uygulamaları hakkında bir vaka çalışmaları koleksiyonudur. Flutter’ı düşünen yöneticiler için çok yararlıdır.
bu Flutter Galerisi Flutter’ın ne yaptığını ve nasıl davrandığını gösteren bir widget, davranış ve vinyet koleksiyonu içerir ve geliştiriciler ve tasarımcılar için en faydalıdır. Yapabilirsiniz Galeriyi web’de görüntüleyin veya desteklenen platformlardan herhangi birinde yerel olarak çalıştırın. Flutter galeri deposu.
Flutter’ı Yükleme
Yapabilirsiniz Flutter’ı yükle Windows, macOS, Linux veya Chrome OS’de. Tam olarak nasıl yüklediğiniz sisteme bağlıdır. Sisteme özel bir .zip dosyası veya tarball indirme ve paketini açma veya depoyu klonlama seçeneklerine sahipsiniz. Ardından, eklemeniz gerekecek flutter
yolunuza araç ve çalıştırın flutter doctor
. çıktısını gösterdim flutter doctor
aşağıda.
Running "flutter pub get" in flutter_tools... 5.1s
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.0.1, on Mac OS X 10.15.7 19H1922 darwin-x64,
locale en-US)
[✗] Android toolchain - develop for Android devices
✗ Unable to locate Android SDK.
Install Android Studio from:
On first launch it will assist you in installing the Android SDK
components.
(or visit
for detailed instructions).
If the Android SDK has been installed to a custom location, please use
`flutter config --android-sdk` to update to that location.
[!] Xcode - develop for iOS and macOS (Xcode 12.4)
✗ Flutter requires Xcode 13 or higher.
Download the latest version or update via the Mac App Store.
✗ CocoaPods not installed.
CocoaPods is used to retrieve the iOS and macOS platform side's plugin
code that responds to your plugin usage on the Dart side.
Without CocoaPods, plugins will not work on iOS or macOS.
For more info, see
To install see
for
instructions.
[✓] Chrome - develop for the web
[!] Android Studio (not installed)
[✓] IntelliJ IDEA Ultimate Edition (version 2022.1.1)
[✓] IntelliJ IDEA Ultimate Edition (version 2022.1.1)
[✓] VS Code (version 1.67.1)
[✓] Connected device (2 available)
[✓] HTTP Host Availability
Çıktıda, Intel MacBook Pro’mun iOS ve macOS çarpıntı geliştirme için gereken minimum Xcode sürümünü destekleyemeyecek kadar eski olduğunu görebilirsiniz. Flutter ekibi, evrensel Intel/M1 macOS ikili dosyaları oluşturmak için Xcode 13’e ihtiyaç duyar. ben Yapabilmek Android SDK araç zincirini yükleyerek Android için geliştirin ve ben zaten web için geliştirebiliyorum. Flutter eklentisini Visual Studio Code’a eklemek bir dakikadan az sürdü. Flutter ile çok platformlu uygulamalar geliştirme konusunda ciddileşirsem, Mac’lerimden en az birini yükseltmem gerekecek.
Çözüm
Flutter 3, performans iyileştirmelerine odaklanmaya devam ederken altı platformda kararlılık sunan ilginç bir kıyaslamadır. Çok platformlu uygulamalar oluşturması gereken geliştiriciler için Flutter’ı düşünmek için iyi bir zaman olabilir.
Telif Hakkı © 2022 IDG Communications, Inc.
Kaynak : https://www.infoworld.com/article/3664122/what-is-flutter-mobile-app-development-for-android-ios-and-more.html#tk.rss_all