Getting Telescope's React Native App
Tags: opensource, javascript, webdev, reactnative
Published: 2022-01-15 00:18:43

Hello again! It's me, Luigi again and today I am going to talk about the vision of [Telescope](https://telescope.cdot.systems/) getting a React Native App. This is a very big subject so I am going to go over as much as I can during this blog post. Things I am going to discuss are:

- What is React Native?
- React vs React Native?
- What CLI we should use for our development?
- Possible Telescope Goals
- How can you get started to help?


## What is React Native?

### React Native?
React Native is a framework that allows programmers to write JavaScript code to build mobile applications. Some of the devices that React Native can build for currently is **IOS**, **Android** and **Windows**(Still new and buggy).

### React vs React Native
React is a **library** in **JavaScript** that is used for building front-end web applications. React Native uses the React library to build the front-end for the application.

## What React Native CLI Should we use for our Development?

![React Native Expo](https://miro.medium.com/max/856/1*iUuAwVgvAMXZYNNJnQjcTw.png)

### Expo CLI vs React Native CLI

When using React Native and starting a project you have the choice between two CLIs(Command Line Interfaces). You can choose between React Native's or Expo's. Both are awesome tools to build with but, each have their pros and cons.

#### Expo CLI

Pros:

- Fast development setup
- Quickest way to start development with React Native
- Live reload in Development
- Library linking
- Can test app on apple/android devices (Expo builds apps)
- Can eject/convert back into a React Native CLI

Cons:

- Builds are done by Expo
- Native modules are not supported
- Expo apps are bigger because all libraries are included

#### React Native CLI

Pros:

- Builds are done locally
- Native modules are supported
- You have more control over app size

Cons:

- Slow development setup
- No live reload in Development
- No library linking (things need to be linked with react-native link)
- Can't turn into an expo app

### Why I Recommend Expo as our Starting Point?
As someone who has worked with both, I think we should start development with Expo because it is easier/faster to setup for development, easier to develop in and can always be converted back into React Native CLI. This will encourage open source developers to learn and contribute because of how much easier it is to get involved with the project. Although React Native CLI provides native module support and control of the app size, I do not believe that those things are worth the frustration of working with the React Native CLI. If there are more pros or cons you know, please leave a comment in the description.

## [Telescope](https://telescope.cdot.systems/)

![Target that is red](https://d1m75rqqgidzqn.cloudfront.net/wp-data/2021/08/19143713/iStock-986556936-1.jpg)

### Starting Point

I think the first goal we should have for functionality of the app is to have blog posts with basic user information display correctly. Although it sounds easy we are designing/developing/testing a new app that requires a lot of configuration, learning and fixing. A more detailed goal list would be:

- Splash Screen
- App Icon
- Published on app store
- Get time line of blogs to display with user information correctly
- Basic navigation setup

Once we hit that goal we can add user authentication and eventually slowly layer more features onto the app and create better work flows with the power of Expo! If you have any ideas to add for goals please comment below!

## How can you get started to help?

![Community](https://images.pexels.com/photos/3280130/pexels-photo-3280130.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940)

Well now you're wondering *"How can I get involved?"*. Well to start, you should review documentation and practice using Expo so when we start development you're ready! The [Expo Documentation](https://docs.expo.dev/) is an amazing source for learning how to get started with react native! They teach you everything from installing react native to learning work flows. Once you feel a little comfortable you should make a small prototype! I feel like when I learn a new framework, I try to create a small project to help me understand how to practically use the tool. Some ideas are a TODO app, Book app that displays book information, News app and really anything that inspires you!