We gathered in the morning at the designed location here in Milan. We had the usual drop rate for the participations, but the few people who stuck with us were amazing and really involved.

We started a bit late but managed to thanks to all the organizers, the local community (GDG Milan) and our local sponsor (my company, Crispy Bacon, a software house and not a fast-food chain :P) for this event.

Following our start, we revealed the hackathon theme, formed the teams and started the brainstorming phase.

The theme was quite thrilling: due to the fast growth of Flutter, build something amazing to help the Flutter developers stick together, connect and easily share stuff and learn together.

Some sort of a social platform for Flutter lovers, from Flutter lovers.

Ideas started to pour from the teams, we heard some pretty good, big, ambitious ideas. The other organizers and I went around the tables asking for the ideas, but I felt kinda bad in doing that because the teams were so busy that I didn’t want to interrupt.

Time for brainstorming

Then the coding session started.

Five hours.

For those big ideas.

I must be honest, I thought the teams would’ve had serious trouble to build a proof of concept of their ideas, but, they managed to build engaging demos and presentation in the end.

The teams coded, and coded, and coded. In the first hours the coding was tight, they barely paid attention to us roaming! I roamed asking people about their ideas and the tech stack they were planning to use, offering help and ideas wherever I could. They were so involved that started asking information after some hours, so I could take a look at their work in progress and starting to have an idea of what the apps were going to look like. There was one person per team who worked on graphics and user experience, this really made me happy because usually we devs don’t pay much attention to beauty for layouts, we much care about how beautiful the code is.

During the lunch break (we had the best quick lunch an Italian can ask for, greasy pizza!) we exchanged opinions and advice about patterns (I’m a hardcore BLoC fan, some of them used Provider, other Scoped Model, we shared opinions about that) and our ways to approach the diversity of screen sizes (I’ll write an article about my approach sooner or later) and other interesting stuff.

Greasy pizza for lunch

After a proper lunch and beers, the coding resumed.

Two hours and a half left.

Back to work guys!

Coding Flutter experiences

Time was running out, teams started to wrap up the fully implemented features and to decide which feature leave as a “to be continued”, and one person per team started creating some slides for the demo.

The first problems started popping out. A Firebase transaction was not running correctly. We solved the problem.

One hour left.

Problems with fetching images from Firebase Storage and displaying them in a ListView using StreamBuilder and FutureBuilder . We solved that too. Unbound heights, null children, we squashed everything.

5 minutes left.

Wrapping things up. We reminded the teams the time was almost up and they needed to commit everything to their Git and prepare the presentations.

Ding dong! Time’s up fellas!

Now for the presentations. Three groups, three apps.

First team: Flutter Quest

The idea is to build a quiz for Flutter developers. From Flutter developers. Every player can take a quiz answering questions created and validated from the community, learning from them. The players can also upvote and downvote questions, in order to increase the quality of the material. Questions have a ranking, players have ranking too, and there would be different difficulties from beginner to expert, for the different kinds of developers.

Tech for this was Flutter + Firebase FireStore + Firebase Google Authentication.

Second team: FlutterShirt

FlutterShirt wants to promote developers for their swag. FlutterShirt allows devs to share photos of themselves wearing Flutter t-shirts. The better photos get a higher ranking, hence more visibility. Together with the pictures, devs can promote their works through links and repositories. How can the app maintain the “Flutter T-Shirt only” policy? Well, performing some analysis on the image, of course!

Tech for this was Flutter + Firebase ML-Kit + Firebase Google Authentication.

Third team: SurFlutter

SurFlutter is some sort of wall post where developers can share doubts and problems asking for help, but also they can post their creations, code snippets, and interactive component previews. You see those previews, you tap on them and you see the snippet used for it. A ranking system is expected, too, in order to get the most voted posts more visibility, hence more impact in the community. And, as if it isn’t already enough, the idea is to provide a job matcher too, in order to help developers find Flutter jobs, which still are not so common yet.

Tech for this was Flutter + Firebase FireStore + Firebase Google Authentication.

Presentations

We waited for our turn for live streaming the team’s presentations. After some issues with sound, we went live!

The first two teams presented their projects smoothly and elegantly. Clearly, some stuff was mocked, but it’s a proof of concept right? There’s no need to have a fully implemented Google sign-in for a tech demo, get to the juice. Some of the teams did that, some, unfortunately, did not.

The third team had some problems with the video, and they had to present their app in a funny way, holding their computer in front of the camera to show slides, and alternating with a physical phone for the live demo. It was really funny to see, but it was a demonstration of how nothing could stop a team to share ideas with the rest of the world!

I’m not going to write a personal review for each of the teams, so I’d just say that our hub elected SurFlutter as the winner, and we submitted their project for the global voting!

After the hackathon

Project submitted, now for the networking part. People discussed their ideas and experiences, their projects which they’re working on. Two guys are working to open a startup with their product written in Flutter! Those same guys came from very far from Milan, telling me that this was the only place they could attend to the hackathon. For them, and I agree with every and every single word with them, this was a must event because now, more than ever, they (we) need to gather and share and confront with others. Others were students, others were self-made developers, others were full-time developers.

Wrapping up

That’s it, this is pretty much everything from the day. We had a good time and had opportunities to meet with other Flutter enthusiasts.

We all think we should have more events like this, and I hope we will.

I also encourage people from other hubs to share their experience, I think that’s a good idea to share stories about this first important big scale event, and I’d love to read other stories like mine.

I’ll leave you here with the repos from the teams, and the presentation video of the hub winner!

That’s all for now!

I hope you’ve enjoyed this little “personal parenthesis”. I wanted to share this experience and, as I said, I hope others will too.

Thanks to Nash and the other guys at Flutter Community for letting us participate to something this big!

See you soon, Flutter people!