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