🚯

新規Flutterアプリ作成時のあのコメントたちを効率よく消したい

2024/04/23に公開6

はじめに

こんにちは
業務でFlutterを使っていますイノウエと申します

Flutterアプリを新規で作成した際、デフォルトでカウンターアプリのコードがセットされていると思います。
しっかりとしたアプリを作る際にはそもそもあのコードを活かして使う方が手間だと思うので、全消ししてからイチから書くこともあるでしょう。

しかし簡単なアプリやチュートリアル的な演習などの際にはコメントちょいと邪魔だな消したいなって場合もあると思います。
(Flutterを始める上でタメになるコメントであることは確かです!)

そんな時に私が使うコメント削除手順の共有です。
もっといいやつあるよって方はコメントで教えてください🐻‍❄️

こんなやつですね↓

import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  // This widget is the root of your application.
  
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        // This is the theme of your application.
        //
        // TRY THIS: Try running your application with "flutter run". You'll see
        // the application has a blue toolbar. Then, without quitting the app,
        // try changing the seedColor in the colorScheme below to Colors.green
        // and then invoke "hot reload" (save your changes or press the "hot
        // reload" button in a Flutter-supported IDE, or press "r" if you used
        // the command line to start the app).
        //
...

やり方

やることは以下のステップだけ

  1. 適当なコメントの // を選択
  2. Command + Shift + Lでコード内 // を全選択
  3. Command + Shift + kで選択中の行を全削除
  4. 下から3行目の ); のセミコロンより前に )を追加

おまけ

英語の記事ですが、正規表現と一括置換を使ったこんな方法もあるようです↓
https://hamamul-fauzi.medium.com/flutter-remove-all-comment-in-starter-counter-app-instantly-a1a023e090bc

お読みいただきありがとうございました🫰🏻

Discussion

miyaken12miyaken12

Flutterのcreateコマンドに最低限で作るオプションがあります↓
-e, --[no-]empty Specifies creating using an application template with a main.dart that is minimal, including no comments, as a starting point for a new application. Implies "--template=app".

それも良ければぜひ 🙏

環境 Flutter 3.19.5

flutter create hoge --platforms=android,ios -e --description=hoge

生成されるmain.dartとpubspec.yaml

import 'package:flutter/material.dart';

void main() {
  runApp(const MainApp());
}

class MainApp extends StatelessWidget {
  const MainApp({super.key});

  
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: Scaffold(
        body: Center(
          child: Text('Hello World!'),
        ),
      ),
    );
  }
}
name: hoge
description: "hoge"
publish_to: 'none'
version: 0.1.0

environment:
  sdk: '>=3.2.3 <4.0.0'

dependencies:
  flutter:
    sdk: flutter

dev_dependencies:
  flutter_test:
    sdk: flutter
  flutter_lints: ^2.0.0

flutter:
  uses-material-design: true
kz422kz422

ありがとうございます!
消すより最初から生成しない…
これが最適解な気がしました😂

みやジックみやジック

私はGitHubのテンプレートリポジトリ機能を利用して簡単なサンプルアプリを用意して使っています。
初期の不要なコードを消すだけじゃなくて、画面遷移や状態管理など大体どのアプリでも使うパッケージなども入れておけるのでとても便利です。興味があれば試してみてください!
https://docs.github.com/ja/repositories/creating-and-managing-repositories/creating-a-template-repository

kz422kz422

ありがとうございます!
確かに、どのアプリでも共通で使うもの・まずやることは決まっているのでテンプレート化してしまうの最高ですね。
木を見て森を見れてなさすぎました…
そして次から次へと適解が出てきて驚いています😂