Philip Davis and Rob Bohnke
Small details make a big difference, and visual effects can enhance perception and functionality. Experiment to find the right effect.
Effects can:
- Show feature is working
- Add personality
- Focus attention
| import SwiftUI | |
| import UniformTypeIdentifiers | |
| struct MeshGradientPoint: Identifiable { | |
| let id = UUID() | |
| var point: SIMD2<Float> | |
| var color: Color | |
| } | |
| struct ContentView: View { |
| // Variables used by Scriptable. | |
| // These must be at the very top of the file. Do not edit. | |
| // icon-color: deep-blue; icon-glyph: subway; | |
| let GtfsRealtimeBindings = importModule("gtfs-realtime.js") // add this file to Scriptable from https://github.com/MobilityData/gtfs-realtime-bindings/blob/master/nodejs/gtfs-realtime.js | |
| // also add https://github.com/protobufjs/protobuf.js/blob/master/dist/protobuf.min.js to Scriptable | |
| const API_KEY = "paste_your_api_key_here" // get a free MTA API key at https://api.mta.info/#/landing | |
| const ROOT = "entity" | |
| const ALERT = "alert" |
| // Variables used by Scriptable. | |
| // These must be at the very top of the file. Do not edit. | |
| // icon-color: blue; icon-glyph: bicycle; | |
| /*** WIDGET SETUP *** | |
| * Edit the Scriptable widget, select this CitiBike script, and fill the Parameter field with your station's id | |
| * | |
| * HOW TO FIND A STATION'S ID | |
| * Search for a CitiBike station by street name at https://gbfs.citibikenyc.com/gbfs/en/station_information.json | |
| * Find the station_id field associated with the name |
| // Variables used by Scriptable. | |
| // These must be at the very top of the file. Do not edit. | |
| // icon-color: deep-green; icon-glyph: tree; | |
| /*** SETUP *** | |
| * Register for a free Accuweather API Key at https://developer.accuweather.com | |
| * Enter your API key in the field below | |
| * | |
| * Use the Locations API to determine the location key of your city at http://dataservice.accuweather.com/locations/v1/search | |
| * Paste the location key in the appropriate variable below |
I hereby claim:
To claim this, I am signing this object: