mega_cli 1.0.4 copy "mega_cli: ^1.0.4" to clipboard
mega_cli: ^1.0.4 copied to clipboard

A tool created for Megaleios developers, to help in their day to day work with flutter.

Mega CLI #

CLI para criação e configuração inicial de projetos da Megaleios. #

Megaleios

Instalação #

Para instalar o mega_cli basta digitar no terminal:

dart pub global activate mega

Uso #

Antes de tudo, é necessário que o projeto esteja configurado no Firebase. Para isso, basta seguir o tutorial aqui e também o OneSignal. Agora para configurar o projeto basta digitar no terminal:

mega_cli init

A seguir irá aparecer a seguinte mensagem:

1) Yes
2) No
Add base permission to info.plist ? [1]

Esse comando irá adicionar as permissões(Camera, Arquivos) no arquivo info.plist do projeto. Caso deseje adicionar essas permissões, basta digitar 1 e apertar enter. Caso não deseje adicionar, basta digitar 2 e apertar enter.

Logo após, irá aparecer a seguinte mensagem:

App name:

Digite o nome do seu app e aperte enter. Esse nome será inserido no Info.plist.

Logo após, irá aparecer a seguinte mensagem:

1) Yes
2) No
Add location permission in info.plist ? [1]

Esse comando irá adicionar a permissão de localização no arquivo info.plist do projeto. Caso deseje adicionar essa permissão, basta digitar 1 e apertar enter. Caso não deseje adicionar, basta digitar 2 e apertar enter.

E por ultimo, irá aparecer a seguinte mensagem:

1) Yes
2) No
Use "Dependency_Overrides" on flutter_mega ? [1]

Esse comando irá adicionar as dependências do flutter_mega como dependency_overrides no arquivo pubspec.yaml do projeto. Caso deseje adicionar essas dependências, basta digitar 1 e apertar enter. Caso deseje adicionar a dependência normalmente, basta digitar 2 e apertar enter.

Pronto! Seu projeto já está configurado para começar a desenvolver. 🪄

Explicando o que foi feito: Ios

  • Adicionado as permissões de camera e arquivos no arquivo info.plist do projeto.
<key>NSCameraUsageDescription</key>
<string>Permita o acesso para que você possa tirar fotos para seu perfil no Mega Template.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Permita o acesso para que você possa escolher uma imagem para seu perfil no A a.</string>
// Caso tenha adicionado a permissão de localização
<key>NSLocationWhenInUseUsageDescription</key>
<string>Permita o acesso para que você possa usar a localização no Mega Template.</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>Permita o acesso para que você possa usar a localização no Mega Template.</string>
// Essa chave faz com que o APP é disponibilizado para todos os usuários automaticamente no teste interno da Apple
<key>ITSAppUsesNonExemptEncryption</key>
<false/>

Android

  • Adicionado o classpath do google-services no arquivo build.gradle do projeto para o uso do Firebase.
classpath 'com.google.gms:google-services:4.3.15'
  • Adicionado o plugin do google-services no arquivo app/build.gradle do projeto para o uso do Firebase, e adicionado a versão do compileSdkVersion e minSdkVersion
apply plugin: 'com.google.gms.google-services'
compileSdkVersion 33
minSdkVersion 22

Flutter

  • Adicionado as dependências do flutter_mega no arquivo pubspec.yaml do projeto.
mega_commons_dependencies:
    path: ../megaflutter_commons_dependencies
mega_commons:
    path: ../megaflutter_commons
mega_features:
    path: ../megaflutter_features
  • Criado a pasta assets.
  • Criado o arquivo app_colors.dart no diretório lib/app/core.
  • Criado o arquivo app_urls.dart no diretório lib/app/core (Onde fica contido as urls do projeto).
  • Criado o arquivo app_theme.dart no diretório lib/app/theme.
  • Criação do arquivo application_binding.dart no diretório lib/app, onde fica a configuração da url base do projeto e a injeção do RestClientDio, responsável por fazer as requisições http.
  • Criação da pasta lib/app/data/models onde fica os modelos do projeto.
  • Configuração do arquivo analysis_options.yaml para o uso do lint, fique a vontade para configurar como desejar.
  • Configuração do main.dart para o uso do GetMaterialApp e algumas configurações necessárias, como a inicialização do Firebase, Hive, OneSignal e Intl.defaultLocale = 'pt_BR'.
Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  Intl.defaultLocale = 'pt_BR';

  await Future.wait([
    FirebaseConfig.initialize(),
    BaseHive.initHive(),
    MegaOneSignalConfig.configure(
      appKey: '', //sua app key
    ),
  ]);

  final token = AuthToken.fromCache();

  final String initialRoute = token == null ? AppPages.initial : Routes.home;

  initializeDateFormatting('pt_BR', null);

  runApp(
    GetMaterialApp(
      title: 'Application',
      initialRoute: initialRoute,
      getPages: AppPages.routes,
      initialBinding: ApplicationBinding(),
      theme: AppTheme.theme,
    ),
  );
}
  • Removido a pasta test do projeto. 🧨 (Testes são importantes)
  • Configuração do GetX, criado os arquivos app_pages.dart e app_routes.dart no diretório lib/app/routes, onde fica as rotas do projeto.
  • Configuração inicial do Hive, criado o arquivo base_hive.dart no diretório lib/app/data/cache, onde fica a configuração inicial do Hive.
  • Criação do module Login e Home no diretório lib/app/modules, onde fica as páginas do projeto, por padrão é criado o Controller, Binding, View e Provider de cada módulo.

A estrutura do projeto ficará assim:

Megaleios

💡 Features Pré-configuradas #

  • Login
  • Home
  • Esqueci minha senha
  • Alterar senha
  • Notificações

Todas essas features já vem com a integração com a API do Mega Template, basta apenas configurar a url base do projeto no arquivo app_urls.dart e fazer o ajuste do layout conforme a necessidade do projeto 🚀

Megaleios Megaleios Megaleios Megaleios Megaleios Megaleios

🖊️ Comandos extras #

mega_cli feature <nome_da_feature>

Esse comando irá criar uma feature com o nome passado como parâmetro, já com o provider, controller, view e binding configurados. Caso deseja cria sem o provider, basta passar o parâmetro --no-provider no final do comando.

mega_cli feature <nome_da_feature> --no-provider
2
likes
120
pub points
0%
popularity

Publisher

unverified uploader

A tool created for Megaleios developers, to help in their day to day work with flutter.

Homepage

Documentation

API reference

License

MIT (LICENSE)

Dependencies

ansicolor, bosun, dart_style, dcli, recase, xml

More

Packages that depend on mega_cli