Skip to content

learning platform built with Expo and React Native

Notifications You must be signed in to change notification settings

majkeloess/learnTube

Repository files navigation

👋 Introduction

learnTube is React Native mobile app built with Expo. Application is an simple learning platform where you can search for videos, watch them and make notes.

The development of the project began on 19 August 2024.

s1 s2 s3 s4

⚙️ Tech stack

  • Expo
  • React Native
  • TypeScript
  • NativeWind
  • react-native-video
  • Axios
  • zod

Installation

To run application locally you need to have git, node.js and npm installed locally on your machine.

Cloning the repo and installing dependencies

git clone https://github.com/majkeloess/learnTube
cd learnTube
npm i

Setting up environment variables

Change name of the .env.example file, into .env .

EXPO_PUBLIC_YOUTUBE=<YOUR_YT_API_V3_KEY>

If you want to fetch data into app you need to have YOUR_YT_API_V3_KEY. You can get it from Google console. You'll need to create a new application that utilizes the YouTube v3 API. This process is more involved than the previous steps, so please refer to documentation for guidance.

Running the project

npx expo start

Scan QR code from terminal and open Expo Go on your device. You have to be connected to the same network as on your computer.

!Important

App right now uses react-native-video Video component. It works only in dev build for specific platform because it uses native modules. If you want app work properly in Expo Go you have to change Video player (from VideoPlayer to VideoPlayerAV) in the file below:

//  app/details/[id].tsx

<SafeAreaView className="h-screen mt-6">
      {/* temporary */}
      {/* <VideoPlayerAV url={data.id} /> */}
      <VideoPlayer currentTime={currentTime} setCurrentTime={setCurrentTime} />
      <View className="mx-4 mt-4">
        <Text className="text-[18px] font-psemibold600">
          {data.snippet.title}
        </Text>
// ...

License

This project is licensed under the MIT License.