Release Notes (iOS)


3.0.0

Release 9/9/2024

  • Added support for the S3700 printer:
    • Bluetooth Low Energy connection
    • Wi-Fi connection
    • Prints all supported objects
    • Cuts all supported objects designed as Cut objects
  • Added support for the i5300 printer:
    • Wi-Fi connection
    • Prints all supported objects
  • Added color support to print previews:
    • Before version 3.0.0, print previews were only black text on white backgrounds.
    • Version 3.0.0+ print preview correctly show the color of the ribbon and supply.
  • Added API method getSupplyColor to PrinterDetails
  • Added API method getRibbonColor to PrinterDetails
  • API method getPreview now takes a 4th parameter that passes in PrinterDetails:
    • This is mandatory if a user wants the print preview to reflect color.
    • Null may be passed-in, but the print preview will always be black on white.
    • Additional features added in the future will also use PrintDetails to more accurately display a print preview.
  • Improvements to bitmap monochromization.
  • Fixed bug where Image Entities were not rendering if there are more than one.
  • Fixed bug where bitmap images and Image Entities were no monochromizing correctly.

2.0.1

Released 7/30/2024

  • Fixed a bug where certain failed connections to a printer via Wi-Fi would cause a crash.
  • Fixed a bug where an M610 or M710 printer details would not be initialized immediately after connection.
  • Fixed soft disconnect permutations (if a printer is shutoff or taken out of range).
  • Fixed crashes relating to performing printer operations while disconnected.
  • Changed the timeout for Wi-Fi connection to 10 seconds.
  • Removed useless log statements

2.0.0

Released 7/15/2024

  • Added support for M610 and M710 printers.
  • Now logs analytics for print jobs.
    • You may disable the capturing of app data by adding the following:
let analytics = AnalyticsFactory.getAnalytics()
analytics?.setTrackingEnabled(isTrackingEnabled: false)
  • Added support for Date Time Objects in Brady Workstation templates.
  • Added support for Cable/Wire Wrap placeholders while wired marked in templates created with Brady Workstation's Text Labels application.
  • Added support to handle Group Entities from a Brady Workstation template.
  • Improved image quality of Bitmap and ImageEntity printing.
  • API methods:
    • Added the printerRemoved() method to PrinterDiscoveryListener. This will be triggered when the corresponding printer has not been seen in the area for 10 seconds. The user can decide if they want to remove it from the printer list they've displayed in their UI.
    • Added the reconnect() method to reconnect to a printer if disconnectWithoutForget() was called prior.
    • Added the getYNumber() method to PrinterDetails.
    • Added the getRibbonName() method to PrinterDetails.
    • Added the getRibbonRemainingPercentage() method to PrinterDetails.
    • Added Unknown and Printing as two new states in PrinterStatus.swift
    • Added SupplyColor and SupplyInvalid to PrinterProperties.swift
    • Changed the mediaIsPreSized Printer Property to SupplyIsPreSized in PrinterProperties.swift
    • Changed CutOption native type to String (you may now compare these values as strings).
    • Changed checkForPartMismatch() --> checkForSupplyMismatch()
    • Changed cutLabel() --> cutSupply() (throws exceptions now instead of a nullable result).
    • Changed feed() --> feedSupply() (throws exceptions now instead of a nullable result).
    • Changed turnOff() --> setAutomaticShutoffTime() (throws exceptions now instead of a nullable result).
    • Changed getPartInfo() --> getSupplyName() (now throws exceptions).
    • Changed getDataObjectType() --> getTemplateObjectType()
  • Reworked how custom exceptions work:
    • SdkApiException is now the base exception for every exception the SDK will throw.
    • Custom exceptions inherited from SdkApiException include:
      • PrinterDiscoveryException
      • PrinterConnectionException
      • TemplateNotLoadedException
      • InvalidPlaceholderDataException
      • TemplateRenderingException
      • PrinterOperationException
      • PrintingException
      • DisconnectionException
      • UnsupportedPrinterException
    • The following API methods can now throw these exceptions and require the keyword try before calling them in Swift code:
      • All print() methods
      • checkForSupplyMismatch()
      • connectToDiscoveredPrinter()
      • cutSupply()
      • disconnect()
      • disconnectWithoutForget()
      • feedSupply()
      • getTemplateData()
      • getSupplyName()
      • getPreview()
      • getValue() in Template.swift
      • reconnect()
      • setAutomaticShutdownTime()
      • setValue() in Template.swift
  • Fixed a bug in the checkForSupplyMismatch() where related parts would be considered a part mismatch.
  • Fixed various rotation and positioning bugs when rendering objects for preview and print.
  • Fixed various print preview bugs where unprintable zones were drawn incorrectly.
  • Fixed a bug where Code128 barcodes were not having their values validated.
  • Fixed UPC and EAN13 barcode rendering bugs.
  • Fixed Code128 value bugs and strengthened error catching in this area.

1.7.0

Released 4/25/2024

  • Added "getConnectionType" API method to DiscoveredPrinterInformation to allow users to see which discovery protocol discovered a specific printer.
  • Removed embedded fonts to substantially decrease the size of the xcframework.
    • Users can now drag and drop fonts into their application's main bundle to use them.
    • Will only print fonts if the template was designed with an object using them.
  • Fixed bug where some supply part names were being sent to the printer incorrectly at print-time.
    • This caused M611's to incorrectly show a part mismatch warning at print-time.
  • Fixed bug where templates designed with multiple copies and multiple labels would print an incorrect amount of labels.

1.6.0

Released 4/4/2024 (incrementing version to be consistent with other SDKs and Binding projects.)

  • Now integrates the Brady Parts Database:
    • This file stores accurate label dimensions of every existing part for the supported printers. This makes both the print preview and printing more reliable and accurate.
  • Greatly improved default Bitmap Printing:
    • With the addition of the Brady Parts Database, printing an image (.png, .jpg, etc.) will now be scaled to print in the first printable zone of the installed label.
    • When printing, images should always fit on the label (should never be "cut off").
  • Improved accuracy of print preview zone drawing.
  • Labels designed in the Express Labels mobile app will now correctly deserialize and print.
  • Added a custom bundle ID for the framework (com.bradyid.sdk)
    • This allows the back-end to refer to its own internal bundle. It can now refer to the custom Brady fonts and Parts Database without relying on a consumer app.
    • Overall, this fixed multiple bugs where templates using certain fonts and parts would never actually use them.
  • Added API methods to PrinterDetails:
    • getSubstrateLeftOffset() - Get's the currently installed parts left offset dimension in inches as a double.
    • getSubstrateVerticalOffset() - Get's the currently installed part's vertical offset dimension in inches as a double.
  • Added the properties SupplyLeftOffset and SupplyVerticalOffset to the API's PrinterProperties.java
  • Fixed small PrinterDetails bugs related to the M511.

1.4.2

Released 1/24/2024

  • Added the disconnectWithoutForget() API method to PrinterDetails.
    • This will disconnect from the current printer without forgetting it internally allowing future auto-connects.
  • Added the forgetLastConnectedPrinter() API method to PrinterDiscovery.
    • This will clear the internally stored printer that was last connected to. This will block future auto-connects until another printer is successfully connected to.
  • Fixed a bug where getLastConnectedPrinter wouldn't always return the stored printer correctly.
  • Fixed a bug where isAcConnected and BatteryLevelPercentage would not trigger the PrinterUpdate method when their values changed.

1.4.1

Released 11/28/2023

  • Implemented Fit to Frame functionality with barcodes.
  • Fixed Barcode bug where barcodes were not centering after resizing if Fit to Frame is toggled off in the template.
  • Fixed Text Auto-fit bug where text objects were not shrinking in font size to properly fit inside the bounds of the text box.

1.4.0

Released 11/10/2023

  • Added an alternative API print method to allow the specification of the bitmap width and the label length when bitmap printing.
  • Added "getIsSupplyPreSized()" API method to PrinterDetails to allow the user to know if the installed part inside the connected printer is pre-sized or an alternative type such as continuous.

1.3.7

Released 11/3/2023

  • Fixed bug where templates designed for M611 2 inch parts were crashing during the print.

1.3.6

Released 10/27/2023

  • Fixed bug where "Default Part" was always the part name when Bitmap printing to an M611. It now always uses the installed part name.
  • Implemented new feature where a Wifi connection will always be monitored and the VIewModel will notify the PrinterUpdate method with status changes.

1.3.5

Released 10/20/2023

  • Fixed M611 View Model Bug where the status was always "Warning" because of an incorrect "Low Battery Error".
  • Fixed Bitmap Printing Bug on the M611.

1.3.4

Released 10/17/2023

  • Fixed bug where View Model was out of sync. This was causing possible connect and disconnect issues. These issues could be replicated if an app depends on receiving Printer Updates from the SDK to control other functionalities.
  • Fixed bug where connection and disconnection would break due to different permutations. Combinations of system disconnects and user disconnects was causing a new connection to fail immediately.

1.3.3

  • Can now print templates that contain multiple labels.
  • Added collating feature for printing with M211 and M511.
  • Added collating API property "isCollated" inside PrintOptions to allow a user to toggle collating on and off.
  • Fixed a bug printing multiple copies with different Cut Options.

1.3.2

  • Improved time to print immensely and connection time slightly for BLE devices.
  • Fixed Image Rendering bug.
  • Added support for UPC barcodes.

1.3.1

The current SDK available for download on bradyid.com.

  • Implemented the Rotating of objects.
  • Improved Printer Updates for connection via BLE.
  • Fixed a rendering out of bounds error that would prevent users from printing.
  • Fixed a Banding bug where templates over 3 inches in length would cause repeated renderings.
  • Fixed a Barcode bug where anything rendered after a bar code would be positioned wrong.

1.3.0

  • Migrated to using the SDK as an XCFramework to support the building and deploying of both physical iOS devices and iOS simulators.
  • Fixed bugs where certain fonts would cause crashes and the default font wasn't getting set.
  • Added monochromization to rendering images in the print preview.

1.2.0

  • Fixed a build error that happens on Macs with an Intel processor (made before 2021) where the iOS SDK cannot find the embedded 3rd party frameworks.
  • Fixed issue where Images are rendered with the wrong size or position.
  • Fixed issue where ConnectionType was not accurate in PrinterDetails

1.1.0

Version "1.1" is the first version where the SDK migrated from a Swift Package to a Framework. This migration includes a different method to add the SDK to an application (refer to the Guide (Swift) >> Setup page).

  • The M611 Latimer is now supported for use via Bluetooth Low Energy.
  • The M611 Latimer is now supported for use via Wifi connection.
  • The M511 is now supported for use via Bluetooth Low Energy.

  • Objects that were added for rendering and printing include.
    • Images
    • Bitmap Printing (alternative to using a .BWT or .BWS)
    • Barcodes:
      • Code 39 Full ASCII
      • Code 93
      • Code 93 Full ASCII
      • EAN 8
      • EAN 13
      • Interleaved 2 of 5

  • Added API methods getSupplyWidth() and getSupplyHeight() to PrinterDetails.

  • Fixed QR Code and Data Matrix value bug
  • Increased connection timeout to 10 seconds
  • Fixed Deserealization bug relating to templates.

1.0.1

This is the most recent release of the iOS SDK where automatic connection was implemented. Also, the iOS SDK can now support devices dating back to iOS 13 rather than the previous iOS 15.


1.0

This was the first official release of the iOS SDK that was put on bradyid.com for public download.

Features that were added for this release include:

  • Disconnection/Forget a printer
  • Feed a label
  • Cut a label
  • Set an M211's automatic shutoff time
  • Improvements to how ownership is handled with an M211

iOS_SDK (Beta)

This was the first version of the iOS SDK which we used internally to test with a test application. It included barebone functionality to discover, connect, and print to an M211.