IV: Add Components for More Functionality
Fire App Builder includes a number components that implement interfaces. The interfaces define the methods and fields in Fire App Builder; the components implement the interfaces with fully developed code.
To use the components, you don't need to write your own Java code. You just need to customize various string values that have been extracted out of the code into XML files.
The main interfaces include the following:
- Ads Interface (
IAds): Used for displaying ads to users
- Analytics Interface (
IAnalytics): Used for implementing analytics
- Authentication Interface (
IAuthentication): Used for authenticating or authorizing user access to media
- Purchase Interface (
IPurchase): Used for in-app purchasing
- UAMP (
UAMP): Used for playing media. (UAMP stands for Universal Android Media Player.)
If you need a component that isn't available, you can create your own component that implements one of the interfaces.
- Available Components and Interfaces
- Authentication Components
- Analytics Components
- Ads Components
- Purchasing Components
- Media Player Components
- UI Components
- Next Steps
Available Components and Interfaces
In Android Studio, you won't see all the components because the Fire App Builder sample app loads only a subset of the available components from the Fire App Builder library, as defined in your app's Gradle files. Only one component from each interface is loaded.
To view the available components on disk, you can browse (using Finder or File Explorer) to the folder on your computer where you downloaded the Fire App Builder project, or just refer to the information here.
Authentication components allow you to identify and authorize users before they take an action in your app. You must have at least one authentication component loaded in your app. The authentication components implement the
IAuthentication interface, which you can view in the AuthInterface folder. The following authentication components are available:
|AdobepassAuthComponent||Uses Adobe Pass to authenticate users.|
|FacebookAuthComponent||Uses Facebook to authenticate users.|
|LoginWithAmazon Component||Uses Login with Amazon to authenticate users.|
|PassThroughLoginComponent||Used only if you don't want to use any other authentication component. Your app must load at least one authentication component loaded. This PassThrough Login Component component satisfies the authentication component requirement without affecting the user experience in your app. This component is loaded as the default authentication component in the app.|
Analytics components track activities within your app and provide metrics for analysis. Analytics components implement the
IAnalytics interface in the AnalyticsInterface folder. Loading an analytics component in your app is optional.
|FlurryAnalyticsComponent||Uses Flurry Analytics to provide analytics.|
|OmnitureAnalyticsComponent||Uses Omniture to provide analytics.|
|CrashlyticsComponent||Uses Crashlytics to provide analytics.|
|GoogleAnalyticsComponent||Uses Google Analytics to provide analytics.|
|ComScoreAnalyticsComponent||Uses comScore to provide analytics.|
|LoggerAnalyticsComponent||The Logger Analytics Component is not intended to be used for actual analytics. Instead, this is a dummy analytics component that inserts log messages during events. If you’re not using any other analytics component, use Logger Analytics Component because at least one analytics component must be configured in your app. You can see the log messages triggered by the LoggerAnalytics component by searching for "loggeranalytics" in Logcat.|
Ads components refer to any components that show advertisements in your app. Ads components implement the
IAds interface in the AnalyticsInterface folder. Loading an ads component in your app is required. The following ads components are available.
|FreeWheelAdsComponent||Used for displaying Freewheel ads in your app.|
|VastAdsComponent||Used for displaying VAST ads in your app.|
|PassThroughAdsComponent||Used only if you don’t want to use any other ads component. Your app must load at least one ads component loaded. This PassThroughAds component satisfies the ads component requirement without affecting the user experience in your app.|
If you don't want to use any of the authentication components listed in the preceding table, use the PassThroughAdsComponent. Your app must have at least one ads component loaded. This dummy component satisfies the ads component requirements without affecting the user experience in your app.
Purchasing components allow users to make payments to either rent or subscribe to content in your app. The purchasing components implement the
IPurchase interface in the PurchaseInterface folder. Unlike the other components, loading a purchasing component is not actually required.
Only one purchasing components is available:
|AmazonInAppPurchasingComponent||Uses Amazon In-App Purchasing to allow users to choose Daily Pass (24-hour access) or Go Premium (subscription) to view the media in your app. This component is loaded by default but set as disabled and not configured.|
Media Player Components
Media Player components control the media player that is used for media playback in your app. The media components implement the
UAMP interface in the UAMP folder. (UAMP stands for Universal Android Media Player.) Loading a media component is required. The following media player components are available.
|AMZNMediaPlayerComponent||Uses the Amazon media player, which is based on ExoPlayer. This component is loaded by default in Fire App Builder.|
|BrightCoveMediaPlayerComponent||Uses the Brightcove media player. This is useful if your content is already tightly coupled with BrightCove.|
The TVUIComponent isn't an optional component, as it contains much of the user interface and functionality for the app (other than the media player features). It is created as a component to allow for potentially adding additional UI components for other devices, such as tablets.
Go to the next topic, Add or Remove a Component, and decide which components (if any) you want to add to your app.
Last updated: Jan 16, 2018