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 ♾️
- Host: GitHub
- URL: https://github.com/ladunjexa-pbl/reactnative-calculator
- Owner: ladunjexa-pbl
- License: mit
- Created: 2023-01-12T01:39:54.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-05-13T18:28:14.000Z (over 1 year ago)
- Last Synced: 2025-06-02T02:19:31.651Z (4 months ago)
- Topics: basic-calculator, context-api, cross-platform, expo, react-native, typescript
- Language: TypeScript
- Homepage:
- Size: 660 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README


Calculator App
Minimalistic Calculator Application with beautiful UI and Theme-Mode feature
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


## :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
```## :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## :warning: License
Distributed under the MIT License. See [LICENSE.txt](https://github.com/ladunjexa/Calculator-App/blob/main/LICENSE) for more information.
## :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)
## :gem: Acknowledgements
This section used to mention useful resources and libraries that used in Calculator App
- [expo.dev](https://expo.dev/)
- #codewithbeto