Flutterって何者? – ①Flutterとは〇〇だ!

はじめに

最近、Flutterの人気がどんどん増えていっていますね!

クロスプラットフォームやホットリロードなど独自の便利機能に惹かれ、

ネイティブ開発から、Flutterの勉強を始めた方もたくさんおられると思います!

僕もその一人なのですが、なかなか日本語で解説しているサイトが少なく、

まだまだ取り組みづらい環境ではあるかなと思います(泣)

今回からは

そんな”Flutterビギナー仲間”に向けて、

僕が勉強している内容を少しずつ記事にしていこうと思います。

まずは

「そもそもFlutterって一体何者なの?」

という疑問を解消するべく、

”Flutter”自体についての解説をしていこうと思います!

Flutterとは「Googleが2018年に正式発表したフリーかつオープンソースのマルチプラットフォームアプリ開発ツール(フレームワーク)」である!

ドドン!と結論から言っちゃいました😆w

これだけ見て「なるほど!」となる方もいらっしゃると思いますが、

僕は初め「どういうこっちゃねんw」状態でしたので解説していきますね😊

まず、FlutterがGoogleによって公式発表されたのは2018年12月4日

現在2020年3月24日ですので、まだ2年も経っていない!!オドロキ!

かなり新しい技術の様ですね😊

ここで、Flutter公式ページを見てみましょう。

(…Google翻訳先生!よろしくおねがいします!!)

ここには、

Flutterを使って記述したコードが

  • モバイル(スマホアプリ)
  • Webアプリ
  • デスクトップアプリ

などの”いろんなプラットフォーム”で動作しますよ〜

といったことが書かれていますね😊

ネイティブアプリ開発の経験がある方は、

「ええ!」っとビックリされる革命的な技術だと思いますが、

初見では「なんのこっちゃ?」ですよね😂

ちゃんと解説していきますね。

”マルチプラットフォーム”ってなんじゃ?

Flutterを調べているとよく出てくる、

マルチプラットフォーム(クロスプラットフォーム)”という単語。

これはどういう意味なのでしょうか😃

クロスプラットフォーム(英: cross-platform)とは、異なるプラットフォーム(例えばPC/AT互換機とMacintosh、あるいはWindows・macOS・FreeBSD・Linuxなどのように、仕様が全く異なる機械(ハードウェア)またはオペレーティングシステム)上で、同じ仕様のものを動かすことが出来るプログラム(ソフトウェア)のことを言う。同様の呼称にマルチプラットフォームがある。

Wikipedia

要するに、「異なるOS上で、同じ仕様のものを動かすことができるプログラム」ということですね。

たとえば皆さん、”フォートナイト”というゲームをご存知でしょうか?

一時期から絶大な人気が出ているバトロワFPSゲームなのですが、

こちらのゲームはPC、Switch、PS4、そしてスマホなど別の機器から、

”同時にプレイ(クロスプレイ)”することができるんです!

これをイメージすると少し分かりやすいと思います😄

…分かりやすいですかね?ちょっと不安になってきました。分かりにくかったら忘れてくださいwwww

これをFlutterに置き換えると、こうですね!

これはすごい技術ですね〜!

では、スマホアプリ開発に限った話として、見てみます。

現在スマホOSにおいて二大巨頭となる”Android”そして”iOS”。

これらのネイティブアプリの開発と、Flutter開発の比較から、

マルチプラットフォームの仕組みを詳しく見てみましょう😃

Android開発の場合

まずはAndroidの場合です。

Android開発では、

Android StudioというIDE(統合開発環境)と、

Android SDKという開発ツール、

そして開発言語はKotlin(またはJava)を使用して、ひとつのプログラムを作ります。

出来上がったプログラムをAndroid Studioで作ったアプリデータにしてGooglePlayストアにリリース、

という流れですね。

また、当たり前といえば当たり前なのですが

この手順で出来上がったプログラムを「Appストアで”iOSアプリ”としてリリース」することはもちろんできません…😅

iOS開発の場合

次に、iOSの場合を見てみましょう。

iOS開発では、

XCodeというIDEと、

iOS SDKという開発ツール、

そして開発言語はSwiftを使用して、ひとつのプログラムを作ります。

出来上がったプログラムをXCodeを使って、Appストアにリリース、という流れです😃

こちらも、この手順で作られたプログラムは「Playストアに”Androidアプリ”としてリリース」することはできません😣

Flutterの場合

では、Flutterの場合です😃

まずIDEはAndroid Studio(またはVSCode)、

開発ツールとして”Flutter SDK”、

開発言語は”Dart”を使用して、ひとつのプログラムを作ります。

ここまでは先ほど紹介したネイティブ開発と似ていますが、

ポイントはここからです😝

リリースの段階でAndroidとiOSに分けてやれば、

同じプログラムからAndroidアプリ、iOSアプリとして各ストアでリリースすることができるんです!

これはびっくりですね〜!😳

疑いおじさん

そんなことってホントに可能なの〜?

おや?疑いおじさんがでてきましたね?

これはリアルなことを言うと、「ほぼ」ホント。

なぜ”ほぼ”なのかというと、

OSに大きく依存する処理(例えばカメラ機能、通知機能、SharedPrefferences等)は、ネイティブのコードを記述しなければいけないから。

という理由です。こちらについては別の方が詳しく記事を書かれていたので、

下のリンクからご覧ください。

https://note.com/heavenosk/n/n245b72973600

今回はここまで

ということで第一回”Flutterって何者?”講座、

いかがでしたか?😃

Flutterへの興味、徐々に伝わってきたのではないでしょうか。

Flutterの魅力はまだまだ盛り沢山ですので、

また新たに記事を更新しますね。

この記事が面白いなって思った方は、

よければTwitterのフォロー、RT&いいねもよろしくお願い致します😝✨

次回はこちら↓