Inspiration
My love and enjoyment of visiting national parks sparked the idea for this project. I was particularly drawn to the activity many parks offer where you can stamp a "passport" to commemorate your visit. This simple yet meaningful ritual of collecting stamps from each park you explore became the foundation for creating a digital experience that captures that same sense of adventure and accomplishment.
What I Learned
This project became a comprehensive learning journey in several key areas:
Swift Development: I dove deep into the nuances of Swift coding, gaining hands-on experience with the language's unique features and best practices. Working with a real project helped me understand concepts that would have been abstract in tutorials alone.
AI-Assisted Development: I discovered the power of integrating AI tools like Claude Code and Windsurf into my development workflow. These tools helped with "vibe coding" - quickly translating ideas into functional code while maintaining creative momentum.
App Store Submission Process: I gained firsthand experience with Apple's app review process, learning about the iterative nature of submissions and the importance of addressing reviewer feedback through minor tweaks and adjustments.
User Experience Design: I developed a deeper appreciation for the benefit of user experience and visual simplicity, understanding how clean design can make or break an app's success.
How I Built It
The project was built using Xcode as the primary development environment, with significant assistance from AI coding tools Claude Code and Windsurf. These tools helped accelerate development by providing code suggestions, debugging assistance, and architectural guidance while I focused on the creative and user experience aspects of the app.
Challenges I Faced
While AI assistance proved invaluable, the development process wasn't without its hurdles:
Debugging and Problem-Solving: There were times when AI-generated code didn't work as expected, requiring me to dive deep into the codebase to understand and resolve issues. This actually became a valuable learning opportunity, forcing me to truly understand Swift rather than just copy-pasting solutions.
Learning While Building: The challenge of simultaneously learning Swift while building a functional app meant I had to balance moving forward with taking time to understand the underlying concepts.
Version Control Lessons: I learned the hard way about the importance of regular backups when I forgot to save my progress at crucial moments, leading to some anxious moments and rework.
These challenges ultimately made the project more rewarding, as each obstacle overcome represented genuine skill development and problem-solving experience.

Log in or sign up for Devpost to join the conversation.