0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Flutter】全くの初心者が調べた「What is Flutter」

Posted at

導入

仕事でFlutterの話が出てきたので、チュートリアル形式で進める前に簡単にまとめます。

Flutterとは

Flutter は Googleが開発したUIフレームワーク で、1つのコードベースから
iOS、Android、Web、デスクトップ(Windows / macOS / Linux)と複数プラットフォームのアプリを同時に作れるのが特徴です。
開発言語は Dart というGoogle製の言語を使います。

特徴

  • マルチプラットフォーム対応: 1つのコードで複数のプラットフォームに対応しています
  • ネイティブ並みの高速なUI描画: 独自のレンダリングエンジンSkiaを使用するため高速に描画されます
  • ホットリロード: コード変更を即座に画面に反映されます
  • 豊富なウィジェット: UI部品は全てウィジェットとして管理、提供されます

基本構造

Flutterアプリはウィジェットのツリー構造で構築される。
例)「画面全体」 –> 「AppBar(ヘッダー)」 –> 「ボタン」

Hello Worldのコード例

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('Hello Flutter')),
        body: Center(child: Text('Hello World!')),
      ),
    );
  }
}

メリット・デメリット

メリット

  • 開発コストの削減(1つのコードベースで複数プラットフォーム対応)
  • 高速な開発サイクル(ホットリロード機能)
  • 豊富なUIコンポーネント

デメリット

  • アプリサイズが大きくなりがち
  • 大規模になると複雑になることがある
  • プラットフォーム固有の最新機能への対応に遅れが生じる場合がある
  • Dart言語の学習コストが必要
    ※静的型付け言語やJavaScriptの経験があるとそうでもないという意見もありました

個人的な感想

iOSネイティブ開発はSwiftが主流というイメージでしたが、初めからAndroidとiOSの両方のアプリを作成するプロダクトや、開発コストをかけたくない場合だとFlutterという選択肢が出てくるのかなと思った。

まとめ

Flutter(Dart)の特徴をざっくりと理解したつもりですが、
表現の誤りや誤解等あれば、ぜひ編集リクエストやコメントからお願いいたします

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?