Archives for Category / Web

  • The State of Front-End Development in 2017 (…well, at least, my version of it…)

    A response I gave to Roger Johansson‏ (@rogerjohansson) on Twitter (please read through the whole thread):

  • A Brief Note on Responsive Design and Constraints

    (In response to Adam Silver’s Stop using device breakpoints)

    There are two points that I like to add –

    The relationship between Constraints, Content, and Context

    Content

    Content will always affect Constraints (i.e. breakpoints) and vice versa.

    What I do is a) use the familiar set of breakpoints as initial guesses and b) treat them as assumptions that need to be tested and verified.

    If you’re getting more breakpoints, maybe you need to reconsider your initial ones. Some may just need to be:

    1. Moved or
    2. Removed completely

    Experience

    This is probably more a developer than designer problem(?) but depends on your background. It comes down to hands-on knowledge of various devices.

    1. Don’t assume the device you have on hand is the one [definite] solutions. Just because you have an iPhone doesn’t mean everyone else does…sounds sensible but you’ll be surprised how many people don’t follow that advice. I have experience because most of my work involved non-American clients (more likely to see a Samsung than an iPhone).
    2. Comes back to testing on multiple devices – using BrowserStack (or other simulators) helps testing for both iOS/Android devices or just get a few old/borrowed devices on hand.

    The idea here is to get use to the idea of breakpoints as initial guides, not fixed points.

  • Future Imperfect

    As I’m writing this, it’s a rainy morning in Vancouver, Canada. Nothing new. Spending time with friends that I don’t see but once a year near my birthday. In this case, I’m here to attend the IA Summit conference this week. This is my first non-US conference since IxDA Interaction 13 in Toronto.

    Looking back at that conference there were a number of things that stood out. A number of them became influential years later. One of them was a short lecture by a designer named Nate Archer called “Beyond Responsive”.

    Nate Archer: Beyond Responsive from Interaction Design Association on Vimeo.

    Well, four years later, those words seem prescient right now. The world has been filled with all sorts of devices that we access the web. More than just the trio of phone/tablet/desktop. Basically, any device that has access to the web is an access point – from watches to 4000K TVs. But there is another way of looking at this. Instead of “devices”, let us consider going in the direction of “inputs”. Responsive design appeared not just with mobile devices but devices which are also touch-enabled. Now, mobile devices are as ubiquitous as any household device, front-end developers like myself have to deal with coding for interactions that take place on touchpad as much (or even more) than mouse/keyboard. (Though we could be doing a better job at the keyboard then we are currently doing.)

    [Note: touch-enabled devices are not necessary phones/tables and doing feature support for touch is still a bit tricky]

    In some respects, the beautiful lie of responsive design is that the constraints are visual, via breakpoints and media queries? But what if those constraints aren’t visual. CSS has hidden artifacts describing inputs – media types. If one would look at the specs (https://www.w3.org/TR/CSS21/media.html#media-types), the following types are supported:

    screen, print, speech/aural, handheld, tty, etc.

    Screen is the most familiar with print/speech following. But there’s tty? From the spec, tty refers to devices like terminals and teletypes. The later was a telecommunication device that has long since disappeared with the advent of email. But back in the day, it was considered important enough to be considered in the W3C CSS spec. Now think about the future. Someday, will we may consider mouse/keyboard interactions as obsolete as teletype?

    Now, we are seeing the advent of AI interfaces – sophisticated interfaces that allow access to the same information like we do with mouse/keyboard and touch.

    Which comes back to the conference I’m attending, IA Summit. This year’s topic is artificial intelligence and information architecture. The main job of a front-end developer is building interfaces for acquiring information. Obviously, things will change in the next couple of years. But change into what?

  • A Brief Note on Container Queries and RWD

    Well, while making the first steps in writing my next lecture about responsive design, I came upon a Tweeter discussion last week. Ethan Marcotte, author/mastermind behind RWD, talked about container queries and his support for them. Very interesting read.

    Ethan Marcotte “On container queries.”

    I’ve heard about container queries before during the last year or two. But I decided to read this article with much more intent because of topic relevance.

    To describe container queries, you need to think about web apps/sites as a system. Changes via media queries are macro, that is, applied to the whole system. It’s what we been doing for years. We build the base (preferable mobile first but any sort of initial state we want) and apply changes at certain breakpoints. So when we write the following media queries:

    @media (global conditions/breakpoints #1) {

    … some changes here...

    }

    @media (global conditions/breakpoints #2) {

    … some changes here...

    }

    etc..

    what we are doing is

    Global Media Queries (Ottawa Model)

    Even though these changes are to certain areas such as footer/header/etc.., these are applied as if the whole app is one big container.

    But with container queries, we are applying changes at the micro level. Instead of the previous example, we are applying changes to local containers. The queries will be influenced by the container conditions, not by the overall viewport. So now instead of the previous model, we have the following:

    Container Media Queries (Ottawa Model)

    and with each part

    Container Media Queries - Expanded (Ottawa Model)

    we are applying changes on the local level/containers. These media queries are not global and [could] be different from other containers. You could have a combination of global and local conditions in this system as well (don’t know if this would happen but you never know):

    Container/Global Media Queries (Ottawa Model)

    As for the talk/lecture, nothing had really changed. The main focus of the talk is the “why’s” of what we do in terms of RWD. However, it is obviously something to think about further.

  • The Secret Life of Forms

    CSS Dev Conference 2016 - San Antonio, Texas

    Slides – http://www.slideshare.net/IvanWilson3/the-secret-life-of-form-67435952
    Lecture – https://cssdevconf2016.sched.com/event/7Q0d/the-secret-life-of-forms-secretforms

    One of the highlights of the year was lecturing for the first time at a conference. In this case, CSS Dev Conference at San Antonio, TX. Basically, I decided to take some advice and take a chance. After sending my proposal, I was shocked and thrilled to be selected via anonymous vote in July.

    Of course, getting the talk ready was even harder than the waiting. It took months of writing and editing and practice. But I was able to get it together and delivered it a small audience at the conference on October 17, 2016. This talk was about UX, coding, and forms. However, it was peppered with things that I’ve done during the last ten years. That said, I want to thank Brian Schlansky for his time and his ear while prepping the talk.

    I also want to thank the other speakers at the conference in helping me not only relax but also giving me advice for speaking not just for the first time but also their experiences in giving lectures as well.

    And finally, I want to thank Christopher Schmitt, Ari Stiles, and Elizabeth Moore in helping me make my first-time experience as a lecturer a wonderful and memorable one. It means so much when for years I was attendee, to be not only speaking but giving back to the community that I respect.

    Thank you all 🙂

    Lecture - The Secret Life of Forms, left - notebook, right - presenter pass

  • Revisiting The Art of Responsive Design

    The Art of Responsive Design (Innate Blog)

    About a year ago, I wrote a blog post about responsive design. But instead of the usual techniques, I decided to describe it with three terms – Constraints, Content, and Context.

    A year later, these three terms are more relevant than ever, especially Context. I am thinking about re-editing the post for brevity but the main points will remain.

    Update (12/9/2016): Innate republished the blog post today (thanks!) and it will be the source of a new lecture sometime in mid/late 2017. *fingers crossed*

    The Art of Responsive Design (2017) - Notebook