How to Convert a 1 Star App Review into 5 Stars

Freshdesk Canned Responses

Photo by [Riccardo Annandale](https://unsplash.com/photos/7e2pe9wjL9M?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) on [Unsplash](https://unsplash.com/?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText)

It’s been written about for ages: customers generally only leave reviews for extremely positive experiences or extremely negative ones. Negative reviews are inevitable, but there are proactive and reactive measures you can take to mitigate and prevent them. The following are strategies I’ve used to successfully convert poor app reviews into great ones.

Reactive Approaches: From 1 to 5 stars

Every company receives bad reviews from time to time. Are you prepared to address them?

Read On →

Angular: Accessing Class Variables within Custom Validators

Angular’s built-in validators are great (Required, MinLength, MaxLength, etc.), but you’ll often find yourself needing to test unique UI control use cases. Enter custom validators, a powerful way to accomplish this:

validUsernames: AllowedUsername[];

constructor(private fb: FormBuilder,
            private apiService: ApiService) { }

ngOnInit() {
    this.form = this.fb.group({
        // Attach a custom validator to the userName control
        "userName": [this.userName, this.usernameValidator]
        }
    );
}

private usernameValidator(c: AbstractControl): { [key: string]: boolean } {
    // check a property of c, the Control this validator is attached to
    if (c.value === "bad value") {
            // if a bad username is detected, return an error
            return { 'badValueFound': true };
        }
    }
    
    return null;
}

This works just fine if you only need to test using the properties of the AbstractControl - how about testing for valid usernames via a local array object or by making an HTTP API call?

Read On →

PhoneGap Blog Guest Post: Hybrid Apps are Overtaking Native

I’m happy to share that I’ve written another guest post for the PhoneGap team’s blog:

Hybrid Apps are Overtaking Native

In the post, I cover the most popular concerns about hybrid app development from a fresh 2017 perspective: performance, design, frameworks, and tooling. Bottom line: if you last tried PhoneGap/Cordova several years ago, it’s time for another look!

I’m really proud of how this article turned out: over 16,000 views and tons of comment replies as of late August. Check it out on the PhoneGap blog.

Read On →