The Android Lollipop update is right around the corner, and as such the new 5.0 API has been released!
This update means a lot for the Android community, for both developers and users alike. Lollipop introduces a new design specification, preferring more flat colors rather than gradients and shine. It also introduces "Material Design", which covers basic design (as mentioned above), as well as the user experience. More specifics on Material Design can be found here: http://www.google.com/design/spec/material-design/introduction.html#.
Since this has come out, and Lollipop will be coming out before we actually release our app, I have taken it upon myself to start porting what we have to better fit with the design spec, and provide a clean and simple user experience. Main things that need to be done: Customizing the status bar and implementing "Material" aspects into the design. A good example of what I mean can be found in the Developer preview, in Google apps. Touching buttons now just "feels" better, because of animations that play on press. If you hold a button, or menu item, it shows the same animation much slower. This helps the experience feel much more natural, more like touching an actual object instead of just a screen. As such, the users may have a better experience than before, when there was just a slight highlight.
All in all, there probably isn't that much I will need to do to port over what I have to Lollipop's API. It will just require a bit of trial and error.
I added a LocationManager object to facilitate getting the speed from the GPS. It currently will get the last known location and the speed of that. I'm not sure at this point if it will be acceptable or not. Additionally, I cannot test this immediately because I do not have an Android device nor do I have GPS on my laptop. I will try to get together with Phil to test this soon.
Also, I previously updated the Android version with a Handler that will tick every given number of seconds in the Log class. I guess I just didn't write a blog post about it. This will be used in conjunction with the new LocationManager to get the speed on each tick.
Lastly, I mentioned before that we have a different Github repository than the main Spoiler IOS one. It can be found here:
Take note that this is a different repository than our original Android one (but the same link that Phil has posted), because we had to create a new one to deal with IDE changes. All set now!
We have reveal modals now! When someone wants to log in, access account preferences,or create an account, the window dims and a sleek little panel will drop down for people to input information. This is used instead of a whole page for all three functions, which we found looks barren and boring. These reveal modals are super cool, in my opinion.
Also, great strides have been made in responsiveness. Now when the window is resized, the content moves around accordingly to fit the information on the pages into more appealing layouts that work well with mobile devices. We can test seeing how this will look using Chrome's developer tools, which include a mobile view of our site, which is extremely helpful!
Next I'll be working on the Submit a Certificate page and the layout of the admin's inbox type of page.
Changed the Log class to handle updating speed and logging the speed to be smarter and use less memory. Previously, the logging class was going to hold speed measurements in a buffer-like system and save to a file at different intervals, however, this is unnecessary considering the file stream could be opened and saved quickly while reducing memory usage.
Another change to the Log class is that the measurement taking will be handled by the class itself as opposed to being driven by the viewcontroller.
The next step is to get measurement taking to be correct and accurate.
There was a lot done since the last blog post. The biggest change was changing how the detection works. Before, I planned on having the app fire a notification at night hours the moment the user's distance from one of their home locations exceeded a certain customizable threshold. However, a better way of doing things is to send the notification the instant the user enters their home location at night hours. This is better because the notification would then fire (ideally, sans GPS inaccuracies) as soon as they leave their car and are walking to their house. In addition, the app now plays a sound and vibrates upon notification, so the user would be reminded pretty aggressively.
I plan on publishing the Android version before moving on to the iOS version. In retrospect this would take a little more work than anticipated, due to the complexity of publishing. In addition, I plan to make a "help" website that gives details on how to use the app, as the way the app works, by nature, is not too intuitive.