Learning Flutter πŸ“±πŸ’»
5 subscribers
117 photos
35 videos
3 files
67 links
Download Telegram
Learning Flutter πŸ“±πŸ’»
Flutter da go_routerda Push va Go o'ratasidagi farq go() metodi haqida GoRouter.of(context).go('/modal'); Yuqoridagi kod Stackda turgan sahifani replace qiladi desak boladi Navigator.pushReplacement() ga o'xshatsak boladi Stackni tozalab yangi sahifani…
import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';

/// navigator
final goRouter = GoRouter(
initialLocation: '/',
routes: [
GoRoute(path: "/", builder: (context,state)=>const Home()),
GoRoute(path: "/detail", builder: (context,state)=>const Detail()),

]);

///>>>##############################<<<
void main() => runApp(SimpleGo());

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

@override
Widget build(BuildContext context) {
return MaterialApp.router(routerConfig: goRouter);
}
}

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

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text("Home"),),
body: Center(
child: ElevatedButton(
onPressed: () =>context.go('/detail'),
child: const Text("Go To Detail Page"),
),
),
);
}
}

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

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text("Detail"),leading: BackButton(),), /// bu button ishlamaydi chunki stackda faqat 1 ta page mavjud
body: Center(
child: ElevatedButton(
onPressed: () =>context.pop(), /// bu button ishlamaydi chunki stackddaa faqat 1 ta page mavjud
child: const Text("Go To Home Page"),
),
),
);
}
}
push() metodi esa aksincha ishlaydi misol uchun
HomePage >>> DetailPage >>> ProductPage >>> HomePage.... hozirda stackda 4 ta page bo'ladi bunda pop qilish imkoni mavjud

import 'package:flutter/material.dart';
import 'package:go_router/go_router.dart';

/// navigator
final goRouter = GoRouter(
initialLocation: '/',
routes: [
GoRoute(path: "/", builder: (context,state)=>const Home()),
GoRoute(path: "/detail", builder: (context,state)=>const Detail()),
GoRoute(path: "/product", builder: (context,state)=>const Product()),

]);

///>>>##############################<<<
void main() => runApp(SimpleGo());

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

@override
Widget build(BuildContext context) {
return MaterialApp.router(routerConfig: goRouter);
}
}

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

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text("Home"),),
body: Center(
child: ElevatedButton(
onPressed: () =>context.push('/detail'),
child: const Text("Go To Detail Page"),
),
),
);
}
}

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

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text("Detail"),leading: BackButton(),),
body: Center(
child: ElevatedButton(
onPressed: () =>context.push('/product'),
child: const Text("Go To Product Page"),
),
),
);
}
}

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

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text("Product"),leading: BackButton(),),
body: Center(
child: ElevatedButton(
onPressed: () =>context.pop(),
child: const Text("Go To Home Page"),
),
),
);
}
}
This media is not supported in your browser
VIEW IN TELEGRAM
🧡 Google’dan Stitch – UI yaratishda yangi davr πŸŽ¨πŸ’»

Stitch β€” bu Google Labs tomonidan ishlab chiqilgan yangi eksperimental vosita boβ€˜lib, oddiy matn yoki rasm asosida foydalanuvchi interfeyslarini (UI) va frontend kodini avtomatik yaratadi.

πŸ” Stitch yordamida siz:
βœ… Matn orqali UI yarata olasiz
βœ… Rasm, skrinshot yoki chizmalarni interfeysga aylantira olasiz
βœ… Dizayn variantlarini sinab koβ€˜rib, tezkor tahrir qilishingiz mumkin
βœ… Tayyor dizaynni Figma’ga yuborish yoki kodga eksport qilish orqali dasturlashga oβ€˜tasiz

Bu vosita dizayner va dasturchilar uchun hamkorlikni osonlashtiradi va ilovalarni tez yaratishga yordam beradi.

πŸ§ͺ Sinab koβ€˜rish uchun: stitch.withgoogle.com

@naxalov
Savol IT o'quv markazlaridagi IT so'zini "AYTI" dep yozish kerakmi dep o'ylab qolaman .Sababi yoshi katta insonlar IT( it ular hayvon) dep tushinishadi .Sababi ular bunday zamonaviy kasblar borligini unchalik ham bilishmasligi dep bilaman.Ko'chada metroda IT (AYTI) dep yozish tog'ri bo'ladi dep o'ylayman .Bir video korgan edim ,yoshi kattaroq ayol ko'chadagi reklama banneridagi yozuvga qarab o'qiganda IT so'zini it(hayvon ) dep tushungan va reklamada shunday yozilgani
"IT ni tagi rohat" (ayol it hayvon dep tushungan va Juda g'alati Mano kelib chiqgan.
Bugun men da loyihada shunday qismi bor edi ya'ni " IT kasbi " degani bu so'zni yoshlar tushunadi Lekin yoshi katta yoki bu sohalarni bilmaydigan odam "it kasbi " dep o'qiydimi mendagi yechim "IT (AYTI)"
dep yozish bo'ldi Lekin atrofdagilarga unchalik tog'ri kelmadi siz qaysi fikrdasiz?.
πŸ‘1
Mana shu pluginni tavsiya qilaman o'zingiz uchun muhim bo'lgan commentlarni ajratib olish uchun juda yaxshi
πŸ‘1
AI ga savol tuzdirmanglar 😁
πŸ‘1😁1
Wibe coding projectlar qanday bo'lishi haqida
😁1
This media is not supported in your browser
VIEW IN TELEGRAM
#library
🧩 New Flutter Package:
πŸŽ‰ flutter_cube_transition – 3D Cube Transition πŸ‘‡

A customizable 3D cube transition for Flutter apps.
Perfect for creative interactive onboarding screens.

✨ Features:
β€’ 3D cube rotation (chap/oβ€˜ngga aylantirsa β€” sahifa kubdek buriladi)
β€’ Customizable cube faces (text, icon, gradient, widget) 🎨
β€’ Built-in controls: LEFT, RIGHT, RESET πŸ”„
β€’ Drag + snap animation (smooth UX)
β€’ Haptic feedback (πŸ“³ vibration qoβ€˜shilgan)
β€’ Performance optimized ⚑

πŸ“² Check it out:
https://pub.dev/packages/flutter_cube_transition

@asseries_off
πŸ‘1
Backed,fronted ,mobile dasturchilarni ko'rganman Lekin bunaqasini
😁1
Forwarded from MobilDasturchi.Uz (Azizbek Asqaraliyev)
⚠️Junior dasturchilar uchun xavfli davr boshlanmoqda β€” sun’iy intellekt ularning ishini qisqartirmoqda!

Stenford universiteti soβ€˜nggi uch yil davomida IT-bozorni tahlil qildi. Natijalarga koβ€˜ra, 22–25 yoshli dasturchilarning bandligi 13 foizga qisqargan.

Bunga sabab β€” kompaniyalar oddiy kod yozish ishlarini tobora koβ€˜proq SI’ga topshirmoqda.

"Omon qolayotganlari" esa faqat kod-review qilishni puxta egallagan va chat-botlar orqali xatolarni topa oladigan yosh mutaxassislardir.

πŸ“ˆNima deb oΚ»ylaysiz bu koΚ»rsatkich kelajakda yana qanday sohalarga tasir koΚ»rsatadi πŸ”—
Please open Telegram to view this post
VIEW IN TELEGRAM
πŸ‘1
Physical addres😁😁
πŸ”₯1
C++ ishlagan ekan 😁
😁1
This media is not supported in your browser
VIEW IN TELEGRAM
Gap sochida ekanligini keyin tushunibman πŸ‘¨β€πŸ¦²πŸ‘¨
πŸ”₯1
Code yozishda yaxshiroq AI lar jadvali
πŸ‘1
Forwarded from Azim Pulat
Kodni o'zim yozsam: <10 daqiqa>
...
Kodni AI yozsa: <1 soniya>
Keyin u kodni ishlatvolishga: <1 soat>
😁1
buttonni atrofida color aylanib yuradi ga custom widget
import 'dart:math' as math;

import 'package:sell_market/path_file/all_path_file.dart';

sealed class AppColors{
static const white=Colors.white;
static const transparent=Colors.transparent;
static const black=Colors.black;
static final red=Color(0xFFFF1F38);
static final red3=Color(0xFFF01FFF);
static final red2=Color(0xFFE61090);

}

class AnimatedBorderButton extends StatefulWidget {
final String text;
final VoidCallback onPressed;

const AnimatedBorderButton({
super.key,
required this.text,
required this.onPressed,
});

@override
State<AnimatedBorderButton> createState() => _AnimatedBorderButtonState();
}

class _AnimatedBorderButtonState extends State<AnimatedBorderButton>
with SingleTickerProviderStateMixin {
late AnimationController _controller;

@override
void initState() {
super.initState();
_controller = AnimationController(
vsync: this,
duration: const Duration(seconds: 3),
)..repeat();
}

@override
void dispose() {
_controller.dispose();
super.dispose();
}

@override
Widget build(BuildContext context) {
return AnimatedBuilder(
animation: _controller,
builder: (context, child) {
return CustomPaint(
painter: _GradientBorderPainter(angle: _controller.value * 2 * math.pi),
child: child,
);
},
child: GestureDetector(
onTap: widget.onPressed,
child: Container(
padding:EdgeInsetsGeometry.all(14),
child: Center(
child: Text(
widget.text,
style: const TextStyle(
color: Colors.white,
fontSize: 18,
),
),
),
),
),
);
}
}

class _GradientBorderPainter extends CustomPainter {
final double angle;

_GradientBorderPainter({required this.angle});

@override
void paint(Canvas canvas, Size size) {
final rect = Offset.zero & size;

final gradient = SweepGradient(
startAngle: angle,
endAngle: angle + 2 * math.pi,
/// color ni berish kere
colors: [AppColors.red,AppColors.white,AppColors.red3],
// colors: const [Colors.blue, Colors.green, Colors.red, Colors.orange, Colors.blue],
);

final paint = Paint()
..shader = gradient.createShader(rect)
..style = PaintingStyle.stroke
..strokeWidth = 3;

final rrect = RRect.fromRectAndRadius(rect.deflate(1), const Radius.circular(12));
canvas.drawRRect(rrect, paint);
}

@override
bool shouldRepaint(covariant _GradientBorderPainter oldDelegate) {
return oldDelegate.angle != angle;
}
}
/// example
AnimatedBorderButton(
text: "Continue",
onPressed: () {
print("Button pressed!");
},
),
πŸ‘1πŸ”₯1
Learning Flutter πŸ“±πŸ’»
buttonni atrofida color aylanib yuradi ga custom widget import 'dart:math' as math; import 'package:sell_market/path_file/all_path_file.dart'; sealed class AppColors{ static const white=Colors.white; static const transparent=Colors.transparent; static…
version 2 
import 'dart:math' as math;
import 'package:flutter/material.dart';

class AnimatedBorderButton extends StatefulWidget {
final String text;
final VoidCallback onPressed;

const AnimatedBorderButton({
super.key,
required this.text,
required this.onPressed,
});

@override
State<AnimatedBorderButton> createState() => _AnimatedBorderButtonState();
}

class _AnimatedBorderButtonState extends State<AnimatedBorderButton>
with SingleTickerProviderStateMixin {
late AnimationController _controller;
late Animation<double> _rotation;

@override
void initState() {
super.initState();
_controller = AnimationController(
vsync: this,

duration: const Duration(seconds: 5),
)..repeat();

_rotation = CurvedAnimation(
parent: _controller,
curve: Curves.easeInToLinear,
);
}

@override
void dispose() {
_controller.dispose();
super.dispose();
}

@override
Widget build(BuildContext context) {
return AnimatedBuilder(
animation: _rotation,
builder: (context, child) {
return Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(12),
gradient: SweepGradient(
startAngle: 0,
endAngle: math.pi * 2,
transform: GradientRotation(_rotation.value * 2 * math.pi),
colors: const [
Colors.blue,
Colors.purple,
Colors.red,
Colors.orange,
Colors.white,
Colors.blue,
],
),
),
child: Padding(
padding: const EdgeInsets.all(7),
child: Container(
decoration: BoxDecoration(
color: Colors.black,
borderRadius: BorderRadius.circular(10),
),
child: TextButton(
onPressed: widget.onPressed,
child: Text(
widget.text,
style: const TextStyle(color: Colors.white, fontSize: 18),
),
),
),
),
);
},
);
}
}
πŸ‘1