My debating society always has lots of new people, but then exam time rolls around and afterwards they don’t come back. So we wanted to track who had a real interest in debating to make sure we could keep these active.
The solution: A custom app in which we can add events, add people to events and sync this with Mailchimp. The app can then sort people into categories (came a few times but not in the last month, etc.) and add these as a target audience in Mailchimp so we can send a personalized campaign to them.
I decided to write this in Flutter, a framework from Google that promises near-native iOS and Android Apps. If you have ever developed a webapp with React or Angular, Flutter will feel instantly familiar.
First, I needed a model of the Mailchimp member API. It is a REST API, but since dart:mirrors doesn’t work in Flutter we can’t just derive classes from the JSON. Instead I generated it with a custom fork of Json to dart.
Building the App itself was fairly straightforward. While some things took longer than I would have hoped, I never encountered a point where something I wanted to do was impossible or different from how I expected it to work.