chakokuのブログ(rev4)

テック・コミック・DTM・・・ごくまれにチャリ

これからは、Flutter + Dartでいく

ここで宣言してもバタフライ効果も何もないのだが、、スマフォアプリ開発でSwiftUIだと思っていたけど、まぁネイティブの開発系も勉強するとして、、Swiftを勉強してもiOS版のみになってしまうので、自分はFlutter + Dart を勉強して使いこなせるように頑張ろうと思う。トレンドとしてFlutterが継続発展するのかどうかは分からないけど。Flutterで書けばiOS/Andorid共通のアプリが作れるらしい。GUIのデザインポリシーとしてAppleが推奨するフラットデザインではなく、マテリアルデザインになるそうだが、マテリアルデザインでいいじゃないかとも思うし。
機器固有機能を使い切るようなアプリはFluter + Dartだと難しいらしいですが、データを集計したりグラフ化したり、クラウドと繋いだりといった程度であれば、一般的なGUI+コーディングなので、FlutterのWigetというのか、GUIパーツで組めるだろうと推測。それに、Dartのmain(){}ってのがC言語っぽくて親しみが持てる。

早速、WSL上のUbuntuDartを入れてみる。以下で入るらしい。トラブルもなく、さくっと入った。

# setup
sudo apt-get update
sudo apt-get install apt-transport-https
sudo sh -c 'wget -qO- https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -'
sudo sh -c 'wget -qO- https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list > /etc/apt/sources.list.d/dart_stable.list'

#install
sudo apt-get update
sudo apt-get install dart
$ export PATH="$PATH:/usr/lib/dart/bin"

$ dart --version
Dart SDK version: 2.15.1 (stable) (Unknown timestamp) on "linux_x64"

$ uname -a
Linux DESKTOP-TRNV8F8 5.10.60.1-microsoft-standard-WSL2 #1 SMP Wed Aug 25 23:20:18 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
$ cat   /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04 LTS"

チュートリアルは以下のURL
Language tour | Dart

Hello Worldなんて、K&Rの「プログラミング言語C」みたいじゃないか! (さすがに#include は不要だけど。K&R本にはvoidもなかったけど。確か)

void main() {
  print('Hello, World!');
}

Swiftではclassよりもstructを使うべし(クラス特有のややこしい問題が構造体だと回避できるし、struct型は値渡しだから、値操作による影響が局所的??とかなんとか)とあったのだけど、DartではClassを普通に使うと。頭の中で揺り戻しが。。

assertを試してExceptionにならないなーと思っていたら、オプションで、--enable-assertsが必要であった。

$ dart --enable-asserts  test.dart

Dart programming language | Dart

KotlinとJavaができる人向けDart速習 - Qiita
(自分はできる人ではないが、まとまっている。日本語がありがたいっす)

Dart予約語一覧
https://dart.dev/guides/language/language-tour#keywords