Releases: DevsWithDodo/dodo_app
Releases · DevsWithDodo/dodo_app
4.1.0
Redesigns
- The purchase and payment FABs now have descriptions to clarify the distinction between them.
- Purchases and payments are now modified through the same page as they are created. The dialog used before has been removed.
- Profile settings and customization settings are separated for better UX.
- On tablet sized screens the right hand side of the customization settings is reserved for theme previews.
- Custom amounts for purchases are handled via a new layout using text fields for either setting the amount or the percentage for every receiver.
Refactors
- Custom amounts for purchases use a custom class
AmountDivisionto handle the functionality of the new layout.
4.0.6
Redesigns
- Reactions: Instead of a separate dialog, reactions can now be added via the bottom dialog shown on tap of an entry.
- Necessary payments:
- The copy-pastable text now includes payment methods of the payees.
- Small redesigns throughout the page
Fixes
- Fixed an issue where when adding multiple guests to the group at the same time, text fields would reset when scrolling them away.
New
- Recommended payments on the payment page now synchronize with the selected payer.
4.0.5
Redesigns
Balancescard- Incorporates all functionality previously found in the
Memberscard. - Added a button for adding new members to the group. This has the same design as the members, clarifying the tappability of the members. This button is only visible to group admins.
- If more than 7 members in the group, the list collapses showing 5 members. The current member is always shown. A button to expand and collapse the members is shown below the last member/add member button.
- The necessary payments button's text was changed to "settle up". It was changed to an
OutlinedButtonwith an icon and was moved below the title of the card to avoid cluttering of buttons for admins and groups of more than 7 members. - The currecy picker is smaller and narrower than before.
- Incorporates all functionality previously found in the
Historycard- The button to show all entries is shown regardless of how many purchases or payments the current member sees. This ensures access to the
AllHistorypage so that any member is able to see/edit any other member's purchases. This is mostly important for groups managed by a single person. - The tab to choose between showing purchases or payments was replaced by a
SegmentedButtonto clarify that those are not normal buttons but tabs.
- The button to show all entries is shown regardless of how many purchases or payments the current member sees. This ensures access to the
AllHistorypage- The sliver for the filter got redesigned so that it stays staticly below the
AppBar. - The filter now automatically submits without the need of pressing a button.
- The sliver for the filter got redesigned so that it stays staticly below the
Statisticspage:- Statistics are shown as bar charts instead of line charts.
- The data can be arranged daily, weekly, monthly or yearly. If there is not enough horizontal space, the chart becomes scrollable.
- The
GroupSettingstab of theMainpage has been completely removed as all functionality was integrated into the first tab of theMainpage. - The icons and names of the tabs of the
Mainpage changed to better represent their new roles. PaymentMethodscard:- Payment methods are now autosaved instead of submitted manually improving UX.
JoinGrouppage:- The button to change to the
CreateGrouppage is shown on top so that it is not confused with the submit button. - The
TextFieldfor nickname in group is initially not shown. - After copying or scanning the invitation the group's information is shown in a container to allow the user to make sure they are joining the right group.
- If the group has guests, the joinee can decide to take over one of them. If they choose that neither guest is them, the nickname in the group can be chosen via a
TextField.
- The button to change to the
- Background color was added to
PurchaseEntrysPaymentEntrys andShoppingListEntrys for every state. This is to clarify that the entries can be tapped.
New
AddMemberpage: A new page collecting the ways to add members to the group: invitations and guests- The invitation page shows the QR code of the group and a share button.
- The add member page allows the user to add multiple guests at the same time. The word "guest" is not used anymore as it lead to confusions.
GroupInfocard shown below theStatisticscard on the main page. It collects all the information about the group and allows it to be boosted or deleted (by an admin).- Utility extension methods for the
DateTimeclass to find specific dates. Eg. first of month, first of week, midnight, noon etc. - Share
IconButtonin theAppBarof theMainpage which shows the QR code and a share button.
Refactors
- QR codes now encode the website of the invitation page (
https://dodoapp.net/join/<code>) instead of just the invitation code. This allows the code to be scanned by any QR code scanner not just the one inside the app. - Statistics are now represented as classes instead of maps.
- Removed all unused translation keys from the assets.
- The Material 3 guidelines have changed regarding the surface colors. These changes have been integrated into the app. The currently used Flutter version did not implement all the changes so a few temporary fixes had to be made. The package providing the dynamic themes also lacks the new surface colors. This leads to possible issues for some themes.
3.3.1
3.3.0
Refactor:
- Moved to a more consistant folder structure.
- Bootstrapping with various providers, initializers:
AppConfigProvider: ProvidesisFirebasePlatformEnabled,isIAPPlatformEnabled,isAdPlatformEnabled. These were global variables before.AppThemeProvider: Created from oldAppStateProvider. Provides thethemeName. SetsthemeNameand dynamic themes on initialization.InviteUrlProvider: Provides theinviteUrl. Existed before. Under the hood it uses theapp_linksinstead of theuni_linkspackage, as it was not maintained.ExchangeRateInitializer: Gets the exchange rates from the server and stores it in the memory.UserProvider: The oldAppStateProviderwithout the theme. The current group is still provided through it.NotificationInitializer: InitializesFirebaseandFlutterLocalNotificationson platforms which support notifications.IAPInitizalier: Initializes the in-app-purchases.ScreenSizeProvider: Renamed version of theScreenWidthProvider, a wrapper for theMediaQuery, which makes it more usable for the app.SupportedVersionInitializer: Gets if the current version is supported by the server, if it is not, shows theVersionNotSupportedPage.
- Added
Currencyclass. Now currencies are represented in the code as class instances, not es currency code strings. - Calculator refactored, using enums and helper classes instead of strings for the operators and numbers.
- Reactions: enums for distinguishing between purchase, payment and shopping request reactions. More consistent algorithms for enumerating and ordering reactions. Cleaner code for sending and showing reactions.
- Shopping list: cleaner code.
Redesigns:
ShoppingListEntrys have new design, which are more similar toPurchaseEntrys andPaymentEntrys.- For dual color themes primary, secondary and the container colors are shown in the
ThemePicker. - The calculator's buttons animate and have haptic feedback in a similar way to the pin pad.
- The history filter is now a sliver over the purchases/payments. This makes it harder to miss and easier to use.
- Necessary payments are shown in a separate page instead of a dialog. This removes questionable design (as dialogs on top of dialogs), and adds more space to work with.
- Added label for the copy button.
- Added new button for going straight to the payment page.
Fixes:
- Fixed
PinVerificationDialognot showing up at all.
New:
- Added one new color theme.
- Added theme preview. When long pressing on a color theme, a popup is shown with a home screen showing the selected theme. The popup is shown as long as the user keeps the long press active.
- Removed the personalised ads page from the sign up process, instead a pop up will be shown when the user first opens the app after their trial period is over.
- After the user sees
TrialEndedDialog, the theme will change to the default green, and the user gets the option to go to the shop and reclaim the themes. - Now the icons next to the brightness slider in the color theme picker are also clickable and will set the brightness aswell.
Also bumped dependencies.
3.2.7
3.2.6
3.2.5
3.2.4
- Fixed issue with adding payment method again.
- Refactoring theme name, using enum instead of string and made the code simpler.
- Redesigned purchase and payment text fields: the iconbuttons for currency, category and the calculator got their own buttons instead of being inside the textfields.
3.2.3
Fixes:
- Fixed issue where QR scanner sometimes crashed
- Fixed issue where currency selector's background color was transparent
- Fixed issue where pin confirm dialog would show up right after registration
- Fixed issue where modal dialogs from the
MainDialogBuilderwere not centered - Fixed issue where keyboard disappeared when trying to add a payment methods
- Fixed issue where checkmark in
RecommendedPaymentswas the wrong color - Fixed issue where adding a payment method didn't refresh group members
- Fixed issue where app would crash when user deletes all its data
Improvements:
- Sign up pin page: "Set pin" instead of pin
- Join group page easier to understand
- Removed + and - icon from the custom amounts dialog, added hint text
- Necessary payments prettier, added hint text
- Boost group is explained better
- Added hint text for group members
- Necessery payments where the amount is smaller than the currencies threshold are not shown anymore
- Removed warning that person would not see payment in history (as it was not true anymore)