AI Frontier is a local-first iOS app for structured AI learning and AI news tracking. English is the default interface language, with Simplified Chinese available in Settings.
- A new native interface with midnight-blue hero cards, teal/violet accents, editorial news, adaptive dark mode and Dynamic Type.
- 64 verified RSS/Atom feeds across 52 publisher groups, including official research, universities, public research institutions and technology media.
- A native launch screen matching the navy, teal and violet app identity, with no artificial startup delay.
- Search the source directory by name, domain or category; news fetching is limited to six concurrent requests.
- Five-minute foreground checks, refresh when due on return, and system-scheduled background refresh requests. iOS does not guarantee a five-minute background wake-up.
- Quiet normal operation: source details and update information are available on demand; unavailable content still has useful recovery actions.
- Tap a trend topic to explore its related stories; search news by publisher as well as title and summary.
- The lesson resume, review queue, durable bookmarks and quiz safeguards introduced in 1.3 remain available.
See the verified source catalog, launch design, and verification. Scheduling details and the 1.4 interface redesign remain available.
- Learning levels describe experience rather than school stages. Learning objectives are available on demand in both languages.
- 600 bilingual learning units: 200 Beginner, 200 Fundamentals, and 200 Advanced
- 1,800 explanation sections covering concepts, applications, and practical boundaries; 720 explicit example blocks and original local diagrams
- 1,980 questions with their complete example context, answer explanations, local progress, and best scores
- 540 new concept-first micro-lessons with independently authored English and Chinese explanations; search by concept or application
- Chapter/paper references in each lesson; see CONTENT_SOURCES.md for the full curriculum and source list
- Significant AI announcements from the past calendar month, fetched directly on device from 64 publisher feeds
- Five-minute checks while active, refresh when due on return, and immediate pull-to-refresh
- Date validation, tracking-free URL deduplication, local importance ranking, and offline recovery and publisher availability details
- Current-month news cache and bookmarks; no dated built-in briefs masquerading as live news
- Automatic on-device English-to-Simplified-Chinese translation of fetched news titles and summaries, matching cached translations to exact source text; original English remains available
- Local trend summaries with an explicit sample boundary and related-story navigation
- StoreKit 2 monthly and annual subscriptions with a seven-day introductory trial configuration
- Background refresh requests, privacy manifest, privacy summary, terms, and local data deletion
- No app-owned server, account system, cloud database, cloud model API, or analytics SDK
- Xcode 26 or later
- iOS 18 or later (Apple Translation framework)
- XcodeGen 2.46 or later when regenerating the project
Open AIFrontier.xcodeproj, choose the AIFrontier scheme, and run on an iPhone or iPad simulator. The shared scheme uses AIFrontier/Resources/AIFrontier.storekit for local StoreKit simulation.
xcodegen generate
xcodebuild -project AIFrontier.xcodeproj -scheme AIFrontier \
-destination 'platform=iOS Simulator,name=iPhone 17 Pro,OS=26.5' test
xcodebuild -project AIFrontier.xcodeproj -scheme AIFrontier \
-configuration Release -destination 'platform=iOS Simulator,name=iPhone 17 Pro,OS=26.5' \
ENABLE_TESTABILITY=YES ONLY_ACTIVE_ARCH=YES test
xcodebuild -project AIFrontier.xcodeproj -scheme AIFrontier \
-configuration Release -sdk iphonesimulator build
xcodebuild -project AIFrontier.xcodeproj -scheme AIFrontier \
-configuration Release -destination 'generic/platform=iOS' \
build CODE_SIGNING_ALLOWED=NO
xcodebuild -project AIFrontier.xcodeproj -scheme AIFrontier \
-configuration Debug -sdk iphonesimulator analyzeThe current verification record is in docs/VERIFICATION-1.5.0.md; earlier results remain in docs/VERIFICATION-1.4.0.md. TEST_REPORT.md records the earlier 1.2.1 release.
Debug builds, including the desktop installer, define DEVELOPER_ACCESS and open all content for the owner. Release builds exclude that flag and use verified StoreKit entitlements. Developer access is a build setting, not a simulated purchase, login, or hidden public unlock switch.
The first news translation may ask to download Apple language resources. Translation runs locally afterwards. The native translation engine cannot run on an iOS simulator; simulator tests validate the adapter, cache, fallback, and interface using explicitly isolated fixtures.
Regenerate the bundled curriculum without network access:
python3 scripts/build-curriculum.pyThe source records are scripts/curriculum-core.json, scripts/curriculum-expansion.txt, scripts/curriculum-chinese.txt, and scripts/curriculum-simplifications.json. All 540 new Chinese explanations were authored directly; development-only exploratory translation models are not used by the curriculum builder or bundled in the app.
To check the current public feeds using the same production fetcher/parser/selection code on this Mac:
scripts/verify-live-feeds.commandThe project is configured for automatic signing with Apple Developer team VA8X63NPCS. ExportOptions.plist exports an App Store Connect package without changing the project build number.
xcodebuild -project AIFrontier.xcodeproj -scheme AIFrontier \
-configuration Release -destination 'generic/platform=iOS' \
-archivePath /tmp/AIFrontier.xcarchive -allowProvisioningUpdates archive
xcodebuild -exportArchive -archivePath /tmp/AIFrontier.xcarchive \
-exportPath /tmp/AIFrontierExport -exportOptionsPlist ExportOptions.plist \
-allowProvisioningUpdatesDownload versioned assets from GitHub Releases. The 1.5.0 release is build 7:
AIFrontier-1.5.0-signed.ipa: signed App Store distribution archive, for App Store Connect distribution; it cannot be directly installed on an arbitrary iPhone.AIFrontier-1.5.0-simulator.zip: Release build for the iOS Simulator. Unzip and usexcrun simctl install booted AIFrontier.app.SHA256SUMS-1.5.0.txt: checksums for both binary packages.- GitHub also provides the source at the release tag as ZIP and tar.gz.
Development/owner packages and private device provisioning data are intentionally excluded from the public repository and release. Signing on your own Mac requires selecting your own Apple development team and a unique bundle identifier in Xcode.
For physical-device testing, run scripts/install-device.command from your clone after configuring signing. It builds the current source using development signing and installs it on your connected device. The App Store Connect IPA above is for distribution, not direct installation.
News significance is selected locally using release, research, safety, policy, and industry terms. These signals do not provide independent verification or complete industry coverage. Publisher feeds are English; the optional Chinese interface translates titles and summaries on device with Apple Translation. Missing dates, future dates, old items, and tutorial headlines are excluded. On failure, the app shows only still-current cached announcements and preserves the last successful-check timestamp.
Before distribution, create the following auto-renewable subscriptions in one App Store Connect subscription group:
com.geruyang.aifrontier.pro.monthlycom.geruyang.aifrontier.pro.annual
Configure a one-week free introductory offer for both products. Apple determines eligibility and handles payment, renewal, restoration, and subscription management.