DJAStrings

DJAStrings is a command-line tool, built using Swift, that integrates with Xcode's build process, producing a Swift source file to simplify access to your app's localisations by ingesting String Catalogs to generate constants and functions derived from the provided localisations.

DJAStrings is compatible with projects built using Xcode 15 and above. More information about its benefits can be found in this dedicated article. For installation and Xcode build integration instructions, visit the project's GitHub repository.


DJATesting​.framework

DJATesting is library of extensions to UIKit and Foundation APIs, as well as custom mock subclasses, that make writing unit tests for Apple platform software projects far easier. Full documentation for DJATesting is available here, including a full set of tutorials.

More details about DJATesting can be found on the project's GitHub repository.


Hopoate​.framework

Hopoate is a lightweight dependency injection framework for iOS, allowing for simple registration and resolution of application dependencies.

Hopoate was designed first and foremost for unit testing. It operates using a LIFO system for dependency resolution i.e the most recently registered dependency for a given type is the one returned when dependency resolution is requested. This allows for mock implementations to be registered with the container for the purposes of testing, which can be removed when the test is over.

More details about Hopoate can be found on the project's GitHub repository.


Ampersand​.framework

Ampersand is a small library that allows custom typefaces to be used seamlessly with the text styles API used by UIFont and UIFontDescriptor. This makes it simple to integrate a custom typeface in to your app whilst utilising the easy styling provided by the text style API.

Additionally, on iOS, Ampersand supports Dynamic Type for custom typefaces with no additional developer effort. This allows for a great accessibility experience even when not using the system default set of fonts.

More details about Ampersand can be found on the project's GitHub repository.