Technologies

Last updated 4 months ago

MyExpenseApp StarterKit is built on top of the most popular libraries and latest curated development tools:

  • React Native

  • Native Base

  • Redux

  • React Navigation

  • Expo

React Native is Facebook's popular framework for creating native mobile apps using JavaScript and React. React Native allows you to create mobile apps using only JavaScript. It uses the same design as React, which allows you to compose a rich mobile user interface from declarative components.

​React Native makes development work easier and allows developers to focus on the core app features in every new release. It is the fastest-developing mobile app development that essentially permits you to create an isolated product with often outcomes.

NativeBase is a free and open source framework that allows developers to create high quality mobile apps using React Native iOS and Android applications with a fusion of ES6. NativeBase builds a layer above React Native that provides you with a set of basic building blocks for mobile application development. Learn more →

Redux

Redux is a popular predictable state container for JavaScript, implementing the Flux Architecture, Redux attempts to make state mutations predictable by imposing some restrictions on how and when updates can occur. Redux can be described in three fundamental principles:

  1. Single source of truth: The state of your whole application is stored in an object tree within a single store.

  2. State is read-only: The only way to change the state is to emit an action, an object describing what happened.

  3. Changes are made with pure functions: To specify how the state tree is transformed by actions, you write pure reducers.

React Navigation is an extensible and easy-to-use routing and navigation library for React Native applications thats lets you define your application's navigation structure. The library Navigators also render common elements such as headers and tab bars which you can configure quickly. React Navigation is becoming the de-facto standard for implementing navigation in React Native as it is well-designed, and performant.

Expo

Expo is a free and open source toolchain built around React Native to help you build native iOS and Android projects using JavaScript and React. Expo has client apps that run on both iOS and Android. With Expo, you don’t need to install XCode or Android Studio while building your app. You can even test your app on an iOS device or simulator without a paid Apple Developer account. Check the Expo Docs for more details.

Others Technologies

Library

Description

Redux-Form

Popular library to manage Forms status in Redux.

Redux-Thunk

Thunk Middleware for Redux. It allows you to write action creators that return a function instead of an action. Redux Thunk can be used to postpone sending an action, or to send it only if a certain condition is met. The internal function receives dispatch and getState storage methods as parameters.

AxiosJs

Advanced client HTTP library. Used for http calls to the API backend

react-native-carousel-view

A simple Carousel in Native React, with support for both Android and iOS.

react-native-datepicker

A native React datePicker component for Android and IOS, using DatePikcerAndroid, TimePickerAndroid and DatePickerIOS.

Victory Native Charts

Victory is a set of modular charting components for React and React Native. Victory makes it easy to get started without sacrificing flexibility. Create one of a kind data visualizations with fully customizable styles and behaviors. Victory uses the same API for web and React Native applications for easy cross-platform charting.

Lodash

Lodash makes it easy to use JavaScript with arrays, numbers, objects, strings, and so on. Lodash's modular methods are ideal for:

  • Iterate tables, objects and strings

  • Manipulate and test values

  • Create composite functions

Moment

Popular library to analyze, validate, manipulate and display dates and times in JavaScript.

Development tools

Testing

Library

Description

Jest

Facebook's popular Javascript test framework. How to use →

babel-jest and babel-preset-react-native

Jest plugin to use babel for ECMAScript 2015+ code transformation into a backward-compatible version of JavaScript, and Babel presets for React Native applications

Enzyme

The popular Airbnb for React JavaScript test utility that makes it easy to assert, manipulate, and traverse the rendering of your React components.

redux-mock-store

A mock store to test action creators and Redux middleware.

react-test-context-provider

A function that allows you to specify the context to pass to a child component (for test purposes only).

Linting and code quality

Library

Description

Eslint

Popular linting code utility for JavaScript.

Prettier

A javascript code trainer to improve readability.

Husky

A Git hook used to prevent bad commit, push. It is configured to execute linting rules and tests before each commit.

redux-devtools-extension

Redux DevTools extension to debug redux state.

react-native-debugger

Application that allows debugging without using chrome. It incorporates the same tools (React Inspector, Redux DevTools) to allow debugging. The project is configured to open this application when launching the debug. But it is not obligatory. To remove this dependency, see file package.json