Skip to content

cagataycode/astrolo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Astrology App

A modern iOS astrology app featuring personalized transit interpretations, natal chart calculations, and AI-powered insights using OpenAI.

Features

  • 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

Design System

Color Palette

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

iOS 26 Liquid Glass

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 .ultraThinMaterial for iOS < 26

Tab Bar

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

Tech Stack

  • 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+

Architecture

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

Getting Started

Prerequisites

  • macOS with Xcode 26.0+
  • iOS 26+ Simulator or device
  • OpenAI API key (set in OpenAIClient.swift)

Build & Run

# 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

Usage

First Launch

  1. Onboarding: Complete the 3-step onboarding flow
  2. Birth Data Entry: Enter your birth date, time, and location
    • Manual location entry with coordinates
    • Quick presets for major cities
  3. Dashboard: View your daily transits and planetary energies

Daily Transits

  • 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

Natal Chart

  • 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

Settings

  • 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

Key Components

GlassTabBar

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)
}

Glass Cards

Use LiquidGlassCard for content containers:

LiquidGlassCard {
    VStack {
        Text("Title")
        Text("Content")
    }
}

Glass Buttons

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") {}

API Integration

OpenAI

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"

SwissEphemeris

Accurate planetary calculations using the Swiss Ephemeris library:

  • Precise planetary positions
  • Aspect calculations
  • House cusps
  • Transit computations

Caching Strategy

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

Future Enhancements

  • 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

License

Proprietary - All rights reserved

Credits

  • 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

Support

For issues or questions, please contact the development team.


Last Updated: March 11, 2026 Version: 1.0.0 Build: 2026.03.11

About

astrology app featuring personalized transit interpretations, natal chart calculations, and AI-powered insights using OpenAI.

Resources

Stars

Watchers

Forks

Contributors

Languages