Skip to content

amangeldybaiserkeev/TeymiaHabit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

389 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Teymia Habit - iOS Habit Tracker

A personal iOS project exploring modern Apple technologies. Full-cycle development from prototype to App Store publication.

๐Ÿ“ฑ Screenshots

HomeView HomeView HabitDetailView NewHabitView
IconPickerView HabitStatisticsView HabitStatisticsViewDark Widgets

Download on App Store

๐Ÿš€ Download

Download on App Store

โญ Or build from source using the instructions below!

โœจ Features

Core Features

  • Multiple habit types: Counters and timers with concurrent execution
  • Smart scheduling: Configure active days per habit
  • Cloud sync: CloudKit integration for seamless multi-device experience
  • Analytics: Detailed statistics with charts and calendar views
  • Security: Biometric protection with Face ID/Touch ID
  • Data export: Export habit data in CSV, JSON, or PDF formats
  • Archive system: Organize completed/inactive habits
  • Completion sounds: Audio feedback with custom sound selection
  • Haptic feedback: Enhanced tactile user experience

Pro Features

  • Unlimited habits (Free: 3 habits)
  • Advanced statistics with detailed charts
  • Multiple reminders per habit
  • Premium 3D icons for habits
  • Custom app themes and colors
  • Data export in multiple formats
  • Lifetime purchase option

๐ŸŽฏ About Project

Personal project for practicing iOS development with modern Apple stack. Complete development cycle from concept to App Store - UI/UX design, architecture implementation, and monetization.

Inspiration: Based on popular habit tracking apps but built from scratch to explore architectural patterns and modern iOS APIs.

๐Ÿ›  Tech Stack

Core Technologies

  • SwiftUI + @Observable - modern reactive architecture
  • SwiftData - local persistence with automatic migrations
  • CloudKit - data synchronization with conflict resolution
  • ActivityKit - Live Activities for Lock Screen and Dynamic Island
  • WidgetKit - Home Screen widgets

Architecture & Patterns

  • MVVM with clear separation of concerns
  • Dependency Injection via SwiftUI Environment
  • Protocol-Oriented Design for testability
  • Service Layer for business logic

Business Logic

  • RevenueCat - subscription and purchase management
  • UNUserNotificationCenter - smart notification scheduling
  • HapticManager - contextual haptic feedback

๐Ÿ“ฑ Requirements

  • iOS 18.0+
  • Xcode 16.0+
  • Swift 5.10+

๐Ÿ”ง Installation

Quick Setup

# Clone repository  
git clone https://github.com/amanbayserkeev0377/Teymia-Habit.git
cd Teymia-Habit

# Open in Xcode
open TeymiaHabit.xcodeproj

# Build and run (โŒ˜+R)

Configuration

1. RevenueCat (Optional)

Update RevenueCatConfig.swift for in-app purchases:

static let apiKey = "YOUR_REVENUECAT_API_KEY"

2. CloudKit (Optional)

Works with any Apple ID, but for production update the CloudKit container identifier.

๐Ÿ— Project Structure

TeymiaHabit/
โ”œโ”€โ”€ App/                    # App configuration
โ”œโ”€โ”€ Models/                 # SwiftData models
โ”œโ”€โ”€ Views/                  # SwiftUI views
โ”œโ”€โ”€ ViewModels/             # MVVM view models
โ”œโ”€โ”€ Managers/               # Core managers
โ”œโ”€โ”€ Services/               # Business logic
โ”œโ”€โ”€ UI Components/          # Reusable components
โ”œโ”€โ”€ Extensions/             # Swift extensions
โ”œโ”€โ”€ Pro/                    # Premium features
โ”œโ”€โ”€ LiveActivity/           # Live Activities
โ””โ”€โ”€ TeymiaHabitWidgets/     # Widget extensions

๐Ÿš€ Technical Highlights

Modern iOS Implementation

  • SwiftData with CloudKit - seamless sync with conflict resolution
  • Live Activities + Dynamic Island - iOS 18 integration with real-time updates
  • Concurrent timer execution - multiple habits running simultaneously
  • Background persistence - state maintained across app lifecycle
  • Memory-optimized calendar - efficient rendering for large date ranges

Key Technical Decisions

  • @Observable over Combine - simpler state management without reactive complexity
  • Protocol-first architecture - testable and flexible component design
  • Single dependency principle - only RevenueCat for subscription handling
  • SwiftData migrations - smooth schema evolution without data loss

Production Ready Features

  • Complete freemium implementation with feature gating
  • RevenueCat integration - subscriptions, lifetime purchases, trial handling
  • Biometric security - Face ID/Touch ID with custom passcode fallback
  • 16-language localization - including RTL support considerations
  • Accessibility compliance - VoiceOver and Dynamic Type support

๐ŸŒ Localization

Currently supports 16 languages including:

  • ๐Ÿ‡บ๐Ÿ‡ธ English โ€ข ๐Ÿ‡ท๐Ÿ‡บ Russian โ€ข ๐Ÿ‡ฐ๐Ÿ‡ฌ Kyrgyz โ€ข ๐Ÿ‡ฐ๐Ÿ‡ฟ Kazakh
  • ๐Ÿ‡จ๐Ÿ‡ณ Chinese (Simplified, Traditional, Hong Kong)
  • ๐Ÿ‡ช๐Ÿ‡ธ Spanish โ€ข ๐Ÿ‡ซ๐Ÿ‡ท French โ€ข ๐Ÿ‡ฉ๐Ÿ‡ช German โ€ข ๐Ÿ‡ง๐Ÿ‡ท Portuguese
  • ๐Ÿ‡ฏ๐Ÿ‡ต Japanese โ€ข ๐Ÿ‡ฐ๐Ÿ‡ท Korean โ€ข ๐Ÿ‡ฎ๐Ÿ‡ณ Hindi โ€ข ๐Ÿ‡น๐Ÿ‡ท Turkish
  • ๐Ÿ‡ป๐Ÿ‡ณ Vietnamese โ€ข ๐Ÿ‡ฎ๐Ÿ‡น Italian โ€ข ๐Ÿ‡ฎ๐Ÿ‡ฉ Indonesian

๐Ÿ’ฐ Business Model

Implemented complete freemium monetization:

  • Free tier: 3 habits with basic features
  • Subscription: Monthly/yearly plans with 7-day trial
  • Lifetime: One-time purchase option
  • Feature gating: Throughout the app with upgrade prompts

๐ŸŽจ Design Approach

  • Apple HIG compliance with native iOS patterns
  • Adaptive design supporting all iPhone screen sizes
  • Dark/Light theme with custom color schemes
  • Accessibility first with VoiceOver support
  • Smooth animations enhancing user experience

๐Ÿ“Š Development Insights

Challenges Solved

  • CloudKit + SwiftData synchronization - reliable conflict resolution across devices
  • Live Activities state consistency - maintaining timer accuracy across app states
  • Widget data synchronization - App Groups with real-time updates
  • Background timer precision - iOS background execution limitations
  • Memory optimization - efficient calendar rendering for years of data

Performance Considerations

  • Lazy loading for historical data views
  • Smart caching for frequently accessed statistics
  • Efficient Core Data predicates for large datasets
  • Background task optimization for timer persistence

Current Limitations

  • iOS-only implementation (Apple ecosystem focus)
  • Zero third-party dependencies except RevenueCat for subscriptions
  • Prioritized simplicity over complex optimizations

๐Ÿ“„ License

MIT License - see LICENSE file for details.

๐Ÿ“ง Contact

  • App Store: Teymia Habit
  • Issues: Use GitHub Issues for technical questions

Pet project showcasing modern iOS development practices and full app lifecycle management.

About

Teymia Habit: A modern iOS habit tracker built with SwiftUI, SwiftData, and CloudKit. Features include Live Activities, Dynamic Island, widgets, and in-app purchases. Open-sourced to showcase advanced iOS development patterns.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages