Modularization

Structure

The Connect SDK repositories are adopting a modular approach with 1.4.0 release. Our aim is to provide flexibility to the developers to be able pick and choose between the various devices. Currently you can choose whether to include Google Cast and Fire TV devices or not. We plan to include more device options in the upcoming releases.

The Connect SDK is split into modules with the help of git submodules. There are two options:

1. The full project (Connect-SDK-iOS and Connect-SDK-Android) includes three submodules: core, google-cast, and firetv and thus provides the full feature set. The latter submodules are located in the modules directory.

2. The lite project (Connect-SDK-iOS-Lite and Connect-SDK-Android-Lite) includes the core submodule only, therefore there is no need to download any third-party dependencies.

Please refer to the figure below displaying dependencies between different modules and libraries (for iOS and Android).

Components with a light green background are external dependencies. The dashed lines show the submodule links, whereas the solid lines depict build and/or runtime dependencies.

Android SDK Component Diagram

Figure 1. Android SDK Component Diagram (showing Google Cast submodule as an example)

Links to the repositories are provided in the next table:

Table 1. Links to the repositories of Android
Module Link
full https://github.com/ConnectSDK/Connect-SDK-Android
lite https://github.com/ConnectSDK/Connect-SDK-Android-Lite
core https://github.com/ConnectSDK/Connect-SDK-Android-Core
google-cast https://github.com/ConnectSDK/Connect-SDK-Android-Google-Cast
firetv https://github.com/ConnectSDK/Connect-SDK-Android-FireTV

Usage instructions can be found in the full README or lite README.

Contributing

Since the source code is split between three repositories now (in the full version, whereas lite has only two), contributing is a bit more involved now. If you add a new feature across all the modules, you will have to create two GitHub pull requests, one for each module. Our team will check the code and merge the changes into the submodules, then update the full and lite repositories (as those just keep the project and track commits from the submodules). If you have a simpler contributing workflow in mind, please let us know.