もくじ
こんにちは。スマホアプリをメインに開発しているロッキーカナイです。
最近は個人でFlutterの勉強をしているのですが、今後は業務でFlutter触れたらいいなと思っているこの頃です。
今回はAndroid界隈で人気のFlutterってなんぞやってのを記事にしてみました。
実際の所、自分はiOS開発をずっとしていてFlutterを知ったのは最近なのですが、Android開発者の間ではすでに盛り上がっていたようです。色々関連記事を見たり、先駆者の評価を見たりした所、興味が出て勉強し始めたという感じです。
Flutter
Flutterとは
まずFlutterとはなんぞやって所ですが、
Flutter(フラッター)は、Googleによって開発されたフリーかつオープンソースのモバイルアプリケーションフレームワークである。FlutterはAndroidやiOS向けのアプリケーションの開発に利用されている。Fuchsiaではアプリケーションの開発は主にFlutterを利用して行われている。
つまり、Flutterを利用することで一度のコーディングでAndroid、iOSのアプリ開発が可能であるということです。
また、Google FuchsiaというのはGoogleの開発中のOSなのですが、それにもFlutterを用いて開発が可能なので、Google内でもFlutterは将来性を見据えているSDKだという事が分かります。
Flutterはウィジェットの組み合わせでアプリを開発してゆきます。つまり、ウィジェットの中に別の動作をするウィジェットを組み合わせて開発するといったイメージになります。
またFlutterのメリットとしては「ホットリロード」が可能で、ビルドしなくても更新毎に動作確認が可能で開発効率が高いです。
Flutter SDK
Android、iOSのアプリ開発が一度でできる事はお分かりかと思いますが、どのようにして開発するのでしょうか?
Flutterはさまざまな専用APIを提供していて、これらのAPIを使って開発します。開発に必要なAPIは一通り用意されているようです。
たとえば、ボタンを生成する場合、ネイティブのボタンでなくFlutterで用意されているボタンを使います。AndroidやiOSでの見た目が異なりますが、それぞれの見た目のウィジェットが用意されているので、ネイティブのようなデザインが可能です。
Dart言語
Flutterで使用する言語はDartです。
Dart はGoogleによって開発されたウェブ向けのプログラミング言語である。、ウェブブラウザ組み込みのスクリプト言語であるJavaScriptの代替となることを目的に作られた。JavaScript言語にある解決できない言語上の問題点を解決し、なおかつ、より優れたパフォーマンスを発揮し、大規模なプロジェクト用途にも耐え得る特徴を備え、セキュリティ面でもより優れた言語として、設計された。
DartはJSに近い言語ですが、アプリがインタープリタで動くという事ではなく、ネイティブコードにコンパイルされ、動作します。よって、ネイティブアプリ同等の高速で動作します。
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
home: Text(
'Hello, Flutter World!!',
style: TextStyle(fontSize: 32.0),
),
);
}
}
開発IDE
IDEはAndroid Studioか、Visual Studio Codeが推奨となってますが、他のエディタでも可能です。ちなみに私はAndroid Studioを使用しております。
Flutterのメリットまとめ
- ホットリロードで開発効率が高い
- AndroidとiOSのデザインに対応したウィジェットが利用可能
- Dartで動作が高速
- Googleが開発しているSDK
- Gooleの次期OS Fuchsiaでのアプリ開発も可能?
さいごに
クラスプラットフォーム開発というと、これまでにも、Cordovaや、Xamarin、React Nativeなど人気ですが、今回紹介したFlutterも徐々に知名度を上げてきています。Google製という所もポイント高いですよね。
少しでも興味を持たれましたら、やってみてはいかがでしょうか?
ではー!