From 1be4d59432091fdccb0f0c3818941a8ff1e382cd Mon Sep 17 00:00:00 2001 From: Ryan Sites Date: Sat, 27 Apr 2024 09:41:05 -0400 Subject: [PATCH] first blog --- README.md | 4 +++ blog/04-26-2024.mdx | 75 ++++++++++++++++++++++++++++++++++++++++++++ docusaurus.config.js | 7 +---- static/ads.txt | 1 + 4 files changed, 81 insertions(+), 6 deletions(-) create mode 100644 blog/04-26-2024.mdx create mode 100644 static/ads.txt diff --git a/README.md b/README.md index f1396f2..396dd4c 100644 --- a/README.md +++ b/README.md @@ -9,3 +9,7 @@ npm install ``` npm run start ``` + +## Blogs + +https://docusaurus.io/docs/blog diff --git a/blog/04-26-2024.mdx b/blog/04-26-2024.mdx new file mode 100644 index 0000000..3e5884e --- /dev/null +++ b/blog/04-26-2024.mdx @@ -0,0 +1,75 @@ +--- +title: The Making of Y.A.S.S. Spider Solitaire +description: Dive into the humorous tale of developing Yet Another Spider Solitaire, an iOS and Android game built with Flutter and Firebase. +slug: making-yass-spider-solitaire +date: 2024-04-26 +authors: + - name: Ryan Sites + title: Co-Founder ThreeTen Labs + url: https://github.com/seesharpguy + image_url: https://avatars.githubusercontent.com/u/3216346?v=4 +tags: [Y.A.S.S, flutter, firebase, getx, mobile development] +image: https://avatars.githubusercontent.com/u/150145651?v=4 +hide_table_of_contents: false +--- + + + + + + + + + +**Hey everyone!** +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 of 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](https://flutter.dev/) to get myself more familiar with cross-platform development. He responded with immediate excitement and exclaimed that he too have 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 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, 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 to scale our infrastructure up as the traffic of our game will, 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](https://apps.apple.com/us/app/y-a-s-s/id6472488148) and [Google Play](https://play.google.com/store/apps/details?id=com.threetenlabs.spidersolitaire). 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! diff --git a/docusaurus.config.js b/docusaurus.config.js index 803ed15..c0df7b3 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -65,12 +65,7 @@ module.exports = { }, hideOnScroll: true, items: [ - // { - // to: '/games/', - // activeBasePath: 'docs', - // label: 'Games', - // position: 'right', - // }, + {to: 'blog', label: 'Blog', position: 'right'}, ], }, footer: { diff --git a/static/ads.txt b/static/ads.txt new file mode 100644 index 0000000..83fb526 --- /dev/null +++ b/static/ads.txt @@ -0,0 +1 @@ +google.com, pub-6567607821330847, DIRECT, f08c47fec0942fa0 \ No newline at end of file