Structure
Trips, activities, transactions
A trip holds activities: dinner on Friday, the boat, the museum, the taxi back. Each activity has its own list of people and its own transactions, so someone who skipped the museum pays nothing towards it. An activity can also stand on its own, for a single dinner that is not part of any trip.
A transaction is an amount, what it was for, who paid and, if you like, the date it was paid. Several people can pay towards the same activity, and the app adds it all up. Add a person to an activity and they join the trip as well, so you never type a name twice.