pargi / pargi-ios Goto Github PK
View Code? Open in Web Editor NEWPargi app for iPhone
Pargi app for iPhone
Based on design done in #4, implement the view.
Requirements
As an ideal companion, Pargi could have an extension on Apple Watch that would give a quick overview of the current parking session and allow you to end it. Similarly, it could be a nice way of starting parking with saved license plate and the "most likely zone". If the goal is to shorten the time it takes to pay for parking, doing it from your wrist with a single tap would be the ultimate solution.
This task should culminate in ideas for interactions that a Watch OS extension could surface for Pargi. Ideally, these ideas would be formed as specific feature requests that also include wireframes/screenshots/mockups. These requests should be issues on this repository.
Once the app has started parking, we should show a view that has the following information on it:
Expected result of this task/issue is to come up with a proposed design (level of detail does not matter) for the view. It should take into account the requirements, as well as the logical layout of the app. One possible solution would be to repurpose the "drawer" that is currently on the main view, simply replacing the contents. Another possible solution would be to push a completely new view as a modal.
This task is not expected to result in concrete technical proposal, rather, should think through how the interactions of the app should be and what the user flow should be. Ideally, this would all culminate with either a wireframe or a sketch, which could then be turned into a fully-fledged design in the app.
When the pre-conditions are met and the user taps on the Park button, the app should open the SMS composer with the pre-composed message body and recipient number.
license-plate<space>zone-code
, for example 123ABC EP1
)MainViewController.swift
, which means the action of tapping the button has to likely be exposed as a delegate function from DetailViewController.swift
. This is to make sure all business-logic is in, and only in, MainViewController.swift
and all other controllers remain clean (meaning easily testable).UserData.swift
exposes some persisted values for storing parking state.Currently, MapViewController
either tracks the user location (i.e changes the region to keep the user location centered) or not, based on a flag - trackUserLocation
. This should however, change dynamically based on how the user interacts with the map.
Assets/Locate
(placement should roughly match what Maps does in iOS, see screenshot)Apple Maps has buttons in the top right corner of the map view, the button for re-enabling user-location tracking in Pargi should feel similar (but use a different icon, unless you are able to find the correct asset). In our case, it makes more sense to have the icon in bottom-right (reach zone of the thumb) as that way the interaction is faster with the app.
Attached a screenshot for reference.
The "Park" button due to its custom nature has a weird highlighted state, where the text is the same exact colour as the background colour is. The text should be inverted (be white) when the button is highlighted
The Park button has white text and blue background
The Park button text is the same colour as the background.
Currently, the elapsed time of parking is only shown in the partially visible version of the drawer in parked view. Modify the drawer contents in a way, where a shorthand version is visible inline with the Drive button.
The proposed design would put the drive button on the right (similarly to the Park button) and on the left would have a single text label with duration and estimated cost. This would not affect the contents of the drawer. The elapsed time would not have a descriptive label next to it, just the formatted duration (i.e "1h 20m")
While currently the logic for determining the likeliest parking zone is based purely on distance, we could in the future use popularity as a metric as well (especially for zones that are really close by). In order to even plan doing something like this, we should start capturing usage data as soon as possible.
This task should produce further issues on this repository that do the following:
Get the following error:
import Cereal -> Module compiled with Swift 3.1 cannot be imported in Swift 4.0.
If the map is still centering on location, button to start parking does not respond, even if the zone has been found and is available.
Currently, the app does not notify users of ongoing parking, this was a nice feature of the old version that should be reintroduced in some clever way.
The old approach was very manual, it had a few buttons and a settings option that controlled it, but nothing else, this wasn't particularly good (default values should be so good that you wouldn't need to fiddle with buttons).
Requirements
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.