WKWebView is an essential part of rendering web pages in mobile apps, but what is WKWebView? WKWebView is an API that helps render web pages in iOS and macOS apps. Before we really dive into this API and its power in iOS app development, let’s look back to the beginning of the mobile Internet.
Mobile smartphone technology has become so ubiquitous over the last ten years that we take it for granted. It is hard to remember a time before the rise of the mobile Internet. However, back when the very first iPhone was being designed and developed, the mobile Internet was in its infancy. There were a few devices available to consumers that allowed them to surf the web, download ringtones, apps, etc., but the mobile Internet did not really take off until the introduction and widespread adoption of the iPhone.
When the iPhone was being developed, Apple engineers were faced with a choice. Does the iPhone run software using apps like macOS, or does it run software as web pages utilizing Safari? Ultimately, Apple decided to build iOS and run software like apps. How do you render web content within an iOS app? Is it time to introduce WKWebView? Not quite yet.
UIWebView Vs. WKWebView
It wasn’t until 2014 and iOS 8.0 that WebKit was released. The crowning achievement of WebKit was WKWebView. WKWebView not only replaced UIWebView in UIKit but also WebView in AppKit. Now developers have access to a consistent API across the two platforms. WKWebView is also superior to UIWebView in many performance aspects as well. WKWebView has key performance features, including:
- Responsive 60 fps scrolling
- Built-in gestures
- Streamlined communication between app and web page
In 2020, Apple announced that no new apps using the UIWebView framework would be accepted on the App Store. In addition, they also told app developers that currently use UIWebView on the App Store that they need to update to WKWebView. The initial deadline that apps had to be updated by was the end of 2020. However, Apple pushed this deadline back, and as of now, there is no new deadline for updating from UIWebView to WKWebView. If your app is still using UIWebView, now is the time to update your app to WKWebView.
How Does WKWebView Work?
Web views created using WKWebView provide users with a complete browsing experience. This includes the ability to navigate between web pages using links, features like the forward and back button, and more of the traditional browser features that users are accustomed to. When users click a web link in your app content, the web view acts as a browser when it displays the content at the link.
In the simplest terms, WKWebView allows mobile app developers to integrate mobile web content into their User Interface through the use of web views. The WKWebView API renders a complete mobile browser experience within the app itself allowing users to interact with web content while remaining in the app. One of the best, most common examples of this concept at work is the Gmail app for iOS. If you click on a link within an email, you can access the link’s target content and navigate around it using the traditional browser features. When you’re done viewing the web content, you can close the web view and return to your previous place in the app. Users can accomplish all of this without ever leaving the Gmail app, thanks to WKWebView.
Customizing Web Views with WKWebView
There are a number of different web view aspects that developers may want to consider customizing, and WKWebView gives them the power to do so. Developers can use a WKWebViewConfiguration object to specify parameters for custom URL schemes, media playback, interaction behaviors, customize preferences for web content, and manage cookies.
Additionally, developers can also control the navigation and User Experience of a web view through the use of delegate objects. For example, you might want to prohibit users from navigating to new content until certain conditions are met. Developers can use a navigation delegate to accomplish this. A navigation delegate reacts when users click links in your web content or interact with your web content in any way that affects the navigation. A UI delegate allows developers to present users with native User Interface elements while they are interacting with web content in a web view. Examples of UI elements could include notifications, menus, and more.
Migrating from UIWebView to WKWebView
UIWebView has been deprecated by Apple. We touched on this earlier in the piece. App updates containing UIWebView will no longer be allowed on the App Store. Although the date this policy goes into effect is still up in the air after being pushed back in late 2020. Still, if you’re launching iOS apps, you will need to migrate from UIWebView to WKWebView now because UIWebView is no longer accepted on the App Store as of April 2020.
In order to migrate from UIWebView to WKWebView, you will need to update your app’s code. This will require going through your code to find all instances of UIWebView and replacing them with WKWebView. While UIWebView has fewer customization and delegation features than WKWebView, you also need to make sure that all of your customized features are included in the migration of your code. This will ensure that your app continues to function in the same way post-migration. Once your code is updated to include WKWebView, you can take advantage of the additional features offered to enhance the web views of your app.
Final Thoughts on WKWebView
The integration of web pages and content in modern app development projects is essential to creating a great User Experience. WKWebView is the highest performing, most secure web view option available for iOS apps. It is better than UIWebView, and soon it will be the only web view framework allowed on the App Store. If you’re trying to update your app’s code to include WKWebView, you might want to reach out to an app development partner to help you parse through the code and accurately update your app from UIWebView.
Apple has not released a definitive date on the discontinuation of UIWebView for all app updates, but it will be coming soon, so now is the time to ensure your app is up to date. Apple has already stopped accepting new apps that include the UIWebView framework. Create more immersive User Interfaces with web view capabilities by using WKWebView on your next iOS development project