A good approach would be to split your application into the following components:
- Base model library
- Reusable views and view controllers. Views can be designed to support skinning and customization.
- Any other reusable code that can be encapsulated as its own "identity".
These core projects should ideally have their own continuous integration (quality control) assemblies and tests.
And then use CoocaPods
Instead of manually performing all this complex integration, use CocoaPods . CocoaPods will create an Xcode workspace, build libraries, and link them to your project. Then you create a custom assembly by simply gluing the pieces together.
In addition to this, CocoaPods also performs tasks such as:
- Resolving transitive dependencies is simply creating and fetching any libraries that use your libraries.
- Version control of integrated libraries.
Private spec repo is possible, or just use github
The main CocoaPods repository, of course, is open and contains open source libraries and / or freely available libraries.
You can host your own CocoaPods specification repository or just set up a private GitHub account and include PodSpec in each project, and then solve the following:
pod 'MyLibraryName', :git => 'https://github.com/myOrgName/MyLibrary.git'
this will install all your libraries in the workspace. To update a project to include any changes to the core libraries, simply:
pod update
The advantages of this approach
- You will have a separate set of quality control elements that will be applied to each major project.
- There will be much less reputation.
- You can use more automation. More automation equals less waste equals more value to customers.
- As your team grows, you can separate product integration and solution integration with individual roles / teams. The team working on the integration assembly should not pull out the latest library functions if this violates them.
- You can have two different clients in different assemblies of the main library. CocoaPods will manage this without a problem. Therefore, you do not need to update the assembly until you receive a request for an upgrade or scheduled maintenance. (Again, waste reduction, which adds value to customers).
Inspired by Piggly Wiggly (but leaned over and missed)
This approach is modeled after the production line style approach, which was popularized in Japan after World War II. It is called Lean Methodology , and all this is associated with fast, small stockpile and waste reduction. (Delivering more with less.), Japanese executives got inspiration for this when they went to America and visited the Piggly Wiggly supermarket stores.
Jasper blues
source share