Repository navigation
MidgarKit 3.0.0: the Midgar portal
MidgarKit 3.0.0: the Midgar portal
The "More Apps" list is gone. In its place is the portal: a full-screen universe in the spirit of the original watchOS home screen. Every Midgar app is a round icon on a honeycomb you drag around, a fisheye keeps the focused app large, related apps sit closest, and the app you are in stays on the map as "you are here".
- Entry card.
MidgarEntryView(UIKit, AppKit) andMidgarEntryCard(SwiftUI) show a live miniature of the honeycomb. Put it first in Settings; tapping it opens the portal with an iris that grows out of the card. - Knows what you have. Installed apps get a tick and an OPEN button, apps for another platform say so and offer to send the link, and a progress ring around the Midgar emblem counts what you own. Needs the Midgar URL schemes in
LSApplicationQueriesSchemes(scripts/midgar_schemes.py). - Fast. Core Animation layers only, a display link that runs only while something moves. 120 Hz on ProMotion iPhones (needs
CADisableMinimumFrameDurationOnPhone), measured 8.4 ms mean frame time on an iPhone Air. - Every platform. iOS 16, iPadOS, macOS 13, tvOS 16, visionOS 1. Liquid Glass on 26.
- Localized into 22 languages, accessible with VoiceOver and Reduce Motion.
- Attribution. Product pages open with a campaign token (
<host>-<placement>) and the provider token, and anonymous counts are kept per host, storefront and placement in D1.MidgarConfig.enableTelemetryturns the counts off. - Parental gates.
MidgarConfig.gatelets a host with a gate guard the portal.
Upgrading from 2.x
Midgar.present(from:config:) still works. The title and accent config values are ignored. Replace the old "More Apps" row with MidgarEntryView().embed(in: cell.contentView, verticalInset: 8) (or MidgarEntryCard()), register the schemes, and add CADisableMinimumFrameDurationOnPhone. scripts/audit_hosts.py --app Some.app --bundle-id com.example.app checks a built app.