STORY
#6 Overcoming Challenges in Developing SplitSats 📱
AUTHOR
Joined 2023.03.13
PROJECT
DATE
VOTES
sats
COMMENTS

#6 Overcoming Challenges in Developing SplitSats 📱

As we embarked on the journey of developing our mobile application, we encountered various challenges that demanded thoughtful decisions and innovative solutions. The following are some key challenges we faced and the approaches we took to overcome them.

Choosing the Right Development Tools 🛠️

One of the initial challenges was selecting the appropriate technology stack. We deliberated between different frameworks like Flutter and Expo for our mobile app development needs. While Flutter is a robust and versatile framework, we opted for Expo due to its ease of use and the availability of essential libraries in TypeScript. The wealth of TypeScript-based libraries and the extensive examples available made Expo a pragmatic choice for our team, especially considering the familiarity with TypeScript of some members of the team.

Navigating Nostr Integration 🌐

Nostr is a fundamental layer for user communication within the application. Integrating it into our application posed a unique challenge, since the documentation of how to integrate it into mobile applications in react-native is still limited. After researching available options, we decided to use a combination of NDK and nostr-tools packages. While nostr-tools offered lower-level functionality, NDK provided a more user-friendly and comprehensive solution by abstracting the complexities of Nostr and making informed decisions on our behalf.

Wallet Integration Priority Shift 💸

Initially, incorporating a wallet within our app was not our primary focus. However, being part of a Lightning Network hackathon made it evident that a wallet integration was indispensable. We explored various solutions and we think that Nostr-Wallet-Connect (NWC) NIP-47 is what fits the bill, since it allows clients to access a remote Lightning wallet through a standardized protocol. At first, we will allow SplitSats users to connect to their Alby account, simplifying the user experience, but we would like in the future to allow connection with Breez-SDK to give access to a true Lightning non-custodial node. While we acknowledge the importance of self-custody, our initial approach aims to streamline user experience and development processes.

State Management Dilemma 🔄

Navigating through various state management solutions, including SQLite database, Redux, and Context manager, we eventually settled on Zustand. The decision stemmed from the simplicity and efficiency that Zustand offered compared to other solutions. Its lightweight nature and ease of use significantly streamlined our development process, enhancing the overall user experience.

Conclusion

In conclusion, the challenges we've traversed in the initial stages of our application development were but the first steps in a larger journey. Our application aims to revolutionize expense sharin gamong friends within spending groups, prioritizing privacy through Nostr's encrypted event exchange and sats on Lightning for settlements.

The integration of Nostr, Lightning Network, and various state management solutions presented hurdles that led us to explore innovative approaches. It's important to note that our journey is still in its early stages. We are committed to continual improvement and innovation as we endeavor to develop a user-friendly, robust, and innovative application. 🚀