Элегантное нативное iOS-приложение с акцентом на безупречный UX и плавность анимаций! 🚀
PageBook - это нативное iOS-приложение для работы со справочными материалами, заметками, задачами и календарем. Часть кроссплатформенного проекта PageBook, разрабатываемого нативно для обеих платформ.
🤖 Android версия: PageBook Android
- Создание и редактирование с поддержкой форматирования 🎨
- Организация по папкам и тегам 🏷️
- Мгновенный поиск с подсветкой
- Умные списки дел с приоритетами
- Напоминания и уведомления
- Отслеживание прогресса
- Ежедневное, недельное и месячное виды
- Интеграция с задачами и событиями
- Плавные переходы и жесты
- 💙 Swift 5.9 - современный и безопасный код
- 🎨 SwiftUI - декларативный UI фреймворк
- ⚡ Combine - реактивное программирование
- 💾 Core Data - мощное локальное хранилище
- 🔄 Swift Concurrency - async/await
- 📐 SwiftUI Animations - плавные анимации
graph TD
A[View Layer - SwiftUI] --> B[ViewModel]
B --> C[Service Layer]
C --> D[Persistence - Core Data]
C --> E[Network - Future]
style A fill:#e3f2fd
style B fill:#fce4ec
style C fill:#e8f5e8
- View Layer: SwiftUI Views + Modifiers
- ViewModel Layer: ObservableObject + @Published
- Service Layer: Data management & business logic
- Persistence Layer: Core Data with SwiftUI integration
- Xcode 15.0 или новее
- iOS 16.0+ SDK
- Swift 5.9+
-
Клонируйте репозиторий
git clone https://github.com/MaxGog/PageBook-ios.git cd PageBook-ios -
Откройте в Xcode
open PageBook.xcodeproj
или
- Запустите Xcode
- File → Open → Выберите
PageBook.xcodeproj
-
Настройте проект
- Выберите целевое устройство или симулятор
- Убедитесь, что выбрана схема "PageBook"
-
Запустите приложение
- Нажмите
▶️ Run илиCmd + R - Дождитесь сборки и запуска
- Нажмите
PageBook-iOS/
├── Sources/
│ ├── Models/ # Data models
│ │ ├── Note.swift # Модель заметки
│ │ ├── Task.swift # Модель задачи
│ │ └── CalendarEvent.swift # Модель события
│ ├── Views/ # SwiftUI Views
│ │ ├── Screens/ # Экраны приложения
│ │ │ ├── Notes/ # 📝 Работа с заметками
│ │ │ ├── Tasks/ # ✅ Управление задачами
│ │ │ └── Calendar/ # 🗓️ Календарь и планирование
│ │ ├── Components/ # Переиспользуемые компоненты
│ │ └── Modifiers/ # Кастомные модификаторы
│ ├── ViewModels/ # Бизнес-логика
│ │ ├── NotesViewModel.swift
│ │ ├── TasksViewModel.swift
│ │ └── CalendarViewModel.swift
│ ├── Services/ # Служебные сервисы
│ │ ├── PersistenceService.swift # Core Data
│ │ ├── NotificationService.swift # Уведомления
│ │ └── DataSyncService.swift # Синхронизация
│ └── Utilities/ # Утилиты и extensions
│ ├── Extensions/ # Swift extensions
│ ├── Constants/ # Константы приложения
│ └── Helpers/ # Вспомогательные функции
├── Resources/ # Ресурсы
│ ├── Assets.xcassets # Изображения и иконки
│ ├── LaunchScreen.storyboard # Launch Screen
│ └── Info.plist # Конфигурация приложения
└── PageBook.xcodeproj # Проект Xcode
| Модуль | Описание | Технологии |
|---|---|---|
| Notes | Управление заметками 📝 | SwiftUI, Core Data, @FetchRequest |
| Tasks | To-do листы и задачи ✅ | SwiftUI, Combine, UserNotifications |
| Calendar | Планирование и события 🗓️ | SwiftUI, DatePicker, Calendar |
xcodebuild -project PageBook.xcodeproj -scheme PageBook -configuration Debugxcodebuild test -project PageBook.xcodeproj -scheme PageBook -destination 'platform=iOS Simulator,name=iPhone 15'- Включите SwiftLint в build phases
- Используйте Analyze в Xcode (Cmd+Shift+B)
Мы рады контрибьюторам! Вот как вы можете помочь:
- Используйте Issues
- Опишите шаги для воспроизведения
- Укажите версию iOS и устройство
- Откройте Issue с меткой
enhancement - Опишите проблему и предлагаемое решение
- Форкните репозиторий
- Создайте feature branch (
git checkout -b feature/amazing-feature) - Сделайте коммит изменений (
git commit -m 'Add amazing feature') - Запушьте branch (
git push origin feature/amazing-feature) - Откройте Pull Request
Начните с задач, помеченных good first issue - они идеальны для новичков!
- Синхронизация с iCloud ☁️
- Виджеты для домашнего экрана 📱
- Поддержка iPad и Mac 💻
- Интеграция с Shortcuts ⚡
- Темная тема с адаптивными цветами 🌙
Этот проект распространяется под лицензией MIT. Подробнее см. в файле LICENSE.
MaxGog
- GitHub: @MaxGog
Есть вопросы или предложения? Не стесняйтесь:
- Создать Issue
- Написать в Discussions
⭐ Не забудьте поставить звезду репозиторию, если проект вам понравился!