Our website is made possible by displaying online advertisements to our visitors. Please consider supporting us by disabling your ad blocker.

Use Visually Appealing Fancy Alerts In A NativeScript Angular Application

TwitterFacebookRedditLinkedInHacker News

In pretty much every mobile application that I’ve ever made, I’ve had a need to use some form of alert dialog. The problem with this is that standard alert dialogs are boring and can actually make your application less attractive. This is where Fancy Alerts come in.

In NativeScript, there is a plugin called Fancy Alerts that can display visually appealing alerts with nice animations. These alerts have smooth color schemes and can make your application that much more important. We’re going to see how to include such alerts in our NativeScript Angular application.

The application we’re going to build won’t do a whole lot. The following animated image explains what we are about to build.

NativeScript Fancy Alert

We’re going to have a few buttons, that when pressed, will display various alerts, including alerts with custom images. It is important to note that there is not unity between the iOS and Android platforms with this plugin. Some features are Android-only and some are iOS-only.

Creating a Fresh NativeScript Project with Angular

For simplicity, we’re going to create a fresh project to work with. From the Command Prompt (Windows) or Terminal (Mac and Linux), execute the following:

tns create FancyAlert --ng
cd FancyAlert
tns platform add ios
tns platform add android

The --ng flag indicates that we are going to create an Angular with TypeScript project. It is important to note that if you’re not using a Mac, you cannot build for the iOS platform.

Like previously mentioned, this project will use the Fancy Alerts plugin for NativeScript. Install this plugin by executing the following:

tns plugin add nativescript-fancyalert

We’re now ready to start developing our application.

Adding the Fancy Alert Logic and UI

This will be a single page application, so all of our code will end up in files that already exist in the project. Open the project’s app/app.component.ts file and include the following TypeScript code:

import { Component } from "@angular/core";
import { TNSFancyAlert } from "nativescript-fancyalert";

@Component({
    selector: "my-app",
    templateUrl: "app.component.html",
})
export class AppComponent {

    public showSuccess() {
        TNSFancyAlert.showSuccess("Success!", "Something finished successfully.", "Dismiss");
    }

    public showError() {
        TNSFancyAlert.showError("Error!", "Oh no, something went wrong.", "Dismiss");
    }

    public showCustomImage() {
        TNSFancyAlert.showAnimationType = TNSFancyAlert.SHOW_ANIMATION_TYPES.SlideInFromBottom;
        TNSFancyAlert.hideAnimationType = TNSFancyAlert.HIDE_ANIMATION_TYPES.SlideOutToTop;
        TNSFancyAlert.showCustomImage("polyglot_developer.png", "#911E25", "Custom Image", "Use your own images in an alert!", "Dismiss");
    }

}

Notice how we’ve imported the TNSFancyAlert component and we create a method for every time we wish to use it. There are many different types of alerts, all found in the documentation, but we’ve decided to use three different types.

When it comes to the showCustomImage method, as of right now it only works for iOS. The image to display must exist in the project’s app/App_Resources/iOS directory.

When it comes to the UI, open the project’s app/app.component.html file and include the following HTML markup:

<ActionBar title="{N} Fancy Alerts"></ActionBar>
<StackLayout class="p-20">
    <Button text="Success" (tap)="showSuccess()" class="btn btn-primary btn-active"></Button>
    <Button text="Error" (tap)="showError()" class="btn btn-primary btn-active"></Button>
    <Button text="Custom Image" (tap)="showCustomImage()" class="btn btn-primary btn-active"></Button>
</StackLayout>

The above markup shows an action bar with three buttons. Each of the buttons are bound to the public functions found in the TypeScript file responsible for showing the alert.

Not too complicated right?

Conclusion

You just saw how to add more attractive alerts to your NativeScript iOS and Android application built with Angular. The Fancy Alerts plugin is easy to use and it can really enhance your overall user experience.

Nic Raboy

Nic Raboy

Nic Raboy is an advocate of modern web and mobile development technologies. He has experience in C#, JavaScript, Golang and a variety of frameworks such as Angular, NativeScript, and Unity. Nic writes about his development experiences related to making web and mobile development easier to understand.