socker 0.0.3
socker: ^0.0.3 copied to clipboard
Hazır widget ve extension içeren Flutter paketi
Socker #
Socker, Flutter uygulamalarınızda ScaffoldMessenger ve Navigator durumlarına global olarak kolayca erişmenizi sağlayan bir yardımcı pakettir. Bu sayede, widget ağacının derinliklerinden veya farklı context'lerden bağımsız olarak snackbar gösterebilir, sayfalar arası geçiş yapabilirsiniz.
Özellikler #
MaterialAppiçin globalscaffoldMessengerKeysağlar.MaterialAppiçin globalnavigatorKeysağlar.- Basit ve anlaşılır API.
- Flutter projelerine kolay entegrasyon.
Kurulum #
-
Projenizin
pubspec.yamldosyasınasockerbağımlılığını ekleyin:dependencies: flutter: sdk: flutter socker: ^0.0.2 # En son sürüm için pub.dev'i kontrol edin -
Bağımlılıkları projenize dahil etmek için terminalde aşağıdaki komutu çalıştırın:
flutter pub get -
Kullanmak istediğiniz Dart dosyasına paketi import edin:
import 'package:socker/socker.dart';
Kullanıma Başlama #
Socker'ı kullanmak için MaterialApp widget'ınızda Socker sınıfı tarafından sağlanan global anahtarları (scaffoldMessengerKey ve navigatorKey) belirtmeniz yeterlidir.
@override
import 'package:flutter/material.dart';
import 'package:socker/socker.dart'; // Socker paketini import edin
// main.dart dosyanız
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
// Socker tarafından sağlanan global anahtarları MaterialApp'e atayın
scaffoldMessengerKey: Socker.scafKey, // Bu satırı ekleyin
navigatorKey: Socker.navKey, // Bu satırı ekleyin
home: const MyHomePage(),
);
}
}
class MyHomePage extends StatelessWidget {
const MyHomePage({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
/// context ile tema bilgisi alın
/// context olmadan `Socker.isDark` kullanılabilir
/// renk kullanirken ana yontem olarak sunu tercih edin:
/// `backgroundColor: context.backgroundColor` bu yontem tema durumuna gore renk atayacaktir
backgroundColor: context.isDark ? Colors.black : Colors.white,
appBar: AppBar(
title: const Text('Socker Demo Ana Sayfa'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
TypewriterText(text: 'Bu metin daktilo tipi bir animasyon ile yazdirilacaktir'),
20.height,
ElevatedButton(
onPressed: () {
Socker.snackBar(title: 'Merhaba Socker!');
},
child: const Text('SnackBar Göster'),
),
/// `const SizedBox(height: 20)` yerine kullanilabilir kisa yontem:
20.height,
ElevatedButton(
onPressed: () {
/// Socker kullanarak yeni bir sayfaya gitme
/// no context method: `Socker.go(const DetailPage())`
context.go(const DetailPage());
},
child: const Text('Detay Sayfasına Git'),
),
],
),
),
);
}
}
class DetailPage extends StatelessWidget {
const DetailPage({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Detay Sayfası'),
),
body: Center(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Text('Bu detay sayfasıdır.'),
32.height,
TextButton(
child: const Text('Sayfayi Kapat'),
onPressed: context.back,
),
]
),
),
);
}
}
-add pubspec.yaml -
flutter:
assets:
assets/vectors/
assets/images/
assets/fonts/
Ek Bilgiler #
Paketle ilgili sorularınız, önerileriniz veya geri bildirimleriniz için aildev@outlook.com adresinden iletişime geçebilirsiniz.
Katkıda Bulunma #
Katkılarınızı memnuniyetle karşılıyoruz! Lütfen bir pull request açmadan önce, yapmak istediğiniz değişiklikleri tartışmak için bir issue oluşturun.
Lisans #
Bu proje MIT Lisansı altında lisanslanmıştır.