$ show dkhamsing/open-source-ios-apps
This repository is a curated, community-driven directory of open-source iOS, iPadOS, watchOS, tvOS, and visionOS applications. It is not a software application itself but a data curation and documentation project. The single source of truth is `contents.json`, a structured JSON file containing metadata for over 1,600 projects (title, category, source URL, screenshots, tags, stars, etc.). Ruby scripts in `.github/` transform this JSON into multiple markdown documents: `README.md` (the main categorized list), `APPSTORE.md` (apps with App Store links), `ARCHIVE.md` (deprecated projects), and `LATEST.md` (newest and recently updated entries). The pipeline also enriches data via the GitHub API (stars, license) and validates schema and categories in CI (CircleCI and GitHub Actions). While the repo is not a data research pipeline in the ML sense, it exhibits data engineering patterns: a structured data source, automated ETL (extract from JSON, transform to markdown, load to GitHub), validation, and deployment. The primary value is as a reference for developers seeking open-source iOS code to learn from or reuse.
The LLM identified 4 files worth highlighting for reuse:
The main ETL script that reads `contents.json` and generates README.md, ARCHIVE.md, APPSTORE.md, and LATEST.md. It contains modular functions (`output_apps`, `output_badges`, `write_list`, `write_archive`, `write_latest`) that format app entries with consistent styling, badges, and screenshots. This script is reusable for any curated list stored in JSON, requiring only adaptation of the output templates and category logic.
A helper module providing shared functions for JSON parsing (`get_json`) and category validation (`osia_allowed_categories`). It centralizes common operations used by multiple scripts, reducing duplication. This pattern is easily extractable for any project that needs to load and validate a JSON data file.
A validation script that checks each app entry in `contents.json` has valid `category-ids` against a predefined list. It demonstrates a clean, idempotent validation pattern that can be adapted to verify any field against an allowed set, useful for maintaining data integrity in curated datasets.
A script that uses the GitHub API (Octokit) to fetch current star counts and last push dates for each repository listed in `contents.json`. It updates the JSON file with fresh metadata. This pattern is reusable for any project that needs to enrich a dataset with live API data, handling rate limits and incremental updates.