inject

A simple Kotlin multi-platform abstraction around the javax.inject annotations.

https://github.com/chrynan/inject

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.2%) to scientific vocabulary

Keywords

dependency-injection inject injection kotlin kotlin-library kotlin-multi-platform kotlin-multiplatform

Keywords from Contributors

viewmodel navigation-component navigation-architecture-component nav kotlin-multiplatform-mobile jetpack-navigation jetpack-compose presentation mvvm-architecture mvvm-android
Last synced: 6 months ago · JSON representation ·

Repository

A simple Kotlin multi-platform abstraction around the javax.inject annotations.

Basic Info
  • Host: GitHub
  • Owner: chRyNaN
  • License: apache-2.0
  • Language: Kotlin
  • Default Branch: master
  • Homepage:
  • Size: 338 KB
Statistics
  • Stars: 46
  • Watchers: 2
  • Forks: 2
  • Open Issues: 2
  • Releases: 5
Topics
dependency-injection inject injection kotlin kotlin-library kotlin-multi-platform kotlin-multiplatform
Created about 6 years ago · Last pushed over 2 years ago
Metadata Files
Readme Funding License Code of conduct Citation Codeowners

README.md

inject

Inject

A simple Kotlin multi-platform abstraction around the javax.inject annotations. This allows using the annotations in Kotlin common code so that platform specific annotation processors can register them.
GitHub tag (latest by date)

For more information about the library, refer to the blog post here which was featured in Android Weekly issue #396.

Badge

The blog post was also featured in Kotlin Weekly issue #182.

Getting Started 🏁

The library is provided through repsy.io. Checkout the releases package to get the latest version.
GitHub tag (latest by date)

Repository

kotlin repositories { maven { url = "https://repo.repsy.io/mvn/chrynan/public" } }

Dependencies

kotlin implementation("com.chrynan.inject:inject:VERSION")

Usage 👨‍💻

Simply use the provided annotations just as you would use the javax.inject annotations.

For example, using the Inject annotation on a constructor in Kotlin Common code:

kotlin class MyUseCase @Inject constructor() { ... }

Available annotations and interfaces

  • @Inject
  • @Named("name")
  • @Qualifier
  • @Scope
  • @Singleton
  • Provider<T>

Documentation 📃

More detailed documentation is available in the docs folder. The entry point to the documentation can be found here.

Security 🛡️

For security vulnerabilities, concerns, or issues, please responsibly disclose the information either by opening a public GitHub Issue or reaching out to the project owner.

Contributing ✍️

Outside contributions are welcome for this project. Please follow the code of conduct and coding conventions when contributing. If contributing code, please add thorough documents. and tests. Thank you!

Sponsorship ❤️

Support this project by becoming a sponsor of my work! And make sure to give the repository a ⭐

License ⚖️

``` Copyright 2021 chRyNaN

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ```

The javax.inject library is also licensed under the Apache License 2.0.

Owner

  • Name: Christopher
  • Login: chRyNaN
  • Kind: user
  • Location: Austin, TX
  • Company: Starry

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
    - family-names: "Keenan"
      given-names: "Christopher"
      alias: chRyNaN
      website: "https://chrynan.codes"
contact:
    - family-names: "Keenan"
      given-names: "Christopher"
      alias: chRyNaN
      website: "https://chrynan.codes"
title: "inject"
type: "software"
abstract: "A simple Kotlin multi-platform abstraction around the javax.inject annotations."
license: Apache-2.0
keywords:
    - kotlin
    - inject
    - "dependency injection"
    - di
    - "dependency-injection"
    - "kotlin multiplatform"
repository-code: "https://github.com/chRyNaN/inject"
url: "https://github.com/chRyNaN/inject"

GitHub Events

Total
  • Issue comment event: 3
Last Year
  • Issue comment event: 3

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 41
  • Total Committers: 3
  • Avg Commits per committer: 13.667
  • Development Distribution Score (DDS): 0.073
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Chris c****n@s****m 38
Chris Keenan c****n@p****e 2
Chris c****n@p****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 7 months ago