emavgl / oinkoin

Oinkoin is a flutter app for helping you managing your expenses. No internet required.
GNU General Public License v3.0
98 stars 6 forks source link

Feature Request: multi-currency support #94

Open xopclabs opened 4 months ago

xopclabs commented 4 months ago

Hi, as usual, thanks for the great app!

It would be nice to have multi-currency support for us who earn and save in one currency and mostly spend money other. Some key points I was thinking about:

For me it's probably the last (and first thing in priority!) thing I want in your tracker. Thank you very much for you work, once again

emavgl commented 4 months ago

Hi :)

No problem at all. I see the value behind this feature and it would be really amazing to have. However, I think there is a important blocker regarding this request and is

for balance value should be up to current exchange rate

The problem is that the app does not have internet connection and can't fetch the conversion rate and that in my opinion makes less useful having the expenses in multiple currencies.

BaalBla commented 4 months ago

Hi there, just adding my 2 cents to this, since I'm also thankful for the app && wolud like multi-currency support:

For my particular use case, full offline is still perfect. If I'm already putting all the data necessary to identify an expediture, filling the current currency exchange, again in my ahoes, would be just another field to enter. Then the app would add that to wherever and would graph it however it is to show the actual picture of the current total.

I understand that having it automatically filled is what we're used to. But for me, the whole idea of the app is that is "off grid"-ish (still on a connected phone) and personal. Otherwise, surely there are apps/services out there, eager to know as much from us as possible 🙃

TLDR: I fully agree to multi-currency, and won't mind to add exchanges by hand each time ")

xopclabs commented 4 months ago

Well, I don't think calling an API once a day would jeopardize our privacy, but I actually like your idea about manual entering. It could be a simple notification once a day something like "hey, enter today's exchange rates" and be done.

emavgl commented 3 months ago

I would like to keep the app completely offline, that means, also the App misses completely the permissions for any internet request. I know certain users do not care about it, but I think it is what makes Oinkoin different from the other apps, you can count that your that will never be sent anywhere.


On the feature itself, I think I did not fully understand your use case, can you describe it a bit better? Let's say that you do payments in both euro and dollars. Do you want to enter both euro and dollars, or when entering dollars, you would like to convert the value immediately to euro?

xopclabs commented 3 months ago

The latter: spending in different currencies and displaying in one base currency (though, in-place conversion without keeping original currency value is also okay)

It looks like the most straightforward way to implement it is to add multiple "accounts", one for each currency, where you can add conversions manually or convert currencies automatically using (manually entered) up-to-date exchange rate. When adding a spending, you either deduct money from a currency "account" or convert from other currency. When displaying total balance, you just aggregate balances of currency accounts, recalculating them in your base currency

I kinda want to jump in,learn flutter a little and implement it myself but don't have too much time on me right now...

emavgl commented 3 months ago

I see - if you are willing to insert the conversion ratio every time, are you aware that you could do write a mathematical expression when inserting the amount?

You could do for example: 50*1.2 where 1.2 could be your conversion rate. It should be already a workaround.

xopclabs commented 3 months ago

Oh, interesting! Not a replacement for a feature but indeed useful.

I guess, it would be great to send a notification once a day, for example (or any other custom range) to fill today's exchange rate, so you wouldn't have to enter it manually every time. Or, for example, save entered value until it's manually changed inside expense/income creation window