Flutter dart naming conventions

Identifiers come in three flavors in Dart:

  • UpperCamelCase names capitalize the first letter of each word, including the first.
  • lowerCamelCase names capitalize the first letter of each word, except the first which is always lowercase, even if it’s an acronym.
  • lowercase_with_underscores names use only lowercase letters, even for acronyms, and separate words with _.

Name class names, types and extensions using UpperCamelCase

class SliderMenu { ... }

class HttpRequest { ... }

typedef Predicate = bool Function(T value);

class Foo {
  const Foo([Object? arg]);
}

@Foo(anArg)
class A { ... }

@Foo()
class B { ... }

const foo = Foo();

@foo
class C { ... }

extension MyFancyList on List { ... }

extension SmartIterable on Iterable { ... }

Name libraries, packages, directories, source files and import prefixes using lowercase_with_underscores. Some file systems are not case-sensitive, so many projects require filenames to be all lowercase. Using a separating character allows names to still be readable in that form. Using underscores as the separator ensures that the name is still a valid Dart identifier, which may be helpful if the language later supports symbolic imports.

library peg_parser.source_scanner;

import 'file_system.dart';
import 'slider_menu.dart';


import 'dart:math' as math;
import 'package:angular_components/angular_components.dart' as angular_components;
import 'package:js/js.dart' as js;

Name class members, top-level definitions, variables, constants, parameters, and named parameters using lowerCamelCase.

const pi = 3.14;
const defaultTimeout = 1000;
final urlScheme = RegExp('^([a-z]+):');

class Dice {
  static final numberGenerator = Random();
}

class HttpConnection {}
class DBIOPort {}
class TVVcr {}
class MrRogers {}

var httpRequest = ...
var uiHandler = ...
var userId = ...
Id id;

Using _, __, etc. for unused callback parameters.

futureOfVoid.then((_) {
  print('Operation complete.');
});

Reference: https://dart.dev/guides/language/effective-dart/style

Search within Codexpedia

Custom Search

Search the entire web

Custom Search