MongoDB is the dominant database adopting the document data model in use today. Even Mongo’s homepage title states their solution is the most popular database for modern apps, and this is hard to argue against given the success of the database and surrounding ecosystem of tools that facilitate all stages of the database pipeline, from deployment to testing and optimising performance.

The mongodb package currently boasts over 2.5 million weekly downloads at the time of writing, with clients ranging from hobbyists to large enterprises.

MongoDB will likely be the database of choice for you or your team if you are:


In-app purchase validation is a critical task that every app supporting purchases and subscription should implement as a means to prove the integrity of purchase tokens and transaction records. Validation can be used to validate a newly created transaction or validate a subscription to check it is still active.

An in-app purchase is initiated on a user’s device; the user authenticates a purchase which is then processed on Google servers, and a successful response should be sent back to the user’s device.

It is with this successful response that a purchaseToken is provided — a unique string that acts as…

In-app purchases and subscriptions in 2021: Time for a change?

After more than a year of using react-native-iap as my React Nativ e in-app purchase solution, I recently decided to migrate to expo-in-app-purchases to resolve a number of issues I was facing with the former package.

It is evident from my development journey that expo-in-app-purchases is the better package to adopt now in 2021. I will document the reasons why in this piece, along with a complete implementation walkthrough of expo-in-app-purchases. What will be covered:


In this article I will share a deep merging solution for adding sets of themes to your React apps. By deep merging multiple theme objects hosted in different files that adhere to a common theme structure, you can keep sets of themes separate and scale your theme capabilities with ease.

I implemented this solution on my company website’s landing page, which already had light and dark themes built in prior to the implementation.

What I aimed to do was introduce Cryptocurrency based themes without having to disrupt or refactor the default themes. …

Conditionals in TypeScript, also introduced in the TypeScript handbook, allow us to deterministically define types depending on what parameterised types consist of. The general basic rule is:

type ConditionalType = T extends U ? X : Y

If parameter T extends some type U, then assign X, otherwise assign Y.

The extends keyword is at the heart of conditionals whereby we are checking if every value of T can be assigned to a value of U. If T is assignable to U, then the “true type” will be returned — X is our case. …

TypeScript gained popularity over 2020 and is now in the upper bracket of the programming salary range. If you are a JavaScript developer you have most likely been exposed to TypeScript in some project you have worked on.

This article, along with others surrounding it, will introduce the reader to advanced TypeScript concepts by explaining them from the ground up with a typical use case — working with objects and subsets of those objects in a dynamic way such that we do not know the exact structure of these objects, but want to define them without compromise.

Being able to…

This piece introduces redux-persist, a package that automates the process of persisting state from your Redux store to local device storage, such as AsyncStorage in the case of React Native. redux-persist also repopulates your Redux store on subsequent app launches, otherwise known as rehydration. These useful utilities minimise the work needed to persist data on-device, such as authentication tokens and account settings.

With redux-persist, this process is done automatically and only requires a small amount of boilerplate to initialise. AsyncStorage is the storage mechanism we’ll adopt in this piece. …

Expo AV: Reliable Native Audio Support

This article introduces the expo-av package, a universal audio (playing and recording) and video module for React Native projects. The package is maintained by Expo, the go-to library for bootstrapping React Native projects targeting a range of platforms.

Audio packages have come and gone in the React Native ecosystem, most of which either do not work or have not been updated for a significant amount of time. When looking at packages to adopt — especially for critical tasks like audio playback — a reliable and well maintained package is needed. Major iOS updates are launched on a yearly basis and…

Artificial Neural Networks: The Foundation of ML

This article introduces the feed-forward neural network, its underlying structure and how a “forward pass” (generating an output from input data) is performed within it. This article acts as an introduction to neural networks for those who have not endeavoured into them before, and provides a foundational understanding by which all other neural networks are built upon.

A feed-forward neural network is the most basic type of Artificial Neural Network (ANN). They consist of an input layer, 1 or more hidden layers, and an output layer. Each layer consists of neurons, and neurons also have their own structure. We will…

Introduction to Matrices

Matrices are a fundamental concept in AI, especially when working with neural networks and the majority of sub-fields of machine learning, such as image processing and synthesising, natural language processing, prediction — just about all types of deep learning models rely on matrices to contain and manipulate numerical collections of data.

Matrices are multi-dimensional arrays of numbers. They, and neural networks in general, are often referred to as “black boxes”, as they are notoriously hard to analyse for patterns or effectiveness.

Matrices: Black boxes of multi-dimensional data

Matrices can be very large and can exist in a multitude of dimensions, typically ranging in the thousands if…

Ross Bulat

Programmer and Author. Director @ Creator of for iOS and Android.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store