As a web dev newbie trying out Mobile Development for the first time, I'm learning over and over again the importance of developing with User Experience as a top priority. As Frank Chimero puts it, "People ignore design that ignores people."
For my very first mobile project, I decided to build a photo application in React Native that borrowed some of the interactivity of a Polaroid camera (like shaking your phone to develop your photo). In embarking on the project, I figured the most difficult challenge was going to be technical; learning the new tech. What I didn't realize was how much thought and preparation I'd be putting into developing an app with satisfactory user experience, let alone a good one.
As I've done many times already in my short time as a developer, I've stumbled upon a rabbit hole. This one in particular, even though I don't have the time to go down it now, I have every intention of coming back to later.
In web development, the browser handles a lot of the user's interaction with a site by default. Sites live in the browser and the browser has preset rules, which aren't broken often. (Think of the little jolt of surprise you get when you go to scroll down and a site's content starts moving to the right instead.)
In mobile, it's free for all. Users can click anywhere, swipe anywhere, tilt, shake, move locations, etc. The developers (along with designers of course) are in charge of setting the rules. This means that when I create a component in my React Native project, I'm not only thinking about its state, props, style, and functionality. In mobile development, I'm also asking questions about how the user interacts with that component and how the component changes in response.
Questions like, "If a user swipes in x direction in x part of the screen, for x many pixels change will my app render to the right thing?". "What kind of feedback should I give the user to let them know that they are physically interacting with the app correctly?". "What conventions exist in mobile development and how can I implement them in my app?".
In the browser, many conventional actions are default actions. In mobile development, at least at the moment, that doesn't seem to be the case. Like my earlier example, convention lets the user scroll down and expect the page to move down. The browser's default gives the developer this convention for free.
Whether I find myself working in web or mobile development, the experience of having developed in both has been eye-opening. Specifically, the unavoidable intentionality you need when developing a good user experience for mobile is a practiced skill of mobile developers and a translatable skill to Web.
Jumping headfirst into my first mobile project only two weeks ago, I know I have so much still to learn. Here are some of my takeaways so far:
1) Design beyond the default.
2) Consider convention.
3)Provide strong user feedback even on the web.
Top comments (0)