fwcd / woods Goto Github PK
View Code? Open in Web Editor NEWGPS navigation and Geocaching app for iOS and watchOS
License: GNU General Public License v3.0
GPS navigation and Geocaching app for iOS and watchOS
License: GNU General Public License v3.0
As outlined in #16, it would be cool to have (in addition to the synced navigation) the ability to independently look for nearby caches etc in the watch app.
The POST
to Geocaching.com's login page seems to fail, rejecting the CSRF token (__RequestVerificationToken
). Figure out why this is the case, e.g. by cross-checking how pycaching
handles this.
It would be nice if the map could auto-refresh, this would however require reasonable throttling and limits in terms of how wide e.g. the viewed region can be.
Target macOS too with the SwiftUI app.
Create a better logo and add it to the README.
Fix the SlideOverCard
preview (which currently doesn't seem to 'anchor' into a position correctly after being dragged) and improve the mechanics, in particular find an animation and make the gesture feel 'fluid'.
Perhaps MapKit offers an API for this? If performant enough, we could even automatically display a route whenever a user selects a cache on the map (if near enough).
This includes
New Waypoint
button in the lists viewThis would a small QoL addition. Perhaps even a button for resetting the CoordinatesEditor
to the current location?
E.g. aggregate waypoints via internal ids, so changes to a waypoint are reflected in every list they have been added to.
Add a profile view (perhaps as a link from the corresponding account?) with name, stats, avatar, trackable inventory and perhaps souvenirs.
This would require connector integration.
It would be cool if we could link to a cache listing in a way that it always opens in Safari (instead of the app), perhaps even using a Safari web view?
Add support for adding logs, both offline (a la Field Notes) and through connectors.
These should both include waypoints included in the listing and the ability to add new (offline) waypoints.
If possible with MapKit, let the user look for caches along a route.
A simple watch integration could e.g. only display state synchronized with the iOS app, e.g. the navigator arrow during an active navigation.
A more sophisticated watch app could later provide the ability to fetch e.g. nearby caches independently and only sync lists/accounts with the iOS app.
Ideally this would include sophisticated querying and filtering options (e.g. by D/T rating, size, ...) and let the user both query against a connector and the local lists.
Perhaps we could also add a new action button to the WaypointDetailView
for querying nearby waypoints (e.g. named "Find Nearby"
)?
Add a connector that connects to a https://github.com/fwcd/woods-backend instance.
Track these details separately from the actual cache information to make it easier to e.g. keep these infos up-to-date in saved lists. Additionally, it might make it easier to keep e.g. a decoupled local store of found caches.
We should either make it more clear in the editing UI that unique waypoint ids are necessary and/or assist the user in generating such ids, e.g. using some predefined scheme such as WP123456
.
Let the user store waypoints and navigate to them independently of caches. Ideally:
Migrate the Combine publishers to async/await.
This extends #4 by adding support for dropping/retrieving trackables (or GeoKretys, ...). Additionally, it would be nice to have a view for showing per-account trackables (e.g. a detail view that can be accessed by tapping one of the accounts in the accounts tab).
Add GCTools-style caching utilities, e.g. including
Additionally, it might be nice to visualize bearings, intersections, circles (e.g. for trilateration, distance circles for zones where caches cannot be placed, ...)
Present accounts where the login failed (e.g. those loaded from the keychain) in the accounts view. Otherwise the user might be unable to delete credentials in his keychain to an account that, for whatever reason, no longer works.
The map markers currently cannot be clicked for some reason.
Let the user create cache lists and (ideally) also, possibly nested, folders. These lists should be available for offline usage and persisted.
Implement a connector that uses the Geocaching.com website's internal API.
There should be a setting that, when enabled, makes sure the map auto-reloads once the user pans around.
Currently only navigation updates are transmitted, thus e.g. if the navigator is already open on the phone, opening Woods on the watch will not display the navigator. For this, we could investigate either adding a watch -> host request or using WCSession
s application context (see the docs here).
Add support for searching for caches externally (through a connector), e.g.
This search should support filtering options, including
Ideally we would have both a search field in the map view and a tab for searching (which could additionally support internal searches).
Add support for filtering stored caches (e.g. from downloaded lists, see #7) by various properties, including (but not limited to)
Additionally, the user should be able to save these searches as 'smart lists' (and also be able to put these into folders, just like normal lists).
This could also be useful if we were to repurpose the filter bar in the map view to an 'actual' search bar.
Add a 'radar' like view where the user can see nearby caches around him on the watch.
Ideally using some marker that differentiates them from other waypoints.
Use e.g. green as accent color.
Render attributes as icons (perhaps even emojis?) in the WaypointDetailView
.
It would be nice to show the underlying directions in the form of a compass rose instead of just the arrow pointing to the waypoint in the navigator.
Add a button for adding events to the user's calendar.
Add a CI build that automatically builds the app for all of the supported platforms (macOS, iOS, watchOS).
Add a connector that uses the OKAPI.
Add OSM as an alternative to Apple Maps.
The native macOS version still has some bugs that we need to investigate (all in WaypointMapView
):
Map
(is this even possible?)Map
Add support for e.g. exporting cache lists as GeoJSON (along with other formats like GPX).
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.