In efforts to become a well-informed and competent iOS developer, as a software engineer or someone who comes from a computer science background, sometimes you do not think about the user. For example, not a lot of web developers now how to design a webpage, which is understandable, but it is crucial at least to be empathetic and know that what you are creating is going to be used by a person. As an iOS developer, I want to make sure that the person using the apps I create has a good experience, and is wowed by the design of the app. With that being said, I went and did research on what are good user interface and user experience guidelines to follow. Below are some of the reoccurring guidelines I learned throughout my research.  

  • Design according to the platform
    • The simplest guidelines to follow are those dictated by the platform of choice. Whether that be iOS or android which are the most popular mobile development platforms today. An iOS user is already conditioned to operate iOS apps in a certain way and is used to the backbone layout found in most iOS apps; thus, you want an iPhone user to have an intuition as to how to maneuver through your app. Not adhering to the iOS guidelines will throw off an iPhone user and could cost you users, especially if your app requires your user to adapt to a new modality of usage. The same could be said about android development.
  • Maintain the design flow as per the theme
    • It is crucial that you maintain a constant theme throughout your app. These includes colors across all layouts, and the same is to be said about gestures and animations, and overall user interaction. This is also helpful for when you have to implement a new feature to your app in a time crunch, you don’t have to worry about the color themes, how to alert the user, or gestures needed.
    • Maintaining a theme is also crucial for scalability. If you want to offshoot into a web application, you already have a theme to display in that platform.

Forms:

  • Less typing using auto-complete data
    • When filling out forms, enhance the experience of the user by offering auto-complete data. These will remove the tedious work of having to type and dealing with the device misreading the pressed character in the keyboard. Additionally, store user information when possible to make accessing your app quicker and more fluidly.
    • Keep required information from you user at a minimum. If your app is an offshoot from a web application, have the user input the majority of the required information in the web application and minimize on the app.

Interface elements:

  • Make interface elements clearly visible
    • The interface elements of your app should not only follow the theme of your app, but also have proper contrasting between interface elements.
    • Try to keep the amount of action within one view to a minimum. Preferably one action per view.
    • Only show UI elements that are necessary for the current view. Otherwise, your view will appear as very cluttered and not appealing and possibly unwanted behavior by your app.

Content:

  • Content must be readable to user
    • This is a no brainer, but make sure that your app’s content (i.e text) is readable across all devices that your app supports. A cool feature for your app is to offer your user the option to be able to change the text-size within the app. For images, make sure that you provide high resolution images that would look good in bigger device and that would allow for image zoom
    • Make sure that you have adequate amount of content for your user. You don’t want to bore your users with information overload or not provide enough information for you user to utilize your app effectively.

Flow-Between your app:

  • Make sure that transitions between the various controllers in your app are optimized and flow well. You don’t want some controllers to navigate slower or faster than others.
  • Make sure it is apparent where in the app your user is currently located and make navigation within your app also apparent.
  • What helps with improving the flow of your app is to understand your users’ reason for using your app and recognize the solution. This in turn will give you an idea as to how to structure your app to help your user achieve the solution to their problems. After all, you user is most likely utilizing your app to solve a reoccurring problem in your user’s daily live.

To enhance user experience, if appropriate for your app, add feedback in terms of animation for give actions performed by your user. Take not of thumb coverage, and thus place most common actions to be performed by your user such as skipping a song close to the bottom of your device where it is easily accessible by your user. Conversely, place actionable items that your user is least likely to perform towards the top of the device where your user has less thumb coverage. This would be a good place for actionable items such as edit, delete, or logout, etc.

Hopefully you learned something from this blog post and made you a better iOS developer.

Resources:

UI Design Do’s and Don’ts

https://developer.apple.com/design/tips/

Top 10 Mobile App Design Guidelines That Sharp Designer’s Art

https://www.imobdevtech.com/Blog/top-10-mobile-app-design-guidelines/

Mobile app design in 2019

https://uxdesign.cc/ux-trends-2019-3ddadf853ca

The Guide to Mobile App Design: Best Practices for 2018 and Beyond