/expo-head-starter-kit

A starter kit with Expo and gluestack-ui for faster, smoother, and universal mobile and web development.

Primary LanguageTypeScript

Expo gluestack-ui Head Starter Kit ๐Ÿš€

A comprehensive starter kit to kick-start your next mobile application using Expo and gluestack-ui - your one-stop solution for faster, smoother, and better mobile and web development.

Demo

See the live demo of this starter kit at Demo Link.

๐Ÿ‘ฉโ€๐Ÿ’ป Built with

๐ŸŒŸ Features

  • Seamless Integration: Get up and running with Expo and gluestack-ui in no time.
  • Modular Architecture: Built with scalability in mind to cater to both small and large projects.
  • Preconfigured Navigation: Includes preconfigured navigation patterns using Expo Router V2.
  • Theming & Styling: Customizable themes using gluestack-ui components.
  • Detailed Documentation: Comprehensive documentation to guide you through every step.
  • Extensive form handling: Extensive implementation of handling forms and validations.
  • Preconfigured linting rules: Comprehensive linting rules.
  • Preconfigured editor configurations: Widely accepted editor configuration.

๐Ÿ“ท Screenshots

Please find the screenshots in the head-starter-kit-screenshots folder.

๐Ÿš€ Getting Started

Prerequisites

Installation

# Clone the repository

## Using SSH
git clone git@github.com:gluestack/expo-head-starter-kit.git

## Using HTTPS
git clone https://github.com/gluestack/expo-head-starter-kit.git

# Navigate into the directory
cd expo-head-starter-kit

# Install dependencies
npm install

# Start the Expo development server
expo start

๐ŸŒˆ Applying Fonts in your application

You already have the font loaded in your application, now you can apply the font in your application.

Add the font name in the gluestack.config.js file in the fonts object.

fonts: {
  heading: "inter",
  body: "inter",
  mono: "monospace",
},

๐Ÿ“– Documentation

For a deep dive into the components, structure, and configurations, please refer to our detailed documentation.

๐Ÿงช Testing

We've set up Jest as the testing framework for this project to ensure the reliability of your codebase. You can run the tests using the following commands:

Setting Up Jest with Expo

To install jest-expo in your project, run the following command:

npx expo install jest-expo jest

Writing Test Cases

To write your own test cases, refer to the Expo documentation on unit testing for comprehensive guidance and best practices.

Running Tests

To run tests, use the following command:

npm run test

We've added an example of a Jest snapshot test case for the SplashScreen component. This test case uses Jest's jest.mock to mock a dependency and then renders the SplashScreen component within a StyledProvider. Finally, it asserts that the rendered component matches the previously saved snapshot.

You can add more test cases as needed for your other components and features. This section serves as a starting point for incorporating testing into your project using Jest.

๐Ÿ™Œ Contributing

We welcome contributions! 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, make changes 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

๐Ÿ“„ License

This project is licensed under the MIT License.

โค๏ธ Acknowledgments