スマホアプリ開発ミニ動画講座 Flutter(iOS/Android)

Dart:今最も注目のアプリ開発ツール「Flutter」の公式開発言語(長い苦難の歴史から復活を果たしたシンデレラストーリー)

2019年10月20日

(上の画像をクリックすると、動画で詳しい解説がご覧頂けます)

 

これ1本でスマホアプリ(iOS/Android)もデスクトップアプリもWebアプリも”いっぺんに”作れる、今最も注目のアプリ開発ツールである「Flutter(フラッター)」

今最も注目のアプリ開発ツール「Flutter(フラッター)」とは

(上の画像をクリックすると、動画で解説がご覧いただけます)   突然ですが「Flutter」って聞いたことありますか?? 「何やそれ!?読み方すらわかんねえよ!?」って感じですよね。 実はこれ、「フラ ...

続きを見る

この「Flutter」のプログラミングは、「Dart(ダート)」という言語を使って行います。

実はこの「Dart」というプログラミング言語、あまり有名ではありません。

しかし、その歴史を紐解いておくと、なかなか面白いプログラミング言語であることがわかります。

Googleによって2011年に誕生

実は、「Flutter」という開発ツールを作ったのもGoogleであれば、Flutterアプリを作るためのプログラミング言語である「Dart」を作ったのもGoogleなんです。

では、なぜGoogleはこの「Dart」というプログラミング言語を作ったのでしょうか。

 

元々はJavascriptを置き換える目的で開発されたWebアプリ開発向け言語だった

実はこの「Dart」というプログラミング言語は、

Flutterアプリの公式開発として作られたものではなく、

Webアプリを作るためのデファクトスタンダード的な地位にある超人気言語「Javascript」を置き換える目的で開発された

Webアプリ向けの開発言語

だったんです。

Dart(ダートもしくはダーツ。当初は Dash と呼ばれていた)はGoogleによって開発されたウェブ向けのプログラミング言語である。2011年10月10日 - 12日に開催された デンマークのオーフスで開催された「GOTOカンファレンス」で公開された。この言語は、ウェブブラウザ組み込みのスクリプト言語であるJavaScriptの代替となることを目的に作られた。

〜(中略)〜

Dart言語はJavaScript言語にある解決できない言語上の問題点を解決し、なおかつ、より優れたパフォーマンスを発揮し、大規模なプロジェクト用途にも耐え得る特徴を備え、セキュリティ面でもより優れた言語として、設計された。

https://ja.wikipedia.org/wiki/Dart

Javascriptは超人気言語でありながらも言語上の問題点があるので、それを解決するために送り込むという、壮大な野望のもとに開発されたプログラミング言語だったんですね。

ところが、Javascriptというプログラミング言語への限界を色んな人が感じながらも、アプリというのは安全性とかも考慮しないといけないので、新しい言語に乗り換える動きというのが残念ながらなかなか起きませんでした。

あのGoogle先生という巨人をもってしても、Javascriptを置き換えることができず、長い間日の目を見ることができなかったという、苦難の歴史を持っているプログラミング言語だったのです。

 

Flutterアプリの公式開発言語に採用されたことで、マルチプラットフォーム対応言語としてネオ進化

ところが、その苦難の歴史も「Flutter」の登場によって一変します。

「Flutter」の公式開発言語に採用されたことで、元々Webアプリ開発向けの言語だったものが、マルチプラットフォーム対応言語として「ネオ進化」を果たしたんです。

なんとまさかの復活を果たしたわけです。すごい展開ですよね。

Dart is a client-optimized language for fast apps on any platform

では、こんなシンデレラストーリー的な展開を果たした「Dart」というプログラミング言語、その中身は一体どうなっているのでしょうか。

 

世界で最も使われているプログラミング言語「Java(ジャバ)」と文法がそっくり

そして、この「Dart」という得体の知れないプログラミング言語ですが、その中身は、

世界で最も使われているプログラミング言語である「Java(ジャバ)」と文法がそっくり

なんです。

世界で最も使われている言語であるJavaと文法を似せることによって、幅広い人にDartに親しんでもらおうという意図でわざとそうしているのではないかと思われます。この発想がすごいですね。

では、Javaと文法が全く一緒なのかと言うとそうではありません。

Javaというプログラミング言語は、世界で最も使われていますが、歴史の古い言語であるため、Javascriptと同様に言語上の問題点が色々あります。

ですから、「Dart」はそういう古い問題点を解消して、Javaとそっくりでありながらも、Javaをより進化させている。

そのため、一見得体の知れない言語ですが、初心者の人でも非常に習得しやすいプログラミング言語なっているんですね。

Flutterの人気が今急上昇中の中、ちょっと前まで得体の知れない存在だった「Dart」というプログラミング言語も、今後爆発的に普及してくる可能性があると考えられています。

GoogleのFlutterは、クロスプラットフォーム開発に対応した UIツールキット。登場してからまだ2年しか経っていないが、あっという間に多くのデベロッパーがこぞって採用するフレームワークとなった。ただし、これまでは「クロスプラットフォーム」の意味は、AndroidとiOSにのみ限定されていた。昨年末になってGoogleは、Flutterをモバイル用だけでなくウェブにも拡張すると発表した。そして米国時間5月7日に開催されたGoogle I/Oで、その言葉通り、ウェブ用Flutterのテクニカルプレビュー版を発表した。

GoogleのFlutterはmacOSやWindowsも含む真のマルチプラットフォーム対応へ

 

なぜGoogleはFlutterの公式開発言語に「Dart」を採用したのか

最後に、ではなぜGoogle先生は、今回「Flutter」の公式開発言語に、雨後の竹の子のように存在するプログラミング言語の中から、この得体の知れない「Dart」をわざわざ採用したのでしょうか。

その答えを、Google先生はFlutterの本家本元公式リファレンスの中で述べています。

Why did Flutter choose to use Dart?

Flutter used four primary dimensions for evaluation, and considered the needs of framework authors, developers, and end users. We found some languages met some requirements, but Dart scored highly on all of our evaluation dimensions and met all our requirements and criteria.

Dart runtimes and compilers support the combination of two critical features for Flutter: a JIT-based fast development cycle that allows for shape changing and stateful hot reloads in a language with types, plus an Ahead-of-Time compiler that emits efficient ARM code for fast startup and predictable performance of production deployments.

In addition, we have the opportunity to work closely with the Dart community, which is actively investing resources in improving Dart for use in Flutter. For example, when we adopted Dart, the language did not have an ahead-of-time toolchain for producing native binaries, which is instrumental in achieving predictable, high performance, but now the language does because the Dart team built it for Flutter. Similarly, the Dart VM has previously been optimized for throughput but the team is now optimizing the VM for latency, which is more important for Flutter’s workload.

https://flutter.dev/docs/resources/faq#why-did-flutter-choose-to-use-dart

 

この中で、色々理由が述べられていますが、一言でいうと

「Flutterでやりたい機能・パフォーマンスを実現するためには、Dartが一番ふさわしいと思いました」

というようなことが書かれています(デフォルメしすぎですいませんm(_ _)m)。

表向きの理由は確かにそうだと思います。

ところが、裏の理由としてはやっぱり長い苦難の歴史を経てきた我が子「Dart」を復活させたいという想いがあったのではないかと。

元々、Javascriptを置き換えるという壮大な野望を持って産み落とした言語ですから、今回「Flutter」というマルチプラットフォームアプリ開発ツールと絡めることによって、手塩にかけて育てた我が子を復活させたいという想いは、ゼロではないんじゃないかなと思うんですね。

こういう「感動的な」復活と再生の歴史を紐解いていくと、何とも得体の知れない言語であった「Dart」にも少し親しみが湧いてくるような気がしませんか。

動画で詳しい解説がご覧になれますので、よろしければご覧ください)

 

みんプロへのお問い合わせはこちらよりお気軽にお寄せ下さい

経験ゼロから
3ヶ月でアプリが出せる

なぜプログラミングの学習は
9割もの人が挫折するのか

ぼく自身の黒歴史の経験から
挫折パターンと
脱却ノウハウが明らかに!

最後まで読んだあなたは
もう挫折から
脱却せずにはいられない!

かもしれない

チェックするの今でしょ!

みんプロならアプリ出せるって最初に確信した(受講生インタビュー・芝 毅仁さん)

社会人にはうってつけの講座だと思います(受講生インタビュー・大河内 誠一さん)

ぼくの人生挫折ヒストリー

ぼくのプログラミング挫折ヒストリー

  • この記事を書いた人
北川 博之 (みんなのプログラミング by Telulu LLC 代表)

北川 博之(みんなのプログラミング by Telulu LLC 代表)

大阪府生まれ。京都大学経済学部経済学科卒業。2000年より、日本生命保険、ニッセイアセットマネジメント、パトナム・インベストメンツ(米国)で、日本株トレーダー・アナリスト、経営企画、システム開発等の業務に従事。主に日本株の売買執行・投資分析、経営計画の策定、海外投資家向け日本株営業、社内トレーディングシステム及び経理システムの開発等を行う。2016年、合同会社てるる設立。スマホアプリプログラマーとして「新感覚脳トレアプリ・記憶戦隊オボエルンジャー」「Meisoー1番シンプルなマインドフルネス瞑想アプリ」をはじめとした、メンタルヘルス・知育系アプリを中心に4タイトル・計8本(Android・iOS)をリリース。2017年、自身のこれまでの社会人経験・プログラミング経験・子育て経験を基に、プログラミングを通じて人々の人生を豊かにして、未来に希望の持てる明るい社会の実現に貢献したいとの想いから、プログラミング完全初心者と挫折経験のある人を支援する「プログラミング挫折撲滅プロジェクト・みんなのプログラミング by Telulu LLC」を設立し、プログラミングサポーター活動と心理カウンセリング活動を開始。これまでに2,000名を超える方のプログラミング挫折撲滅をサポート。

みんプロ式・おすすめ講座3兄弟

1

(上の画像をクリックするとプロモーション動画がご覧頂けます)   プログラミング経験一切不要! 今最も注目のアプリ開発ツール 「Flutter(フラッター)」を使って 経験ゼロでもたった3ヶ ...

2

(上の画像をクリックすると、プロモーション動画がご覧頂けます)   プログラミング経験一切不要! 今最も注目のプログラミング言語 「Koltin(ことりん)」を使って 経験ゼロでもたった3ヶ ...

3

   プログラミング経験一切不要。 世界のスマホの約7割という圧倒的なシェアを占めるAndroid。 そのAndroidアプリの開発力と、世界で最も使われているプログラミング言語「Java ...

-スマホアプリ開発ミニ動画講座, Flutter(iOS/Android)

Copyright© みんなのプログラミング by Telulu LLC , 2019 All Rights Reserved.