|
1 | | -Java SDK for the EyeTribe Dev Kit |
| 1 | + |
| 2 | + |
| 3 | +<p> |
| 4 | +EyeTribe Java SDK for the EyeTribe Dev Kit |
2 | 5 | ==== |
3 | 6 | <p> |
4 | 7 |
|
5 | | -Introduction |
6 | | ----- |
7 | 8 |
|
8 | | -This is the Java library implementation for the EyeTribe Dev Kit. This reference implementation provides a simple Java interface for communicating with the EyeTribe Server through our open [TET API](http://dev.theeyetribe.com/api/). This should allow developers to get started quickly to focus their efforts on creating truly immersive and innovative apps using our eye tracking technology. |
| 9 | +This is the Java library implementation for the [EyeTribe Dev Kit](https://theeyetribe.com/products/). This reference implementation provides a Java interface for communicating with the EyeTribe Server through the open [EyeTribe API](http://dev.theeyetribe.com/api/). The library allow developers to get started quickly and focus their efforts on creating truly immersive and innovative apps using our eye tracking technology. |
9 | 10 |
|
10 | | -This version is to be considered **_beta_**. Feedback and bug fix submissions are welcome. |
11 | 11 |
|
12 | | -Please visit our [developer website](http://dev.theeyetribe.com) for documentation and tutorials. Please use our [public forum](http://theeyetribe.com/forum) for questions and support. |
13 | 12 |
|
14 | 13 |
|
15 | | -Dependencies |
| 14 | +Documentation |
16 | 15 | ---- |
17 | | - |
18 | | -The implementation is Java 6 compliant for backwards compatibility and [Android OS](http://developer.android.com) support. The library uses [google-gson](http://code.google.com/p/google-gson/) for JSON parsing. |
| 16 | +Find documentation of this library at [EyeTribe Java SDK Doc](http://eyetribe.github.io/tet-java-client). The EyeTribe API reference is found at [Eye Tribe Developer Website](http://dev.theeyetribe.com/api/). |
19 | 17 |
|
20 | 18 |
|
21 | | -Build |
| 19 | +Samples |
22 | 20 | ---- |
| 21 | +An essential part of using the [EyeTribe Dev Kit](https://theeyetribe.com/products/) is 'calibrating the system'. Doing so involves creating a UI that supports this library and guides the user through a series of mandatory steps. |
23 | 22 |
|
24 | | -1. Install [Java JDK](http://www.oracle.com/technetwork/java/javase/downloads) (and optionally [Eclipse for Java](http://www.eclipse.org/downloads/)) |
25 | | -2. To build, either import and build from Eclipse IDE (Eclipse project files included) or use Apache Ant to run included *build.xml* configuration. |
26 | | -3. Alternatively, import source code into your favorite Java IDE and build from there. |
| 23 | + |
27 | 24 |
|
| 25 | +This library holds a sample implementation of a Calibration UI using [JavaFX](docs.oracle.com/javase/8/javafx/get-started-tutorial/jfx-overview.htm). Find this under [./javafx-sample](https://github.com/EyeTribe/tet-java-client/tree/master/javafx-sample). This sample runs on all platforms supported by the [EyeTribe Dev Kit](https://theeyetribe.com/products/) that have Java 8 version 65 or higher installed. |
28 | 26 |
|
29 | | -Tutorials |
| 27 | + |
| 28 | +Building (optional) |
30 | 29 | ---- |
| 30 | +You can use the prebuilt version of this library though Maven. Should you wish to build it yourself, please follow the below instructions: |
31 | 31 |
|
32 | | -A simple guide to using this Java SDK is found in the [tutorials section](http://dev.theeyetribe.com/java/) of our developer website. More tutorials will be provided in the near future. |
| 32 | +Prerequisites: |
33 | 33 |
|
| 34 | +- Download & install [Java JDK 6](http://www.oracle.com/technetwork/java/javase/downloads). Set environment variable 'JAVA6_HOME' to '${your.jdk6.path}'. |
| 35 | +- Download & install [Java JDK 8](http://www.oracle.com/technetwork/java/javase/downloads). Set environment variable 'JAVA\_HOME' and 'JAVA8\_HOME' to '${your.jdk8.path}'. |
| 36 | +- Download & install [InjelliJ IDEA](https://www.jetbrains.com/idea/) or [Gradle](http://gradle.org/). |
34 | 37 |
|
35 | | -Samples |
36 | | ----- |
| 38 | +To build: |
37 | 39 |
|
38 | | -There are currently no samples available for the Java SDK, but they will be added as they become available. For now, consult our [C# samples on GitHub](https://github.com/eyetribe) for inspiration as the C# reference implementation is very similar to Java. |
| 40 | +- Import Gradle project to [InjelliJ IDEA](https://www.jetbrains.com/idea/). |
| 41 | +- Set project language level to 8 in 'Module Setting -> Project' |
| 42 | +- Run gradle task 'sdk:jar' |
| 43 | +- Alternatively run task 'sdk:jar' using [Gradle](http://gradle.org/) from the commandline. |
39 | 44 |
|
40 | 45 |
|
41 | | -Documentation |
| 46 | +Proguard |
42 | 47 | ---- |
43 | | -Find documentation of this library at [EyeTribe Java SDK Doc](http://eyetribe.github.io/tet-java-client). |
| 48 | +If you choose to build yourself and are using [Proguard](http://proguard.sourceforge.net/) for obfuscation, be sure to add the following options. |
44 | 49 |
|
| 50 | + -keepattributes Signature, *Annotation* |
| 51 | + -keep class sun.misc.Unsafe { *; } |
| 52 | + -keep class com.theeyetribe.clientsdk.response.* { *; } |
| 53 | + -keep class com.theeyetribe.clientsdk.request.* { *; } |
| 54 | + -keep class com.theeyetribe.clientsdk.data.* { *; } |
| 55 | + -dontwarn java.lang.invoke.* |
| 56 | + -dontwarn com.google.** |
45 | 57 |
|
46 | | -API Reference |
| 58 | +Getting Help |
47 | 59 | ---- |
48 | 60 |
|
49 | | -The complete API specification used by the Java SDK to communicate with the server is available on our [developer website](http://dev.theeyetribe.com/api/). |
50 | | - |
| 61 | +- **Have questions or need support?** Visit our [developer forum](http://theeyetribe.com/forum/), to find answers to your questions and share your experiences with others developers. |
| 62 | +- **Have a bug to report?** Open a [new issue](https://github.com/EyeTribe/tet-java-client/issues) and tell us what you are experiencing. Please add library version and full log if possible. |
| 63 | +- **Have a feature request?** Either open a [new issue](https://github.com/EyeTribe/tet-java-client/issues) or post in our [developer forum](http://theeyetribe.com/forum/). Tell us what feature you are missing and what it should do. |
51 | 64 |
|
52 | | -Changelog |
| 65 | +Feedback |
53 | 66 | ---- |
54 | | -0.9.56 (2015-03-18) |
55 | | - |
56 | | -- Added *hashCode()* implementation for all public data types |
57 | | -- Fixing bugs associated to *CalibrationPoint* resampling |
58 | | -- Clearing *Listener* types now requires explicit call to *GazeManager.deactivate()* |
59 | | -- Minimizing object allocation |
60 | | -- Fixed network initialization and deinitialization bugs |
61 | | -- Updated Gson to 2.3.1 |
62 | | - |
63 | | -0.9.49 (2014-12-09) |
64 | | - |
65 | | -- Ensured callback order of listener types during activation |
66 | | -- Ensured thread safety in singletons |
67 | | -- Refactored internal blocking queues |
68 | | -- More consistent stacktrace output on callback errors |
69 | | -- Unified constructors and operators for all data types |
70 | | -- Added utility methods to GazeData class |
71 | | -- Updated Gson to 2.3 |
72 | | - |
73 | | -0.9.35 (2014-05-20) |
74 | | - |
75 | | -- Updated license |
76 | | -- Fixed bug related to ICalibrationResultListener |
77 | | - |
78 | | -0.9.34 (2014-05-09) |
79 | | - |
80 | | -- Improved documentation |
81 | | -- Fixed bug related to initialization lock |
82 | | -- Fixed bug related to broadcasting calibration updates |
83 | | - |
84 | | -0.9.33 (2014-04-15) |
85 | | - |
86 | | -- Added support for listening to EyeTribe Server conneciton state (IConnectionStateListener) |
87 | | -- Minor API timestamp change |
88 | | -- Minor refactoring and formatting |
89 | | -- Generel bug fixing and optimization |
90 | | - |
91 | | -0.9.27 (2014-02-12) |
92 | | - |
93 | | -- Fixed tab/space formatting |
94 | | -- New methods to GazeUtils |
95 | | -- Minor internal refactoring |
96 | | - |
97 | | -0.9.26 (2014-01-30) |
98 | 67 |
|
99 | | -- Initial release |
| 68 | +If you like using this library, please consider sending out a tweet mentioning [@TheEyeTribe](twitter.com/theeyetribe), announce your app in our [developer forum](http://theeyetribe.com/forum/), or email [support@theeyetribe.com](mailto:support@theeyetribe.com) to let us know. |
0 commit comments