Motion Design: Roger Dubuis x Lamborghini

Original Source: http://feedproxy.google.com/~r/abduzeedo/~3/cCF-4mU44fE/motion-design-roger-dubuis-x-lamborghini

Motion Design: Roger Dubuis x Lamborghini
Motion Design: Roger Dubuis x Lamborghini

AoiroStudioFeb 06, 2019

The kind of THRIVE that we enjoy sharing here on ABDZ, this is direction and motion design work by Unit Motion Design, a creative motion studio based in Paris, France. This project is the clash between two brands, Roger Dubuis and of course Lamborghini. A few seconds to create an immersion in these two worlds through a fascinating sequence filled with projections of images and blasting light reflections all over the place. It’s a beauty, check out the video.

Links
Studio Site
Behance

Motion Design
Motion Design: Roger Dubuis x LamborghiniMotion Design: Roger Dubuis x LamborghiniMotion Design: Roger Dubuis x LamborghiniMotion Design: Roger Dubuis x LamborghiniMotion Design: Roger Dubuis x LamborghiniMotion Design: Roger Dubuis x LamborghiniMotion Design: Roger Dubuis x LamborghiniMotion Design: Roger Dubuis x Lamborghini

Credits
Direction: Unit Motion Design
Client: Roger Dubuis
Production: Wizz design
Audio: Echoic Audio
Direction & Creative Direction: François-Côme du Boistesselin
Concept/Art director/Motion Designer: Johnathan Plessel, Thibault Zeller


15 Great Album Cover Ideas To Inspire Your Next Project

Original Source: http://feedproxy.google.com/~r/Designrfix/~3/CFsF8cYYypk/album-cover-ideas

Album covers can be so much more than just a picture of the artist on a background. The best covers are artistic with illustrations or other types of models.Comparison TableAlbum Cover IdeasDetailsAll About The FaceIncludes the musician’s face and it will need an added element of flairIt’s About The BandSimilar to the face cover, but […]

The post 15 Great Album Cover Ideas To Inspire Your Next Project appeared first on designrfix.com.

iOS Performance Tricks To Make Your App Feel More Performant

Original Source: https://www.smashingmagazine.com/2019/02/ios-performance-tricks-apps/

iOS Performance Tricks To Make Your App Feel More Performant

iOS Performance Tricks To Make Your App Feel More Performant

Axel Kee

2019-02-05T13:00:00+01:00
2019-02-05T17:04:51+00:00

Although modern iOS hardware is powerful enough to handle many intensive and complex tasks, the device could still feel unresponsive if you are not careful about how your app performs. In this article, we will look into five optimization tricks that will make your app feel more responsive.

1. Dequeue Reusable Cell

You’ve probably used tableView.dequeueReusableCell(withIdentifier:for:) inside tableView(_:cellForRowAt:) before. Ever wondered why you have to follow this awkward API, instead of just passing an array of cell in? Let’s go through the reasoning of this.

Say you have a table view with a thousand rows. Without using reusable cells, we would have to create a new cell for each row, like this:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
// Create a new cell whenever cellForRowAt is called.
let cell = UITableViewCell()
cell.textLabel?.text = “Cell (indexPath.row)”
return cell
}

As you might have thought, this will add a thousand cells to the device’s memory as you scroll to the bottom. Imagine what would happen if each cell contained a UIImageView and a lot of text: Loading them all at once could cause the app to run out of memory! Apart from that, every single cell would require new memory to be allocated during scrolling. If you scroll a table view quickly, a lot of small chunks of memory will be allocated on the fly, and this process will make the UI janky!

To resolve this, Apple has provided us with the dequeueReusableCell(withIdentifier:for:) method. Cell reuse works by placing the cell that is no longer visible on the screen into a queue, and when a new cell is about to be visible on the screen (say, the subsequent cell below as the user scrolls down), the table view will retrieve a cell from this queue and modify it in the cellForRowAt indexPath: method.

Cell reuse queue mechanism

How cell reuse queues work in iOS (Large preview)

By using a queue to store cells, the table view doesn’t need to create a thousand cells. Instead, it needs just enough cells to cover the area of the table view.

By using dequeueReusableCell, we can reduce the memory used by the app and make it less prone to running out of memory!

Getting workflow just right ain’t an easy task. So are proper estimates. Or alignment among different departments. That’s why we’ve set up “this-is-how-I-work”-sessions — with smart cookies sharing what works well for them. A part of the Smashing Membership, of course.

Explore Smashing Membership ↬

Smashing TV, with live sessions for professional designers and developers.

2. Using A Launch Screen That Looks Like The Initial Screen

As mentioned in Apple’s Human Interface Guidelines (HIG), launch screens can be used to enhance the perception of an app’s responsiveness:

“It’s solely intended to enhance the perception of your app as quick to launch and immediately ready for use. Every app must supply a launch screen.”

It’s a common mistake to use a launch screen as a splash screen to show branding or to add a loading animation. Design the launch screen to be identical to the first screen of your app, as mentioned by Apple:

“Design a launch screen that’s nearly identical to the first screen of your app. If you include elements that look different when the app finishes launching, people can experience an unpleasant flash between the launch screen and the first screen of the app.

“The launch screen isn’t a branding opportunity. Don’t design an entry experience that looks like a splash screen or an “About” window. Don’t include logos or other branding elements unless they’re a static part of your app’s first screen.”

Using a launch screen for loading or branding purposes could slow down the time of first use and make the user feel that the app is sluggish.

When you start a new iOS project, a blank LaunchScreen.storyboard will be created. This screen will be shown to the user while the app loads the view controllers and layout.

To make your app feel faster, you can design the launch screen to be similar to the first screen (view controller) that will be shown to the user.

For example, the Safari app’s launch screen is similar to its first view :

Launch screen and first view look similar

A comparison of launch screen and first view of Safari app (Large preview)

The launch screen storyboard is like any other storyboard file, except that you can only use the standard UIKit classes, like UIViewController, UITabBarController, and UINavigationController. If you attempt to use any other custom subclasses (such as UserViewController), Xcode will notify you that using custom class names is prohibited.

Xcode shows error when a custom class is used

Launch screen storyboard cannot contain non-UIKit standard class. (Large preview)

Another thing to note is that UIActivityIndicatorView doesn’t animate when placed on the launch screen, because iOS will generate a static image from the launch screen storyboard and displays it to the user. (This is mentioned briefly in the WWDC 2014 presentation “Platforms State of the Union”, around 01:21:56.)

Apple’s HIG also advises us not to include text on our launch screen, because the launch screen is static, and you can’t localize text to cater to different languages.

Recommended reading: Mobile App With Facial Recognition Feature: How To Make It Real

3. State Restoration For View Controllers

State preservation and restoration allow the user to return to the exact same UI state from just before they left the app. Sometimes, due to insufficient memory, the operating system might need to remove your app from memory while the app is in the background, and the app might lose track of its last UI state if it is not preserved, possibly causing users to lose their work in progress!

In the multitasking screen, we can see a list of apps that have been put in the background. We might assume that these apps are still running in the background; in reality, some of these apps might get killed and restarted by the system due to the demands of memory. The app snapshots we see in the multitasking view are actually screenshots taken by the system from right when we exited the app (i.e. to go to the home or multitasking screen).

iOS fabricates the illusion of apps running in the background by taking a screenshot of the most recent view

Screenshots of apps taken by iOS when user exits the app (Large preview)

iOS uses these screenshots to give the illusion that the app is still running or is still displaying this particular view, whereas the app might have been already terminated or restarted in the background while still displaying the same screenshot.

Have you ever experienced, upon resuming an app from the multitasking screen, that the app shows a user interface different from the snapshot shown in the multitasking view? This is because the app hasn’t implemented the state-restoration mechanism, and the displayed data was lost when the app was killed in the background. This can lead to a bad experience because the user expects your app to be in the same state as when they left it.

From Apple’s article:

“They expect your app to be in the same state as when they left it. State preservation and restoration ensures that your app returns to its previous state when it launches again.”

UIKit does a lot of work to simplify state preservation and restoration for us: It handles the saving and loading of an app’s state automatically at appropriate times. All we need to do is add some configuration to tell the app to support state preservation and restoration and to tell the app what data needs to be preserved.

To enable state saving and restoring, we can implement these two methods in AppDelegate.swift:

func application(_ application: UIApplication, shouldSaveApplicationState coder: NSCoder) -> Bool {
return true
}

func application(_ application: UIApplication, shouldRestoreApplicationState coder: NSCoder) -> Bool {
return true
}

This will tell the app to save and restore the application’s state automatically.

Next, we’ll tell the app which view controllers need to be preserved. We do this by specifying the “Restoration ID” in the storyboard :

Setting restoration ID in storyboard

Setting restoration ID in storyboard (Large preview)

You can also check “Use Storyboard ID” to use the storyboard ID as the restoration ID.

To set the restoration ID in the code, we can use the restorationIdentifier property of the view controller.

// ViewController.swift
self.restorationIdentifier = “MainVC”

During state preservation, any view controller or view that has been assigned a restoration identifier will have its state saved to disk.

Restoration identifiers can be grouped together to form a restoration path. The identifiers are grouped using the view hierarchy, from the root view controller to the current active view controller. Suppose a MyViewController is embedded in a navigation controller, which is embedded in another tab bar controller. Assuming they are using their own class names as restoration identifiers, the restoration path will look like this:

TabBarController/NavigationController/MyViewController

When the user leaves the app with the MyViewController being the active view controller, this path will be saved by the app; then the app will remember the previous view hierarchy shown (Tab Bar Controller → Navigation Controller → My View Controller).

After assigning the restoration identifier, we will need to implement the encodeRestorableState(with coder:) and decodeRestorableState(with coder:) methods for each of the preserved view controllers. These two methods let us specify what data need to be saved or loaded and how to encode or decode them.

Let’s see the view controller:

// MyViewController.swift

// MARK: State restoration
// UIViewController already conforms to UIStateRestoring protocol by default
extension MyViewController {

// will be called during state preservation
override func encodeRestorableState(with coder: NSCoder) {
// encode the data you want to save during state preservation
coder.encode(self.username, forKey: “username”)
super.encodeRestorableState(with: coder)
}

// will be called during state restoration
override func decodeRestorableState(with coder: NSCoder) {
// decode the data saved and load it during state restoration
if let restoredUsername = coder.decodeObject(forKey: “username”) as? String {
self.username = restoredUsername
}
super.decodeRestorableState(with: coder)
}
}

Remember to call the superclass implementation at the bottom of your own method. This ensures that the parent class has a chance to save and restore state.

Once the objects have finished decoding, applicationFinishedRestoringState() will be called to tell the view controller that the state has been restored. We can update the UI for the view controller in this method.

// MyViewController.swift

// MARK: State restoration
// UIViewController already conforms to UIStateRestoring protocol by default
extension MyViewController {

override func applicationFinishedRestoringState() {
// update the UI here
self.usernameLabel.text = self.username
}
}

There you have it! These are the essential methods to implement state preservation and restoration for your app. Keep in mind that the operating system will remove the saved state when the app is being force-closed by the user, in order to avoid getting stuck in a broken state in case something goes wrong in the state preservation and restoration.

Also, don’t store any model data (i.e. data that should have been saved to UserDefaults or Core Data) to the state, even though it might seem convenient to do so. State data will be removed when the user force quits your app, and you certainly don’t want to lose model data this way.

To test whether state preservation and restoration are working well, follow the steps below:

Build and launch an app using Xcode.
Navigate to the screen with state preservation and restoration that you want to test.
Return to the home screen (by swiping up or double-clicking home button, or pressing Shift ⇧ + Cmd ⌘ + H in the simulator) to send the app to the background.
Stop the app in Xcode by pressing the ⏹ button.
Launch the app again and check whether the state has been restored successfully.

Because this section only covers the basics of state preservation and restoration, I recommend the following articles by Apple Inc. for more in-depth knowledge of state restoration:

Preserving And Restoring State
UI Preservation Process
UI Restoration Process

4. Reduce Usage Of Non-Opaque Views As Much As Possible

An opaque view is a view that has no transparency, meaning that any UI element placed behind it is not visible at all. We can set a view to be opaque in the Interface Builder:

This will inform the drawing system to skip drawing whatever is behind this view

Set UIView to opaque in storyboard (Large preview)

Or we can do it programmatically with the isOpaque property of UIView:

view.isOpaque = true

Setting a view to opaque will make the drawing system optimize some drawing performance while rendering the screen.

If a view has transparency (i.e. alpha is below 1.0), then iOS will have to do extra work to calculate what should be displayed by blending different layers of views in the view hierarchy. On the other hand, if a view is set to opaque, then the drawing system will just put this view in front and avoid the extra work of blending the multiple view layers behind it.

You can check which layers are being blended (non-opaque) in the iOS Simulator by checking Debug → Color Blended Layers.

Green is non-color blended, red is blended layer

Show color blended layers in Simulator

After checking the Color Blended Layers option, you can see that some views are red and some are green. Red indicates that the view is not opaque and that its output display is a result of layers blended behind it. Green indicates that the view is opaque and no blending has been done.

With an opaque color background, the layer doesn’t need to blend with another layer

Assign non-transparent background color to UILabel whenever possible to reduce color blended layers. (Large preview)

The labels shown above (“View Friends”, etc.) are highlighted in red because when a label is dragged to the storyboard, its background color is set to transparent by default. When the drawing system is compositing the display near the label area, it will ask for the layer behind the label and do some calculation.

One way you can optimize app performance is to reduce how many views are highlighted with red as much as possible.

By changing label.backgroundColor = UIColor.clear to label.backgroundColor = UIColor.white, we can reduce layer blending between the label and the view layer behind it.

Using a transparent background color will cause layer blending

Many labels are highlighted in red because their background color is transparent, causing iOS to calculate the background color by blending the view behind it. (Large preview)

You might have noticed that, even if you have set a UIImageView to opaque and assigned a background color to it, the simulator will still show red in the image view. This is probably because the image you used for the image view has an alpha channel.

To remove the alpha channel for an image, you can use the Preview app to make a duplicate of the image (Shift ⇧ + Cmd ⌘ + S), and uncheck the “Alpha” checkbox when saving.

Uncheck the ‘Alpha’ checkbox when saving an image to discard the alpha channel.

Uncheck the ‘Alpha’ checkbox when saving an image to discard the alpha channel. (Large preview)

5. Pass Heavy Processing Functions To Background Threads (GCD)

Because UIKit only works on the main thread, performing heavy processing on the main thread will slow down the UI. The main thread is used by UIKit not only to handle and respond to user input, and also to draw the screen.

The key to making an app responsive is to move as many heavy processing tasks to background threads as possible. Avoid doing complex calculation, networking, and heavy IO operation (e.g. reading and writing to disk) on the main thread.

You might have once used an app that suddenly became unresponsive to your touch input, and it feels like the app has hung. This is most probably caused by the app running heavy computation tasks on the main thread.

The main thread usually alternates between UIKit tasks (such as handling user input) and some light tasks in small intervals. If a heavy task is running on main thread, then UIKit will need to wait until the heavy task has finished before being able to handle touch input.

Avoid running performance-intensive or time-consuming task on the main thread

Here is how the main thread handles UI tasks and why it causes the UI to hang when heavy tasks are performed. (Large preview)

By default, the code inside view controller lifecycle methods (such as viewDidLoad) and IBOutlet functions are executed on the main thread. To move heavy processing tasks to a background thread, we can use the Grand Central Dispatch queues provided by Apple.

Here’s the template for switching queues :

// Switch to background thread to perform heavy task.
DispatchQueue.global(qos: .default).async {
// Perform heavy task here.

// Switch back to main thread to perform UI-related task.
DispatchQueue.main.async {
// Update UI.
}
}

The qos stands for “quality of service”. Different quality-of-service values indicate different priorities for the specified tasks. The operating system will allocate more CPU time and CPU power I/O throughput for tasks allocated in queues with higher QoS values, meaning that a task will finish faster in a queue with higher QoS values. A higher QoS value will also consume more energy due to it using more resources.

Here is the list of QoS values from highest to lowest priority:

Quality-of-service values of queue sorted by performance and energy efficiency

Quality-of-service values of queue sorted by performance and energy efficiency (Large preview)

Apple has provided a handy table with examples of which QoS values to use for different tasks.

One thing to keep in mind is that all UIKit code should always be executed on the main thread. Modifying UIKit objects (such as UILabel and UIImageView) on the background thread could have an unintended consequence, like the UI not actually updating, a crash occurring, and so on.

From Apple’s article:

“Updating UI on a thread other than the main thread is a common mistake that can result in missed UI updates, visual defects, data corruptions, and crashes.”

I recommend watching Apple’s WWDC 2012 video on UI concurrency to better understand how to build a responsive app.

Notes

The trade-off of performance optimization is that you have to write more code or configure additional settings on top of the app’s functionality. This might make your app delivered later than expected, and you will have more code to maintain in the future, and more code means potentially more bugs.

Before spending time on optimizing your app, ask yourself whether the app is already smooth or whether it has some unresponsive part that really needs to be optimized. Spending a lot of time optimizing an already smooth app to shave off 0.01 seconds might not be worth it, as the time could be better spent developing better features or other priorities.

Further Resources

“A Suite of Delicious iOS Eye Candy,” Tim Oliver, Tokyo iOS Meetup 2018 (Video)
“Building Concurrent User Interfaces on iOS,” Andy Matuschak, WWDC 2012 (Video)
“Preserving Your App’s UI Across Launches,” Apple
“Concurrency Programming Guide: Dispatch Queues,” Documentation Archive, Apple
“Main Thread Checker,” Apple

Smashing Editorial
(jd, ra, il)

Collective #489

Original Source: http://feedproxy.google.com/~r/tympanus/~3/ZAarP0W2IpU/

C489_dan

React as a UI Runtime

An in-depth article by Dan Abramov that will help you understand the React programming model and runtime environment.

Read it

C489_NW

This content is sponsored via Syndicate Ads
Northwestern’s Online MS in Information Design and Strategy

Build the in-demand skills, such as UX, UI, and HCI, needed to drive user interactions. Choose a specialization in content strategy, analytics, or learning design.

Apply now

C489_bus

The curious case of disappearing buses

Yui-Wah (Clement) Lee analyzes the mysterious case of disappearing buses in the real-time traffic information shown on Bristol’s bus display boards.

Read it

C489_wizard

Bandwidth or Latency: When to Optimise for Which

Harry Roberts shares a DevTools tip to determine whether your assets would benefit most from an increase in bandwidth or a reduction in latency.

Read it

C489_react

Learn React App

A tutorial with hands-on exercises to get you started with React.

Check it out

C489_music

WOWA

The Unplash for audio: free (do whatever you want) music that you can use in your projects.

Check it out

C489_animejs

Animated Boxes

A demo showing how the stagger feature in anime.js works. By the folks of Staak.

Check it out

C489_fill

The Many Ways to Change an SVG Fill on Hover (and When to Use Them)

Cassie Evans shows the different ways of changing the color of SVGs.

Read it

C489_3d

Lemon-JS

An accessible 3D rendering engine in JavaScript.

Check it out

C489_useHooks

useHooks

Easy to understand React Hook recipes by Gabe Ragland.

Check it out

C489_limitJS

Limiting JavaScript?

An article by Tim Kadlec where he discusses the controversial idea of limiting the amount of JavaScript a website can load.

Read it

C489_webdev

dailydevlinks

A new site for a daily dose of web dev related articles.

Check it out

C489_avatar

Avatars

A pixel-art avatar generator in JavaScript for browsers and NodeJS.

Check it out

C489_search

MiniSearch

A tiny but powerful in-memory fulltext search engine for JavaScript. Read more about it in this article.

Check it out

C489_audiodemo

Playing with sound and three.js

A three.js sound visualizer made by Sarah Drasner.

Check it out

C489_10

Let’s talk JS ?: unit testing

A useful collection of tools for doing unit tests by areknawo.

Read it

C489_font2

Free Font: US Blaak Bold

A sharp serif font with a glamorous look made by Unidaas. The bold style is for free.

Check it out

C489_Ascii

ASCII renderer

An interactive 3D world rendered in ASCII.

Check it out

C489_tubes

Tubes

An interesting tubes animation made by soju22.

Check it out

C489_font

Free Font: Gorod

A wide uppercase serif typeface by Ilya Zakharov.

Get it

C489_cursors

From Our Blog
Custom Cursor Effects

A collection of five demos and a tutorial on how to create animated custom cursor effects for interactive elements like navigations, galleries and carousels.

Check it out

Collective #489 was written by Pedro Botelho and published on Codrops.

Freebie: Fashion Influencer UI Kit for Adobe XD

Original Source: http://feedproxy.google.com/~r/abduzeedo/~3/rt3z4wgYHME/freebie-fashion-influencer-ui-kit-adobe-xd

Freebie: Fashion Influencer UI Kit for Adobe XD
Freebie: Fashion Influencer UI Kit for Adobe XD

AoiroStudioFeb 04, 2019

I have been playing more and more with Adobe XD, especially with their latest auto-animate feature. We will definitely release new tutorials about their killer new feature on ABDZ. By the meantime, we are sharing this free UI Kit by Zhenya Rynzhuk called: Fashion Influencer UI Kit for Adobe XD. More than 10 page and 50+ components to get you started on XD, I have personally downloaded the kit and it’s a beautiful effort. Leaving to the discovery of the style guide is quite helpful, I would have loved seeing its mobile treatment but this could happen within their next update. Enjoy!

Links

See the full project
Download the kit
Free UI Kit

Freebie: Fashion Influencer UI Kit for Adobe XDFreebie: Fashion Influencer UI Kit for Adobe XDFreebie: Fashion Influencer UI Kit for Adobe XDFreebie: Fashion Influencer UI Kit for Adobe XDFreebie: Fashion Influencer UI Kit for Adobe XDFreebie: Fashion Influencer UI Kit for Adobe XD

Credits

Zhenya Rynzhuk
Lindsay Munro


6 UI mistakes that are killing your conversion rates

Original Source: http://feedproxy.google.com/~r/CreativeBloq/~3/udcQc7p8dak/6-ui-mistakes-that-are-killing-your-conversion-rates

Effective UI design can, without a doubt, improve your conversion rate. However, there are at least three criteria that your user interface needs to satisfy in order to attract, convert, and retain visitors to your site or app: it has to be engaging, captivating, and it needs to trigger an emotional response.

Read on for six of the most most commonly made app and website layout mistakes that are sure to turn your customers off and kill your conversion rates.

01. Unresponsive design

It's no secret that people now regularly use a range of different devices to complete a task. That means your website needs to be responsive in order to engage the audience no matter how they access your site. A poor user experience caused by a site that hasn't been optimised for mobile or tablet users is sure to dissuade potential customers. 

If that doesn't convince you, complying with Google’s ranking requirements is another major reason to consider placing a lot of emphasis on responsive web design principles. Back in 2015, the search giant released an algorithm that prioritises mobile-friendly pages.

02. Uninviting CTAs

Koto airbnb mobile screens

Koto created an inviting look for Airbnb Plus

It’s impossible to over-stress the importance of calls to action. Not giving your CTAs the love they deserve is one of the most commonly made UI mistakes. To help up your clicks, these are the things you should be considering:

Shape: Clickable buttons are usually rectangular and surrounded by white space, to help define them and make them stand outLocation: Position CTAs right next to the main proposal – this is the most logical next step in your customer’s journeyColour: There isn’t a universal 'best' colour for CTAs – aim to fit with your site's colour scheme, but ensure these elements stand out the mostSize: Make your CTAs large enough to stand out, yet not overwhelming
03. Lack of social proof

Customers trust other customers. A recent survey showed that 60 per cent of consumers look for Google reviews before putting their trust in a business. Not only should you definitely consider displaying positive reviews of your product or service, but you also need to make sure they're positioned properly. Customer reviews can help reassure potential customers of your brand's credibility, if you display them somewhere towards the beginning of your sales pitch.

04. Too much of everything

A cluttered layout is one of the most off-putting things a user can come across. While it’s understandable that you want to display as much information as you can, this approach won’t get you far in terms of conversions.

Robot Food

Robot Food created a simple but appealing UI for this cereal 

Here are some good rules of thumb to get you started.  First, the design scheme that you choose shouldn’t contain more than three main colours and more than two font types. For more advice, take a look at this article on how to choose the perfect colour palette. 

Second, you need to guarantee that the imagery you do use is of top quality. Avoid using low-resolution videos, photos and illustrations. If you can't afford to shell out for a pro, don't worry – there are plenty of places you can find good quality free vector art online. 

UI animations have been a growing trend for some time time. They can help guide your users and create interest, while also ensuring your interface stands out (want to get started? Here are some CSS animation examples you can recreate yourself).

05. Slow loading pages

Did you know that one of the most common reasons for abandoned ecommerce shopping carts is slow page load time? Data shows that 40 per cent of people abandon a website that takes more than three seconds to load. 

But loading speed isn’t just important for conversions  –  it’s important for your overall site discovery, especially in 2019. In the video above, marketing expert Neil Patel revealed that page loading speed is going to be an increasingly important factor for SEO in 2019 (jump to just after the 3 minute mark for Patel's advice on this).

06. Little to no video content

Our brains process videos about 60,000 times faster than they process text. Videos can entertain and explain in a visual way. And they're  incredibly underused. Take a look at the explainer video for Young Alfred by Fireart Studio below as an example.

Here are a couple of quick tips you might want to consider if you’re using video content already. 

First, it’s a good idea to insert some sort of the lead capture elements in the video. For example, remind people to subscribe at the beginning of the video or thank them for watching and liking at the end of the video. Second, it’s also very important to make use of customised thumbnails – you need to encourage people to watch your video in the first place.

Read more:

20 best UI design tools8 imaginative ways to use animation in mobile appsTop UI trends for 2019

How to Access Windows 10 Boot Options Menu (6 Ways)

Original Source: https://www.hongkiat.com/blog/best-ways-access-windows-10-boot/

Windows 10 offers a lot of interesting features, and the advanced boot options to troubleshoot many of the Windows 10 problems, is one of them. You can reset your PC, restore it to a previous state,…

Visit hongkiat.com for full content.

How to Speed Up Your UX with Skeleton Screens

Original Source: https://www.sitepoint.com/how-to-speed-up-your-ux-with-skeleton-screens/

Waiting

However well-designed your user interface may be, at some point or other, the people using it are going to have to wait for something to load.

Waiting

Photo: Marco Giumelli, “Waiting”

A 2014 MIT study showed that humans can perceive discrete images in as little as 13 milliseconds however deciding where to focus takes between 100 and 140 milliseconds. In practical terms, this gives us around 200 milliseconds to present a user interface state change in order to appear instant.

Between 200 milliseconds and 1 second, people feel they are within the flow of their actions. After 1 second without any other feedback, focus starts to shift. Beyond 10 seconds, user focus is likely to be lost entirely.

To make people happy, we need to give an indication that something is happening. This leaves us with three basic options:

progress bar if we can measure the duration;
spinner if we can’t; and
nothing at all.

Psychological studies into progress indicators show that our interpretation of them is anything but linear. Our method of processing a delay doesn’t match up with reality.

Understanding this concept leads us into the realm of manipulating interfaces in order to improve perception.

In software design, skeleton screens provide an alternative to the traditional methods. Rather than show an abstract widget, skeleton screens create anticipation of what is to come and reduce cognitive load.

Skeleton Screens in the Wild

Apple have incorporated skeleton screens into their iOS Human Interface Guidelines under the name “launch images”. Apple’s guidelines recommend showing an outline of the initial application screen excluding text and any elements that may change.

Apple’s Clock

Apple’s Clock is a classic example of a skeleton screen. The launch screen sets the expectation of what the app will look like and creates an impression of the app loading faster than it actually does.

iOS Apple Clock 1

This launch screen shows the basic outline of the app and the four icons at the base of the screen.

Once launched, all the text and variable UI elements are filled in.

iOS Apple Clock text and UI elements filled in

Nintendo

Nintendo has recently launched their first mobile application, which pays absolutely no attention to UI guidelines or common decency.

The initial launch screen shows the title of the app and a background image none of which reflect the application’s use.

The iOS Miitomo initial launch screen

After launch, a load screen first has a “Loading” text indicator as a minimalist spinner.

The first text-based loading indicator

Then you get a numeric progress indicator.

A numeric progress indicator appears

And that’s followed by another spinner.

Another loading indicator

Finally, the application itself appears.

iOS Miitomo 5

Over an incredible 14 second load time, Nintendo use two spinners and one progress bar, none of which do much to ease the load time. The dynamic “tips” during the load screen also act as a spinner by changing the UI state and creating a sense of progress.

Each discrete screen requires a new visual scan and makes the launch process seem even slower than it actually is.

The post How to Speed Up Your UX with Skeleton Screens appeared first on SitePoint.

7 Traits That Make Clients Love You

Original Source: https://www.hongkiat.com/blog/traits-making-clients-love-you/

So you have jumped into the world of freelancing, learned about the common problems freelancers face and how to fix them. You’ve learned what to put in your contract, that criticism can help…

Visit hongkiat.com for full content.

7 Fantastic Landing Page Designs

Original Source: http://feedproxy.google.com/~r/1stwebdesigner/~3/epPUen7TDQk/

What is a landing page? Knowing this can help you generate leads and retain more customers when you design a website. Simply put, a landing page is where someone “lands” after clicking on a search result, call to action, or advertisement. These pages have one core focus: converting people into customers. Any page on your site can be a landing page for certain search terms.

These awesome landing pages are a great source of inspiration when you’re trying to improve your own. Take a look and see why they work so well!

Spotify

Spotify

If you’re going to make your homepage your landing page, take a tip from Spotify. While navigational elements exist, they’re overshadowed by the huge background banner and noticeable button asking you to register. The pitch may be only three sentences long, but it says all it needs to.

Netflix

Netflix

Netflix opens with an absolutely huge call to action button that’s just begging to be clicked on. When you do, you’re taken to a clean page, free of distractions but for a simple footer. Walking through the sign-up process doesn’t take long, and it even saves your progress if you leave the page.

Mango Languages

Mango Languages

Mango Languages does a great job on its landing pages. The sign-up link is very prominent and posted multiple times on the homepage. Clicking it leads you to a page free of distracting navigation. Just choose your language and sign up!

Web Profits

Web Profits

Sometimes it’s impossible to condense your landing page down to a single action for users to take. The best thing you can do is make the distinction clear, and that’s what Web Profits does. The homepage is very simple with just three distinct links. Click one, and you’ll be directed to a landing page more suited to what you’re looking for. The page may be long, but the inclusion of at least four identical CTAs makes sure there’s always a button in sight when you’re ready to get started.

Google Store

Google Store

Google’s full-screen, animated page already does a great job putting the focus on the products. Click one of the calls to action and you’ll be presented with a page that gets right to the point. Pricing and order buttons are always visible in the header as you scroll through videos and feature lists. And, advertisements for other products are kept at the bottom of the page.

Upwork

Upwork

When you’re creating a landing page, it’s extremely important that you waste no time. Upwork’s sign-up dialogue exemplifies this quality. An eye-grabbing header and title draw your eye towards the Get Started button, which immediately begins walking you through creating a job post and the sign-up process. You may only have a few seconds to grab a visitor’s attention, so make sure you waste no time. This is also a fantastic example of above-the-fold content, with the site features all being below it and the important CTA above.

Facebook

Facebook

If you visit Facebook without an account, they keep their pitch simple. With three concise bullet points explaining what the site is and an obvious sign-up form right on the page, it’s easy for anyone to get started. They also keep the form short and leave the in-depth questions for later, which is a good practice.

Design Great Landing Pages

The best landing pages are concise, have few distractions, and get the visitor to take the action you want them to take. Remember that when you’re designing your next landing page for your email campaign or advertising banner! Make your argument short, compelling and tailored to the audience likely to click on the landing page. Accomplish that and you’ll be converting in no time.