Client for World Tides API compatible with Android, Kotlin and Java applications.
Add the JitPack repo to your root build.gradle:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}Declare the dependency in the module's build.gradle:
dependencies {
implementation 'com.oleksandrkruk:worldtides:2.0.0'
}| API Request | API version | Supported | Planned |
|---|---|---|---|
| Extremes | v2 | Yes | - |
| Heights | v2 | Yes | - |
| Stations | v2 | No | Yes |
| Datum | v2 | No | Yes |
Kotlin
val worldTides = WorldTides.Builder().build(apiKey)
worldTides.getTideExtremes(date, days, lat, lon) { result ->
result.onSuccess { tideExtremes ->
tideExtremes.extremes.forEach { extreme ->
println("${extreme.type} at ${extreme.date}: ${extreme.height}m")
}
}
result.onFailure { error ->
println("Error: ${error.message}")
}
}Java
WorldTides wt = new WorldTides.Builder().build(apiKey);
wt.getTideExtremes(date, 7, lat, lon, new TidesCallback<TideExtremes>() {
@Override
public void result(TideExtremes tides) {
// Use the tide extremes
}
@Override
public void error(Error error) {
// Handle error
}
});Kotlin
val worldTides = WorldTides.Builder().build(apiKey)
worldTides.getTideHeights(date, days, lat, lon) { result ->
result.onSuccess { tideHeights ->
tideHeights.heights.forEach { height ->
println("Height at ${height.date}: ${height.height}m")
}
}
result.onFailure { error ->
println("Error: ${error.message}")
}
}Java
WorldTides wt = new WorldTides.Builder().build(apiKey);
wt.getTideHeights(date, 7, lat, lon, new TidesCallback<TideHeights>() {
@Override
public void result(TideHeights heights) {
// Use the tide heights
}
@Override
public void error(Error error) {
// Handle error
}
});Fetch multiple data types in a single API call:
Kotlin
val dataTypes = listOf(TideDataType.HEIGHTS, TideDataType.EXTREMES)
worldTides.getTides(date, days, lat, lon, dataTypes) { result ->
result.onSuccess { tides ->
tides.heights?.let { println("Heights: ${it.heights.size} points") }
tides.extremes?.let { println("Extremes: ${it.extremes.size} points") }
}
}Java
List<TideDataType> dataTypes = Arrays.asList(TideDataType.HEIGHTS, TideDataType.EXTREMES);
wt.getTides(date, 7, lat, lon, dataTypes, new TidesCallback<Tides>() {
@Override
public void result(Tides tides) {
if (tides.getHeights() != null) {
// Use heights data
}
if (tides.getExtremes() != null) {
// Use extremes data
}
}
@Override
public void error(Error error) {
// Handle error
}
});This project follows Semantic Versioning.
- This lib uses Retrofit and OkHttp and at the moment it's not possible to pass in you existing OkHttp or other client to be used by retrofit. The plan is to allow the user of this lib to pass in the client to avoid creating multiple clients in your app.