Development status
This repository is not documented as a released App Store or Play Store product. The iOS shell exists in code; Android is currently a placeholder.
What it is
The app is a small native frame around existing IHNYC web services. It gives each destination a tab, keeps trusted pages inside the app, and opens other links in the device browser.
flowchart LR PERSON["Resident taps a tab"] --> SHELL["Native iOS shell"] SHELL --> ROUTES["Bundled route config"] ROUTES --> WEB["Existing IHNYC web service"] WEB --> CHECK{"Trusted domain?"} CHECK -- Yes --> INAPP["Stay in the app"] CHECK -- No --> BROWSER["Open the device browser"]
This “thin shell” keeps the web services as the source of most content and behavior.
Current tabs
The shared route configuration defines:
| Tab | Initial destination |
|---|---|
| Home | Resident Council app page |
| Programs | Programs calendar |
| Vote | Voting service |
| Analytics | Resident Council analytics page |
| I-House | Official I-House resident resources |
The labels and URLs come from shared/routes.json. The iOS target ships a bundled copy under ios/IHNYC/IHNYC/Config/.
What exists today
- SwiftUI tab navigation and
WKWebViewbrowsing on iOS; - back, forward, and refresh controls plus loading state;
- allowlisted in-app domains from
domains.json; - external-browser handling for non-allowlisted destinations and new-window links;
ihnyc://open?url=...deep-link routing into the appropriate tab;- diagnostics for missing bundled configuration.
What does not exist yet
- an Android implementation beyond its repository placeholder;
- documented build and release procedures;
- push notifications;
- evidence of public store distribution.
Maintainer map
| Path | Purpose |
|---|---|
shared/routes.json | Intended source of tab labels and initial URLs |
shared/domains.json | Intended source of in-app domain rules |
ios/IHNYC/IHNYC/AppConfig.swift | Loads config and routes deep links |
ios/IHNYC/IHNYC/RootTabsView.swift | Builds the tab and browser controls |
ios/IHNYC/IHNYC/WebView.swift | Applies navigation and external-link policy |
android/ | Android placeholder |
Repository: dghauri0/ihnyc-app