The Making of Y.A.S.S. Spider Solitaire
Hello everyone, and welcome to my first blog! After a rigorous, caffeine-fueled 8 months, we've completed our first mobile game, Y.A.S.S. (Yet Another Spider Solitaire). And yes, I hear you chuckling! "Yet another one?" Absolutely, because clearly what the world needs is another version of Spider Solitaire on iOS and Android. Trust me, ours has its own set of features that hopefully differentiate it from others!
Why Y.A.S.S. you ask?
Around August 2023, I was in a conversation with my friend and co-founder of ThreeTenLabs (more on that in a moment). I had mentioned to him that I had been spending some time with Flutter to get myself more familiar with cross-platform development. He responded with immediate excitement and exclaimed that he too had been exploring Flutter and, in fact, had begun developing a Spider-Solitaire game in his effort to dip his toes in the water. We decided that day, that we should join forces. I help him with the game, and he helps me with the idea that I had for a game (more on that in a moment as well). We knew that it would behoove us to start an LLC, and since we both have birthdays on the 10th day of March, ThreeTen Labs was formed. And since we are both software engineers, huge fans of acronyms, and even bigger fans of facetiousness, YASS (Yet Another Spider Solitaire) was born.
Choosing Our Tools
The tech stack was a major decision from the get-go. As noted before, Flutter was the bedrock technology that allowed us to share the same codebase across multiple target platforms and was known for its beautiful native interfaces. We needed a backend for transactional reads and writes of data to help keep things secure for in-app messaging, monitoring, and authentication.
Crashlytics allowed us to watch it crash (a lot!—and tell us why), and Analytics gave us the ability to see all three
people use our app (hi mom!). Firebase gave us, as a small startup, the opportunity to scale our infrastructure up as the traffic of our game would, so for us, it was a no-brainer.
Flutter Takes Flight
Embarking on our Flutter journey felt like stepping into the cockpit of a sophisticated aircraft. At first glance, the array of buttons and controls was overwhelming, but as we gained familiarity, we found ourselves piloting a state-of-the-art machine capable of flying high across multiple platforms. Flutter's strength lies in its seamless operation across Android and iOS, coupled with its stellar integration with VS Code, providing an IDE that felt like having an expert co-pilot. Navigating the iOS ecosystem occasionally felt like flying through turbulent weather—challenging yet thrilling. The end result? An app that performs splendidly on both vintage and the latest devices, crafted to perfection.
GetX to the Rescue
If Flutter turned us into skilled pilots, GetX was our advanced navigation system. Its approach to reactive programming was straightforward, guiding us through complex state management scenarios with precision. Think of it as having a top-tier GPS that not only predicts the traffic (or app states) ahead but also suggests the best routes (or data flows). This tight integration between controllers and views acted like a well-oiled autopilot, enhancing our development speed by minimizing manual coding and maximizing efficiency. Some critics say GetX may try to handle too much, like an overenthusiastic autopilot, but in our quest for efficient delivery, we found its capabilities to be exactly what we needed to stay on course without any hiccups.
Lessons Learned
Here are some nuggets of wisdom from my time in the trenches:
- Embrace the documentation: It's like the map to the treasure. Read it, cherish it, and keep it under your pillow.
- Test on all the devices: Just because it looks good on your flagship device, doesn’t mean it will shine on all devices. Diversity in testing equals fewer angry emails.
- The user is king: Feedback is golden, even if it's from Aunt Marge, who still uses a flip phone.
- Laugh at the bugs: You'll meet many. Treat them like whack-a-mole; it's more fun that way.
Shameless Plug
If you're curious about Y.A.S.S., you can check it out on the App Store and Google Play. And if you're feeling generous, leave a review! We're always looking to improve and make the game more enjoyable for everyone.
In Conclusion
Building Y.A.S.S. has been a roller coaster. There were highs (it runs without crashing!), lows (it crashes!), and lots of learning. Would we do it again? Not only would we, but we're already planning our next game! Remember, when we started this conversation, I mentioned I had an idea for a game as well! Stay tuned for the next blog! We plan on sharing our journey with you all!