Skip to content

3.0.0

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 31 Jul 08:29

After a lot of work, enioka Scan 3.0.0 is available.

First of all, many thanks to @VincentKobz who helped a lot with this release.

Version 3.0.0 has a limited amount of new features and is instead focusing on improving the developer and user experience, and polishing existing systems.

Breaking changes

To get straight to the point, these are the elements that will require attention when upgrading to version 3:

  • maven artefacts have been renamed and their content has changed, more details below in the "Changes to the project structure and maven artefacts" section.

  • the Camera API and provided scanner activity received a lot of changes, and their interactions may not transition seamlessly from version 2 to version 3. Make sure to properly test your application if you use these features.

Other APIs remain unchanged and should keep working after upgrading.

Official documentation

With this release, enioka Scan now has a proper ReadTheDocs documentation, which contains helpful information about the library's APIs, maven artefacts, supported devices and even a quick-start guide. It is now easier than ever to develop with enioka Scan, or contribute to it.

Rework of the demo application and release on the Google Play Store

The demo application (demoscannerapp/), which was so far only used for testing, was completely reworked to be usable as a standalone app for users who only need a barcode reader. Its interface is cleaner, and it now properly showcases the library's capabilities. For developers, its source code can be used as a base for your own integration of the library.

The app is now available on the Google Play Store. Also, the associated bundle (.aab) is available to download from the GitHub release page instead of the library's core .aar file, which is now no longer usable on its own (see below).

In order to be published on the store, the demo app now targets SDK 34, which is quite a jump from release 2's SDK 28 target. Due to this, some parts of the demo app might not work as expected on every device. If you spot any bug, feel free to open an issue about it.

Changes to the project structure and maven artefacts

The project structure was heavily refactored for this release, and maven artefacts have been modified as well. This was done to allow developers to only include the features they actually need, without enforcing a "default" content.

This means the upgrade from version 2 to version 3 will not simply be a bump in version number, you will need to go over the dependencies. For example, the core of the library was renamed from com.enioka.scanner:scanner to com.enioka.scanner:enioka-scan-core, and no longer includes any compatibility SDK by default, not even the camera support.

Make sure to check the documentation to know which artefacts you need to include for your needs.

Note that version 2 will no longer receive any new feature or bugfixes. Application-breaking bugs may get addressed, but you should upgrade to version 3 if possible.

Changelog

  • API: Extract all SDKs from the core module of the library, and release them as separate artefacts
  • API: Add more symbologies to the library's internal support list
  • API: Add more scanner search options
  • Activity: Migrate to Android X
  • Activity: Rework interactions with the camera SDK to account for its rework
  • Camera: Rework camera SDK to be closer to regular scanner SDKs
  • Camera: Add programmatic control of the camera view's target size and position
  • Camera: Add options to pick which distortion mode to use (between crop, stretch and black bars)
  • Camera: Fix many lifecycle problems which caused crashes and invalid states
  • Camera: Fix preview resolution selection for landscape mode and low-resolution devices
  • Demo App: Rework demo application UI and features, it is now usable as an actual app
  • Demo App: Release app on the Google Play Store
  • Doc: Add ReadTheDocs documentation

As always, you can report any bug or request features via GitHub issues !