Hello again! It's me, Luigi again and today I am going to talk about the vision of Telescope 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?
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.
- 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
- Builds are done by Expo
- Native modules are not supported
- Expo apps are bigger because all libraries are included
- Builds are done locally
- Native modules are supported
- You have more control over app size
- 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
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.
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!
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 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!