Introducing Strolly - our new app for fresh daily walks

I'm really excited to share that Matthaus and I have just released our new app, Strolly: Generated Daily Walks. Strolly generates unique, random looping walks in your area, adding a fresh twist to your daily routine.

We built Strolly because we were tired of repeating the same walking routes with our dog. We wanted variety but didn’t have time to plan new routes daily. Strolly is perfect for people like us who live in walkable neighborhoods and enjoy daily strolls. It provides three random walk suggestions every day, eliminating the need for planning. Simply open the app, pick a walk you like, and enjoy a small adventure.

Screenshot of Strolly showing a generated path

Privacy was a top priority for us, especially since users often set their home as the starting point for walks. To ensure privacy, we opted to generate all paths locally on the user's device using Apple's MapKit framework. Our path generation process involves retrieving local points of interest with MKLocalSearch and building routes using MKDirections. We then create looping walks by combining these segments, carefully cleaning the routes to avoid overlapping and encourage loops.

Screenshot of Strolly showing the process of building paths

Our goal was to reduce cognitive load and let users quickly select a route. Standard system components didn’t meet our needs, so we created custom components. For example, our route cards respond to user gestures, allowing users to flick them away or pull a background card forward, making it more natural to navigate.

We also designed a custom control for configuring walk lengths, offering three options: short, medium, and long. Users can select "short", "medium", and "long" individually, or combinations like "short and medium", "medium and long", or all three. However, combinations like "short and long" are not allowed.

Screenshot of Strolly showing the settings sheet with a custom walk durations picker

Additionally, we developed minimal "settings" and "flag issues" buttons to keep the map content clear. Labels pop out for new users, then hide after a few seconds, adding a fun, elastic feel.

Strolly captures a large amount of data points for possible path segments. Initially, we used Apple's SwiftData framework, but it wasn’t optimal for large segments. So, we created a binary Codable format to efficiently encode data into files saved to disk. This format allows us to store, merge, and retrieve data efficiently, ensuring smooth performance.

We implemented our own UnsafeCodable protocol, which uses custom pointer types to manage memory efficiently. This approach ensures our data writes are stable and predictable, avoiding segmentation faults.

Strolly is totally free and doesn’t have any paid features at the moment. We wanted to have as many real users as possible to gather feedback and ensure it works well in different locations. So please try it out and share your feedback with us. We will work on improving the app and consider adding more advanced paid features later.