Created by BrightDigit
Based on the article: Choosing the Best Backend for your iOS App
- Decision Tree
- Do You Need a Backend?
- Backend Options Overview
- Swift on the Server Options
- Technical Considerations
- Deployment Considerations
- Cost Considerations
- About BrightDigit
- Further Reading
- License
graph TD
A[Start] --> B{Need Cloud Storage?}
B -->|No| C[Use Local Storage]
B -->|Yes| D{Project Type?}
D -->|MVP| E{Data Complexity?}
D -->|Enterprise| F{Need Full Control?}
E -->|Simple| G{Platform Support?}
E -->|Complex/Relational| H{Load Pattern?}
G -->|Apple Only| I[CloudKit]
G -->|Cross Platform| J[Firebase]
H -->|Constant| K[Container-based PaaS]
H -->|Sporadic| L[AWS Lambda]
F -->|Yes| M[Virtual Machine Service]
F -->|No| K
subgraph Note
Z[Services marked with arrows can run Swift code]
end
Z -.-> K
Z -.-> L
Z -.-> M
Consider local storage first if:
- Data is private/sensitive
- You're using third-party APIs (YouTube, etc.)
- You only need local device storage with Core Data
- Data backup can be handled through manual file exports
Best for:
- Private/sensitive data
- Offline-first applications
- Simple data structures
- Individual device usage
Best for:
- Apple-only ecosystem
- Native iOS development
- Push notification requirements
- Client app transfers
- Simple data structures
Best for:
- Cross-platform development
- Real-time database needs
- Simple query requirements
- Quick MVP development
- Limited backend maintenance
Best for:
- Sporadic workloads
- Pay-per-use pricing
- Event-driven processing
- Swift serverless (only platform supporting Swift natively)
- APIs with intermittent traffic
Best for:
- Constant workloads
- Relational databases
- Traditional web applications
- Better cloud provider portability
- Fixed monthly costs
Popular Options:
Best for:
- Maximum control
- Custom infrastructure requirements
- Complex networking needs
- Specific compliance requirements
- Legacy system support
Popular Options:
Swift can be used as a server-side language in multiple deployment scenarios:
- Vapor
- Hummingbird
- SwiftNIO (for building custom frameworks)
- Virtual Machine Services (run Swift directly on Linux)
- Container-based PaaS (using Docker containers)
- AWS Lambda supports Swift
- Heroku (supports Swift buildpacks)
Simple Data Needs:
- Key-value storage
- Document storage
- Basic CRUD operations
- No complex relationships
Complex Data Needs:
- Relational data
- Complex queries
- Transaction requirements
- Data consistency requirements
- PostgreSQL - Popular open-source relational database
- MySQL - Open-source relational database
- MongoDB - Document-based NoSQL database
- Redis - In-memory data structure store
- Amazon DynamoDB - NoSQL key-value database
- Amazon Aurora - Cloud-native relational database
Sporadic:
- Irregular usage
- Long idle periods
- Burst traffic
- Development/testing
Constant:
- Steady traffic
- Predictable load
- 24/7 operation
- Regular usage patterns
- Consider infrastructure as code from the start
- Plan for monitoring and logging
- Consider backup and disaster recovery
- Think about scaling strategy
- Plan for security from the beginning
- Serverless: Pay per use, good for variable loads
- Containers: Fixed costs, better for constant loads
- VMs: Most control, highest maintenance overhead
- Factor in developer time and expertise
- Consider future scaling costs
Founded in 2012, BrightDigit specializes in Swift and Apple platform development. We believe platform-native development delivers the best user experience, bringing deep technical expertise to help companies build exceptional apps for iOS, watchOS, and the entire Apple ecosystem.
From initial concept to complex development challenges, our team provides end-to-end support including:
- Swift app development for all Apple platforms (iOS, watchOS, tvOS, macOS)
- Swift on the server with Vapor, Hummingbird, and AWS Lambda serverless functions
- Platform porting and Android to iOS app conversions
- API development and third-party integrations
- UI/UX design optimized for Apple's Human Interface Guidelines
- Backend architecture selection and implementation
📧 Contact us for a consultation 📰 Subscribe to our newsletter for iOS development tips 🎧 Listen to our podcast featuring iOS industry experts
Featured Articles & Podcast Episodes:
- 📖 Choosing the Best Backend for your iOS App - Comprehensive guide to backend selection
- 🎙️ Swift Server Side Serverless with Sébastien Stormacq - Deep dive into AWS Lambda with Swift
- 🎙️ Backend Decisions with Mikaela Caron - Real-world backend selection strategies
- Server-Side Swift - Official Swift server resources
- Vapor Discord - Active community for Swift backend developers
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
This means you are free to:
- Share — copy and redistribute the material in any medium or format
- Adapt — remix, transform, and build upon the material for any purpose, even commercially
Under the following terms:
- Attribution — You must give appropriate credit to BrightDigit, provide a link to the license, and indicate if changes were made
- ShareAlike — If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original
- Link Back — Any use must include a link back to this original repository
© 2025 BrightDigit, LLC. All rights reserved.
For questions about licensing or usage, contact Leo at leo@brightdigit.com
Made with ❤️ by BrightDigit