{"id":6054,"date":"2017-05-11T10:51:04","date_gmt":"2017-05-11T10:51:04","guid":{"rendered":"https:\/\/9series-blog.staging9.com\/?p=6054"},"modified":"2026-03-03T10:44:57","modified_gmt":"2026-03-03T10:44:57","slug":"amazing-9-app-extensions-for-ios-app-development","status":"publish","type":"post","link":"https:\/\/www.9series.com\/blog\/amazing-9-app-extensions-for-ios-app-development\/","title":{"rendered":"Amazing 9 App Extensions for iOS App Development"},"content":{"rendered":"<p>As we have already referred <a href=\"https:\/\/9series.com\/blog\/techguide-on-the-top-8-ios-app-extensions-to-boost-up-your-apps\/\" target=\"_blank\">iOS App Extensions<\/a> in the previous article, let\u2019s check out the rest of the App Extensions below.<\/p>\n<p><a href=\"https:\/\/9series-blog.staging9.com\/wp-content\/uploads\/2017\/05\/Amazing-9-App-Extensions-for-iOS-App-development.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2461\" src=\"https:\/\/9series-blog.staging9.com\/wp-content\/uploads\/2017\/05\/Amazing-9-App-Extensions-for-iOS-App-development.jpg\" alt=\"Amazing 9 App Extensions for iOS App development\" width=\"800\" height=\"500\" \/><\/a><\/p>\n<p style=\"margin-bottom: 0px\"><span style=\"font-weight: bold\">1. Intents Extension<\/span><\/p>\n<p>Cooperation with Sirikit occurs through your Intents extension, which is an app extension that you convey inside your iOS app bundle. You should already have an iOS app before you build an Intents extension. The Intents extension handles most communications with Sirikit, yet your iOS app needs to know about those communications and in some cases may have an active role in making them happen.<\/p>\n<p>When adding an Intents extension to your iOS app, you must do the following:<\/p>\n<ul>\n<li>Enable the Siri capability in your iOS app; check Configuration of Your Xcode Project.<\/li>\n<li>Add an Intents extension target to your Xcode project and configure its Info.plist file; see Configuration of Your Xcode Project.<\/li>\n<li>Request authorization to use Siri at runtime; see Requesting Siri Authorization in Your iOS App.<\/li>\n<li>Define the objects needed to manage intents; see Resolving and Handling Intents.<\/li>\n<li>Define any custom vocabulary that your app utilizes; see Specifying Custom Vocabulary.<\/li>\n<\/ul>\n<p style=\"margin-top: 20px;margin-bottom: 0px\"><span style=\"font-weight: bold\">2. Intents UI Extension<\/span><\/p>\n<p>When you handle an intent, Siri and Maps often show the details from the response object your Intents extension produced in a standard interface. If you need to add your own custom content to the standard interface, you should give an Intents UI extension.<\/p>\n<p>An Intents UI extension does not supplant the Intents extension that you use to manage intents. It is a different app extension that lets you personalize how your response to an intent is presented to the user. You can utilize a custom interface to demonstrate additional details or to consolidate your app\u2019s branding which can provide a more regular experience for the user.<\/p>\n<p>You can provide an Intents UI extension if you are holding intents in the following domains:<\/p>\n<ul>\n<li>Messaging<\/li>\n<li>Payments<\/li>\n<li>Ride booking<\/li>\n<li>Workouts<\/li>\n<\/ul>\n<p style=\"margin-top: 20px\"><span style=\"font-weight: bold\">3. Notification Content &amp; Notification Service Extension<\/span><\/p>\n<p style=\"margin-bottom: 0px\"><span style=\"font-weight: bold\">i. Notification Service Extension<\/span><\/p>\n<p>A Notification Service Extension basically captures definite remote notifications and enables you to deal with the contents of the payload, including downloading and representing remote media attachments, before displaying the notification to the user.<\/p>\n<p>Please note that the <span style=\"font-weight: bold\">URLSession<\/span> downloads the media to short storage and affixes a .tmp file extension, which we need to eliminate so that the application can interpret the file type and represent it.<\/p>\n<p style=\"margin-bottom: 0px\"><span style=\"font-weight: bold\">ii. Notification Content Extension<\/span><\/p>\n<p>The <span style=\"font-weight: bold\">UNNotificationContentExtension<\/span> decorum gives the entry point for a Notification Content app extension, which illustrates a custom interface for your app\u2019s notifications. You affirm this protocol in the custom UIViewController subclass that you use to present your interface. You create this sort of extension to enhance the way your notifications are presented, possibly by combining custom colors and branding or by incorporating media and other dynamic content into your notification interface. These are basically used to draw your own UI to display when your application receives certain push notifications.<\/p>\n<p style=\"margin-bottom: 0px\"><span style=\"font-weight: bold\">4. Photo Editing Extension<\/span><\/p>\n<p>A Photo Editing extension gives users a chance to edit a photo or video within the Photos app. After users verify the changes they make in a Photo Editing extension, the adapted content is accessible in Photos. Photos constantly keep the actual version of the content, too, so that users can revert the changes they make in an extension.<\/p>\n<p>When a user picks a Photo Editing extension, Photos asks the extension if it can read the adapted data. If the app extension supports the adapted data, Photos provides the actual version of the asset as input to the editing session. After the extension reads the adapted data and reiterates the past edits, it can enable users to change or revert past edits or add new edits.<br \/>\nFor example, if the adapted data implies filters that are applied to a photo, the extension applies filters to the actual asset and can let users change filter parameters, add new filters, or remove filters.<\/p>\n<p style=\"margin-bottom: 0px\"><span style=\"font-weight: bold\">5. Share Extension<\/span><\/p>\n<p>Share extensions that are introduced in iOS 8, give users an simple and convenient way to yield content with other entities, such as social sharing websites or upload services. With share extensions, users will now be able to bestow content to your service direct from within the app they are managing, be it Safari, Photos or other apps. This isn\u2019t restricted to system applications. Any custom application that presents an instance of the UIActivityViewController class will have the capacity to see your sharing extension if you assembled your extension so that it can handle the file type provided by that application.<\/p>\n<p style=\"margin-bottom: 0px\"><span style=\"font-weight: bold\">6. Shared Links Extension<\/span><\/p>\n<p>Shared Links Extensions appeared with iOS 9 permits our app to embed content into the users&#8217; Shared Links section of Safari on iOS or OS X.<\/p>\n<p>iOS will call <span style=\"font-weight: bold\">beginRequestWithExtensionContext(context:)<\/span> on our extension and that will be our signal to run whatever code we need to load in the content we&#8217;d like to show in Shared Links, then pay it in the form of an array of <span style=\"font-weight: bold\">NSExtensionItems.<\/span><\/p>\n<p style=\"margin-bottom: 0px\"><span style=\"font-weight: bold\">7. Spotlight Index Extension<\/span><\/p>\n<p>The <span style=\"font-weight: bold\">Core Spotlight framework<\/span> makes the data of an app accessible on the Spotlight, and consequently, bring some good results regarding an app along with any other results that the system returns. That\u2019s quite impressive and innovative, as for the first time users can spot data for custom apps, not simply Apple\u2019s, and interact with them. By saying that users can interact with the results associated with a custom app, it implies that not only the app gets automatically propelled when such a result record gets tapped, but developers are also given the power to manage users to particular view controllers that are most relevant and suitable for the data that were chosen on Spotlight.<\/p>\n<p>From the developer\u2019s point of view, coordinating the Core Spotlight framework and using the provided APIs doesn\u2019t comprise of a difficult process. The \u201cheart\u201d of that process lies to the fact that developers have to \u201cask\u201d iOS to index their app\u2019s data, which must be described in a particular way prior to that.<\/p>\n<p>By using the Core Spotlight framework it\u2019s possible to make the data of any application searchable through the Spotlight. The key to doing that is to ask precisely from the Core Spotlight API to list our data so it can be found on searches executed by the user. But neither our app nor the CS API chooses what kind of data this is going to be. It\u2019s our duty to prepare that data and provide it to the API in a particular form.<\/p>\n<p style=\"margin-bottom: 0px\"><span style=\"font-weight: bold\">8. Sticker Pack Extension<\/span><\/p>\n<p>Apple gives an approach to representing people in generous ways by providing stickers that can be used within their conversations on iMessage. Users can adapt sticker sizes, touch to send stickers in a thread, or peel and place them on top of bubbles, other stickers, and photos. Stickers require no coding to build. With just couple of steps in Xcode, you can transform your images into a sticker pack that\u2019s ready to submit to the new App Store for iMessage.<\/p>\n<p>It\u2019s very simple to make sticker packs for the Messages app on iOS 10 using just a Mac, Apple ID, sticker images. All images are displayed to the end-user in a grid-based system on the device, with Apple also taking the opportunity in the iOS Guidelines to make some suggestions on how to best appeal device owners, including each image under 500KB in size.<\/p>\n<p style=\"margin-bottom: 0px\"><span style=\"font-weight: bold\">9. Today Extension<\/span><\/p>\n<p>Today Extensions is also known as Widgets. This enables you to manifest information in the Notification Center, which can be an awesome approach to give immediate and up-to-date information that the user is interested in.<\/p>\n<p>Extensions created for the today\u2019s extension point, the so-called widgets, are meant to provide simple and quick access to information. Widgets link to the <span style=\"font-weight: bold\">Notification Center framework.<\/span> It&#8217;s essential that you design your widget with an easy and focused user interface, because too much interaction can be a problem. Also, note that you don&#8217;t have access to a keyboard.<\/p>\n<p>Widgets are expected to perform well and keep their content updated. Performance is a big point to consider. Your widget needs to be set rapidly and utilize resources wisely. Here, take a note that the system terminates widgets that use too much memory.<\/p>\n<p style=\"margin-bottom: 0px\"><span style=\"font-weight: bold\">Conclusion<\/span><\/p>\n<p>These app extensions are incredible features in <a href=\"https:\/\/www.9series.com\/services\/ios-application-development.html\" target=\"_blank\">top iOS app development<\/a> that apps should take advantage of. In this article we, as a mobile app developers, have looked at each Extension in app. In the coming articles we will look at the development of extensions available for iOS, so stay tuned.<\/p>\n<p>If you have any comments or questions, feel free to contact us on \u201c<a href=\"http:\/\/info@9series.com\" target=\"_blank\">info@9series.com<\/a>\u201d.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As we have already referred iOS App Extensions in the previous article, let\u2019s check out the rest of the App Extensions below. 1. Intents Extension Cooperation with Sirikit occurs through&#8230;<\/p>\n","protected":false},"author":1,"featured_media":6055,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"dsgo_overlay_header":false,"dsgo_overlay_header_text_color":"","dsgo_overlay_skip_top_bar":false,"_designsetgo_exclude_llms":false,"footnotes":""},"categories":[1439],"tags":[1833,2048,2022,1713,2049],"class_list":["post-6054","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ios","tag-ios-app-development","tag-ios-app-extensions","tag-mobile-app-developers","tag-mobile-app-development","tag-top-ios-developer"],"_links":{"self":[{"href":"https:\/\/www.9series.com\/blog\/wp-json\/wp\/v2\/posts\/6054","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.9series.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.9series.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.9series.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.9series.com\/blog\/wp-json\/wp\/v2\/comments?post=6054"}],"version-history":[{"count":1,"href":"https:\/\/www.9series.com\/blog\/wp-json\/wp\/v2\/posts\/6054\/revisions"}],"predecessor-version":[{"id":6056,"href":"https:\/\/www.9series.com\/blog\/wp-json\/wp\/v2\/posts\/6054\/revisions\/6056"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.9series.com\/blog\/wp-json\/wp\/v2\/media\/6055"}],"wp:attachment":[{"href":"https:\/\/www.9series.com\/blog\/wp-json\/wp\/v2\/media?parent=6054"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.9series.com\/blog\/wp-json\/wp\/v2\/categories?post=6054"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.9series.com\/blog\/wp-json\/wp\/v2\/tags?post=6054"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}