Wednesday, November 4, 2015

Hacking Your UX Research

User experience is typically thought of as being an emotional and visual field, yet traditional UX principles don't provide designers with the agility that developers have with rapid development methods.

Unfortunately, these methods often put design on the backburner because believe that "an imperfect something is better than a perfect nothing." When it comes to prototyping, there needs to be some focus on design. Fortunately, you can improve your efficiency by using data to hack your UX research.

At a recent Stanford Igniters meetup Laura Klien, author of UX for Lean Startups, discussed how better data equals better products when applied to user experience research.

Although there are plenty of experiments you can use to leverage this information, you don't need to be a hardcore statistician to understand the basics. You don't even need to create special scenarios specifically for testing. There're plenty of insights you can gather just from your existing prototypes or finished products.

The customer funnel

Whether you're trying to have users sign up for a newsletter, purchase a product, or browse certain sections of your site, the journey from beginning to your user objective is like a funnel. You'll start with a large base, but only a fraction of the base will actually go through to the end. If you're offering SaaS products for example, your checkout funnel would consist of:

  1. Create an account
  2. Select a plan
  3. Enter payment information
  4. Enter billing information
  5. Confirm the information
  6. Show a thank you message and offer an upsell

Reducing lost conversions

The funnel concept is simple, yet just like a sieve, users are going to leave at each level. To reduce the drop-off, you'll need to find the friction points and come up with the solutions by using your data.

Sure, it's a bit dry at times, but analyzing the qualitative (what causes the action) and quantitative data (why the action occurs) is how you'll stand out from the competition. It's simply a matter of creating a guess of what you think would happen if you tried fixing a problem a certain way.

[author_more]

[/author_more]

When you're figuring out how to begin troubleshooting, you need to speak with your users to pinpoint their frustrations. From there you'll have immediate direction on improving your offering.

Of course user interviews only work in small batches. If you're rapidly building the solution, you'll have to iterate, measure, analyze, and repeat the process for an accurate overview of what's going on.

Continue reading %Hacking Your UX Research%


by Charles Costa via SitePoint

Google Play Services for Location and Activity Recognition

People like to take their mobile devices everywhere and use them constantly. Some apps take advantage of this and change their behaviour according to the users location and/or current activity to provide a better individualized service.

To get the user’s current location on Android, you can use the Location API that has been part of the Android framework since API level 1, or you can use the Google Location Services API, which is part of Google Play Services. The latter is the recommended method for accessing Android location.

The Google Location Services API, part of Google Play Services, provides a more powerful, high-level framework that automates tasks such as location provider choice and power management. Location Services provides new features such as activity detection that aren’t available in the framework API.

Continue reading %Google Play Services for Location and Activity Recognition%


by Joyce Echessa via SitePoint

Holy Hacking, Batman! Create Alfred Workflows in Ruby

alfred

The past several years have seen a sea of keyboard productivity tools introduced:

  • Gnome Do
  • Launchy
  • Quicksilver
  • Synapse
  • LaunchBar

These tools enable users to associate complex actions with keywords or shortcuts. Alfred is similar to these solutions but has grown very popular thanks to its emphasis on user friendliness and flexibility.

Note: Alfred is OSX-exclusive.

One of the great things about Alfred is the ability to compose your own workflows. These can be constructed using the built-in editor, optionally including your own scripts written in PHP, Shell, Python...

...and Ruby.

In this tutorial, we will create a simple random number generator workflow using a Ruby script.

Continue reading %Holy Hacking, Batman! Create Alfred Workflows in Ruby%


by Robert Qualls via SitePoint

PostCSS Deep Dive: Miscellaneous Goodies

A Primer on Using Flexbox with Compass

There is no doubt that flexbox is an effective solution for laying out web pages. However, past struggles with browser support have resulted in many developers having little knowledge of the flex layout and the sheer power that it holds. By referencing caniuse.com however, you can see that flexbox is now supported by pretty much all major browsers, thus making knowledge of the layout imperative to those who wish to stay current in web development.

Therefore, I have created this guide to help you become more familiar with flexbox by integrating the Compass CSS framework. I'll use Compass to guide you through different flex-containers to show you how flexbox lays out child items, or flex-items, across different axes. Additionally, I will be to show you how easy it makes this process as it eliminates the need to include those pesky vendor prefixes that are still required for the deepest possible browser support.

Before we begin however, I’ll provide a brief overview of flexbox, so we fully understand the different mixins we will be using, and the effect they are having on our code.

[caption id="attachment_118385" align="aligncenter" width="659"]Flexbox diagram Flexbox explained via CSS-Tricks.[/caption]

As you can see, flexbox consists of 2 axes — a main axis, and a cross axis. By default, flexbox will display items in rows that run from left to right along the main axis. On the other hand, the flex layout can display items in columns that stack on top of one another. For the sake of this article, I will only be dealing with the flex-containers, and how they can be manipulated. Throughout the tutorial, feel free to reference Compass’ documentation on flexbox, which provides information on the mixins I’ll be covering.

[author_more]

The display-flex() Mixin

First, let’s take a look at my initial example, which shows a basic flex-container with four flex-items. Flexbox is a new feature in CSS, so we need to import the compass/css3 library in order to utilize Compass’s flexbox mixins. Once I’ve imported the library, all I have to do is include the display-flex() mixin to define a flex container. As a result, I’ll now have a flex-container with items that run from left to right, and shrink as the viewport decreases.

See the Pen Flexbox with Compass: display-flex() by SitePoint (@SitePoint) on CodePen.

[code language="sass"]
.flex-container {
@include display-flex();
// flex is the default value
}
[/code]

The flex-wrap() Mixin

If you narrow the viewport in the demo above, the flex-container will run out of space and a scrollbar will appear at the bottom. I can use a number of techniques in order to combat this. In the next example, I’m going to use the flex-wrap mixin to make the items in this flex-container wrap (i.e. drop to the next line) when the size of the viewport decreases.

See the Pen Flexbox with Compass: flex-wrap() by SitePoint (@SitePoint) on CodePen.

[code language="sass"]
.flex-container {
@include display-flex();
@include flex-wrap(wrap);
}
[/code]

As you can see, the .flex-container rule set now includes Compass’s flex-wrap() mixin, which causes flex-items to stack on top of one another as they run out of space inside the viewport. Additionally, this mixin can take the values of nowrap and wrap-reverse. nowrap is the default value for flex-containers, and wrap-reverse will reverse the order in which the items are stacked.

By checking out the example below, you can see wrap-reverse in use:

See the Pen Flexbox with Compass: wrap-reverse by SitePoint (@SitePoint) on CodePen.

[code language="sass"]
.flex-container {
@include display-flex();
@include flex-wrap(wrap-reverse);
}
[/code]

The flex-direction() Mixin

By default, flexbox will automatically render flex-containers as rows. Therefore, I did not have to define the flex-direction property in the first two. If instead we wanted to display flex-items stacked on top of one another, I simply need to pass in a value of column into Compass’s flex-direction() mixin.

See the Pen Flexbox with Compass: flex-direction() by SitePoint (@SitePoint) on CodePen.

[code language="sass"]
.flex-container {
@include display-flex();
}

.flex-container:nth-of-type(2n) {
@include display-flex();
@include flex-direction(column);
}
[/code]

The flex-flow() Mixin

The next example I’m going to discuss will demonstrate how to create flex-containers using the shorthand method. Moreover, I can combine the flex-direction and flex-wrap properties, and pass these values into the flex-flow mixin. Below, you can see this mixin being used to create a flexible row, which will run from right to left. As a result, the items will stack from the top down because a value of wrap-reverse is passed into the mixin.

Continue reading %A Primer on Using Flexbox with Compass%


by Thomas Greco via SitePoint

Rain & Water Effect Experiments

Some experimental rain and water drop effects made with WebGL and shown in different demo scenarios.


by via jQuery-Plugins.net RSS Feed

Mastering WP_Query: Series Finale