Flutter nedir?
Flutter, Google tarafından geliştirilen ve desteklenen bir açık kaynak çerçevedir. Ön uç ve tam yığın geliştiriciler, bir uygulamanın kullanıcı arabirimini tek bir kod tabanıyla birden fazla platform için derlemek üzere Flutter'ı kullanır.
Flutter, 2018 yılında kullanıma sunulduğunda esasen mobil uygulama geliştirmeyi destekliyordu. Flutter artık altı platformda uygulama geliştirmeyi desteklemektedir: iOS, Android, web, Windows, MacOS ve Linux.
Flutter uygulama geliştirmeye nasıl yardımcı oluyor?
Flutter, desteklediği altı platform genelinde bir uygulama için tutarlı ve cazip kullanıcı arabirimleri oluşturma sürecini basitleştirir.
Flutter, platformlar arası bir geliştirme çerçevesi olduğundan, öncelikle yerel geliştirme ile karşılaştıracağız. Ardından, Flutter'ın benzersiz özelliklerini vurgulayabiliriz.
Platformlar arası uygulama geliştirmeye kıyasla yerel uygulama geliştirme
iOS gibi tek bir belirli platform için bir uygulama kodu geliştirme süreci, yerel uygulama geliştirme olarak adlandırılır. Buna karşın, platformlar arası uygulama geliştirme tek bir kod tabanı içeren birden çok platform için bir uygulama oluşturma sürecidir.
Yerel uygulama geliştirme
Geliştiriciler yerel uygulama geliştirmede belirli bir platform için kod ürettiğinden, yerel cihaz işlevselliğine tam erişimleri bulunur. Bu genellikle, platformlar arası uygulama geliştirmeye kıyasla daha yüksek performans ve hıza imkan tanır.
Öte yandan, birden fazla platformda bir uygulama başlatmak istiyorsanız yerel uygulama geliştirme daha fazla kod ve daha fazla geliştirici gerektirir. Bu harcamalara ek olarak, yerel uygulama geliştirme, tutarlı bir kullanıcı deneyimiyle aynı anda farklı platformlarda lansmanı daha zor bir hale getirir. Bu, Flutter gibi platformlar arası uygulama geliştirme çerçevelerinin kullanışlı olduğu bir noktadır.
Platformlar arası uygulama geliştirme
Platformlar arası uygulama geliştirme, geliştiricilerin birden çok platform için bir uygulama oluşturmak üzere bir programlama dili ve bir kod tabanı kullanmasına imkan tanır. Birden çok platform için bir uygulama yayınlıyorsanız platformlar arası uygulama geliştirme, yerel uygulama geliştirmeye kıyasla daha düşük maliyetlidir ve daha az zaman alır.
Bu süreç ayrıca, geliştiricilerin kullanıcılar için platformlar arasında daha tutarlı bir deneyim oluşturmasını sağlar.
Bu yaklaşım, yerel uygulama geliştirmeye kıyasla, yerel cihaz işlevselliğine sınırlı erişim de dahil bazı dezavantajlar içerebilir. Ancak, Flutter platformlar arası uygulama geliştirmeyi daha pürüzsüz ve yüksek performanslı hale getirecek özelliklere sahiptir.
Flutter'ın avantajları
Flutter'ın platformlar arası bir geliştirme çerçevesi olarak öne çıktığı bazı yönler aşağıdaki gibidir:
- Yerele yakın performans. Flutter, Dart programlama dilini kullanır ve makine koduna derler. Ana sunucu cihazları, hızlı ve etkili bir performans sağlayan bu kodu anlar.
- Hızlı, tutarlı ve özelleştirilebilir işleme. Platforma özgü işleme araçlarına güvenmek yerine Flutter, kullanıcı arabirimi oluşturmak için Google'ın açık kaynak Skia grafik kitaplığını kullanır. Bu, bir uygulamaya erişmek için hangi platformu kullanırlarsa kullansınlar kullanıcılara tutarlı görseller sunar.
- Geliştirici dostu araçlar. Google, Flutter'ı kullanım kolaylığına öncelik vererek tasarladı. Hot reload gibi araçlarla, geliştiriciler mevcut durumu kaybetmeden kod değişikliklerinin nasıl görüneceğine ilişkin önizleme yapabiliyor. Widget inspector gibi diğer araçlar, sorunları kullanıcı arabirimi düzenleriyle görselleştirip çözmeyi kolaylaştırıyor.
Flutter hangi programlama dilini kullanır?
Flutter, yine Google tarafından geliştirilmiş bir açık kaynak programlama dili olan Dart'ı kullanır. Dart, kullanıcı arabirimleri oluşturmak için optimize edilmiştir ve Dart'ın pek çok güçlü yönü Flutter'da kullanılmaktadır.
Örneğin, Flutter'da kullanılan Dart özelliklerinden biri sound null safety'dir. Dart'ın sound null safety özelliği, null hatalar olarak adlandırılan yaygın hataları saptamayı kolaylaştırır. Bu özellik, geliştiricilerin kod bakımı için harcadıkları zamanı azaltarak uygulamalarını oluşturmaya odaklanmak için daha çok zaman ayırmalarını sağlar.
Flutter'da widget nedir?
Flutter'da geliştiriciler widget'ları kullanarak kullanıcı arabirimi düzenleri oluşturabilir. Bu, pencerelerden panellere ve düğmelerden metinlere kullanıcının ekranda gördüğü her şeyin widget'lardan meydana geldiği anlamına gelir.
Flutter widget'ları, geliştiricilerin bunları kolayca özelleştirebileceği şekilde tasarlanmıştır. Flutter bunu bir birleşim yaklaşımı aracılığıyla elde eder. Bu, çoğu widget'ın daha küçük widget'lardan oluştuğu ve en temel widget'ların belirli amaçlar içerdiği anlamına gelir. Bu, yeni widget'lar oluşturmak üzere geliştiricilerin widget'ları birleştirmesine veya düzenlemesine imkan tanır.
Flutter, bir platformun yerleşik widget'larına güvenmek yerine kendi grafik altyapısını kullanarak widget'lar oluşturur. Böylece, kullanıcılar farklı platformlarda yer alan Flutter uygulamasını benzer bir görünüm ve hisle deneyimleyecektir. Bazı Flutter widget'ları platforma özgü widget'ların gerçekleştiremediği işlevleri gerçekleştirebildiğinden, bu yaklaşım ayrıca geliştiricilere esneklik sunar.
Flutter, topluluk tarafından geliştirilen widget'ların kullanımını kolaylaştırır. Flutter'ın mimarisi birden çok widget kitaplığına sahip olmayı destekler ve Flutter, yeni widget kitaplıkları oluşturup bakımını yapmaları için topluluğu destekler.
Flutter widget'larının türleri
Flutter, indirdiğiniz andan itibaren geniş bir widget kataloğuyla sunulur. Katalog; stil, Cupertino (iOS stili widget'lar) ve Materyal Bileşenleri (Google'un Materyal Tasarım kılavuzunu izleyen widget'lar) dahil olmak üzere 14 kategoriye sahiptir.
Flutter ayrıca, geliştiricilerin hemen içerik oluşturmaya başlamasına yardımcı olmak için düzenler ve temalar içerecek şekilde sunulmaktadır.
Flutter nasıl desteklenir?
Flutter, Google tarafından desteklenmektedir ve Reddit, Discord, Slack, Stack Overflow ve Gitter üzerinde yer alan aktif bir açık kaynak topluluktur. 2022'de sabit desteğin macOS ve Linux'a genişletildiği bir Flutter 3 güncellemesi de dahil olmak üzere Google, 2018'de kullanıma sunulduğundan beri Flutter'ı sürekli olarak güncellemiştir.
Google, Flutter'ı öğrenmeyi daha kolay hale getirmek için Flutter'ın sitesinde kapsamlı belge ve öğreticiler yayınlamıştır. Google, Flutter kullanıcılarıyla etkileşime girmek için ayrıca küresel etkinlikler düzenler, topluluk projelerin tanıtımını yapar ve geliştirici yarışmalarına sponsorluk eder. Yaklaşan etkinlikleri Flutter'ın sitesinde bulabilirsiniz.
Flutter'ın topluluğu, geliştirici deneyimini kolaylaştırmak için binlerce üçüncü taraf paket ve mükemmel araçlar oluşturmuştur. Bu kitaplıklara pub.dev adresinden ulaşabilirsiniz.
AWS, Flutter'ı nasıl destekler?
Flutter, bir uygulamanın kullanıcıların gördüğü kısmını oluşturmanıza yardımcı olur. Ancak uygulama geliştirme; kimlik doğrulama, dosya depolama ve analiz gibi kullanıcıların görmediği birçok özellik gerektirir. AWS Amplify ve Amplify Flutter bu aşamada avantaj sağlar.
AWS Amplify, hem güvenli hem de ölçeklenebilir mobil uygulamalar ve web uygulamaları tasarlamaya yönelik bir çerçevedir. iOS, Android, web, React Native ve Flutter desteği içeren AWS Amplify, AWS desteğiyle uygulamalar oluşturmanızı hızlı ve kolay hale getirir.
Amplify Flutter, Flutter uygulamaları için arka uçlar tedarik etmenize, oluşturmanıza ve dağıtmanıza olanak tanıyan bir araç ve kitaplık setidir. Flutter uygulamalarınızı AWS'ye bağlamak ve yaygın arka uç ihtiyaçlarını çözmek için Amplify Flutter'ı kullanabilirsiniz.
Amplify Flutter'ı arka uç çözümünüz olarak kullanın
Amplify Flutter, Flutter uygulamanıza yaygın arka uç özellikleri eklemek için AWS'yle çalışmanıza olanak tanır:
- Analiz. Amplify Flutter, Amazon Pinpoint'te kullanıcılar için izleme verileri toplamanızı sağlar. Etkinlikleri kolayca kaydedebilir ve ihtiyaçlarınız için ölçüm ve öznitelikleri özelleştirebilirsiniz.
- API'ler Amplify Flutter, güçlü API özellikleri içerir. GraphQL API, arka ucunuzda veri almanıza yardımcı olur ve AWS AppSync tarafından desteklenmektedir. REST API'leri ve işleyicileri, arka ucunuza istekte bulunmanıza yardımcı olmak üzere Amazon API Ağ Geçidi'ni ve AWS Lambda'yı kullanır.
- Kimlik doğrulaması. Amplify Flutter, kullanıcıların kimliğini doğrulamanıza, kaydolma ve oturum açma formlarının yanı sıra çok faktörlü kimlik doğrulama uygulamanıza olanak tanır. Perde arkasında, diğer Amplify kategorilerine gerekli kimlik doğrulama kategorilerini sağlar. Amplify Flutter, Cognito Kullanıcı Havuzu ve Kimlik Havuzu'nu kullanmaya başladığınız andan itibaren destekler.
- Veri deposu. Amplify Flutter; dağıtılmış, paylaşılan verileri çevrimdışı ve çevrimiçi senaryolar için ekstra kod yazmadan kullanmanıza imkan tanır. Bu; dağıtılmış, kullanıcılar arası verilerle çalışmayı sadece yerel verilerle çalışmak kadar basit hale getirir. Amplify Veri Deposu, verilerin sürümlerini otomatik olarak oluşturur ve bulutta çakışma saptama ve çözümleme uygulamak için AppSync kullanır.
- Depolama. Amplify Flutter, nesneleri depolama alanına yüklemenize, depolama alanından indirmenize ve silmenize imkan tanır. Amplify Flutter, Amazon Basit Depolama Hizmeti (Amazon S3) için yerleşik destekle birlikte sunulur.
Amplify Flutter hakkında daha fazla bilgi edinin.