docs/license-sources.md
author Da Risk <da_risk@geekorum.com>
Wed, 07 May 2025 14:36:37 -0400
changeset 101 dc93e4229242
parent 97 20ba708adda9
permissions -rw-r--r--
ui:material3: use collectAsStateWithLifecycle()
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
84
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     1
License sources
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     2
===============
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
     3
90
260a6b232f4d docs: add badges and some intro to license-sources
Da Risk <da_risk@geekorum.com>
parents: 84
diff changeset
     4
The library can work with license information files generated by:
260a6b232f4d docs: add badges and some intro to license-sources
Da Risk <da_risk@geekorum.com>
parents: 84
diff changeset
     5
260a6b232f4d docs: add badges and some intro to license-sources
Da Risk <da_risk@geekorum.com>
parents: 84
diff changeset
     6
- [OSS Licenses Gradle Plugin](https://github.com/google/play-services-plugins/tree/main/oss-licenses-plugin)
260a6b232f4d docs: add badges and some intro to license-sources
Da Risk <da_risk@geekorum.com>
parents: 84
diff changeset
     7
- [licensee](https://github.com/cashapp/licensee)
260a6b232f4d docs: add badges and some intro to license-sources
Da Risk <da_risk@geekorum.com>
parents: 84
diff changeset
     8
- [LicensePlist](https://github.com/mono0926/LicensePlist)
260a6b232f4d docs: add badges and some intro to license-sources
Da Risk <da_risk@geekorum.com>
parents: 84
diff changeset
     9
84
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    10
Setup
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    11
=====
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    12
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    13
Add the dependency to your project
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    14
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    15
```kotlin title="build.gradle.kts"
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    16
dependencies {
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    17
    implementation("com.geekorum.aboutoss:core:<latest-version>")
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    18
}
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    19
```
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    20
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    21
OSS Licenses Gradle Plugin
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    22
--------------------------
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    23
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    24
The [OSS Licenses Gradle Plugin](https://github.com/google/play-services-plugins/tree/main/oss-licenses-plugin) stores license information in Android resources.
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    25
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    26
Create a [GmsLicenseInfoRepository](api/core/com.geekorum.aboutoss.core.gms/-gms-license-info-repository/index.html) to retrieves it.
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    27
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    28
The `GmsLicenseInfoRepository` is only available on Android platform.
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    29
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    30
```kotlin
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    31
 val licenseInfoRepository = GmsLicenseInfoRepository(
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    32
        appContext = application
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    33
    )
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    34
```
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    35
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    36
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    37
Licensee
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    38
--------
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    39
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    40
[licensee](https://github.com/cashapp/licensee) report file can be used as a source of license information.
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    41
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    42
Create a [LicenseeLicenseInfoRepository](api/core/com.geekorum.aboutoss.core.licensee/-licensee-license-info-repository/index.html) to read the report file.
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    43
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    44
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    45
```kotlin title="on iOS and Desktop"
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    46
val licenseInfoRepository = LicenseeLicenseInfoRepository()
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    47
```
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    48
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    49
```kotlin title="on Android"
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    50
val licenseInfoRepository = LicenseeLicenseInfoRepository(
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    51
    assetManager = application.assets
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    52
)
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    53
```
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    54
97
20ba708adda9 soft deprecate ui-material
Da Risk <da_risk@geekorum.com>
parents: 90
diff changeset
    55
LicensePlist (Experimental)
20ba708adda9 soft deprecate ui-material
Da Risk <da_risk@geekorum.com>
parents: 90
diff changeset
    56
---------------------------
84
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    57
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    58
On iOS, [LicensePlist](https://github.com/mono0926/LicensePlist) can be use to automatically generates a Plist of all your dependencies.
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    59
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    60
Use [LicensePlistLicenseInfoRepository](api/core/com.geekorum.aboutoss.core.licenseplist/-license-plist-license-info-repository/index.html)
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    61
to parse license information stored in your resources bundle.
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    62
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    63
The `LicensePlistLicenseInfoRepository` is only available on iOS platform.
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    64
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    65
```kotlin
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    66
val licenseInfoRepository = LicensePlistLicenseInfoRepository()
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    67
```
f1e51fe391c2 docs: add documentation for different license sources and UI
Da Risk <da_risk@geekorum.com>
parents:
diff changeset
    68