Setup Expo and Jest

Open your terminal. Install the expo command-line interface with

npm install -g expo-cli

Initialize an Expo project with the init command. And access the folder in your terminal. Install the dependencies and Pods.

expo init -- template blank detox-test-expo
cd detox-test-expo
expo install

Install the Expo-specific package for Jest.

npm install --save-dev jest-expo

End-to-end tests do not require mock results.

Make sure that the following is added to the package.json file.

In the scripts object, add the "test": "jest". After devDependencies, add

"jest": {

Install the react-native-testing library and react-test-renderer as devDependencies.

npm install --save-dev react-native-testing-library
npm install…


This is it. The moment has come. The big feature that you have worked on for the past few months, and the company has planned for the past few years, has finally been finished. You take a small sip of champagne. Then you get a call from the tech lead. Your git commit history is all messed up. You leave the champagne glass in a hurry and take a long hard look. You break down the issues:

Issue #1: Your last commit contains typos and you would like to reword it

The feauture has been fuly completed

It is not unusual after you have worked long hours on a project to find typos in…


Node.js is an open-source run-time environment that allows JavaScript to be executed on the server-side. Since its initial release in May, 2009 by Ryan Dahl, Node.js has grown vastly in popularity. In fact, ColorLib lists Node.JS as one of the best languages to learn in 2019. One of the reasons is that the server-side framework “uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. Node.js’ package ecosystem, npm, is the largest system of open source libraries in the world”.

Furthermore, Node.js has been used in the tech stacks for some of the most renowned companies. These companies…


Since its introduction in May 2013, the React framework has gained a steady popularity as a single, streamlined framework for developing user interfaces. When predictably managing the state container is required, Redux is one of the most popular libraries. In this tutorial, I will take you step by step to creating a simple counter with React and Redux and introduce you to Redux-specific concepts such as actions, dispatch and reducers. At the end, there is a link to the full GitHub repo.

npm install -g create-react-app // to install create-react-app
create-react-app counter-app-with-redux

Import the store in App.js

Notice that we…


Brief History of React Native

React Native’s development started at an internal hackathon in Facebook in the summer of 2013. The first public preview came in January 2015 at React.js Con. In March of that year, Facebook released React Native to public and open-sourced React Native by making it available on GitHub.

Write Once, Deploy Anywhere

Native app developments is the process of writing apps for a specific operating system. The two main operating systems for mobile development are iOS and Android. The language for writing iOS apps is Swift. The language for writing Android apps is Java, and more…


React is a declarative, efficient, and flexible front-end JavaScript library for building user interfaces (UI). It was deployed first on Facebook’s newsfeed by Jordan Walke, a software engineer at Facebook. He was influenced by XHP, an HTML component framework for PHP. Currently, React.js is used for the development and maintenance of Single Page Applications (SPA) and React Native is used for the development of mobile applications by applying the React Architecture to native Android, iOS and UWP applications.

What are React Components?

A component is an isolated piece of interface. This could be the menu bar for our website, the…


The DOM stands for Document Object Model. The DOM provides a way of manipulating HTML and XML documents. We call this “way of manipulating” things an Application Programming Interface, or API. The DOM provides a structural representation of the document in tree form, enabling you to modify its content and visual presentation by using a scripting language

Source: https://engineering.semantics3.com/web-scraping-in-perl-using-mojo-dom-a453229c732f

The highest level of the DOM tree is the window object. Think of the window as the browser window. The window contains the entire DOM document. All HTML components are accessible from the DOM.

Window Commands

.window.document;
//returns the entire HTML document


Table of the shortcut conditional assignment operators and the full expression they translate to

a|| = b is a “conditional assignment operator”. It is considered to be a shorthand for a||a = b. There is a common misconception that only if a is defined and evaluates to false, then the right-hand side is assigned to a. However this is only partially true. If ais undefined or falsey (false or nil), then evaluate band set a to the result.

If a is undefined or falsey (false or nil), then evaluate band set a to the result.

Scenario 1 (x is defined and evaluates to false):

x = false
=> false
x ||= “hello world”
=> “hello world”…

Rosen Toshev

Full stack software engineer

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