Comments (3)
Hi @TobseF, thank you for the compliments! :) That conversion you did was quite a feat! :o I'm not much of an Android or Kotlin programmer myself, so no, I have not had any plans to support either of them... I'm too fond of the Java 8 streams and Optionals to go back to Java 6 style of code. ;) Is there anything else I could do for you regarding the library?
from yetanotherhueapi.
The library worked like a charm. The only confusing thing was, that I have to choose a style of setting a light. So if I set a light by color, I'm not able to also set the brightness. E.g. it's not possible to call:
State.builder().color(Color.RED).brightness(254)
.
That's ok, and it make sense, if you know the HUE API, but using it for the first time was tricky.
As a Kotlin fanboy I can only advice you to give it a try. I bet you will never switch back 😉
With Optionals and Streams... it's the opposite... Kotlin solves it much better and removing them wasn't a step back.
E.g. your loved Stream API:
# Java
return Collections.unmodifiableCollection(this.sensors.values().stream()
.filter(s -> type.equals(s.getType()))
.map(sensorClass::cast)
.collect(toList()));
VS
# Kotlin
return this.sensors.values.filter { type == it.type }.map (sensorClass::cast)
It's also complete typesafe. You will also receive e a unmodifiableCollection. And the "==" check also calls the equals
method. And you can skip the collect()
. What do you think is more expressive?
And in Kotlin Optionals are completely obsolete, because you have to specify on every type, if it's nullable or not. You can never set a String
to null
. If you need it, you have to declare it as String?
. Then you can set it to null
, but also have to check it, before you can call it. So goodby to NPEs.
KOTLIN FANBLOCK END 😁
from yetanotherhueapi.
Yeah, well, how would setting both color and brightness even work? What should happen if you set a very dark color, such as #220000
, but set it to 100% brightness? So you should just choose a brighter color. :)
The StateBuilder has been designed to protect the user from setting options that are contradictory, such as setting both the color (RGB value) and the hue (a value from 0 to 65280). It does still need some work, as I've previously noted here: #9 (comment)
I suppose I do need to try Kotlin some day, maybe the next time I come up with a new project. ;)
from yetanotherhueapi.
Related Issues (20)
- Add colorloop effect
- Add group 0, i.e. the "all lights" group
- NPE when bridge doesn't return sensors HOT 5
- could you make a java 11 version which includes a module-info file. THX HOT 2
- Get color of light HOT 1
- Turn on / off room without setState (color, alert, etc...) HOT 2
- Why so restrictive? HOT 7
- Add mDNS support for discovering bridges HOT 1
- Add new light HOT 6
- Server-Sent Events HOT 7
- Implement a findByUiniqueId for lights and sensors HOT 11
- No logging by default HOT 3
- TemperatureSensor#getDegreesCelsius NPE HOT 10
- Get state ... question ? HOT 3
- Why such a restrictive State.Builder? HOT 2
- EffectType from String "prism": not one of the values accepted for Enum HOT 2
- Error when using v2 HOT 2
- JKS not found and java.io.FileNotFoundException: https://discovery.meethue.com/ HOT 28
- Client code generation HOT 2
- save bridge details HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from yetanotherhueapi.