Giter Club home page Giter Club logo

expoflix's Introduction

ExpoFlix App

A movie listing application built using RN ❤️ Expo

Presquites:

  • Typescript
  • Expo

How to run the project

Step 1:

Download or clone this repo by using the link below:

git clone https://github.com/iampato/ExpoFlix.git

Step 2:

Ensure you have expo installed if not no worries

Step 3:

Cd into the project directory and install packages using npm or yarn

yarn install

or

npm i

Step 5:

Run the project, depending run expo :

yarn start

or

npm run start

If it gives you the option to either run Android or ios press a for Android and i for ios

Libraries & Tools Used

  1. State management

    • Zustand
  2. Networking

    • Axios
  3. UI

  4. Navigation

    • Expo Router
  5. Testing

    • Jest - a JavaScript testing framework
  6. Others

Folder Structure

This application uses a multi-module architecture though the packages are not in seperate packages this can easily be done. for purposes of simplicity I under them under src

Here is the folder structure we have been using in this project inside of src

.
├── app
...
├── components
...
├── core
...
└── features
...
  1. The app* module holds app-related things for example the app entry component, etc Ideally, high-level components that are needed by an app
├── app
│   ├── App.tsx
  1. The core* module contains common things that an app needs, and various features can depend on this module for example things found on the core module include:
    • assets - a central place for managing assets instead of directly using them in the app, which makes it easy to change assets
    • config - Set up your config; things like APIURL, sentry URL, etc
    • constants - constants used in your application
    • theme - the app uses a custom theme to provide theming
    • styles - includes extensions on various colors, text styles, durations, Corners
    • And many more

For this app here were my core modules; constants to hold my immutable variables, sizes for dynamic and responsive designs, textTopography for my custom text topography, and lastly theme that exposed a hook for getting theme colors based on the theme of the device

├── core
│   ├── constants.ts
│   ├── sizes.ts
│   ├── textTopography.ts
│   └── theme.ts
  1. The Feature* module houses all the features and in this app they include

Ideally, a feature has the following;

  • screens - screens in that feature
  • store - have your state management solution here
  • components - reusable components in that feature
└── features
    ├── Landing
    │   ├── components
    │   └── screens
    │       ├── landing.screen.tsx
    ├── Home
    │   ├── components
    │   └── screens
    │       └── home.screen.tsx
    ├── Search
    │   ├── components
    │   └── screens
    │       └── search.screen.tsx
    ├── Categories
    │   ├── components
    │   └── screens
    │       └── categories.screen.tsx
    ├── Detail
    │   ├── components
    │   └── screens
    │       └── detail.screen.tsx
    ├── profile
    │   ├── components
    │   └── screens
    │       ├── profile.screen.tsx
    │       └── settings.screen.tsx

Resources

Design

The app has been inspired by this UI kit (Muvi)[https://ui8.net/kitani/products/muvi---movie-streaming-ui-kit]

expoflix's People

Contributors

iampato avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.