{"id":13491261,"url":"https://github.com/salkuadrat/f","last_synced_at":"2025-04-09T22:20:54.922Z","repository":{"id":56828619,"uuid":"427123524","full_name":"salkuadrat/f","owner":"salkuadrat","description":"A simple shortcut, command line interface (CLI) for Flutter to increase productivity and happiness.","archived":false,"fork":false,"pushed_at":"2021-11-29T08:24:36.000Z","size":227,"stargazers_count":27,"open_issues_count":1,"forks_count":6,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-24T00:13:50.908Z","etag":null,"topics":["cli","dart","flutter"],"latest_commit_sha":null,"homepage":"https://pub.dev/packages/f","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/salkuadrat.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-11-11T19:46:16.000Z","updated_at":"2023-08-19T09:32:45.000Z","dependencies_parsed_at":"2022-08-26T14:11:26.983Z","dependency_job_id":null,"html_url":"https://github.com/salkuadrat/f","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salkuadrat%2Ff","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salkuadrat%2Ff/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salkuadrat%2Ff/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salkuadrat%2Ff/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/salkuadrat","download_url":"https://codeload.github.com/salkuadrat/f/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248120058,"owners_count":21050886,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","dart","flutter"],"created_at":"2024-07-31T19:00:54.986Z","updated_at":"2025-04-09T22:20:54.902Z","avatar_url":"https://github.com/salkuadrat.png","language":"Dart","readme":"# F\n\nA simple shortcut, command line interface (CLI) for Flutter to increase productivity and happiness.\n\n## Installation \n\nTo activate f CLI from your terminal.\n\n```bash \npub global activate f\n```\n\n### Windows Problem \n\nFor those of you who use Windows, you might experience a \"double run\" problem, where some f commands will be called twice. \n\nIt's a [known problem](https://github.com/dart-lang/pub/issues/2934) that comes with pub (and affected every CLI package in pub.dev).\n\nThe solution for this problem, for now, is to activate f locally, by first cloning the repository to your local drive.\n\n```bash\ngit clone https://github.com/salkuadrat/f\n```\n\nThen activate it with this command.\n\n```bash\npub global activate --source path \u003cf-location\u003e\n```\n\nAs example, if you run `git clone` on the root of drive D, then the activate command will be...\n\n```bash\npub global activate --source path \"D:\\f\"\n```\n\nThis kind of local activation will nicely handle the \"double run\" problem on Windows.\n\n## Create Project \n\nUse this command to create a Flutter project:\n\n```bash \nf c myapp\n```\n\nIt's the same as `flutter create myapp`.\n\nTo create Flutter project with some predefined dependencies, you can list them after the project name.\n\n```bash\nf c myapp path intl http provider\n```\n\nThe command above will generate `myapp` project in `myapp` directory, and automatically install all the required dependencies (for this example: path, intl, http \u0026 provider).\n\nYou can also pass other arguments, like project name, organization name, or specify the programming language used for the native platform.\n\n```bash \nf c -p myapp -o dev.flutter -a kotlin -i swift myapp path intl http provider\n```\n\n## Starter Project\n\nStarter project is a Flutter template that you can use for your new project.\n\nTo create a starter project:\n\n```bash\nf s myapp\n```\n\nBy default `f s` command will generate a starter project with Provider.\n\nIf you want starter project with other state management (BLoC, Cubit, GetX, or Riverpod), you can specify it in the `f s` command.\n\n```bash\nf s --bloc myapp\n\nf s --cubit myapp\n\nf s --getx myapp\n\nf s --riverpod myapp\n```\n\nYou can also pass additional arguments.\n\n```bash\nf s -p myapp -o dev.flutter -a kotlin -i swift myapp\n```\n\nTo see the structure of starter project generated by `f s` command, you can explore the examples below.\n\n[starter_bloc](starter_bloc)\\\n[starter_cubit](starter_cubit)\\\n[starter_getx](starter_getx)\\\n[starter_riverpod](starter_riverpod)\\\n[starter_provider](starter_provider)\n\nAfter creating a starter project with `f s`, you can use `f m` command to generate a new module inside the project, like:\n\n```bash\nf m posts\n```\n\nIt will auto-detect the state management in your project, and generate all the module files accordingly.\n\n## Run Project \n\nRun your Flutter project with this command.\n\n```bash \nf r\n```\n\nIt's the same as `flutter run`.\n\nTo run project as `flutter run --profile`:\n\n```bash \nf rp\n```\n\nTo run project as `flutter run --release`:\n\n```bash \nf rr\n```\n\nYou can add `-v` to the end of f command to display the complete diagnostic informations.\n\n```bash\nf r -v\n```\n\n## Build Project \n\nTo build executable for a Flutter project, use:\n\n```bash\nf b apk\n\nf b arr\n\nf b appbundle\n\nf b bundle \n\nf b web\n```\n\nTo build apk with split per abi:\n\n```bash\nf bs apk\n```\n\n## Other Commands \n\nThe complete list of f commands that you can use for Flutter.\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003cth\u003eCommand\u003c/th\u003e\n    \u003cth\u003eDescription\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ef a -d DEVICE_ID\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eAnalyzes the project’s Dart source code.\u003cbr\u003eAlias of \u003ccode\u003eflutter analyze\u003c/code\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ef as -o DIRECTORY\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eAssemble and build flutter resources.\u003cbr\u003eAlias of \u003ccode\u003eflutter assemble\u003c/code\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ef at -d DEVICE_ID\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eAttach to a running application.\u003cbr\u003eAlias of \u003ccode\u003eflutter attach\u003c/code\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ef b DIRECTORY\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eFlutter build commands.\u003cbr\u003eAlias of \u003ccode\u003eflutter build\u003c/code\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ef bs DIRECTORY\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eFlutter build commands with split per abi.\u003cbr\u003eAlias of \u003ccode\u003eflutter build --split-per-abi\u003c/code\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ef ch CHANNEL_NAME\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eList or switch flutter channels.\u003cbr\u003eAlias of \u003ccode\u003eflutter channel\u003c/code\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ef cl\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eClean a flutter project.\u003cbr\u003eAlias of \u003ccode\u003eflutter clean\u003c/code\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ef dev -d DEVICE_ID\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eList all connected devices.\u003cbr\u003eAlias of \u003ccode\u003eflutter devices\u003c/code\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ef doc\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eShow information about the installed tooling.\u003cbr\u003eAlias of \u003ccode\u003eflutter doctor\u003c/code\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ef drv\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eRuns Flutter Driver tests for the current project.\u003cbr\u003eAlias of \u003ccode\u003eflutter drive\u003c/code\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ef e\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eList, launch and create emulators.\u003cbr\u003eAlias of \u003ccode\u003eflutter emulators\u003c/code\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ef f DIRECTORY|DART_FILE\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eFormats Flutter source code.\u003cbr\u003eAlias of \u003ccode\u003eflutter format\u003c/code\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ef i -d DEVICE_ID\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eInstall a Flutter app on an attached device.\u003cbr\u003eAlias of \u003ccode\u003eflutter install\u003c/code\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ef l\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eShow log output for running Flutter apps.\u003cbr\u003eAlias of \u003ccode\u003eflutter logs\u003c/code\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ef t [DIRECTORY|DART_FILE]\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eRuns tests in this package.\u003cbr\u003eAlias of \u003ccode\u003eflutter test\u003c/code\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ef up\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eUpgrade your copy of Flutter.\u003cbr\u003eAlias of \u003ccode\u003eflutter upgrade\u003c/code\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003ccode\u003ef down\u003c/code\u003e\u003c/td\u003e\n    \u003ctd\u003eDowngrade Flutter to the last active version for the current channel. Alias of \u003ccode\u003eflutter downgrade\u003c/code\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e","funding_links":[],"categories":["Dart"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsalkuadrat%2Ff","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsalkuadrat%2Ff","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsalkuadrat%2Ff/lists"}