No description
  • Swift 99.6%
  • Shell 0.4%
2026-03-28 15:52:47 -04:00
Data2Go 1.0 (v5) updates 2026-03-28 15:52:47 -04:00
Data2Go.xcodeproj 1.0 (v5) updates 2026-03-28 15:52:47 -04:00
images docs: add README feature screenshots 2026-03-04 12:47:31 -05:00
scripts 1.0 (v4) updates 2026-03-27 23:15:02 -04:00
.gitignore chore: initial public baseline for Codeberg 2026-03-04 12:10:00 -05:00
CONTRIBUTING.md chore: initial public baseline for Codeberg 2026-03-04 12:10:00 -05:00
LICENSE chore: initial public baseline for Codeberg 2026-03-04 12:10:00 -05:00
README.md docs: add README feature screenshots 2026-03-04 12:47:31 -05:00
SECURITY.md chore: initial public baseline for Codeberg 2026-03-04 12:10:00 -05:00
THIRD_PARTY_LICENSES.md chore: initial public baseline for Codeberg 2026-03-04 12:10:00 -05:00

Data2Go

Data2Go is an iOS app for browsing and editing Wikidata with a mobile-first UI.

It combines fast search, rich item detail views, statement editing, map previews, media galleries, and account-based write access to Wikidata.

Project Home

  • Codeberg: https://codeberg.org/2Go/Data2Go

Features

  • Search Wikidata entities by label, description, or direct QID.

  • Open full item detail views with:

    • hero media,
    • compact overview card,
    • Wikimedia project links,
    • Commons gallery,
    • pronunciation playback when P443 audio is present.

    Disney Skyliner item detail view Mozart item detail view

  • Browse statements with:

    • property grouping and rank handling,
    • qualifier/reference badges,
    • constraint warnings,
    • identifier section collapsing.

    OpenStreetMap U.S. statement browser

  • Search within a single item by property/value/QID/PID to quickly jump through long entries.

  • View coordinates on MapLibre with:

    • point pinning,
    • optional OSM way/relation mask overlays,
    • OSM deep links.

    Map view with item card

  • Edit Wikidata content (when signed in):

    • labels, descriptions, aliases,
    • add/edit/delete statements,
    • qualifier and reference editing,
    • type-aware value editors (entity, text, URL, external ID, monolingual text, quantity with unit, time).

    Add statement editor Add statement property search

  • Save recents locally, favorite entries, and clear non-favorites.

  • Pick and persist a custom accent color.

    Home screen overview

Tech Stack

  • SwiftUI
  • SwiftData (local recents cache)
  • Observation (@Observable)
  • MapLibre (map rendering)
  • Wikidata APIs:
    • Wikibase REST API v1
    • MediaWiki Action API
  • Wikimedia Commons and Wikivoyage metadata endpoints
  • OpenStreetMap Nominatim lookup API (for way/relation geometry masks)

Project Structure

  • Data2Go/App behavior and visual system:
    • Data2Go/Data2GoApp.swift
  • Data2Go/API:
    • WikidataAPI.swift
    • URLRequest+Wikidata.swift
  • Data2Go/Auth:
    • session/login logic and keychain persistence
  • Data2Go/Models:
    • Wikidata entity/value models
    • recents model
  • Data2Go/Views:
    • search, detail, statements, editing, account, map views

Build and Run

Requirements

  • Xcode with iOS 17+ SDK support
  • iOS deployment target: 17.0

Open in Xcode

  1. Open Data2Go.xcodeproj.
  2. Select the Data2Go scheme.
  3. Run on an iOS simulator or device.

CLI Build (optional)

xcodebuild -project Data2Go.xcodeproj -scheme Data2Go -destination 'generic/platform=iOS Simulator' build

Authentication and Editing

  • Read-only features work without sign-in.
  • Editing requires Wikimedia authentication.
  • Credentials are stored in iOS Keychain for session restore.

Performance and API Friendliness

The app includes caching and request-coalescing patterns to reduce duplicate calls and keep UI responsive:

  • actor-isolated API client state,
  • in-memory label/media/metadata caches,
  • in-flight request deduplication for repeated lookups,
  • bounded geometry/media caches,
  • debounced search.

Attribution

  • Map data and links: OpenStreetMap contributors.
  • Maps rendered via MapLibre and the OpenFreeMap Liberty style.
  • Wikimedia content from Wikidata/Wikimedia APIs.

Contributing and Policies

  • Contribution guide: CONTRIBUTING.md
  • Security reporting policy: SECURITY.md
  • Third-party license notes: THIRD_PARTY_LICENSES.md

Notes

  • This repository currently focuses on the app target; no separate test target is included yet.
  • API behavior and schemas can evolve over time, especially for constraint and metadata endpoints.