• This repository has been archived on 17/Aug/2021
  • Stars
    star
    208
  • Rank 189,015 (Top 4 %)
  • Language
    JavaScript
  • Created over 6 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Mobile client for ZEIT Now platform

logo

About

This is the repo of a mobile app for ZEIT's Now platform built with React Native.

Contributing

If you want to contribute, here's how to work with the project:

  • Make sure you have React Native installed (npm install -g react-native-cli)
  • Clone the repo
  • Run npm install or yarn
  • Run react-native start to start the packager
  • Run react-native run-ios to start the app in the simulator

Swifty parts

Today extensions and Apple Watch companion app are built with Swift. Why? Well, for the Watch it's not possible to use React Native. As for Today widgets, while it is possible to build Today widgets with React Native, iOS puts an insane memory limit of 16MB on Today extensions, most of which will be eaten up by RN and I didn't want to worry about it. Also it was all part of my ongoing effort to learn Swift 🙈

Swift <-> JS

All the necessary data is still passed to extensions from JS, but the extensions themselves are native. Today widgets use Shared App Groups and Watch uses Watch Connectivity to pass authentication data to the Watch.

CocoaPods and .xcworkspace

Watch app uses CocoaPods, so if you want to launch the app from Xcode, you should use the .xcworkspace instead of .xcproject to open the project.

Bugs

There's most likely a bunch of them, especially in Swift sections since I don't know Swift that well. If you find any, please report them and they shall be fixed. Also contributions are very welcome :)

TODO

  • Deployment details screen on tap
  • Cache latest state and show it on startup before loading from network. This is already beind done on the Watch so it's only fair main app has it
  • Simplify Provider component (?)
  • Flow types improvements
  • Android version. It's basically good to go but there's gonna be mandatory Android bugs to sort out
  • Today extension auth handling
  • Tests
  • Fastlane (?)

Landing page

Code for mobile.now.sh is available here.

Disclamer

This is not an official ZEIT software.

It just uses ZEIT's APIs, some of which is copied from Now Desktop and isn't documented on the official website.

If you have any questions or issues with this app, please don't bug people of ZEIT about it and just file an issue on this repo.