DAVUL UYGULAMASI — REFACTORING
import ‘package:flutter/material.dart’;
import ‘package:audioplayers/audioplayers.dart’; // sesleri çalmak için kütüphane yükledik
void main(){
runApp(DavulUygulamasi());
}
class DavulUygulamasi extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
backgroundColor: Colors.black, // Uygulamanın arka zemin renk ayarını Scaffold üzerinden yaptık
body:
DavulSayfasi(), // Kodları parçalı anlaşılır yapmak için body kısmını dolduracağımız fonk. hazırladık
),
);
}
}
class DavulSayfasi extends StatelessWidget { // Kodu tek parça ve okuması zor olmasın diye ek fonk. hazırladık
final oynatici = AudioCache(); // Ses kütüphanesinin AudioCache() metodunu instance ettik
void sesiCal(String parca){ // Sesleri çalmak için parça adını parametre olarak alıyoruz
oynatici.play(parca); // sesiCal() fonksiyonu ile her butonda ayrı ayrı kod yazmıyoruz
}
@override
Widget build(BuildContext context) {
return SafeArea(
child: Padding(
padding: const EdgeInsets.fromLTRB(8, 4, 8, 4), // hücrelerin en dış boşlukları için
child: Column( // 4X2 hücre yapısını içine alan Column tanımladık
children: [
Expanded( // Row ekranda görünmesi ve yayılması için Expanded içine aldık
child:
Row( // Column içindeki 1. sol satır
children: [
Expanded( // FlatButton ekranda görünmesi ve yayılması için Expanded içine aldık
child: reFactorDavulSayfasi(“bip”, Colors.blueAccent),
),
Expanded(
child: reFactorDavulSayfasi(“bongo”, Colors.redAccent),
),
],
),
),
Expanded( // Row ekranda görünmesi ve yayılması için Expanded içine aldık
child:
Row( // Column içindeki 1. sağ satır
children: [
Expanded(
child: reFactorDavulSayfasi(“clap1”, Colors.grey) ,
),
Expanded(
child: reFactorDavulSayfasi(“clap2”, Colors.white),
),
],
),
),
Expanded( // Row ekranda görünmesi ve yayılması için Expanded içine aldık
child:
Row(
children: [
Expanded(
child: reFactorDavulSayfasi(“clap3”, Colors.cyanAccent),
),
Expanded(
child: reFactorDavulSayfasi(“crash”, Colors.brown),
),
],
),
),
Expanded( // Row ekranda görünmesi ve yayılması için Expanded içine aldık
child:
Row(
children: [
Expanded(
child: reFactorDavulSayfasi(“how”, Colors.pinkAccent),
),
Expanded(
child: reFactorDavulSayfasi(“oobah”, Colors.greenAccent),
),
],
),
),
Expanded( // Row ekranda görünmesi ve yayılması için Expanded içine aldık
child:
Row(
children: [
Expanded(
child: reFactorDavulSayfasi(“ridebel”, Colors.deepPurple),
),
Expanded(
child: reFactorDavulSayfasi(“woo”, Colors.amberAccent),
),
],
),
),
],
),
),
);
}
FlatButton reFactorDavulSayfasi(String ses, Color renk){ // Bana bir FlatButton döndüren fonksiyon
return FlatButton( // Ses ve rengi dışarıdan parametre olarak al
padding: EdgeInsets.all(10),
onPressed: (){
sesiCal(ses); // sesiCal fonksiyonunu çağırdık
},
child: Container( // Container FlatButton ile sarıldı
color: renk, // color a renk parametresini verdik
),
);
}
}