Joe Blau

My thoughts turned into words

Page 3


Dust

Creating Ephemeral Gestures On iOS8

Last week, Apple announced the Watch and one of the features I was really interested in was the gesture based communication tool which lets people sketch an ephemeral message to other Watch users.
applewatchsketchtap.gif

I decided on Friday that I wanted that feature now, so I wrote it and here is the breakdown of what I’m calling Dust. Dust uses Apple’s Multipeer Connectivity framework, but could build this on any realtime peer to peer networking system including Firebase or ZeroMQ. I chose Multipeer Connectivity so I could run the app offline only using a Bluetooth connection between peers.

Core Animation’s Particle Emitter and the Multipeer Connectivity Framework are the two major components that make Dust work. The first component I’m going to talk about is the gesture based particle emitter. First, create two gestures and add the gestures so the view...

Continue reading →


The Contextual Graph

The Multi-Trillion Dollar Digital Network

Google owns the knowledge graph. If there is any information you want to know, you search Google or use one of Google’s products to find your answer. Services like Maps, Images, Video, Shopping, and Search contribute to this network of information that Google knows about the world.

Facebook owns the social graph. With over one billion users, Facebook has the most extensive relationship network. Facebook knows what music, movies, places, books, food, causes, and people you like. If users contribute the right content, Facebook’s platform has the potential to create an accurate digital representation of your social life.

There is a new graph that will be more valuable than the knowledge and social graph over the next decade. The Contextual Graph, a term coined by Shane Patterson, is the relationship between you and every smart hardware...

Continue reading →


Remember Where You Heard It First

Breaking News On Secret

If you’re in tune with the latest and greatest apps, then you’ve probably heard of Secret, an anonymous public message syndication app with the slogan “Speak Freely.” Well that’s exactly what the people are doing. Over the past few weeks, multiple news stories broke on Secret before news outlets covered them. Rightly so as journalists are expected to practice due diligence and may be under an embargo barring premature release of information. Tonight’s story? Dropbox acquiring Box.
secret.png
I don’t know if this is actually happening, but I think it adds a very interesting dynamic to the anonymous publishing broadcast medium.

Continue reading →


Full Screen Gesture Widgets

Designing Six Full Screen Gesture Widgets For Mobile

While working on an iOS app, our team became frustrated at the speed and efficiency of native mobile widget interactions. The new mobile/touch platform is still using widgets and interactions from the old desktop/mouse platform. Realizing an opportunity for new paradigms, we challenged ourselves to reimagine widgets using the full screen. The original ideas flowed from a full screen color picker which is the first widget we implemented. The color picker was the first step in creating the Conopsys (COS) widget set.


COSGestureColor—The Aurlien inspired picker is used to select colors for smart lights. Most color pickers don’t offer great interactivity and revolve around traditional RGB or HEX desktop color pickers. GestureColor creates a playful interface which takes advantage of the whole screen. The GestureColor view replaces...

Continue reading →


The www.gitignore.io Update

In November, Adam Roben (@aroben) went on a mass pull request spree merging hundreds of gitignore templates into GitHub’s master repository. Finally! Before he combed though 100’s of pull requests, it seemed like nobody was maintaining the official repo. The lack of an updated repository was one of my original reasons for creating www.gitignore.io. Since the official repository was updated, I received a suggestion from @mlang38 to create a submodule repo for gitignore.io that points to GitHub’s official list. That request combined with a few other features prompted me to spend a few hours updating the site and here are the results of the update.

  • Proper Bootstrap 3 support. Why? When I first migrated to Bootstrap 3, the Select2 box didn’t have the correct styles to support Bootstrap 3 so I found a work around. Now that there is better support, I’ve used the new Bootstrap 3 large style...

Continue reading →


iOS Touch Visualizer

Visualize Touches, Pans and Long Presses

I was working on a project with my co-founder this weekend and my task was to record a simple video that helps onboard users. One of the concepts we are using in our app is something we call Full Screen Gesture Controls. These are similar to what was demonstrated by Matthaeus Krenn in his New Car UI Video. In his video, he was able to physically show you his fingers moving across the screen, but what if you’re doing a live demo and people can’t see your hands?

That’s where Touch Visualizer comes in as an way to visualize three types of interactions with the screen.

  1. Touches: Visualized by a circle which expands and fades out
  2. Pans: Visualized by a circle with contracts and fades out into a tiny dot
  3. Long Presses: Visualized by a morphing circle

You can also customize the colors of the fill, stroke, opacity and fade out duration. Here is a...

Continue reading →


Flappy Block

Flappy Bird Clone using the iOS7 Physics Engine

FlappyBird — Need anything else be said? The game is so simple, yet it mixes the right amount of frustration and entertainment that was in the early 90’s nintendo games like Double Dragon 3, and Teenage Mutant Ninja Turtles. With Dong Nguyen announcing that he was taking the game down, I wanted to figure out how hard it would be to replicate the game’s physics and interactions with the new iOS7 physics engine. I’m writing this because it’s apparent that a lot of developers don’t even know that iOS 7 has a built in physics engine – UIKit Dynamics.

Physical Interaction 1: Flap

Flapping requires three steps. The first step is to create a gesture which recognizes a tap.

UITapGestureRecognizer *singleTapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTapGesture:)];
[self.view
...

Continue reading →