Flutter ဖြင့် Android App Development
Flutter သည် Google မှထုတ်လုပ်ထားသော open-source UI software development kit တစ်ခုဖြစ်ပြီး single codebase ဖြင့် Android, iOS, Web နှင့် Desktop application များကိုတစ်ပြိုင်နက်တည်း ဖန်တီးနိုင်ပါသည်။
Flutter ၏ အကျိုးကျေးဇူးများ
- Hot Reload – ကုဒ်ပြင်ပြီးတာနဲ့ ချက်ချင်းမြင်ရ
- အလှဆုံး UI များလွယ်ကူစွာဖန်တီးနိုင်
- ဒေါင်းလုပ်ဆွဲရန် မြန်ဆန် (60fps)
- Dart ဘာသာစကားသုံး (လေ့လာရလွယ်)
- Widget-based architecture
Flutter Development အတွက် လိုအပ်ချက်များ
1. System Requirements
- OS: Windows 10/11, macOS, Linux
- Disk Space: 2.8GB (IDE + Tools)
- Tools: Git for Windows (Windows အတွက်)
2. Software Installation
- Flutter SDK flutter.dev မှဒေါင်းလုပ်
- Android Studio (Emulator အတွက်)
- VS Code (သို့မဟုတ် Android Studio)
- Android Emulator (သို့မဟုတ် ဖုန်းတစ်လုံးနှင့် USB Debugging)
Flutter ဖြင့် Hello World App
1. Project စတင်နည်း
flutter create my_app
cd my_app
flutter run
2. main.dart ဖိုင်တွင် အခြေခံ code
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 Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: const MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({super.key, required this.title});
final String title;
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
void _incrementCounter() {
setState(() {
_counter++;
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(widget.title),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
const Text(
'You have pushed the button this many times:',
),
Text(
'$_counter',
style: Theme.of(context).textTheme.headlineMedium,
),
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: _incrementCounter,
tooltip: 'Increment',
child: const Icon(Icons.add),
),
);
}
}
Flutter အခြေခံ Widget များ
1. UI Widgets
// Text Widget
Text('Hello Flutter', style: TextStyle(fontSize: 24))
// Button Widget
ElevatedButton(
onPressed: () {},
child: Text('Click Me'),
)
// Image Widget
Image.network('https://example.com/image.jpg')
// ListView Widget
ListView.builder(
itemCount: 10,
itemBuilder: (context, index) {
return ListTile(title: Text('Item $index'));
}
)
2. Layout Widgets
// Column - ဒေါင်လိုက်စီမယ်
Column(
children: [
Text('Item 1'),
Text('Item 2'),
],
)
// Row - အလျားလိုက်စီမယ်
Row(
children: [
Icon(Icons.star),
Text('5 Stars'),
],
)
// Stack - Widget တွေအပေါ်ထပ်မယ်
Stack(
children: [
BackgroundWidget(),
Positioned(
top: 10,
child: FloatingWidget(),
),
],
)
Flutter နှင့် Native Android နှိုင်းယှဉ်ချက်
| Feature | Flutter | Native Android (Java/Kotlin) |
|---|---|---|
| Performance | ကောင်း (ဒါပေမယ့် native ထက်နည်းနည်းနှေး) | အမြန်ဆုံး |
| UI Flexibility | အလွန်ကောင်း (custom UI လုပ်ရလွယ်) | ကောင်းတယ် (ဒါပေမယ့် complex UI အတွက်ပိုအလုပ်များ) |
| Development Time | မြန်ဆန် (Hot Reload ရှိ) | နှေးတယ် (build ချဖို့လိုတယ်) |
| Cross-Platform | Android, iOS, Web, Desktop တစ်ခါတည်း | Android တစ်ခုတည်း |
| Job Market | တိုးတက်နေဆဲ | အများကြီးရှိပြီးသား |
Flutter လေ့လာရန် အဆင့်ဆင့်
- Dart Programming Language အခြေခံများကိုအရင်လေ့လာပါ
- Widget Concept ကိုနားလည်အောင်လုပ်ပါ
- State Management (setState, Provider, Riverpod, Bloc)
- Navigation (Routes နဲ့ page တွေချိတ်ဆက်နည်း)
- API Integration (HTTP requests, JSON parsing)
- Local Storage (SharedPreferences, SQLite, Hive)
- Firebase Integration (Authentication, Cloud Firestore)
Flutter ဖြင့် App Publish လုပ်နည်း
- App Bundle ပြုလုပ်ရန်:
flutter build appbundle
- Google Play Console တွင် developer account ဖွင့်ပါ ($25)
- App Signing အတွက် keystore file ပြုလုပ်ပါ။
keytool -genkey -v -keystore ~/upload-keystore.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload
- build.gradle တွင် signing config ထည့်ပါ
- Play Console တွင် app details များဖြည့်ပြီး upload လုပ်ပါ
Flutter သည် နောင်တွင် cross-platform development အတွက် အလားအလာအကောင်းဆုံး tool တစ်ခုဖြစ်လာမည်ဖြစ်ပြီး လေ့လာထားပါက mobile, web နှင့် desktop app များကို တစ်ချိန်တည်းတွင် develop လုပ်နိုင်မည်ဖြစ်ပါတယ်။
