Flutter fitness/workout app for wger

Overview

Mobile app for wger Workout Manager

wger is a free, open source flutter application that manages and tracks/logs your exercises and personal workouts, weight and diet plans. This is the mobile app written with Flutter, it talks via REST with the main server.

If you want to contribute, hop on the Discord server and say hi!

Installation

Get it on Google Play

Development

1

Install the wger server, the easiest way is starting the development docker-compose: https://github.com/wger-project/wger

Alternatively, you can use one of our test servers, just ask us for access.

2

Install Flutter, all its dependencies and create a new virtual device: https://flutter.dev/docs/get-started/install.

The app currently uses flutter 2.5

3

Create a new file wger.properties in android/fastlane/envfiles:

WGER_API_KEY=123456

To just run/develop the app it only needs to have any value for WGER_API_KEY, but you need a correct value if you want to register via the app. For this you need to allow (a probably dedicated) user on the wger server to register users in its behalf. For this, generate an API KEY by visiting http://localhost:8000/de/user/api-key on your local instance and then run python3 manage.py add-user-rest theusername

You can later list all the registered users with: python3 manage.py list-users-api

4

Start the application with flutter run or use your IDE (please note that depending on how you run your emulator you will need to change the IP address of the server)

You can run the tests with flutter test

Translation

Translate the app to your language on Weblate.

translation status

Contact

Feel free to get in touch if you found this useful or something didn't behave as expected. We can't fix what we don't know about, so please report liberally. If you're not sure if something is a bug or not, feel free to file a bug anyway.

License

The application is licensed under the GNU Affero General Public License 3 or later (AGPL 3+) with an app store exception.

As an additional permission under section 7, you are allowed to distribute the software through an app store, even if that store has restrictive terms and conditions that are incompatible with the AGPL, provided that the source is also available under the AGPL with or without this permission through a channel without those restrictive terms and conditions.

The initial exercise and ingredient data is licensed additionally under one of the Creative Commons licenses, see the individual exercises for more details.

Comments
  • Preselect correct time in session form

    Preselect correct time in session form

    The session form (last page in the gym mode) always pre fills the current time when editing the start or the end time. It should of course use the values present in the field

    good first issue 
    opened by rolandgeider 25
  • Add app store exception to license

    Add app store exception to license

    In the license for Feeel, I use the AGPL with an app store exception. This allows me to potentially release the app on the iOS AppStore in the future, which has terms incompatible with the GPL and AGPL.

    If you would also potentially like to release on iOS in the future, adding this exception might be helpful.

    I use these two sentences to my LICENSE file:

    Code is licensed under the GNU AGPL v3 or any later version with an app store exception, unless specified otherwise. See COPYING for its content.

    As an additional permission under section 7, you are allowed to distribute the software through an app store, even if that store has restrictive terms and conditions that are incompatible with the AGPL, provided that the source is also available under the AGPL with or without this permission through a channel without those restrictive terms and conditions.

    opened by 12people 21
  • Add masonry type interface to gallery

    Add masonry type interface to gallery

    Having a masonry type of interface in the gallery would probably be an improvement, at the moment the pictures are shown as squares and details at the top and bottom are cut out. We could try adding a staggered grid view and see if it really is an improvement

    good first issue 
    opened by rolandgeider 18
  • Improve Login Page interface

    Improve Login Page interface

    Use case

    Currently the Login Page is shabby in terms of design. It is currently usable but having a better visual appeal would be better.

    Proposal

    Here's an example of how it might be looking, not exactly but in terms of simplicity of interface. We will use the app color theme and logo and implement it according to our app.

    image-5.png

    opened by AmanNegi 17
  • Add minimum required server version

    Add minimum required server version

    Use case

    At the moment, we have to be very careful with changes, as the app might be incompatible with a newer version of the server.

    Proposal

    Add a new endpoint in the server, perhaps required_version that returns a version (we can use get_version() to generate it). The mobile app would load this on startup and compare its current version with the one downloaded. If the app's version is less than the required one, it would inform the user that he needs to update

    opened by rolandgeider 17
  • [BUG] Phone crash

    [BUG] Phone crash

    Must be further investigated

    In Gym mode when entering values, the app crashes relatively often (sometimes up to 3x per hour).

    These crashes look like that the app freezes and after about 20 seconds my phone completely shuts down. As far as I can tell so far, it happens when I do things very quickly.

    I assume it will be a null error, probably when accessing something the server hasn't respondet to yet. I hope it will be solved by #18 . But until then including sentry is probably a good idea.

    https://sentry.io/pricing/ https://pub.dev/packages/sentry

    bug 
    opened by M123-dev 14
  • Change AboutDialog to Full Screen Page

    Change AboutDialog to Full Screen Page

    Use case

    Right now, on clicking About Wger we get a dialog which looks like this:

    Screenshot_2022-10-15-16-51-18-42_b440cc4bcc22d07983183a7f8cd04ac8.jpg

    Dialogs are fine is the information is short and precise. The content we are currently showing is too large to display in a dialog.

    Proposal

    I would suggest to create an About Page and simply show all this content there, for the simplicity of interface.

    Screenshot_2022-10-15-16-57-48-11_40deb401b9ffe8e1df2f1cc5ba480b12.jpg

    Something like this would do just fine.

    opened by AmanNegi 9
  • Can't use a wger instance running on a sub-url

    Can't use a wger instance running on a sub-url

    Steps to Reproduce

    1. Install a wger instance at a sub-url, like https://example.com/wger. I keep in mind that such type of installation is discouraged, but I'm OK with it for my personal usage.
    2. Try to login via mobile app.
    3. Get FormatException: Unexpected character (at character 1) <!DOCTYPE HTML PUBLIC ....

    Expected results:

    Successful login.

    Actual results:

    A FormatException error message.

    Investigation

    I inspected my Apache 2 webserver logs and it turns out that the mobile app just removes sub-url (tries to access server.name/api/v2/login instead of server.name/wger/api/v2/login) and that's why gets error 404 instead of a json with a response. To fix the problem, we need to alter makeUri function (see https://github.com/wger-project/flutter/blob/master/lib/providers/helpers.dart#L20). I'm not a flutter developer, I don't know Dart and I don't have time to setup a development environment, but I suppose that the following fix should work:

     ]) {
       final Uri uriServer = Uri.parse(serverUrl);
     
    -  final pathList = ['api', 'v2', path];
    +  final pathList = [uriServer.path, 'api', 'v2', path];
       if (id != null) {
         pathList.add(id.toString());
       }
    
    

    Created a PR https://github.com/wger-project/flutter/pull/192. @rolandgeider Please consider reviewing and merging it. Thanks!

    opened by kovdan01 9
  • Use flutter_lints package

    Use flutter_lints package

    From https://flutter.dev/docs/release/breaking-changes/flutter-lints-package

    The package:flutter_lints defines the latest set of recommended lints that encourage good coding practices for Flutter apps, packages, and plugins. Projects created with flutter create using Flutter version 2.3.0-12.0.pre or newer are already enabled to use the latest set of recommended lints. Projects created prior to that version can upgrade to it with the instructions in this guide.

    Since this project was created before that package was available, we need to migrate manually. Note that at the moment the app can't be build with flutter 2.5 due to https://github.com/google/charts/issues/678

    opened by rolandgeider 9
  • Translate exercise filter headers #208

    Translate exercise filter headers #208

    Proposed Changes

    • Translate exercise filter headers #208
    • For those two translations for Category and Equipment I need to add in backend app. translations, see https://github.com/wger-project/flutter/issues/208#issuecomment-1279041749

    Related Issues (if applicable)

    Please check that the PR fulfills these requirements

    • [ ] Set a 100 character limit in your editor/IDE to avoid white space diffs in the PR
    • [ ] Tests for the changes have been added (for bug fixes / features)
    • [ ] Added yourself to AUTHORS.md
    opened by sandimilohanic 8
  • Show measurement unit in the add form

    Show measurement unit in the add form

    When adding a new measurement we could present the unit in the value field in the form, to make it more clear, so e.g.: "Value (cm.)". The unit can be obtained from the corresponding measurement category

    image

    good first issue 
    opened by rolandgeider 8
  • Update theme.dart

    Update theme.dart

    The primary is deprecated and should not be used. We can change that to foreground color

    Proposed Changes

    Related Issues (if applicable)

    Please check that the PR fulfills these requirements

    • [x] Set a 100 character limit in your editor/IDE to avoid white space diffs in the PR
    • [x] Tests for the changes have been added (for bug fixes / features)
    • [x] Added yourself to AUTHORS.md
    opened by raman04-byte 0
  • Gallery Screen

    Gallery Screen

    Use case

    The Gallery Screen is in need of a prompt for users.

    gallery

    Proposal

    Since the Gallery is included on the main tab bar - the initial screen should have some sort of prompt for users to know what kind of media they should be uploading to this screen. I am not too sure personally what pictures would be best here, whether it's progress photos of myself, the food I eat or anything else that could relate to this app. I believe a simple text prompt of what wger is looking for users to upload on this screen would go a long way.

    opened by jfrys 1
  • Rest Timer

    Rest Timer

    Use case

    Currently, the rest screen between sets is more of a stopwatch - I believe having a countdown timer here would be more intuitive.

    Proposal

    Having a timer between sets allows users to set their preferred rest time for each exercise, and allows users to focus on other things while resting instead of watching the stopwatch time go up. This will allow users to do whatever they need to do between sets and be notified by an alarm/chime once their timer has hit zero to begin their next set.

    opened by jfrys 1
  • Diagram muscle highlighting

    Diagram muscle highlighting

    Steps to Reproduce

    Tapping on various exercise items, some of the exercises do not have the proper highlighting showing the muscles and secondary muscles that are trained.

    Expected results: highlighted

    Actual results: not highlighted

    Logs
    opened by jfrys 1
  • Google Sign In

    Google Sign In

    Use case

    Implement Google Sign In

    Proposal

    Currently, sign in by username/email is the only method of authentication. To be up to speed with other popular apps, wger should have at least Google Sign In as an alternative to speed up the registration process. I have provided a link to the google sign in package below to integrate.

    https://pub.dev/packages/google_sign_in

    opened by jfrys 1
  • Video in gym mode

    Video in gym mode

    Proposed Changes

    • Added video in gym mode

    Related Issues (if applicable)

    • #296

    Please check that the PR fulfills these requirements

    • [x] Set a 100 character limit in your editor/IDE to avoid white space diffs in the PR
    • [ ] Tests for the changes have been added (for bug fixes / features)
    • [x] Added yourself to AUTHORS.md
    opened by mohammadrafigh 2
Releases(1.5.1)
  • 1.5.1(Dec 6, 2022)

    πŸš€ Features:

    • Allow using self signed certificates #116
    • addded measurements to dashboard, categories card refactor by @bujdy in https://github.com/wger-project/flutter/pull/250
    • Refactor login page as per issue #101 by @AmanNegi in https://github.com/wger-project/flutter/pull/255
    • Add MasonryGridView to the Gallery by @Aaliya-Ali in https://github.com/wger-project/flutter/pull/245
    • Change AboutDialog to separate page #265 by @AmanNegi in https://github.com/wger-project/flutter/pull/279
    • Improved Login Interface by @AmanNegi in https://github.com/wger-project/flutter/pull/274

    πŸ› Bug Fixes:

    • Update envfiles path by @mohammadrafigh in https://github.com/wger-project/flutter/pull/298

    🧰 Maintenance:

    • improve Portuguese translation by @e-meyer in https://github.com/wger-project/flutter/pull/295
    • Gallery and workout plans tests by @bujdy in https://github.com/wger-project/flutter/pull/289

    ✨ New Contributors

    • @bujdy made their first contribution in https://github.com/wger-project/flutter/pull/250
    • @AmanNegi made their first contribution in https://github.com/wger-project/flutter/pull/255
    • @Aaliya-Ali made their first contribution in https://github.com/wger-project/flutter/pull/245
    • @e-meyer made their first contribution in https://github.com/wger-project/flutter/pull/295
    • @mohammadrafigh made their first contribution in https://github.com/wger-project/flutter/pull/298

    Full Changelog: https://github.com/wger-project/flutter/compare/1.5.0...1.5.1

    Source code(tar.gz)
    Source code(zip)
    app-release.aab(30.66 MB)
  • 1.5.0(Oct 11, 2022)

    πŸš€ Features

    • Implement ui for exercises list by @chenyair in https://github.com/wger-project/flutter/pull/75
    • feat: completed image section in Add Excercise Screen by @agwanyaseen in https://github.com/wger-project/flutter/pull/124
    • feat: Form Related Changes in Add Exercise Screen by @agwanyaseen in https://github.com/wger-project/flutter/pull/125
    • Update README.md by @chineduG in https://github.com/wger-project/flutter/pull/177
    • Splash Screen Error Fix by @Tolu007 in https://github.com/wger-project/flutter/pull/199
    • Fix sub-url handling by @kovdan01 in https://github.com/wger-project/flutter/pull/192
    • added left Hindi translations in app_hi.arb by @HeyAvi in https://github.com/wger-project/flutter/pull/205
    • Refactored Deprecated Code by @adityar224 in https://github.com/wger-project/flutter/pull/241
    • added code: string? in ingredient.dart by @skdotv in https://github.com/wger-project/flutter/pull/242
    • Add measurement unit to entry form by @floodoo in https://github.com/wger-project/flutter/pull/236
    • Removing Bug which allows users to enter whitespace which is not accepted as a valid username by @JustinBenito in https://github.com/wger-project/flutter/pull/237
    • Added Bahasa Indonesia language translate by @nenzan in https://github.com/wger-project/flutter/pull/253
    • Exercise crowdsourcing by @rolandgeider in https://github.com/wger-project/flutter/pull/190

    New Contributors

    • @chenyair made their first contribution in https://github.com/wger-project/flutter/pull/75
    • @chineduG made their first contribution in https://github.com/wger-project/flutter/pull/177
    • @Tolu007 made their first contribution in https://github.com/wger-project/flutter/pull/199
    • @kovdan01 made their first contribution in https://github.com/wger-project/flutter/pull/192
    • @HeyAvi made their first contribution in https://github.com/wger-project/flutter/pull/205
    • @adityar224 made their first contribution in https://github.com/wger-project/flutter/pull/241
    • @skdotv made their first contribution in https://github.com/wger-project/flutter/pull/242
    • @floodoo made their first contribution in https://github.com/wger-project/flutter/pull/236
    • @JustinBenito made their first contribution in https://github.com/wger-project/flutter/pull/237
    • @nenzan made their first contribution in https://github.com/wger-project/flutter/pull/253

    Full Changelog: https://github.com/wger-project/flutter/compare/1.4.2...1.5.0

    Source code(tar.gz)
    Source code(zip)
    app-release.aab(30.60 MB)
  • 1.4.2(Apr 14, 2022)

    πŸš€ Features:

    • Barcode scanner by @AdoHal in https://github.com/wger-project/flutter/pull/115
    • exercise videos by @rolandgeider in https://github.com/wger-project/flutter/pull/129

    πŸ› Bug Fixes:

    • ...

    🧰 Maintenance:

    • [ImgBot] Optimize images by @imgbot in https://github.com/wger-project/flutter/pull/130
    • Added translation into Japanese by @WMs784 in https://github.com/wger-project/flutter/pull/132

    New Contributors

    • @AdoHal made their first contribution in https://github.com/wger-project/flutter/pull/115
    • @WMs784 made their first contribution in https://github.com/wger-project/flutter/pull/132
    • @dependabot made their first contribution in https://github.com/wger-project/flutter/pull/136

    Full Changelog: https://github.com/wger-project/flutter/compare/1.4.1...1.4.2

    Source code(tar.gz)
    Source code(zip)
    app-release.aab(29.86 MB)
  • 1.4.1(Jan 16, 2022)

    πŸš€ Features:

    • ...

    πŸ› Bug Fixes:

    • fix: Render Overflow issue in Dashboard screen by @agwanyaseen in https://github.com/wger-project/flutter/pull/122
    • Fix installing on Android 12 by @TheLastProject in https://github.com/wger-project/flutter/pull/123

    🧰 Maintenance:

    • Updated translations
    • Made available on fdroid #84

    New Contributors

    • @Poussinou made their first contribution in https://github.com/wger-project/flutter/pull/118
    • @agwanyaseen made their first contribution in https://github.com/wger-project/flutter/pull/122
    • @TheLastProject made their first contribution in https://github.com/wger-project/flutter/pull/123

    Full Changelog: https://github.com/wger-project/flutter/compare/1.4.0...1.4.1

    Source code(tar.gz)
    Source code(zip)
    app-release.aab(27.47 MB)
  • 1.4.0(Nov 9, 2021)

    πŸš€ Features:

    • Allow users to give meals a description #89
    • Allow users to delete workout log entries #97
    • Allow users to log individual ingredients/products #114
    • New loading animation during first run #99
    • Added reference from log to meal #105

    πŸ› Bug Fixes:

    • Improve usability for workout logs #91
    • Preselect correct time in session form #93
    • Fixed infinite loader bug during auth #96
    • Fix error not showing up in auth screen #102
    • Fix for chart legend bug #112
    • Fix for RiR slider #113

    🧰 Maintenance:

    • Better linting #87 #98
    • Improve automatic build system for publication on play store
    • Notify the user when saving entries in gym mode #92
    • Consistenly display nutritional values #94
    • Add minimum required server version #29
    • Make order field of sets required #109

    πŸ‘¨πŸ»β€πŸ’» New contibutors:

    • @ThilinaTCH made their first contribution in https://github.com/wger-project/flutter/pull/89
    • @TomerPacific made their first contribution in https://github.com/wger-project/flutter/pull/93
    • @infiniteoverflow made their first contribution in https://github.com/wger-project/flutter/pull/96
    • @himikat89 made their first contribution in https://github.com/wger-project/flutter/pull/99
    • @sandimilohanic made their first contribution in https://github.com/wger-project/flutter/pull/94
    • @TaarnStar made their first contribution in https://github.com/wger-project/flutter/pull/97
    • @AxelBlaz3 made their first contribution in https://github.com/wger-project/flutter/pull/102
    • @TomasKonkol made their first contribution in https://github.com/wger-project/flutter/pull/114
    Source code(tar.gz)
    Source code(zip)
    app-release.aab(27.42 MB)
Owner
wger Project
Self hosted FLOSS fitness/workout, nutrition and weight tracker
wger Project
A Flutter Workout app UI design

workout_app A workout Flutter application UI Getting Started This project is a starting point for a Flutter application. A few resources to get you st

Ibrahim Usman 31 Oct 2, 2022
A cross-platform Flutter home workout app that respects your privacy. THIS IS A GITLAB MIRROR, file issues and contribute there.

Feeel Feeel is an open-source workout app for doing simple at-home exercises. This is a rewrite of the original app in Flutter, to make development ea

null 27 Dec 26, 2022
Knuffiworkout - Workout app written using Flutter and Firebase

Knuffiworkout A workout app for Android written in Flutter and Firebase. Download on the Play store Getting Started Set up Flutter with the editor of

null 51 Oct 30, 2022
Workout Planner App in Flutter.

flutter_workout_planner Workout Planner application in Flutter for an ongoing interview. Getting Started Dependencies used: Riverpod - Manage the reac

Angjelko Miloshevski 4 Dec 17, 2022
Flutter-Week-Plans - Make Flutter Weekly plans with workout plans acc. to your choice.

Getting Started Flutter-Plans in a Workout Gym App with weekly added favourite plans. Images and Gif are taken randomly from Internet and are not arra

Yashu Agrawal 0 Jan 3, 2022
Boozin fitness - A sample app to that will pull data from Google Fit to get the steps count and calories burned

boozin_fitness A sample app to that will pull data from Google Fit to get the st

Abhishek Kumar Gupta 1 Nov 23, 2022
Fitness Tracking App UI

Fitness Tracking App UI Support me on Patreon Watch on Youtube A new Flutter project. Getting Started This project is a starting point for a Flutter a

Syed Abdullah 11 Oct 27, 2022
Challenge friends on fitness goals

Fitness Challenge Pursuing your fitness goals is fun together with friends. Challenge your friends for daily activities and see who's leading. You can

Gireesh Puthumana 25 Oct 8, 2022
PrivateFit is an E2E encrypted fitness application built on the atPlatform.

Private Fit Now for a little internet optimism Generated by the at_app CLI and Very Good CLI ?? A secure fitness app. Getting Started ?? This project

The Atsign Foundation 6 Oct 31, 2022
A mobile application for both android and ios made for work out and fitness purpose

It's a mobile application for both android and ios made for work out and fitness purpose with many features you can read about here, but it can be used under all subject you want, well architected code and organized !

Gwhyyy 20 Dec 18, 2022
Courses-app-flutter - Flutter App - Courses App UI

Courses App A new Flutter project. Design: https://dribbble.com/shots/16149674-Course-learning-app-ui-ux/attachments/8004958?mode=media Getting Starte

Juan Daniel Rios Ramirez 0 Jan 2, 2022
Taxi App Client App - Taxi Rouge App With Flutter

taxi_rouge_app A new Flutter application. Getting Started This project is a star

Bouchida Youssef 3 Jun 11, 2022
Book app - Book app UI with dark mode enabled, also this app created using the Flutter 2.5 skeleton template

BOOK APP Book app UI with dark mode enabled, also this app created using the Flu

GΓΌlsen Keskin 5 Nov 9, 2022
A Flutter app to show how to implement in-app purchase using the in-app-purchase package

Flutter in-app purchase A Flutter project to show to implement in-app purchase using the in_app_purchase package Simple UI but it's okay ?? ?? WhatsAp

AntΓ³nio Nicolau 5 Jul 26, 2022
This is a MVP our app's. The app get the song's list on firebase and display then you can be listen App features.

music_app Requirements: flutter version 3.0.3 Dart 2.17.5 Firebase CLI 11.1.0 flutter sdk: >= 2.15.1 < 3.0.0 flutter dependentcies: http: 0.13.4 mvvm:

LΓͺ Hα»“ng Minh 3 Aug 2, 2022
This is a JazzCash UI clone ( Modern Wallet App in Pakistan), implementing modern app bar animmation. One can take a concept of making app bar with animation.

jazzcash_ui This is a JazzCash UI clone ( Modern Wallet App in Pakistan), implementing modern app bar animmation. One can take a concept of making app

null 9 Nov 27, 2022
πŸ†™πŸš€ Flutter application upgrade/ Flutter App Upgrade /Flutter App Update/Flutter Update / download Plug-in

???? Flutter application upgrade/ Flutter App Upgrade /Flutter App Update/Flutter Update / download Plug-in (with notice bar progress), supports full upgrade, hot update and incremental upgrade

PengHui Li 344 Dec 30, 2022