One of my recent projects required us to make an existing web application work offline. Initially, we considered making a progressive web app. We quickly eliminated this option since PWAs have several limitations, most importantly storage size. Eventually, we decided to embed our web application into a WebView within a React Native application since we […]
Although there are quite a few UI testing frameworks for cross-platform apps, not all of them have the ability to interact with a web view. When an app contains a web view or runs entirely within a web view, having the capability to do this is very important for end-to-end testing.
I’ve recently been using Cavy to handle end-to-end testing for a React Native app. In this post, I’ll go over some first impressions and a few patterns I’ve found to be helpful. Intro to Cavy Cavy is an end-to-end testing framework that integrates with React Native using refs. The test suite runs as an app, […]
I recently had to implement a local file cache for a React Native app so that users could play audio and video when offline. There are a number of reasons you might need to make a similar caching system, and this post explains how to set up the basic code.
When building a React component, I ran into this error: Objects are not valid as a React child (found: object with keys... Invariant Violation: Objects are not valid as a React child (found: object ...). If you meant to render a collection of children, use an array instead.... Here is a simple component to illustrate […]
When you first sit down to write a React Native app, you’ll find that after making your first screen, you don’t have an easy way to navigate to another. React Native doesn’t have that functionality built in, but in this post, I’ll outline how to use a library that makes it possible: React Navigation.
React Native is one of the best things to happen in the cross-platform mobile app development scene since the WebView. I can’t get enough of it. My current project (an iOS and Android application built with React Native and a heavily customized UI) would have taken at least twice as long to build as a […]