Build cross-platform mobile apps better, faster, stronger.
React Native has established itself as an incredibly powerful tool for building cross-platform mobile applications. We set out to try and create a clone-able repository so developers can jump right into building features/UI instead of spending hours configuring their environment.
If you want to jump right into developing your own cross-platform mobile application, get started with the README here.
If you want more insight into the tooling/frameworks used in this project — continue reading.
First go ahead and clone the repository so you can follow along in the codebase.
git clone email@example.com:meshhq/react-native-boilerplate.git
React Native navigation code can seem very odd to developers coming from
Objective C or
Swift. Whereas native code asks that developers subclass Navigation and Tab Bar controllers, React Native demands that app navigation must be scaffolded in a single constructor.
This seemed more than a little odd when I first started doing React Native development. I was also frustrated to find that React Native’s documentation doesn’t really provide much guidance beyond the ‘Hello World’ set up.
500 when trying to access an external resource is a bummer. Especially when your logs tell you an error outside of your control caused your code to fail.
They following is a simple, customizable Retry Wrapper for Node’s default
Request. You can specify the amount of times you want to retry, along with the status codes you’re willing to retry on.
Sometimes simple solutions can produce great results 👍
These days, it’s easy for web applications to quickly balloon with dependencies and third party libraries. Managing your applications within a team can be a real headache when you start running into versioning issues, db configuration issues, local machine compatibility issues, etc... Docker Compose can help a lot with these issues — along with giving you a much cleaner way to get your app up and running.
If you want an intro to using Docker with Node and Typescript go here.
Docker Compose allows you to package multiple Docker images into a single application. Each image is still going to…
Over the past few years Docker has emerged as one of the most efficient ways to manage and deploy cloud-based web applications☁️ 💻 . While containers have been around since 2008, Docker helped them go mainstream, fueling the Virtual Machine vs. Container argument.
In short, a container is an operating system agnostic environment that hosts a fully functional application. Docker uses a virtual machine under the hood which allows developers to declare runtime dependencies via a Dockerfile.
Prior to Docker, developers were forced to manually bootstrap runtime dependencies in order to leverage a virtual machine. In contrast, a container ships…
The Levenshtein Distance is a clever way to calculate how similar two strings are to each other. Every character that differs between two words will count against the two words’ ‘score’. The lower that ‘score’ the more similar the two words are to each other. So comparing a word to itself will yield a ‘score’ of 0, while two four letter words that have no common characters will yield a ‘score’ of 4.
An easy way to visualize Levenshtein Distance is to build a matrix comparing the two words.
Retain cycles can be easily overlooked in the post ARC (automatic reference counting) world of iOS. They can quickly balloon out of control and crash your app with very cryptic crash logs if you don’t know how to catch them.
For those who may not be familiar, retain cycles are when two objects hold strong references to each other. Objects are only deallocated when they are not being held by strong references, so two objects that are referencing each other will never be deallocated. Enter Instruments!
Xcode’s Instruments provides a number of very useful tools you can use to monitor…