For our final we created a Sphero app the allows the user to draw a shape/design on the screen and the Sphero will move on the ground in the pattern the user drew. We also added the functionality to save a pattern you drew on the screen. Once the pattern is saved you can re run that pattern or combine it with other patterns to create a macro of patterns for the Sphero do follow.
Our goals for this project were to translate drawing to movement, save drawn paths, build macros, save macros, and maintain a usable interface. Of these, we met all our goals except that we did not save macros.
The trickiest aspects of our app were building roll commands from the paths and extending the path class to allow it to be more usable across our app and display correctly on different screens with different window sizes.
For our interface, our main screens are the DrawPathActivity and the AssembleMacroActivity. The DrawPathActivity gives the user a canvas that covers almost the entire screen on which to draw. The AssembleMacroActivity utilizes two ListViews. One is a built-in ListView with a custom adapter, the other is a third-party horizontal list view that builds the macro along the bottom of the screen.
Our main research for this project was to learn how to interact with Sphero and issue correct commands. Next, we used the Messenger class for the first time to allow different Activities to communicate with the Sphero connected to the MainActvity. Finding an adequate Horizontal List View also allowed us to create a more intuitive AssembleMacro interface. Lastly, we used the PathMeasure class heavily for the math to divide up our paths and build tangential segments.
Here are the screen shots from out app:
]]>In the url 48907 is the zip code.
The UI is simple enough, it just dynamically updates after you enter a zip code and hit get weather!
The most useful thing I learned doing this was AsyncTask. While we already did it in class, I never played with it any more than the group in class activity. It was very helpful when I dove in and got my hands dirty.
]]>Everyone knows Ice Cream Sandwich (Android 4.0) was a big step in the right direction for the android mobile operating system. Google has not begun developing and release the 4.x versions of Android. Update 4.1 is knows as Jelly Bean; while 4.2 does not have an official nickname yet. The differences between jelly bean and Ice Cream Sandwich are substantial in some areas and nonexistent in other. It is clear that it is as big an overhaul as Ice Cream Sandwich was to its predecessors. There are a few main areas that difference can be detected.
The first area that is difference is overall sleep of the operating system. The user interface looks almost exactly the same, but jelly bean has a smoother/faster feel to it. Jelly Bean also can load apps, web pages and switch to a new screen faster than Ice Cream Sandwich. While it is not exactly clear how Google achieved this, I believe that they simply gave the UI a higher (or lower if you are linux) priority is the process ques. They also increased the speed of the Camera app so accessing photos is substantially faster.
The next area that they improved was the notification feature. Again, speed has been increased over Ice Cream so there is less lag after the user attempts to drag down the notification bar. They also removed some of the clutter on the notification bar, making it easier to use and more simplistic. They also added functionality that allows users to interact with apps, which are running in background, without actually launching the UI for those apps. This is a big part of the speed increase because you never have to leave the notification dropdown screen to complete the task you want to do. Another feature is you can enable or disable notification privileges for apps in the app management page.
Google also changed how widgets work on the screen. The added the feature that any widget, yes any widget, is resizable. When you place the widget the OS will also move apps underneath where you put it around so you can place it there. This is in contracts to Ice Cream where it just tells you that you cannot place that there.
They also had a major overall of the Google search app/widget. For starters, the way they display the results is much more mobile friendly, compared the standard results page on computers. It will give you a quick page of what it things you want to know, and if one of the windows it gives you is not what you want you can always go and look at the standard Google view for the results. The voice command part of search is also much faster than ICS. There are numerous reports that it is as good, and even some say its better, than Siri for IPhone and IOS. It is clear that this was a focus of Google. I imagine as soon as they heard about Siri they started working hard on matching it, and in Jelly Bean they finally caught her. I expect 4.2+ updates to clearly surpass Siri and leave her in the dust.
There are some of the changes from Ice Cream Sandwich (4.0) to Jelly Bean (4.1). While most are minor changes it is clearly another step in the right direction for Google in winning the Mobile OS war. Especially when you think how much better IOS use to be compared to Android back in the 1.x and 2.x days. I am personally excited to get Jelly Bean on my phone (Galaxy SIII through Sprint) in a month or two.
]]>]]>
Widgets used:
– TextView
– Button
– ToggleButton
– CheckBox
– Switch
]]>Strobe Light: It uses the camera flash and just turns it off and on over and over as quickly as possible. Maybe have a scale on the screen to change rate. Playing music through the app from the phone memory would be a cool feature as well.
Note Widget: It simply lists notes on a page of the phone. It would preferably be a widget so you do not have to open app to see the note.
GPS: Use the GPS in the phone to get longitude and latitude of current location. Also the speed you are going using the accelerometer.
Gesture Recognition: Using the accelerometer it can determine what gesture you are making when you hold the phone in your hand and move your arm. For example, making a circle in the air (This would probably be really hard, but sounds like an interesting project).
Tic Tac Toe: Simple game of tick tac toe. Two player and One player modes, with different AI levels. You move by taping desired space.
]]>