Optimization · Tips & Tricks · Uncategorized

SIMD Assembly Optimization

We get close to the metal as we demonstrate how you can incorporate assembly optimized SIMD routines into your Delphi apps. This can be done by using inline assembly code for Intel platforms, or by creating and linking a static library for ARM platforms. Nowadays, with optimizing and vectorizing compilers, few people still hand-write assembly… Continue reading SIMD Assembly Optimization

Communications · Foundation · Libraries · Uncategorized

Binary Serialization with Google Protocol Buffers

Google’s Protocol Buffers are a flexible, compact and extensible mechanism for serializing structured data. We share our implementation that makes it easy to serialize Delphi records to a binary format that is 100% compatible with the Protocol Buffers specification. Want to go straight to the source? You can find it on GitHub in our GrijjyFoundation… Continue reading Binary Serialization with Google Protocol Buffers

Foundation · Libraries · Tips & Tricks · Uncategorized

Build your own Error Reporter – Part 2: Android

In this second part on error reporting, we add support for Android. For that, we need to manually walk the call stack and configure the Delphi project to export symbols. In the previous article in this series, we shared some building blocks for implementing error reporting functionality on iOS. To recap, these blocks are: Intercepting… Continue reading Build your own Error Reporter – Part 2: Android

Foundation · Libraries · Tips & Tricks · Uncategorized

Build your own Error Reporter – Part 1: iOS

We share some building blocks for rolling your own error reporter in Delphi. From intercepting unhandled exceptions, to retrieving a stack trace to symbolicating the error report. This part focuses on iOS. In the next part, we handle Android, which does things a bit differently. We won’t cover Windows here, since there are already some… Continue reading Build your own Error Reporter – Part 1: iOS

Tips & Tricks · Uncategorized

Improve Android and iOS debug compilation speed

If you develop mobile apps with Delphi, you know it: compiling for Android and iOS is sloooooooooooooow, especially for debug builds. This little tip makes compiling Debug builds much faster… You may know this tip already, but if you don’t, you’ll be glad you do now. You would expect that Release builds take longer to… Continue reading Improve Android and iOS debug compilation speed

Foundation · Libraries · Uncategorized

Efficient and easy-to-use JSON and BSON library

We share our efficient and easy-to-use JSON and BSON library that supports a Document Object Model (DOM), direct reading and writing in JSON and BSON format, and automatic serialization of Delphi records and classes to and from JSON and BSON. Why another JSON library? There are already quite a few JSON libraries out there, so… Continue reading Efficient and easy-to-use JSON and BSON library

Foundation · Uncategorized

Expand your Collections collection – Part 2: a generic ring buffer

We continue our tour of custom collections with a generic ring buffer. What is a ring buffer? A ring buffer (also known as a circular buffer) is a fixed-size buffer that is connected end-to-end. It is similar to a queue in that behaves like a FIFO (First-In-First-Out) buffer. But unlike a queue, it does not… Continue reading Expand your Collections collection – Part 2: a generic ring buffer

Foundation · Tips & Tricks · Uncategorized

Unit Testing Generic Types

So you created a generic class. Maybe a specialized generic collection, like a generic set. Professional as you are, you are going to need some unit tests for this class. But how do you test a class that can have so many variations depending on the type argument. You could write test cases for just… Continue reading Unit Testing Generic Types

Libraries · Uncategorized

Cross Platform Text-to-Speech

This post is a small exercise in designing a cross platform abstraction layer for platform-specific functionality. In particular, we present a small Delphi library to add cross platform text-to-speech to your app. It works on Windows, macOS, iOS and Android. You can find the source code on GitHub as part of the JustAddCode repository. If you… Continue reading Cross Platform Text-to-Speech