/spotted-app

Primary LanguageJavaScriptMIT LicenseMIT

Spotted App

What is Spotted?

Spotted is an app where you can share a thought, an outburst, express yourself throught a catchphrase or even ask who was that red-shirt person in the math class this morning ;) All of that anonymously! You can also interact with the closest (250km) posts from you, with likes and comments, also in complete anonymity, of course!

Breakthrough

My idea was to create a web application that looks native and with all, or almost all, features of a native app (such as camera, geo-location, get unique device identifier, app stores presence etc). For this, I used Meteor for the web application and React Native to load the meteor app through a webview, using WebViewBridge to communicate between the two sides.

iPhone notch (X, XR, XL) layout

iPhone without notch layout

Android layout

I invested a lot of time in the design, to make users very convinced that they are using a native application.

Everything (design) was done in pure scss + javascript Including the transitions ;)

iOS animation

Android animation

Again: it's not native. It's a web app!

Native Side

This web app has the following user phone's informations, provided by the native side (React native)

  • Unique ID
  • Camera (to upload a custom background to the spotted)
  • Geolocation
  • Operational system (to properly load the layouts (iOS, iOS + notch and android))

To Do:

  • Multi language support with i18n.
  • Refactor and clean the code.
  • Error handling
  • Compress image before sending it out of the native side
  • Properly implement Popular Feed and a popularity calculator algorithym
  • Create a login (with facebook) system so the users can create communities/groups and they can know sometimes if the spotteds's author is a friend, a friend of a friend etc.
  • Create a better loading component
  • Create pagination with infinite scroll (it's already implemented)
  • Pull to refresh? Should I make the app not that real time?

Final considerations

Spotted was an idea that I may continue to work on. But before to publish it, I have to think better about the privacy and some legal stuff. I just used it as an excuse to create a cool app in Meteor being loaded by a WebView inside of a React Native App, instead of just creating a dummy and simple proof-of-concept.

I don't even have space for Android Studio here, so I didn't work in the Android side, only iOS. Please consider that before running it.

In /App.js, do the proper changes to the webview url (currently http://192.168.1.23:3000)

The Meteor app is inside of spotted-app.