Dart・Flutterを学ぶ日々 その8
uuid
UUID生成にはこのpackage使うのが良さそう
awesome-flutter
必要な時に見る癖をつけておこう
ローカルDB package
sqfliteのiOS実装は、Core DataじゃなくてFMDBなのか。Android実装は、コード一瞬見た感じだとAndroid SDKの
— shinobu.dart (@operandoOS) 2020年10月17日
SQLiteDatabaseとか使ってそうな雰囲気https://t.co/1lGIeVxK9t
hiveはSQLiteじゃなくて、NoSQL系
Live Preview
pluginの設定から概要の項目が消えてるっぽい
HotUIで似たものを開発中っぽい?でもLive Previewの機能ではなさそう...
Tips集
よい
Dart・Flutterを学ぶ日々 その6
UnmodifiableListView
List.unmodifiableとUnmodifiableListViewの違いが分かる例を書いた( ´・‿・`)
— mono (@_mono) 2020年3月15日
前者は(シャロー)コピーで、後者はあくまで変更操作をブロックするだけで中身は元のリスト。
元のリストが意図せず弄られないことが明白な場合は、後者で済ませた方がパフォーマンスは良い。https://t.co/d0SavoLBMQ pic.twitter.com/VrHOdPskOQ
Listのcast
Iterable#whereType
以下のようなコードを書いたら、IDEにwhereTypeメソッド使えるよ!って言われたので、なるほど!便利ーって思った
list.where((e) => e is String); list..whereType<String>();
Dartの文字列比較
==
でいいらしい
String#startsWith
Null-aware operators
なるほど、こういう書き方は結構前からできるのか
var a = null; var b = a ?? 1;
dart2native
Dart・Flutterを学ぶ日々 その4
DateTime
DateFormat
intlを使うらしい
DateFormat('yyyy_MM_dd_HH_mm_ss').format(DateTime.now())
JSON文字列からオブジェクト生成
こんな感じのJSON文字列からオブジェクト生成するコード
[ { "id": "C0EGPHZMK", "name": "random", "is_channel": true, "is_archived": false, "is_general": false, "is_private": false }, { "id": "C2FK98MHS", "name": "bot", "is_channel": true, "is_archived": false, "is_general": false, "is_private": false }, { "id": "CDUHDHVD5", "name": "sasa", "is_channel": true, "is_archived": false, "is_general": false, "is_private": false } ]
こんな感じかねー
await File('2020_10_01_08_22_54.json').readAsString().then((value) { (json.decode(value) as List) .map((e) => Channel.fromJson(e)) .forEach((element) async { await slack_leave_rejoin_channel.join(element); }); });