Introduction

Do you love jigsaw puzzles? Do you time yourself solving jigsaw puzzles? Ever wanted an easy way to see if you are getting faster? Or just wanted a record of all the puzzles you’ve solved and how long they took?

Well, this is the app you’ve been waiting for!

Background

Jigsaw puzzling is a hobby I have enjoyed for many years and for a long time I just solved puzzles for fun. A few years ago however, I became aware of speed puzzling - which is where you attempt to solve a jigsaw puzzle in as quick a time as possible - and I wanted to know just how fast at puzzling I actually was!

I started to time my jigsaw puzzle solves, using the built-in stopwatch on my phone. But this meant I had to keep a separate record of all of my times, which of course, ended up being written on scraps of paper that eventually got muddled up or lost. It was clear that my so-called record, was unreliable and messy.

I realised that just using a stopwatch wasn’t good enough. I desired a way, to not just time my jigsaw-puzzling, but to have a way to store my puzzle times. I wanted an easy way to keep track of how I was doing, without me having to think about it. I felt I should be able to pause a half-finished puzzle timing session and come back to it when I was ready to and not find that I’d accidentally swiped away the time! I sometimes have more than one puzzle on the go at once and I needed a way to time them both, independently, and not have to add up several half-finished puzzle times, in order to find out how long each puzzle took to solve.

The more I thought about it, the longer my wish-list got.

A new way of doing things was needed! And so the Puzzle Timer App idea was born.

In the Beginning

I came into this knowing absolutely nothing about creating apps for android, or writing code. I am a jigsaw-puzzler at heart, not a coder, and to be honest, I didn’t even know where to start. But I was already quite familiar with using AI to conduct research, rewrite documents and manipulate data, and it wasn’t a big step therefore, to experiment with AI to assist me in writing code for an app.

I gathered knowledge from online resources to learn how to get started, and ended up using a variety of different developer tools and AI assistance to piece together a complete and functioning app. I began by creating the initial prototype, then worked on refining and testing the app in a virtual environment, until finally, I was ready to test the app out for real on my phone.

Let’s face it, as a puzzle enthusiast addict I needed no further prompting to start another jigsaw puzzle…!

(If you’re curious about the specific tools and technical setup I used, I’ve written a separate technical deep dive for those interested in the development side of things.)

Puzzle Timer Mark 1

My first attempt had many teething troubles:

  • A button click would not take me to the page I expected.
  • The phone screen went to sleep in the middle of me completing a puzzle.
  • I made a mistake when entering puzzle details, but found I had no way to correct or delete them.

Those are just a few of the problems I encountered. There were plenty of issues for me to deal with.

I could have carried on with just the set up I had and worked through each issue as it came up, but at this point I realised that I needed a more professional approach to my project. I had already put many hours into developing the app and I did not want to lose all that work, so I needed some way to safeguard it. I was also aware, that with so many issues to fix, it would be easy to lose track of what had been solved and what had not.

So I set up a system to back up my code and track all the features and bugs I wanted to work on. This allowed me to work on improvements knowing I could always go back to a previous version if something went wrong. It also helped me stay organised by writing down each issue as I thought of it, then working through them one by one and recording what I’d fixed.

Features

Over the course of a few weeks, I worked on a number of features and bug-fixes for the app. The following is not an exhaustive list, but should give you an idea of the functions I wanted to implement and the errors I had to fix along the way:

  • Feature 1: Create a puzzle session each time the puzzle timer is used and save this to a list
  • Feature 2: Present options to pause, resume, save or abandon for each session in progress
  • Feature 3: Display last puzzle session on app start up with prompt to ‘resume puzzle’ if appropriate
  • Feature 4: Record puzzle details (brand, name, piece count) in a puzzle details screen
  • Feature 5: Allow upload of an image to the puzzle details screen by selecting an image or taking a photo
  • Feature 6: Display useful information on the puzzle details screen (best time, total completions, session history)
  • Feature 7: Display ‘resume puzzle’ or ‘do puzzle again’ button on the puzzle details screen
  • Feature 8: Display options to ‘search for completed puzzle’ or ‘start a new puzzle’ on app start up
  • Feature 9: Make the completed puzzle list searchable and add filtering capabilities
  • Feature 10: Enable swipe to delete function for completed puzzles and individual puzzle sessions
  • Feature 11: Style new puzzle screen, adding ‘completed this puzzle before?’ prompt alongside fields to enter new puzzle details

Each time I added a new feature, or fixed an error, I would update the app, download a fresh copy to my phone and test the app out myself. The main goal was to make the app useful, but also user-friendly. If the Puzzle Timer App didn’t work for me, then I couldn’t expect any other jigsaw puzzler to be happy with it either. And similarly, if I thought of a feature that would be handy to have in the app, then there was a high probability that other app users would want that feature incorporated too. The app has truly been built by a jigsaw-puzzler for jigsaw-puzzlers. If you are as hooked on jigsaw puzzles as I am, then you will absolutely see the benefits of this app.

No more times written on scraps of paper. Never again will I need to compile lists of times manually. No longer will I accidentally swipe away a half-finished puzzle time.

I can’t claim that the Puzzle Timer App has solved all my problems, but it has automated a lot of mundane tasks for me and I am pleased that my puzzle times are now stored in a comprehensive list, and I can view the details of each puzzle solve whenever I want. I now know exactly what my best time is for each puzzle I have completed and I can easily see if I am succeeding in improving my time, or not.

In short, the Puzzle Timer App takes care of all of that for me and lets me concentrate on puzzling!

What I Learned

There was a huge learning curve involved in building the Puzzle Timer App. I had never done this sort of thing before and therefore it was the first time I had used much of the software. It involved some ’trial and error’, but surprisingly less than I thought there would be. These are my key takeaways from the experience:

  • An idea doesn’t need to be fully formed to turn it into something useful - you can start small!
  • Keep a log of your ideas for improvements and break them down into small steps. I used the ‘issues’ function in GitHub to track everything I did.
  • Be clear and concise when detailing each issue that arises so that you keep them manageable. This helps you to fix and close issues as you go along. I found it helpful to have ’easy wins’ like this, along the way, to keep me motivated.
  • Get other people involved. Having a second pair of eyes on your app can be invaluable, to spot errors you didn’t notice or suggest an improvement you might not have come up with yourself.
  • Don’t give up! Some issues are complicated to unpick and take multiple attempts to resolve. If your first solution to a problem doesn’t work, try again.

(If you’re interested in the technical lessons learned and the specific development challenges I faced, check out the technical deep dive.)

Future Plans

The Puzzle Timer App is constantly evolving and I still have plenty more ideas to improve its functionality, such as:

  • Adding an option to share puzzle timer details
  • Adding an option to back up and export puzzle timer sessions
  • Adding an option to use splits (e.g. time to flip puzzle pieces, time to finish sorting, time to complete edge)

But for the time being, I am just going to enjoy using the Puzzle Timer App.

Conclusion

This is the first app I have designed and built and I am very proud of the fact that I can call it a success. It ticks all the boxes I set out to tick and more. Working through the development of an app for android in this way, was full of challenges, but it has opened up a world of possibilities. Not just in terms of continuing the development of this app, but also in terms of what else I could turn my hand to.

Whether you’re a fellow puzzle enthusiast interested in trying the app, or a developer curious about the technical implementation, I hope this project inspires you to tackle your own ideas - no matter how ambitious they might seem!


For Developers: If you’re interested in the technical details of how this app was built, including the tech stack, architecture decisions, and development workflow, read the technical deep dive.

Have feedback or questions about this project? Feel free to let me know!