関連記事
Flutter dotenv のパッケージ導入と使い方...
Flutter HTTP通信 Dioパッケージの基本...
Flutter モデルの基本とhttp api使ってデータ受信してuserListを一覧表示するまで...
Flutter API通信に使うHTTPパッケージについての資料...
Flutterのデモにあるmain関数を解析します。...
Flutter学習でoverrideについて...
Flutter使ってクロスプラットフォームのアプリ開発...
Flutter で使う Dart 言語について勉強中です。
Dart とは
ダートまたはダーツと呼ばれています。
Web アプリやモバイルアプリのクライアント開発向けに設計されたプログラミング言語ですが、Web で生成されたプログラムは SEO の問題で主にモバイルアプリのハイブリッド開発で使われています。
Dart はオブジェクト指向で型推論をサポートしていて Javascript を意識して作られたそうです。
int
整数型double
浮動小数点型String
文字列型bool
論理型// 整数
int age = 30;
// 浮動小数点数
double height = 1.75;
// 文字列
String name = 'John';
// 論理値
bool isStudent = true;
// 型推論(varを使用)
var city = 'Tokyo'; // Stringと推論される
String 型 のみが最初の文字が大文字で始まる理由
Dart の言語設計上文字列型 String のS
は大文字になります。特定の理由は公にはされていませんが、多くのプログラミング言語で文字列型を表すクラスや型は大文字で始まる命名規則を持っていることがあります。他の基本データ型と区別しやすくするためかもしれません。
Dart には List
Set
Map
といったコレクションがあります。
// List
List<String> fruits = ['Apple', 'Banana', 'Cherry'];
fruits.add('Date');
print(fruits); // [Apple, Banana, Cherry, Date]
// 要素の存在を確認
bool containsBanana = fruits.contains('Banana');
print('Contains Banana: $containsBanana'); // Contains Banana: true
Listの結合
List<int> list1 = [1, 2, 3];
List<int> list2 = [4, 5, 6];
// リストの結合
List<int> combined = list1 + list2;
// リストの昇順ソート
combined.sort();
// Map
Map<String, int> scores = {
'Alice': 90,
'Bob': 85,
'Charlie': 95
};
scores['Dave'] = 80;
print(scores); // {Alice: 90, Bob: 85, Charlie: 95, Dave: 80}
// サイズ取得
int size = scores.length;
print('Size: $size'); // Size: 3
// 要素の削除
scores.remove('Chaarlie')
// 全てのキーを取得
Iterable<String> keys = scores.keys;
print('Keys: $keys'); // Keys: (Alice, Bob, Charlie)
// 全ての値を取得
Iterable<int> values = scores.values;
print('Values: $values'); // Values: (90, 85, 95)
// Set
void main() {
// リテラルを使ってSetを作成
Set<int> numbers = {1, 2, 3, 4, 5};
print(numbers); // {1, 2, 3, 4, 5}
// 要素の追加
numbers.add(6);
numbers.add(3); // 既に存在するので無視される
// 要素の削除
numbers.remove(2);
print(numbers); // {1, 3, 4, 5, 6}
}
Dart の非同期プログラミングは、Future と async/await を使用します。
Future の基本
Future<void> fetchUserOrder() {
// 2秒後に結果を返す
return Future.delayed(Duration(seconds: 2), () => print('User order fetched!'));
}
void main() {
print('Fetching user order...');
fetchUserOrder();
print('Fetch request sent.');
}
async と await 使って Future が完了するのを待ちます。
void main() async {
print('Fetching user order...');
try {
var order = await fetchUserOrder();
print('User order: $order');
} catch (e) {
print('Error: $e');
}
print('Fetch request sent.');
}
Future<String> fetchUserOrder() {
return Future.delayed(Duration(seconds: 2), () {
throw 'Out of milk!';
});
}
void main() async {
print('Fetching user orders...');
var orders = await Future.wait([fetchUserOrder1(), fetchUserOrder2()]);
print('User orders: $orders'); // User orders: [Coffee, Tea]
}
Future<String> fetchUserOrder1() {
return Future.delayed(Duration(seconds: 2), () => 'Coffee');
}
Future<String> fetchUserOrder2() {
return Future.delayed(Duration(seconds: 3), () => 'Tea');
}
Flutter dotenv のパッケージ導入と使い方...
Flutter HTTP通信 Dioパッケージの基本...
Flutter モデルの基本とhttp api使ってデータ受信してuserListを一覧表示するまで...
Flutter API通信に使うHTTPパッケージについての資料...
Flutterのデモにあるmain関数を解析します。...
Flutter学習でoverrideについて...
Flutter使ってクロスプラットフォームのアプリ開発...