Giter Site home page Giter Site logo

Comments (4)

william-ferguson-au avatar william-ferguson-au commented on May 18, 2024

Near as I can tell

  • WebSocket needs a min version of 19
  • WAMP needs a min version of 26
  • XBR needs a min version of 24 (except that is depends on WAMP)

Might be a good a idea to split it into 3 modules.

from autobahn-java.

oberstet avatar oberstet commented on May 18, 2024

as far as I can see, the min version in the build files (that is the version that has direct technical effect) is 24

minSdkVersion 24

so I'm a bit puzzled by what you seem to hint at with "WAMP needs a min version of 26" ..


further, "prominently displayed on the ReadMe.": this would result in numbers in locations that need to be kept manually in sync. I'd rather just link into the respective line in build.gradle ...


Might be a good a idea to split it into 3 modules.

why? that sounds like work;) just buying a newer phone is easier

from autobahn-java.

william-ferguson-au avatar william-ferguson-au commented on May 18, 2024

The minSdkVersion that you declare in the Autobahn build.gradle is just what you declare as the min version required by the library. It's impact is that it forces clients to either upgrade their minSdkVersion to match, explicitly ignore the version declared by Autobahn, or use another library.

It doesn't guarantee that Autobahn actually conforms to that minimum.
But it does allow you to easily check when building Autobahn for any code that exceeds that min SDK using the Gradle lint task.

And when you do you will see that the ArgumentUnpacker class has 3 uses that require 26.
Hence WAMP needs 26.

Recommend you start using the @RequiresApi annotation to mark out sections where you step up an API so that users of the library at least get compilation warnings when they try and use the parts beyond what they are configured for.

As to why split it into 2 or 3 modules:

  • We have about 3000 devices in the field using the library for which just buying a new phone isn't easier or affordable.
  • By splitting into modules that are more self contained you provide an easier to understand API (why conflate WAMP and WebSocket?) and the min API for each would be documented in the build gradle so you wouldn't have multiple places to maintain.

from autobahn-java.

oberstet avatar oberstet commented on May 18, 2024

The minSdkVersion ..

yes, I understand that

And when you do you will see that the ArgumentUnpacker class has 3 uses that require 26.

ok, fixed that!

As to why split it into 2 or 3 modules:

sure. however, still, that's work to do for a goal I don't care about: Autobahn was created for WAMP, and it was just the case at that time that there wasn't any WebSocket library at all for Android, so I implemented WebSocket in Autobahn as well ...

from autobahn-java.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.