Mualliflar

  • Yarashov Shoxrux Tolmas o’g’li
  • G'oziyev Olmosjon Sunnatullo o'g'li

DOI:

https://doi.org/10.71337/inlibrary.uz.ustozlar.112719

Kalit so‘zlar:

Kalit so‘zlar: Flutter Python interaktiv o‘quv ilovasi mobil ilova ishlab chiqish backend dasturlash frontend dasturlash API integratsiyasi ma’lumotlar bazasi CI CD jarayoni testlash monitoring ta’lim texnologiyalari Dart dasturlash tili Flask framework platformalararo ilovalar

Annotasiya

Annotatsiya. Ushbu maqola Flutter va Python texnologiyalari yordamida interaktiv o‘quv ilovalarini ishlab chiqish va ularni ishlab chiqarish jarayonlariga moslashtirishni ko‘rib chiqadi. Maqolada Flutter asosidagi foydalanuvchi interfeysi va Python yordamida backend ishlab chiqish jarayonlari, shu jumladan API integratsiyasi, ma’lumotlar bazasi bilan ishlash va CI/CD jarayonlari haqida amaliy misollar keltiriladi. Shuningdek, ilova sifatini oshirish uchun testlash va monitoring usullari muhokama qilinadi. Maqola ta’lim sohasida zamonaviy ilovalar yaratishni maqsad qilgan dasturchilar va ishlab chiquvchilar uchun foydali manba bo‘lib xizmat qiladi.


background image

Ustozlar uchun

pedagoglar.org

74-son 1–to’plam Iyun-2025

Sahifa: 183

FLUTTER VA PYTHON ASOSIDA INTERAKTIV O‘QUV ILOVALARINI

YARATISH VA ISHLAB CHIQARISH JARAYONLARIGA MOSLASHTIRISH

Yarashov Shoxrux Tolmas o’g’li

Navoiy davlat konchilik va texnologiyalari universeteti

“Avtomatlashtirish va boshqarish” kafedrasi assesstenti

yarashovshokhrukh@gmail.com +998 95 888 22 66

G'oziyev Olmosjon Sunnatullo o'g'li

Navoiy davlat konchilik va texnologiyalari universeteti

“Avtomatlashtirish va boshqarish” kafedrasi assesstenti

mailto:olmosgoziev@gmail.com +998 91 308 38 88

Annotatsiya.

Ushbu maqola Flutter va Python texnologiyalari yordamida interaktiv

o‘quv ilovalarini ishlab chiqish va ularni ishlab chiqarish jarayonlariga moslashtirishni
ko‘rib chiqadi. Maqolada Flutter asosidagi foydalanuvchi interfeysi va Python yordamida
backend ishlab chiqish jarayonlari, shu jumladan API integratsiyasi, ma’lumotlar bazasi
bilan ishlash va CI/CD jarayonlari haqida amaliy misollar keltiriladi. Shuningdek, ilova
sifatini oshirish uchun testlash va monitoring usullari muhokama qilinadi. Maqola ta’lim
sohasida zamonaviy ilovalar yaratishni maqsad qilgan dasturchilar va ishlab chiquvchilar
uchun foydali manba bo‘lib xizmat qiladi.

Kalit so‘zlar:

Flutter, Python, interaktiv o‘quv ilovasi, mobil ilova ishlab chiqish,

backend dasturlash, frontend dasturlash, API integratsiyasi, ma’lumotlar bazasi, CI/CD
jarayoni, testlash, monitoring, ta’lim texnologiyalari, Dart dasturlash tili, Flask framework,
platformalararo ilovalar

Annotation.

This article explores the development and deployment of interactive

educational applications using Flutter and Python. It details the process of building user-
friendly interfaces with Flutter and robust backend systems with Python, including API
integration, database management, and CI/CD pipeline implementation. Practical
examples, such as sample code for a quiz application and backend API, are provided.
Additionally, the article discusses testing and monitoring techniques to ensure application
quality. It serves as a valuable resource for developers and educators aiming to create
modern educational solutions.

Key words:

Flutter, Python, interactive educational application, mobile app

development, backend programming, frontend programming, API integration, database,
CI/CD pipeline, testing, monitoring, educational technologies, Dart programming
language, Flask framework, cross-platform applications.

Interaktiv o‘quv ilovalari zamonaviy ta’lim texnologiyalarining muhim tarkibiy qismi

sifatida ta’lim jarayonini soddalashtirish va o‘quvchilarning faolligini oshirishda katta
ahamiyatga ega. Ushbu ilovalarning nazariy asoslari konstruktivistik ta’lim nazariyasiga


background image

Ustozlar uchun

pedagoglar.org

74-son 1–to’plam Iyun-2025

Sahifa: 184

asoslanadi, bu nazariyaga ko‘ra, o‘quvchilar faol ishtirok etish va amaliy tajribalar orqali
bilimlarni o‘zlashtiradilar (Piaget, 1970). Konstruktivizm interaktivlik, foydalanuvchi
tajribasi (UX) va moslashuvchan o‘quv muhitini ta’kidlaydi, bu esa Flutter va Python kabi
texnologiyalarni ta’lim ilovalarida qo‘llash uchun ideal qiladi.

Flutter, Google tomonidan ishlab chiqilgan ochiq kodli framework sifatida,

platformalararo ilovalar yaratishda samaradorlik va foydalanuvchi interfeysining sifatini
ta’minlaydi. Uning asosiy nazariy jihati “write once, run anywhere” tamoyiliga asoslanadi,
bu esa bitta kod bazasi yordamida turli platformalarda ishlaydigan ilovalar ishlab chiqish
imkonini beradi (Flutter Documentation, 2023). Python esa, o‘zining oddiy sintaksisi va
kengaytirilgan kutubxonalari (masalan, Django, Flask, Pandas) tufayli orqa-end ishlab
chiqishda va ma’lumotlarni tahlil qilishda muhim o‘rin tutadi. Pythonning ta’lim
sohasidagi ilovalari, ayniqsa, sun’iy intellekt va ma’lumotlarni tahlil qilishda
qo‘llaniladigan adaptiv o‘quv tizimlari bilan bog‘liq (Russell & Norvig, 2020).

Ishlab chiqarish jarayonlariga moslashtirish DevOps va CI/CD (Continuous

Integration/Continuous Deployment) metodologiyalariga asoslanadi. Bu metodologiyalar
ilova sifatini oshirish, xatolarni kamaytirish va ishlab chiqarish jarayonini
avtomatlashtirishga xizmat qiladi (Bass et al., 2015). Ta’lim ilovalari uchun bu jarayonlar
foydalanuvchi tajribasini doimiy ravishda yaxshilash va yangilanishlarni tezkor
joylashtirish imkonini beradi.

Ilovaning arxitekturasi va texnologik yechimi

1.

Ilovaning umumiy arxitekturasi

Interaktiv o‘quv ilovasi foydalanuvchilarga qulay va moslashuvchan ta’lim tajribasini

taqdim etish uchun uch qatlamli (three-tier) arxitekturaga asoslanadi: frontend, backend va
ma’lumotlar bazasi. Ushbu arxitektura ilovaning mustaqil komponentlarini ajratish va
ularning o‘zaro integratsiyasini ta’minlash uchun mo‘ljallangan. Quyidagi diagramma
ushbu arxitekturani tasvirlaydi:

Ta’lim muassasasining vazifasi

1.1. Frontend (Flutter)

Frontend qismi foydalanuvchi bilan o‘zaro aloqani ta’minlaydi va Flutter

framework’i yordamida ishlab chiqiladi. Flutter’ning Dart dasturlash tiliga asoslangan


background image

Ustozlar uchun

pedagoglar.org

74-son 1–to’plam Iyun-2025

Sahifa: 185

vidjetlar tizimi interaktiv va jozibador interfeyslar yaratishga imkon beradi. Asosiy
komponentlar:

Test modullari:

Savollar va javoblar bilan ishlash uchun dinamik vidjetlar.

Animatsiyalar:

O‘quv jarayonini yanada qiziqarli qilish uchun vizual effektlar.

API integratsiyasi:

Backend bilan ma’lumot almashish uchun HTTP so‘rovlar.

1.2. Backend (Python)

Backend qismi ilovaning biznes logikasini boshqaradi va Pythonning Flask yoki

Django framework’lari asosida ishlab chiqiladi. Backendning asosiy vazifalari:

API xizmatlari:

RESTful API orqali savollar, test natijalari va foydalanuvchi

ma’lumotlarini uzatish.

Ma’lumotlarni qayta ishlash:

Test natijalarini tahlil qilish va statistika yuritish

(masalan, Pandas yordamida).

Autentifikatsiya va avtorizatsiya:

Foydalanuvchilarning xavfsiz kirishi uchun

JWT yoki OAuth mexanizmlari.

1.3. Ma’lumotlar bazasi

Ma’lumotlar bazasi foydalanuvchi ma’lumotlari, test savollari va natijalarni saqlash

uchun ishlatiladi. Kichik loyihalar uchun SQLite, kengaytirilgan loyihalar uchun esa
PostgreSQL tavsiya etiladi. Ma’lumotlar bazasi bilan o‘zaro aloqa ORM (masalan,
SQLAlchemy yoki Django ORM) orqali amalga oshiriladi.

2. Texnologik yechimlar
2.1. Frontend texnologiyalari

Flutter va Dart:

Platformalararo ilova yaratish uchun ishlatiladi. Flutter’ning “hot

reload” funksiyasi dasturlash jarayonini tezlashtiradi.

Paketlar:

o

http: Backend bilan REST API orqali aloqa qilish uchun.

o

provider yoki bloc: Ilova holatini boshqarish uchun.

o

flutter_spinkit: Yuklanish animatsiyalari uchun.

UI dizayni:

Material Design va Cupertino vidjetlari foydalanuvchi tajribasini

yaxshilaydi.

Quyida Flutter’dagi test sahifasi uchun namunaviy kod keltiriladi:

import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'dart:convert';

class QuizPage extends StatefulWidget {
@override
_QuizPageState createState() => _QuizPageState();
}
class _QuizPageState extends State<QuizPage> {


background image

Ustozlar uchun

pedagoglar.org

74-son 1–to’plam Iyun-2025

Sahifa: 186

List<dynamic> _questions = [];
int _currentIndex = 0;
int _score = 0;
@override
void initState() {
super.initState();
_fetchQuestions();}
Future<void> _fetchQuestions() async {
final response = await http.get(Uri.parse('http://your-backend/api/questions'));
if (response.statusCode == 200) {
setState(() {
_questions = jsonDecode(response.div);
});
}
}
void _answerQuestion(int score) {
setState(() {
_score += score;
_currentIndex++;
});}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Interaktiv Test')),
div: _questions.isEmpty
? Center(child: CircularProgressIndicator())
: _currentIndex < _questions.length
? Column(
children: [
Text(_questions[_currentIndex]['question']),
...(_questions[_currentIndex]['answers'] as List)
.map((answer) => ElevatedButton(
onPressed: () => _answerQuestion(answer['score']),
child: Text(answer['text']),
))
.toList(),
],
)
: Center(child: Text('Test tugadi! Ball: $_score')),


background image

Ustozlar uchun

pedagoglar.org

74-son 1–to’plam Iyun-2025

Sahifa: 187

);}}

2.2. Backend texnologiyalari

Flask framework:

Yengil va moslashuvchan REST API yaratish uchun ishlatiladi.

Kutubxonalar:

o

Flask-RESTful: API resurslarini boshqarish uchun.

o

SQLAlchemy: Ma’lumotlar bazasi bilan ishlash uchun.

o

pandas: Test natijalarini tahlil qilish uchun.

API misoli:

from flask import Flask, jsonify
from flask_restful import Api, Resource
app = Flask(__name__)
api = Api(app)
questions = [
{"id": 1, "question": "1+1 nechaga teng?", "answers": [{"text": "2", "score": 1},

{"text": "3", "score": 0}]},

{"id": 2, "question": "Python qaysi turdagi til?", "answers": [{"text":

"Interpretatsiya qilinadigan", "score": 1}, {"text": "Kompilyatsiya qilinadigan", "score":
0}]}]

class QuestionsResource(Resource):
def get(self):
return jsonify(questions)
api.add_resource(QuestionsResource, '/api/questions')
if __name__ == '__main__':
app.run(debug=True)

2.3. Ma’lumotlar bazasi yechimi

PostgreSQL:

Kengaytirilgan loyihalar uchun ishlatiladi, chunki u ko‘p

foydalanuvchili tizimlarni qo‘llab-quvvatlaydi.

SQLite:

Kichik loyihalar uchun yengil va oson sozlanadi.

Namuna sxema:

CREATE TABLE users (
id SERIAL PRIMARY KEY,
username VARCHAR(50) UNIQUE NOT NULL,
password_hash VARCHAR(255) NOT NULL);
CREATE TABLE questions (
id SERIAL PRIMARY KEY,
text TEXT NOT NULL,
answers JSONB NOT NULL);
CREATE TABLE results (
id SERIAL PRIMARY KEY,


background image

Ustozlar uchun

pedagoglar.org

74-son 1–to’plam Iyun-2025

Sahifa: 188

user_id INTEGER REFERENCES users(id),
score INTEGER NOT NULL,
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP);

2.4. Integratsiya va aloqa

Frontend va backend o‘rtasidagi aloqa REST API orqali amalga oshiriladi. HTTP

so‘rovlar JSON formatida ma’lumot almashadi. Xavfsizlik uchun HTTPS protokoli va
JWT autentifikatsiyasi qo‘llaniladi.

3. Ishlab chiqarish jarayonlariga moslashtirish
3.1. CI/CD jarayoni

Ilovani ishlab chiqarish uchun GitHub Actions yoki Jenkins kabi vositalar yordamida

CI/CD quvuri sozlanadi. Quyida GitHub Actions uchun namunaviy workflow:

name: Flutter CI/CD
on:
push:
branches:
- main
jobs:
build:
runs-on:
ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-java@v3
with: java-version: '17'
- uses: subosito/flutter-action@v2
with: flutter-version: '3.7.0'
- run: flutter pub get
- run: flutter test
- run: flutter build apk - name: Deploy to Firebase App Distribution
uses: wzieba/Firebase-Distribution-Github-Action@v1
with:

appId:

${{

secrets.FIREBASE_APP_ID

}}

token:

${{

secrets.FIREBASE_TOKEN }} file: build/app/outputs/flutter-apk/app-release.apk

3. Texnologik afzalliklar va cheklovlar
Afzalliklar:

Flutter:

Platformalararo moslik, tezkor ishlab chiqish, boy UI komponentlari.

Python:

Oddiy sintaksis, keng kutubxonalar, ma’lumotlarni tahlil qilishda yuqori

samaradorlik.

Integratsiya:

REST API orqali soddalashtirilgan aloqa.

Cheklovlar:


background image

Ustozlar uchun

pedagoglar.org

74-son 1–to’plam Iyun-2025

Sahifa: 189

Flutter:

Ilova hajmi boshqa mahalliy yechimlarga nisbatan katta bo‘lishi mumkin.

Python:

Yuqori yuklamalarda Flask’ning ishlash tezligi cheklanishi mumkin (buni

Gunicorn yoki uWSGI bilan optimallashtirish mumkin).

Internet bog‘liqligi:

API so‘rovlariga tayanadigan ilova oflayn rejimda cheklangan

funksionallikka ega.

Xulosa

Ushbu arxitektura va texnologik yechim Flutter va Python’ning kuchli tomonlarini

birlashtirib, interaktiv o‘quv ilovasi uchun samarali va kengaytiriladigan platforma
yaratadi. Uch qatlamli arxitektura komponentlarning mustaqilligini ta’minlaydi, CI/CD va
monitoring esa ishlab chiqarish jarayonini barqarorlashtiradi. Ushbu yondashuv ta’lim
sohasida foydalanuvchilarga qulay va zamonaviy yechimlar taqdim etish uchun ideal
hisoblanadi.

Foydalanilgan adabiyotlar:

1.

Smith, J., & Johnson, L. (2021). “Cross-Platform Development for Educational Apps
Using Flutter.” Journal of Educational Technology, 45(3), 123-134

2.

McKinney, W. (2018). Python for Data Analysis. O’Reilly Media.

3.

Grinberg, M. (2018). Flask Web Development. O’Reilly Media.

4.

Bass, L., Weber, I., & Zhu, L. (2015). DevOps: A Software Architect’s Perspective.
Addison-Wesley.

5.

Russell, S., & Norvig, P. (2020). Artificial Intelligence: A Modern Approach. Pearson.

6.

Flutter Documentation (2023). Official Flutter Documentation. Retrieved from.

7.

Windmill, E. (2018). Flutter in Action. Manning Publications.

8.

Garrison, D. R., & Anderson, T. (2003). E-Learning in the 21st Century: A Framework
for Research and Practice. Routledge.

9.

Piaget, J. (1970). Science of Education and the Psychology of the Child. New York:
Orion Press.

Bibliografik manbalar

Smith, J., & Johnson, L. (2021). “Cross-Platform Development for Educational Apps Using Flutter.” Journal of Educational Technology, 45(3), 123-134

McKinney, W. (2018). Python for Data Analysis. O’Reilly Media.

Grinberg, M. (2018). Flask Web Development. O’Reilly Media.

Bass, L., Weber, I., & Zhu, L. (2015). DevOps: A Software Architect’s Perspective. Addison-Wesley.

Russell, S., & Norvig, P. (2020). Artificial Intelligence: A Modern Approach. Pearson.

Flutter Documentation (2023). Official Flutter Documentation. Retrieved from.

Windmill, E. (2018). Flutter in Action. Manning Publications.

Garrison, D. R., & Anderson, T. (2003). E-Learning in the 21st Century: A Framework for Research and Practice. Routledge.

Piaget, J. (1970). Science of Education and the Psychology of the Child. New York: Orion Press.