# 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.