【 Flutter 】Flutter を 基礎 から 学習 ( Dart編 ) part25 ライブラリと可視性

基礎 から 学ぶ Flutter 」という書籍で  学習 したことを ブログでアウトプットしていこうと思います。今回は Dart編 ( part25 )です。

前回

【 Flutter 】Flutter を 基礎 から 学習 ( Dart編 ) part24 typedef

今回は ライブラリと可視性の学習です。

ライブラリと可視性

Dartではライブラリという仕組みがあり、importキーワードとlibraryディレクティブを使うようです。
このライブラリは可視性の単位でもあります。
アンダースコアで始まる識別子はライブラリ内でのみ表示(アクセス?)できます。

Dartのアプリはlibraryディレクティブを使用しなくても最初からライブラリとのこと。
libraryディレクティブはいったい何のために存在しているのでしょうか🤔

使い方

importキーワードを覚えておけばよいようです。
importキーワードに渡す値は「URI(アドレス)」です。

ライブラリには「組み込み」と「組み込みではないもの」に分かれます。

「組み込み」のライブラリを使う場合はdart:というスキームを使います。
「組み込みではないもの」のライブラリはpackage:というスキームを使えます。
ファイルシステムパスも有効です。

組み込み

本書の例ではdart:htmlが使用されています。

import 'dart:html';

このライブラリはどうやらHTMLのパーサー(解析する人)のようです。
dart:html library – Dart API

こちらにサンプルがありますがどう動かすのやら・・・
An example of using dart:html · GitHub

組み込みではないもの(パッケージマネージャ経由のライブラリ)

package:スキームはパッケージマネージャによって提供されるライブラリのことだそうです。
つまり「組み込みではないもの」とは「パッケージマネージャ経由のライブラリ」ということですね。

パッケージマネージャは公式でPubツールがあります。

import 'package:test/test.dart';

組み込みではないもの(ほかのdartファイルを読み込む)

自身で作成したほかのdartファイルを読み込む場合はpackage:スキームしようしないようです。
単に相対パスを指定すればよいようです。

本書では「ファイルシステムパス」と記述しています。

test/test.dart

String hoge() {
   return 'hoge';
}

main.dart

import 'test/test.dart';

void main() {
  print('Hello Dart! ' + hoge());
}

最後に

とりあえずimportを覚えておきます!

importの記述ルールは以下の通りです。

  • import 'dart:xxx’ 組み込み
  • import 'package:xxxx/yyyy’ pubツール
  • import 'dir1/fileA.dart’ 自身で保有するdartファイルを指定

今日はここまで!