RTSDA-iOS/README.md

100 lines
4.1 KiB
Markdown

# RTSDA iOS App
The official iOS app for the Rockville-Tolland Seventh-day Adventist Church. This app provides easy access to church services, media content, and information.
## Features
- **Live Streaming**: Watch church services live through OwnCast integration
- **Video Library**: Access archived sermons and special programs via Jellyfin
- **Digital Bulletin**:
- View weekly church bulletins with enhanced formatting
- Interactive hymn links that open in the Adventist Hymnal app
- Bible verse links that open in YouVersion Bible app
- PDF download option for offline viewing
- Responsive reading support
- **Events & Calendar**: Stay updated with church announcements and upcoming events
- **Contact Form**: Direct communication with church staff
- **Church Information**: Access church beliefs, contact information, and more
- **Home Feed**: Unified view of latest bulletins, events, and media content
## Architecture
### Version 2.0 - Major Rewrite
This version represents a complete architectural overhaul with significant improvements:
- **Unified Data Layer**: All networking consolidated into a single `ChurchService` powered by the church_core Rust library
- **Performance Improvements**: 60% code reduction with optimized Rust-based networking
- **Consistent API**: Same backend used across website, iOS app, and Beacon platform
- **Enhanced UI**: Completely redesigned interface with improved navigation and user experience
- **Better Error Handling**: Robust error management with user-friendly messaging
### Technical Stack
- **Frontend**: SwiftUI with iOS 17.0+ features
- **Backend Integration**: church_core Rust library via UniFFI bindings
- **Networking**: Optimized Rust reqwest with built-in caching
- **Media Integration**:
- Jellyfin for video content
- OwnCast for live streaming
- External app integration (YouVersion Bible, Adventist Hymnal)
## Building the App
### Prerequisites
- Xcode 15.0 or later
- iOS 17.0 or later
- Swift 5.9 or later
### Setup
1. Clone the repository:
```bash
git clone ssh://rockvilleav@git.rockvilletollandsda.church:10443/RTSDA/RTSDA-iOS.git
```
2. Open `RTSDA.xcodeproj` in Xcode
3. Ensure the church_core framework is properly linked
4. Build and run the project
### Dependencies
The app includes the following bundled dependencies:
- **ChurchCore.xcframework**: Rust-based networking library
- **UniFFI Bindings**: Swift bindings for church_core functionality
## Version History
### Version 2.0 (Current)
**Major Release - Complete Rewrite**
- 🚀 **Unified ChurchService**: Replaced 4 separate networking services with single optimized service
-**60% Code Reduction**: Eliminated duplicate networking code for better maintainability
- 🎨 **UI/UX Overhaul**: Completely redesigned interface with improved navigation
- 📱 **Enhanced Views**: New MainAppView, HomeFeedView, and improved detail views
- 🔄 **Better State Management**: Improved data flow and error handling
- 📖 **Responsive Reading**: Added support for call-and-response bulletin sections
- 🏗️ **Rust Backend**: Leveraging church_core library for consistent, performant API calls
- 📊 **Improved Performance**: Faster data loading and better memory management
- 🔗 **Unified Platform**: Same backend as website and Beacon for data consistency
### Version 1.2.1
- Improved Bible verse formatting in splash screen
- Enhanced bulletin view formatting
- Better text processing and presentation
### Version 1.2
- Added Digital Bulletin system
- Interactive hymn and Bible verse links
- PDF download functionality
- Updated to iOS 17.0 minimum
### Version 1.1
- Initial release
- Basic live streaming and media library
- Church information and beliefs reference
## License
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
**Important Note**: While the app code is GPL v3, the church content (sermons, bulletins, media) remains copyrighted by the Rockville-Tolland Seventh-day Adventist Church. See LICENSE file for full details.
## Contact
For any inquiries about the app, please contact the Benjamin Slingo IT department.