BaseProject is an iOS app initial template, not only for acelerating every initial project setup, but also for promoting good practices and a scalable architecture. The main objective of opening this project is to constantly grow and improve with the community help. So any suggestion is welcome!
- Main Navigation (UITabBarController) ✅
- Multiple Environments ✅
- Login/Register ✅
- Basic UI Components ✅
- Network layer ✅
- CRUD Example ✅
- Architecture diagram ✅
- Code Templates 🔜
- CI 🔜
- Tests 🔜
- Permissions handling 🔜
- Well architectured
- Avoid spending time, on thinking "where this code should be?"
- Easy for reusing UI components through different projects
- Easy for reusing network layer through different projects
- Avoiding boilerplate
- Ready for data source changes
- Easy to distribute
- Easy for understand
- Easy to remember
- Easy for testing
- Not overkill
- Fast for developing
Well architecture
- Presentation Layer (MVP)
- Domain Layer (Clean Architecture)
- Data Layer
Avoid spending time, on thinking "where this code should be?"
- Comments on every class , for helping to understand
- Constants handling approach
- Permissions handling approach
Easy for reusing UI components through different projects
- Atomic UI Library
Easy for reusing network layer through different projects
- Network Library
Avoiding boilerplate
- Reusable UI Components
- Native class extentions
Ready for data source changes
- Dependency inversion on data layer
Easy to distribute
- Fastlane
- CircleCI
Easy for understand
- Comments for understanding architecture components
- Friendly naming
Easy to remember
- Friendly naming
Easy for testing
- Dependency injection
- Test examples
Not overkill
- Technicals tries
- Ready for extention
Fast for developing
- Templates
- Basic functionalities implementations (login,register,crudl,navigation)
- Environments setup