Snse

Unlocking the Power of Mood Tracking with Snse: Your Personal Canvas of Emotions

In a world filled with constant digital noise and endless to-do lists, it's easy to overlook our own well-being and the nuances of our emotions. How often have you found yourself thinking, "I should journal more," only to struggle with articulating your thoughts into words or simply not finding the time to do so?

Snse, a simple yet powerful app designed to empower you to track your mood, capture your thoughts, monitor your water consumption, or even serve as your personal color palette. Snse is not just another app; it's your canvas for self-expression and self-awareness.

Mood tracking, Simplified

At its core, Snse is an intuitive mood tracking app that goes beyond the conventional approaches. It understands that not all emotions are easily translated into words. With Snse, you can effortlessly record your emotional state, whether it's a complex blend of feelings or a simple snapshot of your mood.

Your Personal Journal, in Color.

One of the app's unique features is its capacity to be your personal color palette. Instead of relying solely on words, you can use colors to represent your emotions. This visual approach enables you to capture the subtleties of your feelings and experiences in a way that words alone can't fully convey.

Staying Hydrated, Mindfully

Snse also serves as a water consumption tracker, promoting not only emotional but also physical well-being. Staying hydrated is a vital component of a balanced lifestyle, and Snse encourages you to maintain this healthy habit. Your hydration levels, represented visually, provide an extra layer of self-care within the app.

FAQs

What drove you to write Snse?

Writing Snse was a deeply personal journey for me. Following a significant life event, the impact it had on my mental health became crystal clear. It was a challenging period, but it sparked the idea to channel my experiences into something positive. I wanted to create a tool that not only helped me navigate my emotions but also had the potential to assist others in similar situations. Snse emerged as a way to support individuals who may be going through their own struggles and seeking a reliable companion for tracking their moods and emotions. The process of creating Snse was, in essence, a testament to the transformative power of self-expression and technology.

Why Pick a Color?

The "Pick a Color" feature in Snse is a result of a very personal realization. I observed that, in times of emotional turmoil, I often struggled to express my feelings in words, which only added to my frustration when trying to maintain a traditional journal. It was during a conversation with a friend who happens to be a Psychology Professor that the idea of picking a color as a form of emotional expression emerged. The concept behind this feature is rooted in the understanding that, when we're deeply overwhelmed, our prefrontal cortex can become overloaded, making it challenging to articulate our emotions verbally. Meanwhile, our visual cortex continues to function normally. By allowing this visual aspect of our brain to convey our feelings through color, we can feel "heard" without uttering a word. It's almost like offloading the task to a GPU in the digital world, but in the context of our thoughts and emotions in the physical realm.

What challenges did you face when producing Snse?

Producing Snse came with its fair share of challenges, with one of the most prominent being the need to support multiple platforms. It all began with the iOS/iPad OS version, given that I was using an iPhone at the time, and I initially crafted the codebase in Swift. The next frontier was to extend support to macOS through Mac Catalyst, a move that posed its own set of hurdles. At that time, resources and community support for this endeavor were rather scarce, making it essential to reach out to tech communities for assistance. I recall seeking help on the platform formerly known as Twitter and even asking for retweets to gather insights on Catalyst support. It took some time, but eventually, someone came to my aid, helping me navigate the complexities. IIRC the challenge was something around handling multi-select in lists.

The next major hurdle was rewriting the entire codebase to ensure compatibility with Android. This meant a considerable shift in development, and, at the time, I had come to rely on two third-party libraries that were no longer accessible. Consequently, the original Kotlin codebase remains in a frozen state until I can replace or replicate the lost functionality, posing a substantial technical challenge in the process.

How did you architect a multi platform codebase?

Creating a multi-platform codebase for Snse was indeed a complex endeavor. In reality, I didn't fully architect a single codebase that spans all platforms. Instead, I took a different approach. The Apple variants, including iOS, iPad OS and macOS, share a single codebase written in Swift, which is made capable of running on macOS thanks to Mac Catalyst. However, to support Android, a completely separate and independent codebase was necessary. This approach allowed me to tailor the codebase to the unique requirements and frameworks of each platform, ensuring a smooth and optimized user experience across both iOS and Android.

Opting for two separate codebases rather than utilizing a cross-platform tool was a decision rooted in my past experiences. Throughout my career, I've been involved in numerous projects for Fortune 500 companies, and the prevailing approach among such enterprises was to maintain distinct codebases for different platforms. While I appreciate the intellectual challenge that comes with "context switching" between platforms, it can become quite laborious when dealing with recurring bugs or, even more challenging, tackling platform-specific issues. In hindsight, I can acknowledge that I might take a different approach if I were to embark on the same journey today. The ever-evolving landscape of cross-platform development tools offers compelling alternatives that can streamline the development process and minimize the overhead of managing multiple codebases.

What is the future of Snse?

The version designed for Apple products has reached a point where it can be considered "complete," evident by it 5-star rating, which reflects the satisfaction of its users. However, I've always had a desire to refine the Android version further, even though it has received a commendable 4.5-star rating. Looking ahead, I aim to expand Snse's horizons by bringing it to Windows and Linux desktops. The landscape of cross-platform app development has evolved significantly since Snse's inception, offering fresh opportunities to explore.

To achieve this, I'm actively considering and evaluating the prospects of rewriting Snse using frameworks such as Flutter, Kotlin Multiplatform, or Qt. Additionally, I would like to introduce media upload, allowing users to express their emotions through images, videos, or audio. However, implementing this feature would necessitate adjustments in the way data is stored, and I'm committed to addressing these challenges sequentially.

Is Snse open or closed source?

Snse is proudly open source! I wholeheartedly believe in the principles of open source software, and this ethos extends to all my personal projects. You can access the codebases for Snse on GitHub, where transparency, collaboration, and community involvement are core values. Here are the links to the repositories:

Feel free to explore, contribute, and be a part of the open source community that drives the evolution of Snse.

** Bonus link: Work in progress KMM repository. **

All answers were written by Blake, but polished by ChatGPT

Previous
Previous

nXlvl