Image for post
Image for post

Flutter’da Dosya Düzeni

Ertan Özdemir
Sep 5 · 2 min read

Flutter ile geliştireceğiniz uygulamalar geniş ölçekte ise tek bir dosya üzerine tüm uygulamayı yazmak okunması ve anlaşılması zor kod yığınından başka bir anlam ifade etmeyecektir. Ayrıca mühendislik yaklaşımına da ters olan bu yöntemi kullanmak daha sonra sizin kodunuzu inceleyenler için veya kodunuz üzerinde yapacağınız bug/fix, UI değişiklikleri vb. işler için de içinden çıkılmaz derecede zor bir hal alacaktır.

Eğer açık kaynak kodlu Flutter projelerini daha önce incelediyseniz çok büyük ihtimalle adları assets, pages, models gibi olan dosyaları fark etmişsinizdir. Bu dosyalar bir Flutter projesini yeni oluşturduğunuz zaman yaratılmazlar, biz bu dosyaları kodların rahat bir şekilde okunabilmesi, daha az kod yazmak, UI’da yapılacak olan basit bir değişiklik için tüm kodu baştan yazmamak gibi nedenlerle kendimiz oluştururuz. Böylelikle daha derli toplu bir kod yazmış oluruz. Unutmayın, kod yazmak sadece bir ürün çıkarmak değil aynı zamanda mimaridir, sanattır!

Şimdi ise kodlarımızın düzenli gözükmesi için kullanacağımız dosya yapılarının neler olduğuna ve ne işe yaradığına yakından bakalım;

assets/: Assets klasörü, içerisinde resimler, yazı fontları ve görünüm dosyalarını tutar.

lib/models: Models klasörü, içerisinde verilerinizin tutulduğu sınıf yapılarını bulundurur. Örneğin müşteri bilgileriniz gibi.

lib/utils: Utils klasörü, içerisinde hesaplama, veri türü değişimleri gibi işlemlerin yapıldığı yardımcı sınıfları bulundurur.

lib/pages: Pages klasörü adından da anlaşılacağı üzerine sayfa arayüzlerini tutan klasördür. Bu klasör içerisinde giriş sayfanız, ana sayfanız ve profil sayfanız gibi yapıların arayüzlerini bulundurabilirsiniz.

lib/services: Services klasörü internetten veri alma veya internete veri göndermeye yardımcı olan sınıfları tutar. Örneğin bir döviz uygulaması yazıyorsanız, JSON dosyaları üzerinde çalışırken işlemlerinizi bu dosya üzerinden halletmeniz daha doğru olacaktır.

lib/widgets: Widgets klasörü, içerisinde tüm uygulama boyunca kullanmak istediğiniz widget’ları tutar. Bu sayede kod tekrarına düşmeden daha az kodla işlemlerinizi yapabilirsiniz. Örneğin bir aynı container() widget’ını uygulamada bir çok yerde kullanacaksanız widget klasörü içerisinde oluşturmanız daha mantıklı olacaktır.

Temel olarak yazdığınız uygulamalarda okunabilirliği arttırmak için kullanacağınız dosya yapıları bunlar. Tabi ki ihtiyaçlara göre dosya yapıları değişebilir. Bu dosya yapılarının hepsini kullanmak zorunda değilsiniz. Ayrıca araştırmaya devam ederseniz farklı dosya yapılarının da olduğunu göreceksiniz. Fakat temel olarak bu yapıları kullanmak bile proje geliştirmenizde sizlere yardımcı olacaktır.

ROYTO

Resmî Olmayan Yazılım Topluluğu

Ertan Özdemir

Written by

Computer Engineer

ROYTO

ROYTO

Resmî Olmayan Yazılım Topluluğu, üniversite öğrencileri tarafından kurulmuş bir yazılım oluşumudur. Herkesin algoritmalar, yazılım dilleri ve benzeri konularda katkı sağlayabileceği ve kendine yeni vizyon katabileceği bir ortam oluşturmak temel odağımızdır.

Ertan Özdemir

Written by

Computer Engineer

ROYTO

ROYTO

Resmî Olmayan Yazılım Topluluğu, üniversite öğrencileri tarafından kurulmuş bir yazılım oluşumudur. Herkesin algoritmalar, yazılım dilleri ve benzeri konularda katkı sağlayabileceği ve kendine yeni vizyon katabileceği bir ortam oluşturmak temel odağımızdır.

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store