An open API service indexing awesome lists of open source software.

https://github.com/ladunjexa-pbl/reactnative-calculator

well-designed Calculator App with theme-mode feature built with React Native Expo & TypeScript ♾️
https://github.com/ladunjexa-pbl/reactnative-calculator

basic-calculator context-api cross-platform expo react-native typescript

Last synced: 2 months ago
JSON representation

well-designed Calculator App with theme-mode feature built with React Native Expo & TypeScript ♾️

Awesome Lists containing this project

README

          


![Project Banner](readme_assets/readme_banner.png#gh-dark-mode-only)
![Project Banner](readme_assets/readme_banner-light.png#gh-light-mode-only)

Calculator App




Minimalistic Calculator Application with beautiful UI and Theme-Mode feature




contributors


last update


forks


stars


open issues


license




View Demo
·
Documentation
·
Report Bug
·
Request Feature



# :notebook_with_decorative_cover: Table of Contents

- [About the Project](#star2-about-the-project)
* [Folder Structure](#bangbang-folder-structure)
* [Tech Stack](#space_invader-tech-stack)
- [Getting Started](#toolbox-getting-started)
* [Installation](#gear-installation)
* [Run Locally](#running-run-locally)
- [Contributing](#wave-contributing)
- [License](#warning-license)
- [Contact](#handshake-contact)
- [Acknowledgements](#gem-acknowledgements)

## :star2: About the Project




Basic and elegant Cross-Platform Calculator App with beautiful and minimalistic User-Interface include Theme-Mode feature (Dark/Light) - built with React Native & TypeScript

### :bangbang: Folder Structure

Here is the folder structure of Calculator-App.
```
Calculator-App/
|- src/
|-- components/
|-- context/
|-- styles/
|- App.tsx
```

Now, lets dive into the src folder.

### components

`Button.tsx` - `MyKeyboard.tsx`

`Button.tsx` - Implementation of Button component used for numbers, operations and etc.

`MyKeyboard.tsx` - Implementation of calculator keyboard and functionality using React Hooks.

### context

`ThemeContext.tsx`

Context lets components pass information deep down without explicity passing props. ThemeContext call [createContext] outside any component to create Theme-Mode context,
initialize with 'light' value.

### styles

`constants.ts` - Contain only one constant object which holds hexadecimal code of colors used by app.

`theme.tsx` - Impelmentation of a global theme by creating StyleSheet style for buttons and keyboard ui.


### :space_invader: Tech Stack
![React Native](https://img.shields.io/badge/react_native-%2320232a.svg?style=for-the-badge&logo=react&logoColor=%2361DAFB)
![TypeScript](https://img.shields.io/badge/typescript-%23007ACC.svg?style=for-the-badge&logo=typescript&logoColor=white)
![Expo](https://img.shields.io/badge/expo-1C1E24?style=for-the-badge&logo=expo&logoColor=#D04A37)

(back to top)

## :toolbox: Getting Started

### :gear: Installation

#### Step 1:
Download or clone this repo by using the link below:

```bash
https://github.com/ladunjexa/Calculator-App
```

#### Step 2:
As a standard practice of React Native projects for managing packages it is prefer to use Yarn, but you can also use NPM.
therefore, at the root folder, execute the following command in console to get the required dependencies:

```bash
yarn
```

#### Step 3:

At the root folder execute the following command in console to get start the application

```bash
expo start
```

### :running: Run Locally

#### Step 1:

At the main folder execute the following command in console to get the required dependencies:

```bash
yarn
```

#### Step 2:

At the root folder execute the following command in console to get start the application

```bash
expo start
```

(back to top)

## :wave: Contributing



Contributions are always welcome!

See [`contributing.md`](https://contributing.md/) for ways to get started.

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
Don't forget to give the project a star! Thanks again!

1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request

(back to top)

## :warning: License

Distributed under the MIT License. See [LICENSE.txt](https://github.com/ladunjexa/Calculator-App/blob/main/LICENSE) for more information.

(back to top)

## :handshake: Contact

Liron Abutbul - [@lironabutbul6](https://twitter.com/lironabutbul6) - [@ladunjexa](https://t.me/ladunjexa)

Project Link: [https://github.com/ladunjexa/Calculator-App](https://github.com/ladunjexa/Calculator-App)

(back to top)

## :gem: Acknowledgements

This section used to mention useful resources and libraries that used in Calculator App

- [expo.dev](https://expo.dev/)
- #codewithbeto

(back to top)