Wednesday, June 10, 2026

Mobil uygulamalar 2. Performans ÖDEVi (ÖNEMLİ)

 ÖNEMLİ NOT: 2. Performans NOTUNUZ bu ÖDEVDEN OLACAKTIR.


ÖDEV Güncellenmiştir. Bildirim kısmı içerikten çıkarılmış ve daha basit hale getirilmiştir. Bildirim ihtiyacı olmadığını ele alarak ona göre ödevi yapalım.


https://studio.firebase.google.com/

adresinde ödevlerinizi yapabilirsiniz. en son olarak projenizi 

vakatakip54@gmail.com
adresi ile paylaşmanız gereklidir.

Projenizin adı aşağıdaki gibi olmalıdır, (türkçe karakter kullanmayın)
odev2_okulno_11a


son teslim tarihi

17.06.2026 23:59:59

ÖDEV İÇERİĞİ

Kütüphane Takip Sistemi Performans Ödevi

Amaç

Kütüphane üyelerinin kitap ödünç alma ve geri verme işlemlerini takip edebileceği, yöneticilerin kitap envanterini yönetebileceği bir Flutter uygulaması geliştirin. Her kitap, benzersiz numara, kategori ve raf konumuyla kaydedilmeli. Sistem, kütüphane işlemlerini kolay ve düzenli hale getirmeli.

Kullanıcı Rolleri

  • Üyeler: Kitapları listeleyebilir, ödünç alabilir, geri verebilir, ödünç alma geçmişini görebilir.
  • Yöneticiler: Kitap ekleyebilir, düzenleyebilir, silebilir, ödünç durumlarını ve tüm üyelerin geçmişini yönetebilir.

İstenen Özellikler

  1. Giriş ve Kayıt: E-posta ve şifre ile giriş/kayıt.
  2. Kitap Yönetimi (Yöneticiler):
    • Kitap bilgileri: numara (örn. K001), başlık, yazar, kategori, raf konumu, ödünç durumu.
    • Ekleme, düzenleme, silme.
  3. Kitap Listesi: Numara, başlık, yazar, kategori, raf konumu, ödünç durumuyla liste.
  4. Ödünç Alma ve Geri Verme: Üyeler ödünç alabilir/geri verebilir, durum güncellenir.
  5. Navigasyon: Ana ekran, kitap ekleme, profil ekranı arasında geçiş.
  6. Ek Özellikler:
    • Kitap kapağı görseli.
    • Arama (başlık, kategori, raf).
    • Filtreleme (kategori, durum).
    • Ödünç alma geçmişi.

Ekran Tanımları

  1. Giriş/Kayıt Ekranı: Uygulama adı/logo, e-posta/şifre alanları, "Giriş Yap"/"Kayıt Ol" butonları.
  2. Kitap Listesi Ekranı: "Kitaplar" başlığı, menü ikonu, kitap listesi (numara, başlık, yazar, kategori, raf, durum), "Ödünç Al"/"Düzenle"/"Sil" butonları, "Yeni Kitap Ekle" (yöneticiler).
  3. Kitap Ekleme/Düzenleme Ekranı (Yöneticiler): Numara, başlık, yazar, kategori, raf, ödünç durumu alanları, "Kaydet" butonu.
  4. Profil Ekranı: Ad, e-posta, ödünç alınan kitaplar listesi, "Çıkış Yap" butonu.
  5. Menü: "Kitaplar", "Yeni Kitap Ekle" (yöneticiler), "Profilim".

Değerlendirme Kriterleri

  • İşlevler (giriş, kitap yönetimi, ödünç alma) çalışıyor mu?
  • Liste tüm bilgileri içeriyor mu?
  • Arayüz sade ve kullanışlı mı?
  • Bildirimler gönderiliyor mu?
  • Ek özellikler eklendi mi?

Mobil Uygulamalar 1. Performans ÖDEVİ (ÖNEMLİ)

  ÖNEMLİ NOT: 1. Performans NOTUNUZ bu ÖDEVDEN OLACAKTIR.


https://studio.firebase.google.com/

adresinde ödevlerinizi yapabilirsiniz. en son olarak projenizi 

vakatakip54@gmail.com
adresi ile paylaşmanız gereklidir.

Projenizin adı aşağıdaki gibi olmalıdır, (türkçe karakter kullanmayın)
odev1_okulno_11a



son teslim tarihi

17.06.2026 23:59:59

ÖDEV İÇERİĞİ


Projenizde kullanıcı kaydı, girişi yapılabilen kişiselleştirilmiş bir telefon defteri uygulaması yapacağız. Kişi profil bilgilerini ve profil fotosunu da güncelleme yapabilecektir. Sqflite veritabanı kullanacaksınız.

1.     Bir kayıt ekranı yapın. Kullanıcı burada ad, soyad, kullanıcı adı, şifre, doğum tarihi ve yaşadığı ili girecek. Veritabanında bir de fotourl alanı olacak, ama bunu kayıt anında istemeyeceksiniz. Bonus: Eğer kullanıcı bir alanı boş bırakırsa, SnackBar ile "Boş alanları doldurun" uyarısı gösterin.

2.     Giriş ekranında kullanıcı adı ve şifre alın. Veritabanında bu bilgiler doğruysa, kullanıcıyı Homepage ekranına yönlendirin. Bonus: Boş alan bırakılırsa SnackBar ile uyarı verin.

3.     Homepage ekranında:

a)    AppBar’ın solunda, kullanıcının profil fotoğrafı varsa yuvarlak şekilde gösterilecek, yoksa yuvarlak bir ikon (örneğin, kişi simgesi) olacak. Sağda bir "Profili Düzenle" ikonu koyun, bu ikon tıklandığında profili düzenleme ekranına gidilecek.

b)    Ekranın gövdesinde, kullanıcının telefon rehberindeki kişiler listelenecek. Eğer hiç kişi yoksa, ekranın ortasında "Kişi kaydı yok" yazısı görünecek.

c)     Bir + şeklinde buton olacak; buna basıldığında yeni kişi ekleme ekranı açılacak.

4.     Profili düzenle ekranında, kullanıcı kayıt sırasında girdiği tüm bilgileri değiştirebilecek. Ayrıca profil fotoğrafını da güncelleyebilecek. Fotoğraf değiştirirken bir ekran çıkacak ve kullanıcı fotoğrafı kameradan mı yoksa galeriden mi alacağını seçecek. Bonus: Boş alanlar için SnackBar ile uyarı verin.

5.     Yeni kişi ekleme ekranında, kullanıcı bir kişinin adını, soyadını ve telefon numarasını girip kaydedecek. Kayıt sonrası Homepage’e dönülecek ve rehber listesi otomatik güncellenecek. Bonus: Boş alanlar için SnackBar ile uyarı verin.


Thursday, March 26, 2026

sınav öncesi olabilirlik çalışması

 

import 'package:flutter/material.dart';
import 'package:flutter_application_6/customscrool.dart';
import "data.dart";

void main() {
  runApp(const MainApp());
}

class MainApp extends StatelessWidget {
  const MainApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      scrollBehavior: MyCustomScrollBehavior(),
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        appBar: AppBar(
          backgroundColor: Color.fromARGB(255, 1, 128, 105),
          title: Text(
            "WhatsApp",
            style: TextStyle(color: Colors.white),
          ),
          actions: [
            Icon(
              Icons.camera_front,
              color: Colors.white,
            ),
            SizedBox(
              width: 10,
            ),
            Icon(
              Icons.portable_wifi_off_outlined,
              color: Colors.white,
            ),
            SizedBox(
              width: 10,
            ),
            Icon(
              Icons.menu,
              color: Colors.white,
            ),
            SizedBox(
              width: 10,
            ),
          ],
        ),
        body: Padding(
          padding: const EdgeInsets.all(8.0),
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.start,
            children: [
              Row(
                mainAxisAlignment: MainAxisAlignment.spaceBetween,
                children: [
                  Text(
                    "Status",
                    style: TextStyle(
                      fontSize: 24,
                      fontWeight: FontWeight.w600,
                    ),
                  ),
                  Icon(Icons.menu),
                ],
              ),
              SingleChildScrollView(
                scrollDirection: Axis.horizontal,
                child: Padding(
                  padding: const EdgeInsets.only(
                    right: 15,
                    top: 15,
                  ),
                  child: Row(
                    children: [
                      hikaye(),
                      hikaye(name: "Recep ÖZEN"),
                      hikaye(),
                      hikaye(),
                      hikaye(),
                      hikaye(),
                      hikaye(),
                      hikaye(),
                    ],
                  ),
                ),
              ),
              Divider(),
              Row(
                mainAxisAlignment: MainAxisAlignment.spaceBetween,
                children: [
                  Text(
                    "Channel",
                    style: TextStyle(
                      fontSize: 24,
                      fontWeight: FontWeight.w600,
                    ),
                  ),
                  Icon(Icons.add),
                ],
              ),
              Expanded(
                child: ListView.builder(
                  itemBuilder: (context, index) {
                    var a = datalist[index];
                    return haber(title: a["title"], content: a["content"]);
                  },
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }

  Container haber({
    String? title,
    String? content,
    String? haberimg,
    String? yazarimg,
  }) {
    return Container(
      margin: EdgeInsets.only(top: 25),
      child: Column(
        children: [
          Row(
            children: [
              CircleAvatar(),
              SizedBox(
                width: 15,
              ),
              Text(
                title ?? "Haber Başlığı",
                style: TextStyle(
                  fontSize: 24,
                  fontWeight: FontWeight.w600,
                ),
              ),
            ],
          ),
          Row(
            mainAxisAlignment: MainAxisAlignment.spaceBetween,
            children: [
              SizedBox(
                width: 270,
                child: Text(
                  content ??
                      "İsteğe bağlı tanımlama bilgilerini, sosyal medya bağlantıları gibi web sitelerimizde deneyiminizi iyileştirmek ve çevrimiçi etkinliğinize dayalı olarak kişiselleştirilmiş reklamlar görüntülemek için kullanırız. İsteğe bağlı tanımlama bilgilerini reddederseniz yalnızca",
                  style: TextStyle(fontSize: 18),
                  overflow: TextOverflow.ellipsis,
                  maxLines: 3,
                ),
              ),
              Container(
                width: 70,
                height: 70,
                color: Colors.amber,
              ),
            ],
          ),
          Row(
            crossAxisAlignment: CrossAxisAlignment.center,
            children: [
              Padding(
                padding: const EdgeInsets.only(top: 4),
                child: Icon(
                  Icons.donut_large,
                  size: 8,
                ),
              ),
              Text(
                "unread",
                style: TextStyle(color: Colors.green),
              ),
            ],
          ),
          Divider(),
        ],
      ),
    );
  }

  Widget hikaye({String? img, String? name}) {
    return Column(
      children: [
        Container(
          margin: EdgeInsets.only(left: 15),
          padding: EdgeInsets.all(2),
          width: 70,
          height: 70,
          decoration: BoxDecoration(
            // color: Colors.black,
            shape: BoxShape.circle,
            border: Border.all(color: Colors.green, width: 3),
          ),
          child: ClipRRect(
            borderRadius: BorderRadiusGeometry.circular(100),
            child: Image.network(
              img ??
                  "https://lh3.googleusercontent.com/a/ACg8ocJ1ozVoF0R9OH26B8nPKFZ8H2U6ielA2DfsNJLLNbwow5xkFVw_=s288-c-no",
            ),
          ),
        ),
        SizedBox(
          height: 5,
        ),
        SizedBox(
          width: 70,
          child: Text(
            name ?? "Ad Soyad adasdas dasdasd",
            style: TextStyle(fontSize: 12),
            overflow: TextOverflow.ellipsis,
          ),
        ),
      ],
    );
  }
}


import 'dart:ui';

import 'package:flutter/material.dart';

class MyCustomScrollBehavior extends MaterialScrollBehavior {
  @override
  Set<PointerDeviceKind> get dragDevices => {
    PointerDeviceKind.touch,
    PointerDeviceKind.mouse,
  };
}

Thursday, March 12, 2026

instamsı

 import 'package:flutter/material.dart';

import 'package:flutter_application_3/customscrool.dart';

void main() {
  runApp(const MainApp());
}

class MainApp extends StatelessWidget {
  const MainApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      scrollBehavior: MyCustomScrollBehavior(),
      home: const HomePage(),
      debugShowCheckedModeBanner: false,
    );
  }
}

class HomePage extends StatelessWidget {
  const HomePage({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: Colors.white,
      appBar: AppBar(
        backgroundColor: Colors.white,
        title: Text("Instagram"),
        actions: [
          Icon(Icons.favorite_border),
          Icon(Icons.message_outlined),
          SizedBox(
            width: 10,
          ),
        ],
      ),
      body: SingleChildScrollView(
        child: Column(
          children: [
            Container(
              height: 115,
              decoration: BoxDecoration(
                border: Border(
                  bottom: BorderSide(width: 1, color: Colors.grey),
                ),
              ),
              child: SingleChildScrollView(
                scrollDirection: Axis.horizontal,
                child: Row(
                  children: [
                    Profil(),
                    Profil(),
                    Profil(),
                    Profil(),
                    Profil(),
                    Profil(),
                    Profil(),
                    Profil(),
                  ],
                ),
              ),
            ),
            Column(
              children: [
                Row(
                  children: [
                    Profil(size: 30, textshow: true),
                    SizedBox(
                      width: 20,
                    ),
                    Text("adasdöas d asd asd"),
                  ],
                ),
                SizedBox(
                  height: 10,
                ),
                Image.network(
                  "https://cdn.dsmcdn.com/ty1447/product/media/images/prod/QC/20240728/23/788ace11-6f23-3499-beb1-d094998d8c7a/1_org_zoom.jpg",
                ),
                Row(
                  children: [],
                ),
              ],
            ),
          ],
        ),
      ),
    );
  }

  Widget Profil({String? url, String? adsoyad, double? size, bool? textshow}) {
    return Column(
      children: [
        Container(
          margin: EdgeInsets.only(left: 10, top: 10),
          width: size ?? 80,
          height: size ?? 80,
          child: ClipRRect(
            borderRadius: BorderRadius.circular(100),
            child: Image.network(
              url ??
                  "https://yt3.googleusercontent.com/ytc/AIdro_kEoj9ic3VkTNHsnFpLOxFk6ixl5VCMAXZTrLkDXmoCYZE=s176-c-k-c0x00ffffff-no-rj-mo",
              fit: BoxFit.cover,
            ),
          ),
        ),
        if (textshow == null || textshow == false)
          Text(
            adsoyad ?? "Ad Soyad",
            style: TextStyle(
              fontSize: 12,
            ),
          ),
      ],
    );
  }
}

Thursday, March 5, 2026

flutter uygulama



 import 'package:flutter/material.dart';


void main() {
  runApp(const MainApp());
}

class MainApp extends StatelessWidget {
  const MainApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: HomePage(),
      debugShowCheckedModeBanner: false,
    );
  }
}

class HomePage extends StatelessWidget {
  const HomePage({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: const Color.fromARGB(255, 226, 102, 31),
      appBar: AppBar(
        backgroundColor: const Color.fromARGB(255, 226, 102, 31),
        title: Text(
          "Bu başlığımız",
          style: TextStyle(
            fontSize: 18,
            color: Colors.white,
            fontFamily: "Times New Roman",
            letterSpacing: 1.5,
          ),
        ),
        centerTitle: true,
      ),
      body: Center(
        child: Container(
          width: 280,
          height: 350,
          decoration: BoxDecoration(
            color: Colors.white,
            borderRadius: BorderRadius.circular(10),
          ),
          child: Padding(
            padding: const EdgeInsets.symmetric(horizontal: 20),
            child: Column(
              crossAxisAlignment: CrossAxisAlignment.start,
              children: [
                SizedBox(
                  height: 40,
                ),
                Center(
                  child: Text(
                    "User Profile",
                    style: TextStyle(fontSize: 18, fontWeight: FontWeight.w600),
                  ),
                ),
                SizedBox(
                  height: 15,
                ),
                Center(
                  child: SizedBox(
                    width: 100,
                    height: 100,
                    child: CircleAvatar(
                      backgroundImage: AssetImage("assets/recep.jpg"),
                    ),
                  ),
                ),
                SizedBox(
                  height: 10,
                ),
                Text(
                  "Name",
                  style: TextStyle(fontSize: 10),
                ),
                Container(
                  width: double.infinity,
                  padding: EdgeInsets.only(bottom: 5),
                  decoration: BoxDecoration(
                    border: Border(
                      bottom: BorderSide(width: 0.5),
                    ),
                  ),
                  child: Text(
                    "Recep ÖZEN",
                    style: TextStyle(fontSize: 14, fontFamily: "Arial"),
                  ),
                ),
                SizedBox(
                  height: 10,
                ),
                Text(
                  "Location",
                  style: TextStyle(fontSize: 10),
                ),
                Container(
                  width: double.infinity,
                  padding: EdgeInsets.only(bottom: 5),
                  decoration: BoxDecoration(
                    border: Border(
                      bottom: BorderSide(width: 0.5),
                    ),
                  ),
                  child: Text(
                    "SAKARYA",
                    style: TextStyle(fontSize: 14, fontFamily: "Arial"),
                  ),
                ),
                SizedBox(
                  height: 10,
                ),
                Text(
                  "Favori Diller",
                  style: TextStyle(fontSize: 10, color: Colors.blue),
                ),
                Container(
                  width: double.infinity,
                  padding: EdgeInsets.only(bottom: 5),
                  decoration: BoxDecoration(
                    border: Border(
                      bottom: BorderSide(width: 0.5),
                    ),
                  ),
                  child: Text(
                    "İngilizce, Boşnakça",
                    style: TextStyle(fontSize: 14, fontFamily: "Arial"),
                  ),
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}

Tuesday, March 3, 2026

mysl bağlantı .net framework form için

 using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using MySql.Data.MySqlClient;


namespace WindowsFormsApp6

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

        }

        

        private void button1_Click(object sender, EventArgs e)

        {

            // Bir veritabanına bağlantı için connectionstring adı verilen bilgi ifadesi gereklidir.

            string connStr = "Server=localhost;Database=dersdb;Uid=root;Pwd=1234;";


            // MySQL kullandığımız için mysql bağlantısı gerekiyor.

            // Tools->Nuget->Manage Nuget tan : Mysql.Data yı projemize ekliyoruz.


            // Eklemeyi yaptı iseniz, artık mysql kütüphanesi kullanılabilir

            // MySqlConnection, verilen Connection String ifadesini kullanarak mysql e bağlantı sağlar


            MySqlConnection conn = new MySqlConnection(connStr);


            // conn.Open() diyerek, bağlantı sağlanabilir, ancak bağlantı kurulamaz ise hata oluşur.

            // dolayısı ile try içinde kullanmak mantıklıdır.


            try

            {

                conn.Open(); // bağlantıyı aç

                // Tamam bağlantıyı sağladık, veritabanında ne yaparız.

                // veritabanında sorgular yapar, gelen verilere göre iş yaparsın.

                // o halde veritabanına sorgu göndermem gerekiyor. 

                // bunu MysqlDataAdapter sağlar.

                string query = "select * from ogrenciler";

                MySqlDataAdapter da = new MySqlDataAdapter(query, conn);

                // yukarıda dataadaptörümüze sorguyu ve bağlantı bilgisini verdik.


                // sorgu neticesinde geriye bir tablo geliyor, 

                // bu durumda bunu tutacak bir tabloya ihtiyacım var.

                DataTable dt = new DataTable();

                da.Fill(dt); // dataadapterdeki sorguyu çalıştır, sonucu dt ye doldur.


                dataGridView1.DataSource = dt;

            }

            catch (Exception)

            {


                // throw; // bunu silmen lazım

            }



        }

    }

}


Thursday, February 26, 2026

flutter için column, row, container, image konularına ait dökümanlar

 https://drive.google.com/file/d/1zsXl304l8thzE1TF9aK3mYInnf_nM1eD/view?usp=sharing

import 'package:flutter/material.dart';

class HomePage extends StatelessWidget {
  const HomePage({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Padding(
        padding: const EdgeInsets.only(top: 10),
        child: AltAlta(),
      ),
    );
  }

  Widget durum1() {
    // Container ölçü almadığı için ,
    // Ebveyninin izin verdiği kadar genişlik ve yükseklik alıyor.
    return Container(
      color: Colors.blue,
    );
  }

  Widget durum2() {
    // Container'a genişlik ve yükseklik verdik
    // girdiğiğimiz genişlik ve yükseklik kadar ölçü aldı
    return Container(
      width: 100,
      height: 100,
      color: Colors.blue,
    );
  }

  Widget durum3() {
    // Container'a gemişlik ve yükseklik vermedik,
    // içeriği kadar genişlik ve yükseklik alır. NOT: Row, Column, Scaffold gibi widgetların içinde
    // çünkü ebeveyn “İstersen küçük olabilirsin, zorlamıyorum.” der
    return Container(
      color: Colors.blue,
      child: Text("Merhaba"),
    );
  }

  Widget KutuIcindeKutu() {
    // Ebeveyn her zaman istersen küçük olabilirsin demeyebilir.

    // Bu durumda ya istediği ölçüyü almasına izin veren bir widget içine alırız (Center)
    // ya da ebeveyn'in ki muhtemelen Container'a alignment parametresi ile özellik veririz.

    return Container(
      color: Colors.blue,
      width: 150,
      height: 150,
      alignment: Alignment.topLeft, // Dedik ki "Çocuğum, Kendin gibi davran"
      child: Container(
        color: Colors.red,
        width: 100,
        height: 100,
        child: Text("Kutu"),
      ),
    );
  }

  Widget YanYana() {
    // Row, genişliği 100% dir,
    // Çocuklarının yüksekliği kadar yükseklik alır
    // elemanların yanyana yerleşimini sağlar
    // x, y ekseni gibi düşünürsek, x yani yatay olan mainAxisAligment olarak geçer.
    // mainAxisAlignment kutuların yerleşimini, ortalı, sağa, sola, eşit aralıklı vb ayarlar.
    // crossAxisAlignment kutuların dikey yerleşimini ayarlar.
    return Row(
      mainAxisAlignment: MainAxisAlignment.spaceEvenly,
      // mainAxisSize Varsayılan max, genişlik 100%, min olursa çocuklarım kadar geniş ol.
      // mainAxisSize: MainAxisSize.min,
      crossAxisAlignment: CrossAxisAlignment.center,
      children: [
        Container(
          color: Colors.red,
          width: 100,
          height: 50,
        ),
        Container(
          color: Colors.blue,
          width: 100,
          height: 100,
        ),
        Container(
          color: Colors.brown,
          width: 100,
          height: 100,
        ),
      ],
    );
  }

  Widget AltAlta() {
    // Column, yüksekliği 100% dir,
    // Çocuklarının genişliği kadar genişlik alır
    // elemanların dikey yerleşimini sağlar
    // x, y ekseni gibi düşünürsek, y yani dikey olan mainAxisAligment olarak geçer.
    // mainAxisAlignment kutuların yerleşimini, ortalı, yukarı, aşağı, eşit aralıklı vb ayarlar.
    // crossAxisAlignment kutuların yatay yerleşimini ayarlar.
    return Column(
      mainAxisAlignment: MainAxisAlignment.spaceEvenly,
      // mainAxisSize Varsayılan max, yükseklik 100%, min olursa çocuklarım kadar yükseklik ol.
      // mainAxisSize: MainAxisSize.min,
      children: [
        Container(
          color: Colors.red,
          width: 20,
          height: 100,
        ),
        Container(
          color: Colors.blue,
          width: 100,
          height: 100,
        ),
        Container(
          color: Colors.brown,
          width: 100,
          height: 100,
        ),
      ],
    );
  }
}

import 'package:flutter/material.dart';

class Uyg01 extends StatelessWidget {
  const Uyg01({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Container(
        padding: EdgeInsets.all(10),
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: [
            Row(
              mainAxisAlignment: MainAxisAlignment.spaceBetween,
              children: [
                Container(
                  width: 100,
                  height: 100,
                  color: Colors.yellow,
                ),
                Container(
                  width: 100,
                  height: 100,
                  color: Colors.yellow,
                ),
                Container(
                  width: 100,
                  height: 100,
                  color: Colors.yellow,
                ),
              ],
            ),
            Container(
              margin: EdgeInsets.only(top: 20),
              width: 100,
              height: 100,
              color: Colors.yellow,
            ),
            SizedBox(
              height: 20,
            ),
            Row(
              mainAxisAlignment: MainAxisAlignment.spaceBetween,
              children: [
                Container(
                  width: 100,
                  height: 100,
                  color: Colors.yellow,
                ),
                Container(
                  width: 100,
                  height: 100,
                  color: Colors.yellow,
                ),
              ],
            ),
          ],
        ),
      ),
    );
  }
}


// Resim biz de asset ile gerçekleştirilir
// cihazın bir yerinden alınabilir,
// uygulama içinden alınabilir
// internetten yani bir url den alınabilir
// pubspec.yaml içinde bir değişiklik gerekir.
// bu dosya içinde flutter altında (sekme içeri girince altında demek oluyor, tab girintisi yani)
// assets:
//   - assets/recep.jpg
import 'package:flutter/material.dart';

class ResimOrnek extends StatelessWidget {
  const ResimOrnek({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Column(
          mainAxisSize: MainAxisSize.min,
          children: [
            Container(
              height: 200,
              width: 200,
              color: Colors.blue,
              child: Image.asset(
                "assets/recep.jpg",
              ), // önce kendi kadar, sınırı ebeveyni kadar
              // Image.asset("resmin yolu") uygulamaya eklenmiş resmi gösterir.
            ),
            Container(
              height: 200,
              width: 200,
              color: Colors.blue,
              child: Image.network(
                "https://www.algoritmaornekleri.com/wp-content/uploads/2019/05/sql-sorgular%C4%B1-ornekleri.jpg",
              ), // önce kendi kadar, sınırı ebeveyni kadar
              // Image.asset("resmin yolu") uygulamaya eklenmiş resmi gösterir.
            ),
          ],
        ),
      ),
    );
  }
}


import 'package:dersproje01/anlatim01.dart';
import 'package:dersproje01/kutuornek.dart';
import 'package:dersproje01/resim.dart';
import 'package:flutter/material.dart';

void main() {
  runApp(const MainApp());
}

class MainApp extends StatelessWidget {
  const MainApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      debugShowCheckedModeBanner: false,
      home: Tasarim(),
    );
  }
}

class Tasarim extends StatelessWidget {
  const Tasarim({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Padding(
        padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 10),
        child: Column(
          children: [
            Row(
              mainAxisAlignment: MainAxisAlignment.spaceBetween,
              children: [
                Container(
                  width: 40,
                  height: 40,
                  decoration: BoxDecoration(
                    border: Border.all(color: Colors.grey, width: 2),
                    borderRadius: BorderRadius.circular(10),
                  ),
                  child: Icon(Icons.arrow_left),
                ),
                Container(
                  width: 40,
                  height: 40,
                  decoration: BoxDecoration(
                    border: Border.all(color: Colors.grey, width: 2),
                    borderRadius: BorderRadius.circular(10),
                  ),
                  child: Icon(Icons.edit),
                ),
              ],
            ),
            // Container(
            //   width: 80,
            //   height: 80,
            //   decoration: BoxDecoration(
            //     borderRadius: BorderRadius.circular(100),
            //     color: Colors.blue,
            //     image: DecorationImage(
            //       image: AssetImage("assets/recep.jpg"),
            //     ),
            //   ),

            //   // child: Image.asset("assets/recep.jpg"),
            // ),
            SizedBox(
              width: 100,
              height: 100,
              child: CircleAvatar(
                backgroundImage: AssetImage("assets/recep.jpg"),
              ),
            ),
            SizedBox(
              height: 20,
            ),
            Row(
              mainAxisAlignment: MainAxisAlignment.center,
              children: [
                Icon(
                  Icons.star,
                  color: Colors.yellow,
                ),
                Icon(
                  Icons.star,
                  color: Colors.yellow,
                ),
                Icon(
                  Icons.star,
                  color: Colors.yellow,
                ),
                Icon(
                  Icons.star,
                  color: Colors.yellow,
                ),
                Icon(
                  Icons.star,
                  color: Colors.yellow,
                ),
              ],
            ),
            SizedBox(
              height: 20,
            ),
            Text(
              "Johan SMİTH",
              style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold),
            ),
            Text(
              "İSTANBUL, Maltepe ",
              style: TextStyle(fontSize: 18),
            ),
            SizedBox(
              height: 10,
            ),
            Row(
              mainAxisAlignment: MainAxisAlignment.spaceBetween,
              children: [
                balance(),
                balance(),
                balance(),
              ],
            ),
          ],
        ),
      ),
    );
  }
}

class balance extends StatelessWidget {
  const balance({
    super.key,
  });

  @override
  Widget build(BuildContext context) {
    return Container(
      width: 80,
      height: 80,
      decoration: BoxDecoration(
        color: const Color.fromARGB(255, 38, 88, 40),
        borderRadius: BorderRadius.circular(15),
      ),
      child: Center(
        child: Column(
          mainAxisSize: MainAxisSize.min,
          children: [
            Text(
              "Balance",
              style: TextStyle(color: Colors.white),
            ),
            Text(
              "00:00",
              style: TextStyle(color: Colors.white),
            ),
          ],
        ),
      ),
    );
  }
}