About AIHistory
My wife wanted a history app - something to casually learn about different historical periods and events. This became my first experiment using AI as a content backend rather than just a chat interface.
How It Works
The app pulls down some initial historical sections to get you started, but the real magic is in the expansion. Any topic can branch infinitely - click on "Ancient Rome" and you can dive into the Republic, the Empire, specific emperors, battles, daily life... whatever catches your interest.
There's also a "history teacher" mode where you can have a conversation about what you're learning. Ask questions, get context, explore tangents.
The Star Wars Effect
Okay, I'll admit it - I spent way too much time on this feature. When you select a new topic, the intro text crawls up the screen like the Star Wars opening. Is it necessary? Absolutely not. Was it fun to build? Absolutely yes.
Getting the perspective transform, the fade, and the timing just right was a satisfying little puzzle.
Features
- Infinite expansion - Any topic can branch into subtopics, generated on demand
- AI "history teacher" - Chat with an AI tuned for historical discussion
- Star Wars crawl - Because why not
- Streaks - Coming soon to encourage daily learning
Why It's Not Released
This one's just for family right now. The AI costs add up, and I'd need to think through how to handle that for a public release. For now, it's a fun way for us to explore history together.
Tech Stack
- SwiftUI for the UI
- OpenAI API for content generation and chat
- Custom animations for the Star Wars crawl effect
- Local caching to minimize API calls
What I Learned
This was my first real project using AI as a core feature rather than an add-on. The interesting challenge wasn't the API integration - that's straightforward. It was designing the UX around AI-generated content:
- How do you handle loading states for content that takes a few seconds to generate?
- How do you make infinite expansion feel natural rather than overwhelming?
- How do you maintain consistency when the AI generates different content each time?
Good problems to solve, and I learned a lot that I've applied to other projects since.