#100DaysOfCode
Day#35
Get Ömer Faruk Didin’s stories in your inbox
Join Medium for free to get updates from this writer.
Merhabalar bootcamp’te aldığım notları ve kodları paylaşacağım.
- Sıfırdan bir main dosyası açarak bu dosya üzerine temelleri atacağız.
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: "Flutter Örnek",
theme: ThemeData(
primarySwatch: Colors.red,
),
home: const MyHomePage(
title: "flutter Stateless ve Statefull widget örnek",
));
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
final String title;
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
void initState() {
print("ilgili class init state metodudur");
super.initState();
}
int _counter = 0;
void _incrementCounter() {
setState(() {
_counter++;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: Column(children: <Widget>[
const Text('bu butona şu kadar tıkladınız'),
Text(
'$_counter',
style: Theme.of(context).textTheme.headlineLarge,
)
]),
),
floatingActionButton: FloatingActionButton(
onPressed: _incrementCounter,
child: const Icon(Icons.add),
tooltip: 'Sayıyı artır',
),
);
}
}- tabbar kullanımına ait örnek
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
void main() {
runApp(const TabBarApp());
}
class TabBarApp extends StatelessWidget {
const TabBarApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(home: const TabBarOrnek());
}
}
class TabBarOrnek extends StatelessWidget {
const TabBarOrnek({super.key});
@override
Widget build(BuildContext context) {
return DefaultTabController(
initialIndex: 1,
length: 3,
child: Scaffold(
appBar: AppBar(
title: const Text("Tabbar Örnek"),
bottom: const TabBar(tabs: <Widget>[
Tab(
icon: Icon(Icons.cloud_outlined),
),
Tab(
icon: Icon(Icons.sunny),
),
Tab(
icon: Icon(Icons.sunny_snowing),
),
]),
),
body: const TabBarView(children: <Widget>[
Center(
child: Text("Bugün hava bulutlu"),
),
Center(
child: Text("Bugün hava güneşli"),
),
Center(
child: Text("Bugün hava karlı"),
)
]),
),
);
}
}- drawer
import "package:flutter/material.dart";
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
//metodumuzun geri dönüş tipi Widget olduğu için
//return ile dönmemiz gereken widget ne ise onu bu metod ta dönmeliyiz
Widget build(BuildContext context) {
return const MaterialApp(home: NavigasyonOrnek());
}
}
class NavigasyonOrnek extends StatelessWidget {
const NavigasyonOrnek({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text("Navigasyon Örnek"),
),
body: const Text("Burası ekranımızın body sidir"),
drawer: Drawer(
child: ListView(
children: <Widget>[
const UserAccountsDrawerHeader(
accountName: Text("İbrahim Gökyar"),
accountEmail: Text("ibrahim.gokyar1@gmail.com"),
currentAccountPicture: CircleAvatar(
),
),
ListTile(
title: Text('Anasayfa'),
leading: Icon(Icons.home),
onTap: () {
Navigator.pop(context);
},
)
],
)),
);
}
}import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
theme: ThemeData(
primarySwatch: Colors.orange,
),
home: NavigasyonSayfasi());
}
}
class NavigasyonSayfasi extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Navigation Drawer"),
),
body: Center(
child: Text("Hoş geldin!"),
),
drawer: Drawer(
child: ListView(
padding: EdgeInsets.zero,
children: <Widget>[
UserAccountsDrawerHeader(
accountName: Text("İbrahim Gökyar"),
accountEmail: Text("ibrahim.gokyar1@gmail.com"),
currentAccountPicture: CircleAvatar(
backgroundImage: AssetImage("images/ibrahimgokyar.jpeg"),
),
),
ListTile(
title: Text('Anasayfa'),
leading: Icon(Icons.home),
onTap: () {
Navigator.pop(context);
},
),
ListTile(
title: Text('Profilim'),
onTap: () {
Navigator.pop(context);
},
leading: Icon(Icons.person),
),
ListTile(
title: Text('Çıkış yap'),
onTap: () {
Navigator.pop(context);
},
leading: Icon(Icons.remove_circle),
),
],
),
),
);
}
}Bugünlük bu kadar paylaşacaklarım. Dediğim gibi sadece bootcamp ödevi ve bootcamp notlarını bir sürelik paylaşacağım. Sınav haftası bitince gündelik çalışmaya devam edeceğim. (15.11.2023)










