• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

Dion Almaer

Software, Development, Products

  • @dalmaer
  • LinkedIn
  • Medium
  • RSS
  • Show Search
Hide Search

Archives for March 2014

If the user shakes the phone when your app is running what should it do?

March 25, 2014 Leave a Comment

Will users get platform control of their gestures?

I have overheard a few conversations in the last week where folks were talking about the “shake” gesture on mobile. It has been interesting to see more and more apps respond to that gesture.

On the one hand it is so alluring in that it universal, global and can be made at any point in the experience, but on the other hand its effects are not discoverable, can be hard to trigger, and can lead to false positives.

Sometimes a source of joy, and at others very frustrating.

Over time we have seen a series of themes for the shake gesture:

Shake to undo

The first time I saw the gesture used in a mainstream way was in iOS itself where you could shake to undo what you had typed. To be honest, most of the times I saw this were in error (shaking in my pants).

But the notion of undo-ing an action, and having a stack that has undo/redo built in is powerful. It is always frustrating to use an experience that uses a warning “Are you sure you want to do that?” vs. giving the ability to undo the action. In applications such as Mailbox I find myself using this a lot.

Oops, I didn’t mean to delete that email => SHAKE

When a user builds trust in your app they explore more, knowing they can go back in time if they made a wrong turn.

Shake to initiate core action

Do you have the context to know that there is a primary action that the user probably wants to quickly get to right now?

In Asana I wish I could shake to add a task. Starbucks lets me shake to pay. In this way we can bring the other context into the picture, for example “I know that you are in the store, so let me get some store features ready for you!” (we do this in our apps).

You can imagine adding a gesture like this to some context elsewhere (shake to pay at a vending machine). In a world of beacons, you don’t always want them pinging you all the time, but it could be nice to activate an action.

Shake to shuffle

Other forms of navigation are a mix of undo and “go somewhere else”. For example, many apps let you shake to go to the next random song, or start a new game

Global actions and taking control

The shake gesture is one of very few global gestures that you, the user, can perform. On my desktop I can go into settings and configure the control of a gesture (e.g. Cmd-Shift-T == create a new tweet) and set the scope of said gesture. What about mobile?

I would love to be able to force an action on shake (e.g. really, let me shake to create a new task Asana!) and to do that you could go past the world of manual setup per app, and let the system detect injection points (deep links).

On some platforms, such as Android, you see applications such as an app launcher to quickly get you where you want to go.

I may want to shake to get to an app, but this is where the context could come in again. If I shake the phone the system can show me different thoughts based on if I am near a beacon or in a geo fence. If I get to Starbucks let me shake to get my Starbucks Card from passbook (vs. launch the app etc). If a notification just disappeared let me see it again.

I really hope that the platforms end up giving us users control again, and I am curious to see what other gestures and sensors will come in to being. Leap motion here we come….

In the meantime, if the user shakes the phone when your app is running what should it do?


Yesterday, Ben posted his thoughts on Pursuing Memory. I have enjoyed spending time discussing this topic with him in the past as we are both working on improving our working set.

I have been trying systems such as:

  • N-Back brain games: pushing me to build up my ability to hold more working memory at a time
  • Lumosity: some of the games are memory based
  • DuoLingo (and Cat Spanish with my son!): I have gotten back to learning Spanish again
  • I continue to iterate on a system that I use to organize my world in Asana. I store my ‘Raw Thoughts’ as they happen, and I process info on people, places, processes, information, and more. It has been a huge boon for me to date, but I want much more automation.

It feels like we are so primitive at times. When you think about the monks who could memorize huge swathes of information. We have to be able to learn faster (I am curious about ideas such as SuperMemo) although I know that with technology of today we don’t have to learn things in the same way.

“Native app platforms screw Google!” is the wrong discussion

March 17, 2014 Leave a Comment

URLs and the loose coupling of the Web is amazing and we need to learn from them in the app world

I am often reading about how Google is screwed because all of the
worlds content will be locked away in proprietary apps. Far from the prying eye of Sa^H^HGoogle:

“Google can’t crawl apps AND mobile app usage keeps rising like crazy.”

What I don’t hear as much of is the analysis of the various use cases and what the various parties want and need from the system.

For example, many companies want Google and others to index their content, and SEO/SEM is a huge traffic driver. If I am an online magazine, why wouldn’t I want Google to index me?

One of the technical challenges has been having platforms that were introduced without the powerful loose coupling that the Web has via hyperlinks. We are seeing the introduction of solutions to this such as deep links which is fantastic because It is often the case that I would like to say this:

“If Google results link a customer to a deep link AND they have the
app installed AND it can deal with that URL then use the app, else send to the website.”

To do this we have a bunch of hacky solutions. When the customer hits the web server we send back a redirect to a URL scheme that the app has registered for instance. The end result if that the user is bouncing around between applications and the browser. It feels disorientating. It also means that every company needs to invest in building up the mechanism, and even then you can only deal with a subset of the use cases (e.g. logged in and tracked ones).

Have you ever accessed an experience via a WebView (e.g. embedded in a Tweet or Facebook) and it doesn’t work as you aren’t logged in there?

What about cross app communication? More hacks, and each app needs to know about others on some platforms (vs intents).


Why can’t I easily build this app?

The Randomiser

I have a series of micro tasks:

  • DuoLingo lesson
  • Lumosity game
  • Quiz Up challenge for “General Knowledge”
  • Show me a random quick work out exercise “20 push-ups!”

The app tracks these and gives me random items to check off these
habits during the day. To do this though I need to know a URL scheme that works, and ideally some of the apps would have a “show a random X” and “show the next X” callback for their world.


Cloaks and Daggers

A constant battle has been the war of what people want to send Google, and what they want customers to see. There is cloaking and Bad Things, but there are also times where the companies genuinely want to do the right thing.

With the rise of native apps companies work on what they need to have indexed and they can offer up different content and experiences. E.g. A summary, and in the app you get the full content. But they could do some of that by hiding behind logged in accounts. The balance has just changed a bit.

Web + App not Web || App

The Web and app context can often be different. In my world of
eCommerce I have seen different strategies based on the nuance of the business.

For example, many users end up on general merchandise product pages based on searches [cheap samsung tvs]. The name of the game here is simple:

  • have good SEO to be as high on the results as possible
  • if a customer comes to you, display compelling reasons to move
    through the checkout funnel and transact (compelling includes “fast”)
  • depending in your business model: . Upsell (including recommendations) . Get the customer to signup

However, with apps it may be quite different. Customers who have taken the premeditated time to install your app are self selecting as more loyal customers. They have associated with your brand in some way.

What can you do to serve them beyond “buy X”?

Within the umbrella of eCommerce there are a vast array of niches. Our team builds experiences across very different business models. The primary services are:

  • Walmart: general merchandizing lead (incoming search heavy)
  • ASDA: home delivery of grocery in the UK (you have a weekly grocery fill up)
  • Sam’s Club: a paid member (different level of loyalty).

Context matters. Our experiences are different because our customers and context is so different.

So, when I hear one sided talk of “Google isn’t able to index your
secret app content!” I wonder. Maybe in the future the balance of
power will shift and people won’t go to search engines for many use
cases, but for now we have work to do to get more content into the
indexes.

Primary Sidebar

Twitter

My Tweets

Recent Posts

  • I have scissors all over my house
  • GenAI: Lessons working with LLMs
  • Generative AI: It’s Time to Get Into First Gear
  • Developer Docs + GenAI = ❤️
  • We keep confusing efficacy for effectiveness

Follow

  • LinkedIn
  • Medium
  • RSS
  • Twitter

Tags

3d Touch 2016 Active Recall Adaptive Design Agile Amazon Echo Android Android Development Apple Application Apps Artificial Intelligence Autocorrect blog Bots Brain Calendar Career Advice Cloud Computing Coding Cognitive Bias Commerce Communication Companies Conference Consciousness Cooking Cricket Cross Platform Deadline Delivery Design Desktop Developer Advocacy Developer Experience Developer Platform Developer Productivity Developer Relations Developers Developer Tools Development Distributed Teams Documentation DX Ecosystem Education Energy Engineering Engineering Mangement Entrepreneurship Exercise Family Fitness Founders Future GenAI Gender Equality Google Google Developer Google IO Habits Health HR Integrations JavaScript Jobs Jquery Kids Stories Kotlin Language Leadership Learning Lottery Machine Learning Management Messaging Metrics Micro Learning Microservices Microsoft Mobile Mobile App Development Mobile Apps Mobile Web Moving On NPM Open Source Organization Organization Design Pair Programming Paren Parenting Path Performance Platform Platform Thinking Politics Product Design Product Development Productivity Product Management Product Metrics Programming Progress Progressive Enhancement Progressive Web App Project Management Psychology Push Notifications pwa QA Rails React Reactive Remix Remote Working Resilience Ruby on Rails Screentime Self Improvement Service Worker Sharing Economy Shipping Shopify Short Story Silicon Valley Slack Software Software Development Spaced Repetition Speaking Startup Steve Jobs Study Teaching Team Building Tech Tech Ecosystems Technical Writing Technology Tools Transportation TV Series Twitter Typescript Uber UI Unknown User Experience User Testing UX vitals Voice Walmart Web Web Components Web Development Web Extensions Web Frameworks Web Performance Web Platform WWDC Yarn

Subscribe via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Archives

  • February 2023
  • January 2023
  • September 2022
  • June 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • November 2021
  • August 2021
  • July 2021
  • February 2021
  • January 2021
  • May 2020
  • April 2020
  • October 2019
  • August 2019
  • July 2019
  • June 2019
  • April 2019
  • March 2019
  • January 2019
  • October 2018
  • August 2018
  • July 2018
  • May 2018
  • February 2018
  • December 2017
  • November 2017
  • September 2017
  • August 2017
  • July 2017
  • May 2017
  • April 2017
  • March 2017
  • February 2017
  • January 2017
  • December 2016
  • November 2016
  • October 2016
  • September 2016
  • August 2016
  • July 2016
  • June 2016
  • May 2016
  • April 2016
  • March 2016
  • February 2016
  • January 2016
  • December 2015
  • November 2015
  • October 2015
  • September 2015
  • August 2015
  • July 2015
  • June 2015
  • May 2015
  • April 2015
  • March 2015
  • February 2015
  • January 2015
  • December 2014
  • November 2014
  • October 2014
  • September 2014
  • August 2014
  • July 2014
  • June 2014
  • May 2014
  • April 2014
  • March 2014
  • February 2014
  • December 2013
  • November 2013
  • October 2013
  • September 2013
  • August 2013
  • July 2013
  • June 2013
  • May 2013
  • April 2013
  • March 2013
  • February 2013
  • December 2012
  • November 2012
  • October 2012
  • September 2012
  • August 2012

Search

Subscribe

RSS feed RSS - Posts

The right thing to do, is the right thing to do.

The right thing to do, is the right thing to do.

Dion Almaer

Copyright © 2023 · Log in

 

Loading Comments...