kiliankoe / parkendd Goto Github PK
View Code? Open in Web Editor NEW🚗 iOS app for finding public parking lots
Home Page: https://parkendd.de
License: MIT License
🚗 iOS app for finding public parking lots
Home Page: https://parkendd.de
License: MIT License
So the data is being reloaded, but it's not being displayed until the tableView is touched by the user. Very odd.
Keep the refresh button or kick it?
See the second part of this guide for a how to: http://www.appcoda.com/pull-to-refresh-uitableview-empty/
Bring back the update button. Makes it possible to update when scrolled down without having to find a specific parking lot again.
This seems like a fun fit: https://github.com/dataxpress/UICountingLabel
This is probably the cause for some of my headaches with the UIRefreshControl. Probably not much of an issue to refactor that.
This is just a teeny tiny thing, but ask the three people thanked on the about page before publishing the app if it's ok to mention their names.
Give the user a button to send me an email (preferably with a prefilled subject line containing the selected parking lot) if any of the data in the upcoming detail view should be incorrect.
Instead of having three distinct colors for the main states (green, yellow and red), it would be a better idea to incorporate the percentage load into this somehow. So either a filled circle or a bar or something.
Display a MapKit view when a parking lot is selected in the table view of where it is. Also show where the user is if he's within a reasonable range.
By the way: does that awesome popViewController-slidegesturestuff still work when there's a screen filling map view displayed?
I like using issues as todos...
Don't forget to get the URL via NSUserDefaults so that the settings.bundle works. Also catch errors and timeouts and whatnot, especially since a user could mess with the server URL.
Not sure if I like how the mapview stays fixed at the top. Would probably feel more natural if it were able to scroll as well.
No clue what's causing this whatsoever. The functions are being called at the right moment and I've even moved it to before the alertController is declared for a failed refresh, but no matter what the activity indicator disappears and the freakin' barbuttonitem ain't freakin' coming back!
Because why not. I have no clue how hard it might be to implement this though. And hopefully it doesn't interfere with the UIRefreshControl.
See this: http://www.raywenderlich.com/76519/add-table-view-search-swift
Mark specific parking lots as favorites (via a swipe?) that are then displayed at the top of the list. Goes somewhat with #1 maybe? And see #7.
See this: https://gist.github.com/marksands/76558707f583dbb8f870
Also see this as a possible fit: https://github.com/alikaragoz/MCSwipeTableViewCell
As this can be set by the user it might be a good idea to validate the URL before trying to access the server.
Here's a possibility: http://stackoverflow.com/questions/1471201/how-to-validate-an-url-on-the-iphone
something along the lines of
NSURL *candidateURL = [NSURL URLWithString:candidate];
// WARNING > "test" is an URL according to RFCs, being just a path
// so you still should check scheme and all other NSURL attributes you need
if (candidateURL && candidateURL.scheme && candidateURL.host) {
// candidate is a well-formed url with:
// - a scheme (like http://)
// - a host (like stackoverflow.com)
}
Still not a big fan or regex...
If the sorting mode is set to distance the table's data is reset to default sorting until a location has been determined. This can be a few seconds and is visually unpleasing to say the least.
Best idea would probably be to remember the distance sorted list temporarily and set it to that before resorting after the real location has been found. The labels can of course remain at waiting for location for this waiting time.
If a user first denies access to location data and is later prompted to go into the settings because he/she chose to sort by location, the location is not being updated right after switching back to the app. Everything works fine if the sorting is switched around again.
It's slightly weird because the CLAuthorizationStatus is fine in that case, it's just the CLLocationManager delegate methods not being called for whatever reason it seems.
Looks just as good and not messed up when there's no data to display.
Looks like I'm too stupid to calculate a percentage. And nobody noticed either. I guess that should get fixed rather soon...
Because there's not really a reason not to support it.
It might not be the best UX, but I'd rather not display possibly outdated data when a user starts the app after it hasn't updated for a little while (so whenever viewDidLoad() runs?). In this case a short note should be displayed while the app is already updating itself.
See the first part of this post: http://www.appcoda.com/pull-to-refresh-uitableview-empty/
Not just on starting the app (by the way: how can this be done if it's just woken up?) but at timed intervals. Is this a good idea?
This would mean better scraper functionality, but it would be great to display current pricing information so the user can see the cheapest parking spot at the current time.
Or something to make it clear the data has just changed on specific cells. Makes it easier to see if you're not staring at the screen.
I'd really love having something like the following, but it's weird to implement. I'll leave this here to think about.
https://bakyelli.wordpress.com/2014/01/21/table-views-on-top-of-map-views/
What if the server is just slow or the Wifi sucks? The refresh doesn't seem to ever end in this case.
It might look good to have the current state of the parking lot not only as the image, but also in text form. See if that works out.
Even though they had to die before implementing the sort, it'd be shame losing them. I like sections :(
Let the user enter additional information on the spot where he/she parked their car. Or maybe even a photo.
Would definitely help making this even more useful.
Fix the layout to work on all iPhones.
Especially looking at Czech and Russian. Gonna have to find a person for either of those though.
Want to help? Awesome! Please click here: https://poeditor.com/join/project/ppxkC7Hgvf
If dresden.de/freie-parkplaetze looks like it does on this screenshot, the parser is able to find the sections but there are no lots, so it still fails. There is however no server error in this case, causing the app update to seemingly go through, but nothing is displayed.
Here's the scraper content for that page for testing: http://kilian.io/parkendd/43.json
Gotta love new stuff. It'd be really awesome to build a small extension that displays the favorited (see #6) parking lots in an extension.
http://www.raywenderlich.com/83809/ios-8-today-extension-tutorial
A settings button in the upper left hand corner would be grand. Here things like the sorting (#1) could be set and the button for the about page could be moved right here as well.
Here's an icon: http://icons8.com/web-app/364/Settings
Stick the link from that on the about page as well.
thanks to @florianschmidt1994 for the suggestion
http://stackoverflow.com/questions/12859611/changing-pin-color-mkmapview
App is in English at the moment, add translations for German.
It'd be cool to be able to sort the list of parking lots showing the nearest ones at the top. Not quite sure how to work with the sections? Or maybe sort the sections and then the stops in them?
Best way to go would probably be to leave out the sections entirely in this case. Go with just a long list of parkinglots sorted accordingly.
Lots like Ostra-Allee are not part of the Parkleitsystem and are just listed for their metadata. They'll (probably) never have any empty spots listed in the app and should be displayed accordingly.
Ich habe beispielhaft für die Centrum-Galerie für das Jahr 2015 eine Vorhersage der Belegung (in %) mit Machine Learning entwickelt. Das könnte man als Experimental-Feature in die App einbauen.
Ich stelle mir so eine Art Slider vor, wenn man auf die Centrum-Galerie geht, wo man
|======+30min=======in 1h=========in 2h=========in 3h==..
und auch
am 18.08.2015 um 15Uhr
über ein Date-Picker Tool in Android eingeben kann und dann die Belegung von der App zurück bekommt. Dazu müsste im einfachsten Fall eine .CSV geparsed werden und der korrekte Wert daraus entnommen und angezeigt.
Impossible at the moment thanks to Xcode 6.3 being a Beta version but still the only version to support Swift 1.2.
So I guess this will have to wait for an Xcode update ლ(ಠ_ಠ ლ)
Your app is built with a beta version of Xcode or iOS SDK. Only apps distributed for beta testing may be built with beta software. To submit an app for distribution on the App Store, you will need to build the app with release versions of Xcode and iOS SDK.
For some odd reason parkinglots.count
returns 42 after being refreshed. Yeah... That ain't right.
When viewing the UIRefreshControl for the first time it always has this weird jerk to it. Hard to explain, but it looks stupid. Every subsequent view of it fine.
Not sure exactly where, but it'd be a nice addition to display somewhere.
This means getting the relevant data to and from NSUserDefaults, resetting stuff when the switch has been flipped and... yeah, that's about it.
Instead of just displaying a map, additional data could also be displayed. Things like the address and name (again), but also contact information, pricing, opening times and the tendency, all of which is listed on the detail pages at http://dresden.de/freie-parkplaetze. This would however have to be integrated into the scraper to make sure it's updated as well...
This app should be prettier. Everything about it. I've got some ideas...
And also a new icon. Definitely a new icon!
Just gonna collect a few links here:
http://flatuicolors.com
https://github.com/KrauseFx/TSMessages
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.