Flutter ile uygulama geliştiriyorsanız kodunuzda neredeyse kesin olarak şu satır var:
If you build with Flutter, your code almost certainly contains this line:
// Bu satırın ömrü artık sayılı.// This line is now on a clock. import 'package:flutter/material.dart';
Bu import'un hangi sürümde çalışmayı bırakacağı, aşağıdaki takvimin cevapladığı asıl soru.
Which release that import stops working in is the question the timeline below answers.
01Sorun neydi: her şey aynı kutudan çıkıyorduWhat the problem was: everything shipped in one box
Flutter'ın "batteries included" yaklaşımı baştan beri bir güçtü. Projeyi açar, material.dart import eder, anında production'a hazır bir widget setine kavuşurdunuz. Bu avantajın gizli bir bedeli vardı: Material ve Cupertino, flutter/flutter deposunun içine kazınmıştı.
Flutter's "batteries included" approach was a strength from the start. Open a project, import material.dart, and you had a production-ready widget set immediately. That advantage carried a hidden cost: Material and Cupertino were carved into the flutter/flutter repository itself.
Güncelleme hızı frenliydi. Küçük bir CupertinoButton düzeltmesi için bile Flutter'ın çeyreklik stable döngüsünü beklemek gerekiyordu. Yeni bir Material 3 bileşeni mi geldi? Yine bekle.
Updates were rate-limited. Even a small CupertinoButton fix had to wait for Flutter's quarterly stable cadence. A new Material 3 component? Wait again.
Katkı vermek zordu. Topluluktan gelen bir Material ya da Cupertino düzeltmesini merge'e taşımak, core SDK'ya dokunmak demekti — inceleme süreçleri buna göre uzuyordu.
Contributing was hard. Landing a community Material or Cupertino fix meant touching the core SDK, and review cycles stretched accordingly.
Özel tasarım sistemleri için zemin yoktu. Flutter uygulamaları ya Material ya Cupertino üzerine kuruluyordu; Fluent benzeri bir dil ya da tamamen kendi tasarım sisteminizi kurmak için "style-neutral" net bir taban yoktu.
There was no ground for custom design systems. Flutter apps were built on either Material or Cupertino; there was no clean style-neutral base for a Fluent-like language or a fully custom design system of your own.
02Bu karar ne zaman alındı? Dört yıllık takvimWhen was this decided? A four-year timeline
Karar ani değil. GitHub'daki #101479 numaralı şemsiye issue — "Move the material and cupertino packages outside of Flutter" — 7 Nisan 2022'de açıldı. Code freeze duyurusunun günü gününe dört yıl sonra, 7 Nisan 2026'da gelmesi hoş bir tesadüf.
This was not sudden. The umbrella issue #101479 — "Move the material and cupertino packages outside of Flutter" — was opened on 7 April 2022. The code freeze landing exactly four years later to the day, on 7 April 2026, is a pleasing coincidence.
| TarihDate | Ne olduWhat happened |
|---|---|
| 7 Nisan 20227 Apr 2022 | Şemsiye issue #101479 açıldı — Material ve Cupertino'nun bağımsız paket olması önerildi.Umbrella issue #101479 opened — proposing Material and Cupertino move out as standalone packages. |
| 7 Nisan 20267 Apr 2026 | Justin McCandless code freeze'i duyurdu: flutter/flutter içindeki Material ve Cupertino'ya tüm katkılar donduruldu.Justin McCandless announced the code freeze: all contributions to Material and Cupertino in flutter/flutter are frozen. |
| 20 Mayıs 202620 May 2026 | Flutter 3.44 — kütüphanelerin çekirdek içindeki son güncellemesi. Deprecation bu sürümde değil, sonraya bırakıldı.Flutter 3.44 — the final update to these libraries inside the core framework. Deprecation was left to a later release, not this one. |
| 6 Ağustos 20266 Aug 2026 | Q2 2026 geliştirici anketi — Cupertino memnuniyeti %61 (top-2 box), Q4 2025'e göre 6 puan düşüş.Q2 2026 developer survey — Cupertino satisfaction at 61% (top-2 box), down 6 points from Q4 2025. |
| 12 Ağustos 202612 Aug 2026 | Flutter 3.47 — material_ui 1.0 ve cupertino_ui 1.0 pub.dev'de stable.Flutter 3.47 — material_ui 1.0 and cupertino_ui 1.0 stable on pub.dev. |
| Kasım 2026Nov 2026 | Sonbahar stable sürümü — çekirdekteki tasarım kütüphaneleri resmen deprecated olacak.Fall stable release — the design libraries inside the core SDK are formally deprecated. |
| AçıklanmadıUnannounced | Silinme. Flutter kesin tarih vermedi; deprecation'dan "bir süre sonra" deniyor.Removal. Flutter has published no date; the wording is "some time after" deprecation. |
Code freeze'in arkasındaki mantık migration'ı kolaylaştırmak içindi: 3.44 ile dondurulan kütüphaneler, yeni paketlerin 1.0.0 sürümüyle aynı kod tabanı. Yani taşınırken widget davranışı değişmiyor; yalnızca paketin geldiği yer değişiyor. Migration'ı düşük riskli yapan asıl şey bu.
The logic behind the freeze was to make migration painless: the libraries frozen in 3.44 are the same code base as the 1.0.0 releases of the new packages. Widget behaviour does not change in the move; only where the package comes from does. That is what makes this migration low-risk.
03Teknik olarak ne değişiyor?What changes, technically?
| KonuArea | Eski (SDK içinde)Before (inside the SDK) | Yeni (bağımsız paket)After (standalone packages) |
|---|---|---|
| Import | package:flutter/material.dart |
package:material_ui/material_ui.dart |
| Sürüm döngüsüRelease cadence | SDK ile birlikte, çeyreklikTied to the SDK, quarterly | pub.dev'de, haftalık planlanıyorOn pub.dev, planned weekly |
| Localization | Üç delegate ayrı ayrı listelenirThree delegates listed separately | GlobalMaterialLocalizations.delegates |
| KatkıContributions | flutter/flutter (core SDK)(core SDK) |
flutter/packages |
Localization tarafındaki sadeleşme küçük ama günlük hayatta hissedilir. Eskiden üç delegate'i tek tek listelemek gerekiyordu:
The localization change is small but you feel it day to day. You used to list three delegates one by one:
// Eskisi — üç ayrı delegate// Before — three separate delegates localizationsDelegates: const [ GlobalCupertinoLocalizations.delegate, GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, ], // Yenisi — Cupertino ve Widgets delegate'lerini de kapsıyor// After — this also covers the Cupertino and Widgets delegates localizationsDelegates: GlobalMaterialLocalizations.delegates,
04Geçiş nasıl yapılır?How do you migrate?
Flutter ekibi bunun için otomatik bir dart fix kuralı hazırladı. Flutter 3.47 ve üzerinde tek komut yeterli:
The Flutter team shipped an automated dart fix rule for this. On Flutter 3.47 and above, one command does it:
dart fix --apply --code=migrate_design_widgetsKomut import'ları otomatik olarak güncelliyor. pubspec.yaml bağımlılıkları eklenmemiş görünüyorsa, paketleri elle ekleyip tekrar çalıştırın:
It rewrites the imports for you. If the pubspec.yaml dependencies do not appear, add the packages by hand and run it again:
flutter pub add material_ui flutter pub add cupertino_ui dart fix --apply
Bağımlılıklarınız henüz geçmediyse: CompatibilityBridgeIf your dependencies have not migrated: CompatibilityBridge
Kullandığınız üçüncü parti paketlerin bir kısmı henüz taşınmamış olabilir. material_ui, tam bunun için bir uyumluluk köprüsüyle geliyor: uygulamanızı hemen yeni paketlere geçirseniz bile eski import kullanan bağımlılıklarınız çalışmaya devam ediyor.
Some of your third-party packages may not have moved yet. material_ui ships a compatibility bridge for exactly this: you can move your own app to the new packages immediately while dependencies on the legacy imports keep working.
import 'package:material_ui/material_ui.dart'; class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( builder: (context, child) { // Eski import kullanan bağımlılıkları ayakta tutar.// Keeps dependencies on the legacy imports working. return MaterialUiCompatibilityBridge(child: child!); }, home: const HomeScreen(), ); } }
Bunun bir geçiş dönemi köprüsü olduğunu unutmayın; kalıcı çözüm değil. Bağımlılıklarınızdan hangilerinin henüz geçmediğini bugün çıkarmak, Kasım'da acele etmekten ucuza gelir.
Treat it as a transition bridge rather than a permanent answer. Working out which of your dependencies have not moved is cheaper today than in a rush in November.
05Paket yayımlıyorsanız: bu bir major releaseIf you publish a package: this is a major release
Flutter'ın 3.47 duyurusu bu konuda net: ekosistemde bir paketi standalone paketlere taşıyorsanız bunu major release olarak değerlendirin. Gerekçe, Material veya Cupertino re-export eden bir paketin API yüzeyinin değişmesi. Adımlar:
Flutter's 3.47 announcement is explicit: if you are migrating a package in the ecosystem, treat the move to the standalone packages as a major release. The reason is that re-exporting Material or Cupertino changes your package's API surface. The steps:
pubspec.yaml'amaterial_uive/veyacupertino_uibağımlılığını ekleyin.- Add a
material_uiand/orcupertino_uidependency topubspec.yaml. - Import'ları güncelleyin —
dart fix --applybunun büyük kısmını hallediyor. - Update the imports —
dart fix --applyhandles most of it. - Minimum Flutter sürümünü
3.44olarak ayarlayın. - Set the minimum Flutter version to
3.44. - Paketi major sürüm artışıyla yayımlayın.
- Publish with a major version bump.
Gecikmenin görünür bir maliyeti de var: pub.dev puanlaması geçiş yapmamış paketleri daha düşük puanlıyor.
Delay carries a visible cost too: pub.dev scoring gives unmigrated packages a lower score.
06Topluluk ne diyor? Q2 2026 anketiWhat does the community say? The Q2 2026 survey
Flutter ekibinin 6 Ağustos 2026'da yayımladığı Q2 2026 geliştirici anketine 3.500'den fazla geliştirici katıldı. Cupertino widget'ları %61 memnuniyetle (top-2 box) en düşük puanlı alan oldu; Q4 2025'e göre 6 puanlık düşüş.
Flutter's Q2 2026 developer survey, published on 6 August 2026, drew over 3,500 responses. Cupertino widgets came in as the lowest-scoring area at 61% satisfaction (top-2 box) — down 6 points from Q4 2025.
Ekip bu düşüşü anket yazısında açıkça sahipleniyor: daha hızlı sürüm çıkarabilecekleri bir noktaya varmak için "Cupertino widget'ları üzerindeki çalışmayı kasıtlı olarak durdurduk" diyorlar. Aynı yazı, bu temel çalışmanın daha önce yeterince hızlı ilerletilemeyen platform sadakati işlerinin önünü açtığını da ekliyor — Material 3 Expressive ve Apple'ın Liquid Glass tasarım dilini benimsemek bunlar arasında sayılıyor.
The team owns that drop directly in the survey post: they say they "intentionally paused work on Cupertino widgets to execute on decoupling to get to that better world where we can ship faster." The same post adds that this foundational work is already unblocking platform fidelity work they could not move fast enough on before — adopting Material 3 Expressive and Apple's Liquid Glass design language among it.
Bu okumayla Cupertino'daki düşüş bir gerileme değil, daha hızlı ilerlemenin geçici bedeli. Yine de bir uyarı: "geçici" olduğunu doğrulayacak veri henüz yok — bunu bir sonraki ankette göreceğiz.
Read that way, the Cupertino dip is not a regression but the temporary price of moving faster. One caveat, though: there is no data confirming the "temporary" part yet — the next survey is where that shows up.
07Bu nereye gidiyor?Where does this go?
Değişimin değeri import satırlarını güncellemekten ibaret değil. Mimari olarak dört şey açılıyor:
The value here is not just rewriting import lines. Architecturally, four things open up:
- Tasarım sistemi güncellemeleri hızlanıyor. Paketler pub.dev'de olduğu için SDK'nın çeyreklik döngüsüne bağlı değiller; haftalık sürüm planlanıyor. Bir Cupertino düzeltmesi artık SDK güncellemesi beklemiyor.
- Design system updates get faster. Living on pub.dev, the packages are no longer tied to the SDK's quarterly cadence; releases are planned weekly. A Cupertino fix no longer waits on an SDK update.
- Style-neutral bir çekirdek. Core widget katmanı tasarım bağımsız hale geliyor; kendi tasarım sisteminizi Flutter altyapısı üzerine kurmak için nihayet temiz bir zemin var.
- A style-neutral core. The core widget layer becomes design-agnostic, so building your own design system on Flutter's foundations finally has clean ground to stand on.
- Katkı demokratikleşiyor.
flutter/flutter'a dokunmak yerineflutter/packages'a PR açılıyor — inceleme yükü ve risk profili tamamen farklı. - Contribution gets easier. Instead of touching
flutter/flutter, you open a PR againstflutter/packages— a completely different review burden and risk profile. - Ekosistem paketleri kendi yolunu çiziyor. Material veya Cupertino re-export eden paketler artık core SDK değişimlerine bağlı kalmadan kendi roadmap'lerini takip edebiliyor.
- Ecosystem packages set their own course. Packages re-exporting Material or Cupertino can follow their own roadmap instead of waiting on core SDK changes.
08Ne yapmalısınız?What should you do?
Bu, kendi ölçeğinde bir migration — ve kademeli geçiş üzerine yazdığımız her şey burada da geçerli: erken başlayan, küçük adımlarla ilerleyen ve geri dönüşü olan plan kazanır. Pratik sıra:
This is a migration in its own right, and everything we wrote about incremental migration applies here too: the plan that starts early, moves in small steps and stays reversible wins. In practice:
- Şimdi: 3.47'ye geçin ve
dart fix --apply --code=migrate_design_widgetskomutunu çalıştırın. Migration şu an düşük riskli ve büyük ölçüde otomatik. - Now: move to 3.47 and run
dart fix --apply --code=migrate_design_widgets. The migration is low-risk and largely automatic today. - Bağımlılıklarınızı sayın. Hangi paketler henüz geçmemiş, bugün çıkarın. Köprü var ama kalıcı değil.
- Inventory your dependencies. Work out which packages have not moved yet. The bridge exists, but it is not permanent.
- Paket yayımlıyorsanız geçişi major sürümle yapın ve minimum Flutter sürümünü 3.44'e çekin.
- If you publish packages, ship the move as a major version and set the minimum Flutter version to 3.44.
- Kasım 2026'yı takvime alın. Deprecation orada resmiyet kazanıyor; silinme tarihi hâlâ açıklanmadı, dolayısıyla tampon süreye güvenmeyin.
- Put November 2026 in the calendar. That is where deprecation becomes formal; no removal date has been published, so do not count on a buffer.
Mobil tarafta bu, bu yıl planlamanız gereken tek yapısal değişiklik de değil: ajan uyumlu uygulama tasarımı ve mağaza redleri üzerine yazdıklarımız da aynı takvime giriyor.
On mobile this is not the only structural change to plan for this year: what we wrote on agent-ready app design and on store rejections lands in the same planning window.
09Sık sorulanlarFrequently asked questions
package:flutter/material.dart ne zaman çalışmayı durduracak?When will package:flutter/material.dart stop working?
Flutter 3.47 itibarıyla hâlâ çalışıyor ve migration isteğe bağlı. Çekirdekteki kütüphaneler Kasım 2026'daki sonbahar stable sürümünde resmen deprecated olacak. Silinme tarihi açıklanmadı — bu yüzden import'ların derlenmeyi bırakacağı kesin bir tarih vermek mümkün değil.
As of Flutter 3.47 it still works and migration is opt-in. The libraries in the core SDK are formally deprecated in the Fall stable release in November 2026. No removal date has been published — so there is no firm date on which the old imports stop compiling.
Migration ne kadar riskli, otomatik mi?How risky is the migration, and is it automatic?
Büyük ölçüde otomatik: dart fix --apply --code=migrate_design_widgets. Riski düşük tutan asıl şey, 3.44 ile dondurulan kütüphanelerin yeni paketlerin 1.0 sürümüyle aynı kod tabanı olması — widget davranışı değişmiyor.
Largely automatic: dart fix --apply --code=migrate_design_widgets. What keeps risk low is that the libraries frozen in 3.44 are the same code base as the packages' 1.0 releases — widget behaviour does not change.
Bağımlılıklarım henüz geçiş yapmadıysa?What if my dependencies have not migrated?
MaterialUiCompatibilityBridge ile uygulamanızı hemen taşıyıp eski import kullanan bağımlılıkları ayakta tutabilirsiniz. Geçiş dönemi köprüsü; kalıcı çözüm değil.
MaterialUiCompatibilityBridge lets you move your app immediately while dependencies on the legacy imports keep working. It is a transition bridge, not a permanent answer.
Paket yayımlıyorsam major sürüm şart mı?If I publish a package, is a major bump required?
Flutter'ın tavsiyesi net: evet, major release olarak değerlendirin. Material/Cupertino re-export eden bir pakette API yüzeyi değişiyor. Ayrıca pub.dev geçiş yapmamış paketleri daha düşük puanlıyor.
Flutter's guidance is explicit: yes, treat it as a major release. Re-exporting Material or Cupertino changes your API surface. pub.dev also scores unmigrated packages lower.
Material 3 Expressive ve Liquid Glass için ne anlama geliyor?What does it mean for Material 3 Expressive and Liquid Glass?
Flutter ekibine göre bu temel çalışma, daha önce yeterince hızlı ilerletilemeyen platform sadakati işlerinin önünü açıyor; Material 3 Expressive ve Liquid Glass'ı benimsemek bunlar arasında sayılıyor.
Per the Flutter team, this foundational work unblocks platform fidelity work they could not move fast enough on before — adopting Material 3 Expressive and Liquid Glass among it.
