A modern iOS astrology app featuring personalized transit interpretations, natal chart calculations, and AI-powered insights using OpenAI.
- Daily Transit Tracking: Get personalized daily astrological transits based on your birth chart
- Natal Chart Generation: Calculate precise natal chart with all planetary positions
- Dual Astrology Perspectives: View interpretations from both Western and Evolutionary astrology schools
- AI-Powered Insights: Personalized interpretations powered by OpenAI
- Smart Caching: 24-hour cache system to minimize API calls
- Black & White Glass Design: Sleek iOS 26 Liquid Glass UI with monochrome aesthetic
- SwiftData Persistence: Local storage for user data, birth charts, and cached transits
Black & white dominant design with monochrome gradients:
- Pure Black:
#000000- Deepest backgrounds - Background Black:
#080808- Main app background - Surface Black:
#0A0A0A- Card surfaces - Pure White:
#FFFFFF- Primary text and accents - Off White:
#F5F5F5- Secondary highlights - Gray Spectrum: Various opacity levels for hierarchy
Authentic iOS 26 Liquid Glass implementation with:
.glassEffect(.regular, in: shape)for native glass.glassEffect(.regular.interactive())for interactive controls.buttonStyle(.glass)and.buttonStyle(.glassProminent)for buttons- Automatic fallback to
.ultraThinMaterialfor iOS < 26
1:1 UnionTabView implementation with:
- Floating glass capsule design
- Interactive segmented control for authentic touch behavior
- Smooth spring animations on selection
- Black & white selected/unselected states
- Language: Swift
- UI Framework: SwiftUI
- Data Persistence: SwiftData (iOS 17+)
- Astrology Engine: SwissEphemeris
- AI Integration: OpenAI API
- Minimum iOS Version: iOS 26 (Liquid Glass features)
- Xcode Version: 26.0+
astrology-app/
├── Models/ # SwiftData models
│ ├── User.swift
│ ├── BirthData.swift
│ ├── UserSettings.swift
│ └── CachedTransit.swift
├── Views/ # SwiftUI views
│ ├── ContentView.swift
│ ├── HomeView.swift
│ ├── NatalChartView.swift
│ ├── TransitDetailView.swift
│ ├── BirthDataInputView.swift
│ ├── SettingsView.swift
│ └── OnboardingView.swift
├── Components/ # Reusable UI components
│ ├── GlassTabBar.swift # iOS 26 Liquid Glass tab bar
│ ├── LiquidGlassCard.swift # Glass card components
│ ├── LiquidGlassButton.swift # Glass button styles
│ ├── EnergyOrb.swift # Planet energy orbs
│ ├── LiquidBackground.swift # Animated backgrounds
│ ├── GlassCard.swift # Simple glass cards
│ ├── GlassTextField.swift # Glass input fields
│ ├── GlassButton.swift # Basic glass buttons
│ ├── AppColors.swift # Color palette
│ ├── TabItem.swift # Tab enumeration
│ └── EnhancedLiquidGlassTabBar.swift
└── Services/ # Business logic
├── AstroChartService.swift # Transit calculations
├── OpenAIClient.swift # AI interpretations
└── CacheService.swift # Cache management
- macOS with Xcode 26.0+
- iOS 26+ Simulator or device
- OpenAI API key (set in
OpenAIClient.swift)
# Clone the repository
cd astrology-app
# Open in Xcode
open astrology-app.xcodeproj
# Or build from command line
xcodebuild -scheme astrology-app -configuration Debug \
-sdk iphonesimulator \
-destination 'platform=iOS Simulator,name=iPhone 17 Pro' \
build- Onboarding: Complete the 3-step onboarding flow
- Birth Data Entry: Enter your birth date, time, and location
- Manual location entry with coordinates
- Quick presets for major cities
- Dashboard: View your daily transits and planetary energies
- Active Transits: See which planets are currently aspecting your natal chart
- Interpretations: Get AI-powered explanations from both:
- Western astrology perspective
- Evolutionary astrology perspective
- House Information: Each transit shows the affected house
- Caching: Transits are cached for 24 hours to minimize API calls
- Big Three: View your Sun, Moon, and Rising sign
- All Planets: Complete list of planetary positions
- Signs: Turkish translations for all zodiac signs
- Details: Precise degree and sign information
- Preferred School: Choose between Western or Evolutionary as default
- Notifications: Toggle transit notifications
- Auto Refresh: Enable automatic cache refresh
- Clear Cache: Manually clear expired cache entries
Authentic iOS 26 Liquid Glass tab bar implementation:
GlassTabView(selection: $selectedTab, tabs: TabItem.allCases) {
HomeView().glassTab(TabItem.home)
NatalChartView().glassTab(TabItem.chart)
SettingsView().glassTab(TabItem.profile)
} item: { tab, isSelected in
TabItemContent(tab: tab, isSelected: isSelected)
}Use LiquidGlassCard for content containers:
LiquidGlassCard {
VStack {
Text("Title")
Text("Content")
}
}Choose the appropriate button style:
// Standard glass button
LiquidGlassButton(title: "Action", icon: "star") {}
// Primary (white) button
LiquidGlassPrimaryButton(title: "Save", icon: "checkmark") {}
// Outline button
LiquidGlassOutlineButton(title: "Cancel", icon: "xmark") {}
// Icon button
LiquidGlassIconButton(icon: "heart.fill") {}The app uses OpenAI for transit interpretations:
Western Astrology: Focuses on traditional predictive astrology Evolutionary Astrology: Based on Jeffrey Wolf Green's Pluto paradigm
Set your API key in OpenAIClient.swift:
private let apiKey = "your-openai-api-key"Accurate planetary calculations using the Swiss Ephemeris library:
- Precise planetary positions
- Aspect calculations
- House cusps
- Transit computations
Transits are cached for 24 hours to:
- Reduce API calls
- Improve load times
- Provide offline access
Cache is automatically cleared:
- After 24 hours
- Manual clear via settings
- On app update
- Widget support for daily transit
- Push notifications for significant transits
- Lunar phase tracking
- Compatibility reports
- Multiple birth profiles
- Export birth charts as images
- Transit calendar integration
Proprietary - All rights reserved
- Astrology Engine: SwissEphemeris
- AI: OpenAI GPT models
- UI Design: Inspired by iOS 26 Liquid Glass design system
- Tab Bar Implementation: Based on UnionTabView by Union St
For issues or questions, please contact the development team.
Last Updated: March 11, 2026 Version: 1.0.0 Build: 2026.03.11