Skip to content

John-Tuesday/nutrition

Repository files navigation

nutrition

Release multiplatform License

Kotlin library which models human nutritional data.

This library has an implicit dependency on physical-measurement-units.

Getting started

First, add a dependency to this library.

Gradle (Kotlin DSL)
// build.gradle.kts

dependencies {
    implementation("io.github.john-tuesday:nutrition:$version")

    // Optional, adds test fixtures
    testImplementation("io.github.john-tuesday:nutrition-test:$version")
}

Now, use the library!

val mealNutrition = FoodNutrition(
    Portion(75.grams),
    310.kilocalories,
    mapOf(
        NutrientType.Protein to 12.8.grams,
        NutrientType.TotalFat to 6.41.grams,
        NutrientType.TotalCarbohydrate to 74.4.grams,
        NutrientType.Fiber to 10.3.grams,
        NutrientType.Sugar to 5.13.grams,
        NutrientType.Sodium to 487.milligrams,
        NutrientType.SaturatedFat to 1.28.grams,
        NutrientType.TransFat to 0.grams,
        // ...
        NutrientType.Calcium to 333.milligrams,
        NutrientType.Iron to 32.3.milligrams,
        NutrientType.Magnesium to 154.milligrams,
        NutrientType.Potassium to 641.milligrams,
    )
)
val extraSalt = Nutrient(NutrientType.Sodium, 750.milligrams)
val mealExtraSalt = mealNutrition + extraSalt
val mealNoSalt = mealNutrition - Nutrient(NutrientType.Sodium, mealNutrition.nutrients[NutrientType.Sodium])

Documentation

Generated api documentation can be found here.

About

Kotlin library which models human nutritional data

Resources

License

Stars

Watchers

Forks

Languages