100 lines
4.1 KiB
Markdown
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. |