Skip to content

Instantly share code, notes, and snippets.

View riscait's full-sized avatar

Ryunosuke MURAMATSU riscait

View GitHub Profile
import 'package:flutter/material.dart';
class AwaitableIconButton extends StatefulWidget {
const AwaitableIconButton({
Key? key,
required this.onPressed,
required this.icon,
this.indicatorWidget,
this.buttonStyle,
}) : super(key: key);
@riscait
riscait / main.dart
Created December 15, 2021 22:59
Format DateTime
import 'package:intl/intl.dart';
void main() {
final now = DateTime.now();
print('isUTC: ${now.isUtc}'); // <- false
print('now: $now'); // <- now: 2021-12-16 07:58:03.661
final hms = DateFormat.Hms().format(now);
print('hms: $hms'); // <- hms: 07:58:03
}
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
class AsyncValueBuilder<R> extends StatelessWidget {
const AsyncValueBuilder({
Key? key,
required this.asyncValue,
required this.builder,
}) : super(key: key);
import 'package:flutter/material.dart';
enum AppForm {
first,
second,
third,
}
extension AppFormExt on AppForm {
@riscait
riscait / main.dart
Last active September 19, 2021 03:30
Dart Generics
class Cat {
const Cat(this.name);
final String name;
}
void f<T>(T arg) {
if (arg is String) {
print('This is String!');
}
@riscait
riscait / main.dart
Last active July 26, 2021 09:42
Dart Singleton Class
/// Factory Constructorを使ったシングルトンクラスの定義方法
class FactorySinglton {
/// 初めてインスタンス化するときにfactoryコンストラクタから使用する、Privateなコンストラクタ
FactorySinglton._() {
print('FactorySingleton Constructed');
}
/// シングルトンを実現するインスタンスを提供
factory FactorySinglton.instance() => _instance;
@riscait
riscait / main.dart
Last active July 21, 2021 02:25
test list.contains
enum Sport {
baseball,
football,
tennis,
swimming,
}
void main() {
final list = [Sport.baseball,Sport.football, Sport.tennis];
final hasTennis = list.contains(Sport.tennis);
@riscait
riscait / main.dart
Created July 16, 2021 00:03
Chunk list by sublist
void main() {
final items = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k'];
final chunkedItems = [];
final chunkSize = 3;
for (var i = 0; i < items.length; i += chunkSize) {
final isLast = i + chunkSize >= items.length;
final end = isLast ? items.length : i + chunkSize;
chunkedItems.add(items.sublist(i, end));
}
@riscait
riscait / main.dart
Last active July 15, 2021 23:53
Chunk list by do-while
void main() {
final items = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k'];
final chunkedItems = [];
final chunkSize = 3;
var count = 0;
do {
chunkedItems.add(items.skip(count).take(chunkSize).toList());
count += chunkSize;
} while (count < items.length);
@riscait
riscait / main.dart
Last active March 30, 2021 00:37
Awaitable Button
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(