iPhone vs. Android: Paintball Edition

If you’re like many smartphone users, you’ve wondered about the other side of the fence. And if you’re like only a few smartphone users —say, all 16 of us, you’ve wondered how the top smartphone platforms would handle the battlefield.

Wonder no longer.

Pretext

Blame the tinkerers. We couldn’t just go play paintball. No, no. Already been done. We needed it to be faster, more efficient, more intuitive, and decidecly more… geeky. There really wasn’t a whole lot of discussion about it. We decided we needed two native apps and it was off to the races to see who could get them done first (Mark Rickert won on both counts.)

One thing we pride ourselves on at Skookum Digital Works is displaying the quickest ability to go from idea to implementation. So, this was that. “Hey, that would be awesome!” Done. Made. Realized. Had.

And thoroughly enjoyed.

Development

Not enough mobile apps harness the true power of our phones. Especially for brands, you see a lot of re-skinned websites posing as apps, brochures masquerading as digital-must-haves, and general lack of creative or technical ability to build something truly useful for the end user.

Audio I/O. Video I/O. Accelerometor. Bluetooth. The touch screen. GPS.

In this case, especially GPS. Each mobile device sent data back to a web-service at regular intervals. The devices reported their date/time, longitude, latitude, GPS accuracy, and team (iPhone or Android). This data was stored in a MySQL database which grew to almost 16,000 records in the span of two and a half hours.

The location plotting after the fact was actually pretty straightforward. We wrote a PHP script that pulled each unique user’s device records out of the database, filtering on records with 40 foot accuracy or better (since GPS reporting can sometimes be wildly inaccurate till a signal is locked-on). This PHP script spit out some basic XML which we packaged into a Google Earth KML file. From there, Google Earth could plot everyone’s locations over time, as well as provide a birds-eye-view of the playing fields (literally) and our locations at any given time. And just by assigning image files to the user ID, we were able to plot the location of the days events, group by team, and also filter by specific users (so we could track the actual air-speed velocity of an unladen Don Post). We created not only a real-time CIA-spy-mission-map but also a short trail of everyone’s movements to give a sense of direction and speed. Like that hockey-glow-puck thing that nobody remembers.

On-field viewing of the map was only hindered by our crappy cell coverage at the playing field. Also, the live Google Maps webpage was kind of a hog on some of the slower phones (eherm, iPhone3 lame-o-s), so those players were less digitally effective (because projectile games that cause pain and body bruises can always use more expensive, breakable silicon, glass and plastic, right?)

Practical Applications

As if playing smartphone paintball wasn’t good enough purpose?

Group Game

Large outdoor venue. Concert. Festival. Players work either collectively or in teams to locate other players or teams. Team Blue only knows where Team Red is. Team Red only Team Green. Plants in crowd or actors tip off teams and provide clues. AR, QR code, social media, buzzword, buzzword, something something.

Transportation

Bus schedule/route tracking anyone? “Gee, was that last bus early or late? How long am I going to stand here? Oh look, the #7 is only four blocks away. Sweet.”

Logistics

Have a fleet? Need to see where all your trucks/vans/pizza delivery dudes are at any certain time? (Note to Pizza Dudes, this doesn’t have to be nefarious—maybe your team needs you pick up some more ice on your way back.) Want to manage your vehicles to compensate for traffic patterns, congestion, and time overruns?

Art

Want to drive out your name in cursive across the country?

Venue Managment

Want to see that Popcorn John is in Section 134 and Soda Jane is in the nosebleeds? For large outdoor venues, an execution like this would work great (and in case you needed it to work inside, we’ve thought of some non-GPS versions too).

Point Being…

All of those above possibilities have been available for years. But only now are sophisticated systems like this available for the marketer, consumer, small business, or local government. The hardware is no longer a barrier.

But your current mobile application “developer” might be.

Open this file in Google Earth to watch the events of the day and play with the data.

Re-thinking the State Dropdown with Autocompletion

There are all too many web forms that requiring filling in contact information. I believe the state dropdown is one of those gems that everybody has a snippet of code in their stockpile. The annoyance of having to go out and search for a state array or database to populate the dropdown is far too great. I had an aha moment this morning…

The two most popular solutions for a user entering their state are to either make a free form text field with a max length of 2 or provide all states in a neat little dropdown in ascending order. Both solutions have their caveats. The problem with the free form text field is that it is prone to user error. The problem with the dropdown is that although it’s autocompletion is not ideal; only savvy users might fully understand it’s capabilities of using a sequence of keys for matching. This is where jQuery autocompletion comes into play.

The Benefits

  1. It gives the user the option of using a free form text tool or a dropdown.
  2. The autocompletion suggestions are limited to only the characters already entered, giving the user a limited set of choices for rapid scanning.
  3. The states are already pre-filled and the work is done for you if you use this code.
  4. It degrades gracefully, providing a default state dropdown in the event the user doesn’t have javascript enabled.
  5. You can custom style it. Either provide a jQuery UI css include or write your own. I would personally suggest adding something dropdown-esque to the text input to give a visual indication of it’s usage.
  6. Matching on partial state names with a preference of two-digit state codes.

The Drawbacks

  1. It requires the user to have javascript enabled for nifty functionality.
  2. The jQuery library is required. This could be a blessing or a curse depending on the website you are working on.

Live Demo

You can view a minimalist live demo of the state dropdown functionality here at JS Bin. To view the full source and play with this demo yourself, click on the Edit button in the upper right hand corner of the demo.

The Meat & Bones (JavaScript)

It Needs Your Help

This demo needs some TLC in the design department. If you feel so inclined, modify your own version on JS Bin and post the link in the comments section to give people a more suitable demo.

A Clean URL Generator for Zend Framework

As a developer, we’re often left with the responsibility of making game time decisions in regards to SEO. I take it upon myself to maximize keyword relevancies for each and every page; starting with the URL, title, and H2 tag (leaving the H1 solely to the site name). Many people take for granted things like Permalink generation in WordPress. If you were to delve behind the scenes, into the depths of the code, you would realize that there is much more to that pretty hyphenated link than meets the eye.

I have created a multi-purpose generator which uniquely generates clean URLs given the target table name, column name, input string, and maximum column length. The generator will not only strip or replace unwanted characters, but also only output full words. In the event of a clean URL collision (duplicate), the method will recurse and incrementally test postfix integers until a unique URL is generated. The only requirements are that you have instantiated $this->_db to your database adapter prior to calling this method. The easiest usage for this method is to drop it in a base class that would be inherited by all of your models.

Source code can be found here on github.

Forks and pull requests are welcome.

Credit goes to Matteo Spinelli for the initial code that spawned this extension

Building a Non-Trivial App in Node.js

The App

We recently launched ClickDummy, a free app for web designers that turns mockups into prototypes, and one of the first systems with node.js powering its full feature set. Interest in node as a platform is huge, but little has been reported on a full development-production cycle. Our experiences with ClickDummy have exposed issues you’ll likely face while building your own node applications.

Continue reading

And App Savviness Was Had by Many

Special guest, Ken Yarmosh, author of the best-selling book App Savvy joined us last Wednesday for a special Wednesday Night Tech Talk about mobile app development. The event was hosted at our offices in Uptown Charlotte, NC and about 45 people packed in our back room.

Here is the video:

Special thanks to Ken, and Skookum’s own Jeremy Olson, for putting on an informative and engaging presentation. We would also like to thank all of the attendees for their thoughtful questions and participation, and the CLT Blog for the both the buzz they generated for the event and for filming it for those who couldn’t make it.

The event was free and plenty of food and drinks were provided. Ken and Jeremy shared their own experiences and proven strategies for successful mobile app development and marketing. During this Tech Talk, in a unique way, questions and comments were captured and read throughout the event in real-time via Twitter posts with the hashtag #skookum. This proved to be a great way to keep the conversation moving and encourage audience participation.

We are very pleased that our special Wednesday night Tech Talk was such a success and we look forward to organizing and hosting more special events with compelling guest speakers in the future. If you attended and enjoyed this event, you may want to consider coming to our weekly Friday Tech Talks that focus on all things related to tech. For more information about the Skookum Tech Talks series and upcoming events, to pitch an idea or even volunteer to present (it’s open to anyone), visit the Meetup group and continue to follow our Blog.

Look out for video coverage of this event on CLT Blog and see photos in the Meetup gallery.

See you soon.

Page 8 of 17« First...678910...Last »