The first step in the process of developing an app is to understand the major business requirements upfront, some of which overlap with the technical requirements you’ll need to consider in the building of your app.
The first and possibly most crucial business consideration is certification. Having your app certified by the platform vendor means that it will appear in their app store, and is compatible with their supported devices.
Each platform vendor approaches certification in their own way. Many platforms will post their general certification requirements online, but there may be other requirements or steps you will need to become familiar with to get your app approved by the vendor of that platform.
Typically, platform vendors will have a list of features that are required for your app to be certified and appear in their app store. Additionally, there may be opportunities for you to use specific platform features (often on a time-sensitive basis) that the vendor wants to promote. Using these features in your app has several potential benefits including:
Examples of such features include universal search for Apple iOS, and tvOS; and beta features for Amazon Fire TV.
There are a few platforms that have more stringent required features, and we recommend consulting their sites:
There are significant differences in the app certification process for mobile versus 10-foot (TV) apps. Most of the time, app certification for mobile is straightforward: once an app is submitted to the vendor’s app store, it will be certified automatically without the need for any interaction with the vendor.
When working with a 10-foot app, the requirements and approval process can vary dramatically between vendors, and it is often a requirement to have a sponsor or human contact with each vendor to even begin the process of getting your app accepted. You.i TV recommends that you thoroughly familiarize yourself with the approvals process for the target platforms you are interested in to ensure that you are well prepared.
In some cases, a vendor will require you to have a sponsor as part of the complete business arrangement you must develop with them to create an app for their platform, without which your app will never be allowed onto the platform.
In addition to building your app, you will often be required to provide visual assets to support the display and promotion of your app in the vendor’s app store. These may include icons to represent your app in lists, as in “new release” lists, or banner images that may appear on the main page of the app store. Screencaps or video that display the behavior of your app may also be required, depending on the vendor.
A vendor may also ask you to supply them with privacy and contact information, End User Licensing Agreements (EULAs), descriptive text about your app, and keywords to use for searches to target your app.
Every platform vendor has package size limits that apps must adhere to in order to pass certification and be approved. These limits on final file sizes are often dependent on the devices that are supported on the target platform, as in the Apple TV on tvOS. In other cases, the devices don’t host the apps directly, but retrieve the app information from a cloud-based server; the You.i Roku Cloud Solution operates in this way. Larger files tend to create issues with memory storage and performance capabilities of devices, leading to poorer experience of the app on that device and a limit as to the number of apps that can be hosted on that device. The You.i Roku Cloud Solution mitigates Roku performance issues by having the device retrieve the app information from the cloud.
Information regarding the specific package size limits can usually be found in the developer guides for the target platforms you are considering.
There are a number of strategies that can be used to reduce the finished package size of your app, including limiting the architectures you support, optimizing assets, organizing assets according to their targeted platforms, and splitting your assets from the package.
Be aware that each platform may have specific settings that they have predetermined must be included in the build of your app. These tend to be unique to each platform, and will be checked at some point during the certification process once you have submitted your package. See specific platform vendors for details on the settings you may need to include in your build.
You need to be aware of the differences between the devices supported by each platform vendor, and their specific capabilities. You.i TV developed You.i C++ to allow you to create apps for all platforms, but each platform often supports many devices with a spectrum of performance and memory capabilities.
The information you have about the potential users of your app may lead you to limit the scope of devices your app will support, or alternatively you may find that you will need to include support for devices with memory and performance limitations.
Across a single platform, a vendor may support devices that run the gamut from high-performance all the way down to a low-performance device—Roku devices are a notable example of this. Be advised that these performance and memory variances can have impacts on the experience of your app on these devices. Knowing the performance differences in the devices that your app is destined for will prepare you to design for the best experience across all platforms. Depending on your business requirements, it may not make sense to support all platforms, or all devices on a platform, but this is a decision to make early on and based on who your target audiences are.
Once you have decided which devices your app will support, best practice is to obtain one of each of the devices and test the performance of your app on each device.
It is crucial that you build in testing as an integral component of your development process. The general rule of thumb is to test early and test often to spot problems as soon as they arise; the earlier you find issues, the easier they are to resolve. Thorough testing will help you uncover issues with memory and performance related to the devices and platforms your app will support, allowing you to create the best possible app for each platform.
You.i TV has integrated Agile methodology into their own development and testing to ensure that bugs and issues are dealt with as the app is being built, feature by feature. Agile’s methodology organizes software development into sprints that include testing as part of an iterative process to refine individual features and the final product as a whole.
You.i TV’s testing teams follow acceptance criteria determined at the start of the project, but also check the integration of tested features within the app to ensure that added features don’t adversely affect the functionality of the app as a whole. Whatever development model you choose, You.i TV recommends treating your development and testing in an iterative mode to ensure the best possible final product.
Be aware that for 10-foot platforms, vendors can take up to five days to respond after you’ve sent them an app for certification, and there are often as many as four rounds of certification involved to get an app approved. Consult with the specific platform vendor to find out the exact timelines for certification. You.i TV recommends that you work back from your intended release date and factor in the time required to complete certification to your development timeline to determine an accurate date for when your app needs to be ready for the certification process.
Getting your app approved can be more complex than simply meeting a list of requirements for certification. Depending on the form factor (mobile versus 10-foot), vendors can be particular about the specific themes and features used in your app. This is often less the case for mobile apps than 10-foot, but be advised that vendors reserve the right to reject any app that they decide doesn’t belong on their platform. Ensure that you acquaint yourself with the specific vendors’ limitations and requirements as to themes and features. A vendor contact can sometimes help with this as well.