Flutter — Moje Praktyki

Dobre praktyki i czysty kod we Flutterze.

Nowy ekran w aplikacji

Nowy ekran zawsze nazywam, używając przyrostka Page.

class RocketGeneralInfoPage extends StatefulWidget {
    // Code
}

// File name
rocket_general_info_page.dart

Nazewnictwo plików

Nadając nazwy plikom, korzystam z konwencji Snake Case. Co jest rekomendowanym sposobem.

rocket_general_info_page.dart
post_detail.dart

Pola klas

Sama nazwa pole w programowaniu obiektowym oznacza zmienną/stałą prywatną.

W języku Dart nie ma słowa kluczowego, które ustawia zmienną jako prywatną. W zamian należy skorzystać z konwencji. W takim przypadku musisz użyć znaku podkreślenia _.

Gdzie tylko to możliwe zmienne na poziomie klasy oznaczam jako prywatne.

class UserProfileCubit extends CubitBase<UserProfileState> {
 final UserRepository _userRepository;
}

Zależności klasy

Zależności klasy, które trafiają do niej poprzez konstruktor zawsze staram się oznaczać jako final oraz jako prywatne.

class UserProfileCubit extends CubitBase<UserProfileState> {
 final UserRepository _userRepository;
}

Metody zwracające widżet

Metody, które zwracają typ Widget, nazywam, rozpoczynając nazwę od _build.

Widget _buildTitle() {
  return const Text("Programistą Być!");
}

Tworzę nowe widżety na potęgę!

Tworzę nowe klasy widżetów gdzie tylko to możliwe. Dzięki temu pomagam Flutterowi w optymalizacji.

// Ugly
Widget _buildPieceOfUI() {
  // Many lines of code
}

// ---> Recommended
class PieceOfUIWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // Many lines of code
  }
}