Inspiration

App store dictionaries are bloated with ads. It's frustrating when you just want a quick definition or pronunciation. I wanted a clean alternative. Also, not everything needs the cloud. I built this offline-first to prove local models and on-device databases are fast, reliable, and viable today.

How I built it

It's a native iOS app built with Swift. Everything runs off a local SQLite database (dictionary.sqlite3). I pulled in a few open-source datasets to populate it:

  • WordNet: For definitions and semantic relations.
  • CMUdict & Britfone: For US and UK pronunciations.
  • IPA-Dict: For phonetic transcriptions.

I also wired up GitHub Actions to handle the CI/CD pipeline and automate the builds.

Challenges I faced

Data wrangling was the hardest part. Merging disparate datasets into a single SQLite schema took a lot of careful mapping. Performance was another hurdle. Local queries had to be highly optimized to return instant results. I had to balance read speed against the app's total storage and memory footprint.

What I learned

I leveled up my native iOS and SQLite skills. It was a great practical application of core software engineering concepts, especially around database optimization and CI/CD pipelines. I also got hands-on experience parsing and normalizing messy linguistic data. The biggest takeaway is that local-first development is incredibly powerful. You don't always need cloud infrastructure to build fast, robust tools.

Built With

Share this project:

Updates