Sunday, June 8, 2014

What new in iOS 8.0 - a high level look

iOS Extensions

in iOS 8.0 an app can supply an extension in specific functional areas. Extensions are code that enables custom functionality within the context of a user task. An example would be, if it is a album app, then we can use this extension to have the photo editing feature. User can install and enable the extension. The extension is almost similar to content handler in Java ME, Brew, Or Activity in case of Android. From user experience perspective, when user press on say edit button, the extensions that can do the desired  functionality gets shown in the list and user can choose the extension and do the desired functionality. 

in Xcode, it seems like we can create an app extension by adding a preconfigured app extension target to an app. After a user installs the app, the extension get listed in the settings app and user can enable it. When user is running other apps, the system makes the enabled extension available in the appropriate system UI such as the share menu. 

The common areas where the extension is enabled in the iOS app are below ones: 

Share: share content with Social website or other entities 
Action: perform a simple task with the selected content 
Today: Provide a quick update or a brief task in the Today view of the Notification centre 
Photo Editing: Perform edits to the photo or video within the photo app. 
Storage provider : Provide a document storage location that can be accessed by other apps. 
Custom Keyboard: Provide a Custom keyboard that the user can choose in place of the system keyboard for all apps on the device. 

For each app extension, there is a template which provides APIs for its purpose. With each of these templates, developer get target that contains methods stubs and property list settings defined by the extension point one choose. 

Touch ID authentication
Apps can now use the Touch ID based authentication to give users access to the protected data of the app. For this feature, Applications can make use of Local Authentication framework (LocalAuthentication.framework) to display an alert to the user with an application specific reason for why the user is authenticating. When app gets the reply it can react based on whether the user was able to successfully authenticate. 

Photos Framework:
The photos framework (Photos.framework) provides new APIs for working with photos and video assets including iCloud managed photos. The framework is more capable alternative to the Assets library framework. The main features include thread safe architecture for fetching and caching thumbnails and full sized assets, requesting changes to assets, observing changes made by other apps, and resumable editing of asset content. 

There is also an PhotosUI.framework which apps can use make extensions for editing image and video assets in the photo app.  

Manual Camera Controls
With the AVFoundation.framework, apps can take direct control of the camera control such as adjusting the zoom, white balance, exposure settings. 

Games:
iOS provides high level APIs to make the Game development easy and a the same time provides access to the low level enhancements to harness the power of GPU. overall, iOS 8.0 provides easy ways to implements Games audio and graphics features. 

Metal: 
Metal provides high performance for Graphics and computational tasks by providing extremely low overhead access to the A7 GPU. Metal avoids costly state validation that happens in most of the Graphics APIs. Metal moves all the critical state transition and compilation operations out of the critical path to provide the better performance. Metal provides precompiled shaders, state objects, and explicit command scheduling to ensure the application achieves highest possible performance. Meta is explicitly designed to take advantage of modern architecture considerations such as shared memory, multi processing etc. 

HealthKit framework: 
HealthKit framework allows apps to manage users health related information. This framework provided centralised secure storage for all users health related information. This location can be accessed by many apps and Health app can display this information to the user. 

With an implementing the healthKit framework, apps get access to all health - related information without needing to implement support for specific fitness-tracking devices. The user can ultimately decide which data app get access  to.Once the data is shared with the app, one app can also register for notifications when that data changes. The app can request specific information when it changes. For e.g. the app can decide to get the notification whenever the data changes  or say when the blood pressure is too high. 

HomeKit framework
HomeKit framework provides a standard way to communicate with the connected devices at home. Using this framework, users can discover devices in the home and configure them. User can create actions for these devices and can trigger these actions using Siri. There is a HomeKit accessory simulator that can be used to test the communication of the Homekit with the device. 




No comments:

Post a Comment