Inspiration

I had recently taken an interest in programming(with no prior experience), and decided to venture into mobile apps development. I did not know anything about Flutter or Dart, all I knew was that it is an open source project sponsored by Google and I thought to myself this is it. Fast forward, I am one of the beneficiaries of the Flutter teams' sponsorship of "Flutter Apprentice", and a few days after reading this awesome book, I decided to snoop around the Flutter webpage and there I saw an advertisement for a Flutter Hackathon. I checked it out and thought to myself this couldn't have been at a better time. I realized immediately this was an opportunity for me to practice the concepts I had read in the book, and also to challenge myself, learn new things and push my limits.

What it does

It is a progressive web application that functions as a slide puzzle, incorporating interactive and responsive animations using Rive animations. It also allows a user to share their score to Twitter and Facebook.

How I built it

I built it by taking inspiration from the source code and modifying it to suit my needs. The app is built using Bloc pattern. It's structured in a modular way that allows for easy modification and scaling.

Challenges I ran into

I ran into many many challenges. Most of which stem from my inexperience. This is my first experience using Bloc and working on a project of such magnitude and complexity. Although I worked hard to learn enough to be productive, there are still a number of things I would have loved to incorporate into the app but lack the adequate knowledge and skills to implement them.

Accomplishments that I'm proud of

These last couple of months have been an amazing experience for me. I've learned lots of things I couldn't imagine myself doing a month ago. I'm proud of myself for persevering and not giving up when it got tough. To be able to imagine this project and build it the way I imagined it is truly a wonderful accomplishment for me.

What I learned

I learned how to build responsive progressive web apps, implement App Localizations, incorporate audio into an app, implement animations using Rive, commit to and push to a Git repository, structure an app in a modular way that makes it easy to reason about, modify and extend. Furthermore, I've come to better appreciate concepts such as BuildContext, initState, dispose, async functions, and code commenting. In addition, I've been introduced to new concepts such as implicit and explicit animations, animated widgets, and some new classes in both Flutter and Dart. And lastly, I learned to be confident in myself and in the face of challenges.

What's next for Dash Puzzle

There are many ideas I have about this project that I've not been able to implement. I intend to improve on this iteration in future.

Built With

Share this project:

Updates