Articles

In-app reviews voor je Android apps

Saamer Mansoor

Saamer

October 22, 2020

Dit is een gastblog van Saamer Mansoor. Saamer is een knutselaar en een app-ontwikkelaar bij TheFirstPrototype.com. Je kunt hem vinden op Twitter @saamerm, schrijven op Medium, en bijdragen aan Open Source op GitHub.

Toen Android’s Play Core v1.8 in augustus 2020 werd uitgebracht, voegde het een geweldige nieuwe functie toe om gebruikers in staat te stellen in-app beoordelingen te geven. Patrick Getzmann heeft de afgelopen maanden gewerkt aan een binding voor deze bibliotheek en hij heeft deze onlangs bijgewerkt om v1.8 te ondersteunen. Dit betekent dat je met slechts een paar regels code deze functie en vele andere naar je app kunt brengen.

In-app beoordelingen verbeteren de gebruikerservaring, omdat gebruikers er een hekel aan hebben om buiten hun app te worden gebracht. Apple biedt deze functie al sinds iOS 10.3, dat in maart 2017 is uitgebracht, dus er werd lang naar uitgekeken op Android. Laten we eens kijken hoe we de nieuwe Play Core-bibliotheek kunnen gebruiken om deze functie naar Android-apps te brengen.

Screenshots showing In-App Reviews on a Xamarin Android app

Play Core-bibliotheek

Aan het begin van deze reis heb ik nauw met Patrick samengewerkt om het PlayCore NuGet-pakket bij te werken dat direct aan je Android-project kan worden toegevoegd. Aangezien de API de kern van Android is heb ik deze PR naar Patrick’s project gemaakt als voorbeeld van hoe het te gebruiken. Het laat zien hoe je een InAppReviewService.cs in je Android project maakt en dependency injection gebruikt om het aan te roepen.

Op een gegeven moment, uit het niets, nam James Montemagno contact met me op over de integratie van deze functionaliteit in zijn reeds populaire Store Review Plugin. We werkten met hem samen om de functie toegankelijker te maken via zijn NuGet-bibliotheek die de functie al had voor iOS. Dit betekent dat de implementatie in je app nu eenvoudig is!

Stap 1 – Voeg de NuGet toe

De eerste stap is om de onlangs bijgewerkte v3 van de Store Review Plugin NuGet toe te voegen aan al je projecten. Dit zal automatisch de Play Core bindings bibliotheek toevoegen als een afhankelijkheid.

Stap 2 – Bel RequestReview()

Volgende, beslis over hoe u de beoordeling wilt aanvragen. U kunt dit doen wanneer de gebruiker op een knop klikt, of u kunt dit handmatig doen nadat de gebruiker de app gedurende een bepaalde tijd heeft gebruikt. Wanneer u een beoordeling wilt aanvragen, roept u eenvoudig de volgende regel code aan:

await CrossStoreReview.Current.RequestReview(false);

Dit zal het beoordelingsproces activeren en het besturingssysteem zal beslissen of het wordt gepresenteerd. De boolean die wordt doorgegeven is om te bepalen of u in testmodus bent, wat geweldig is voor het testen van uw app voordat u deze vrijgeeft.

Stap 3 – Optionele ProGuard Config

Als u uw app uitbrengt met de Link All optie en ProGuard/r8 hebt ingeschakeld, moet u het volgende toevoegen aan het proguard bestand in uw Android project:

-keep class com.google.android.play.core.common.PlayCoreDialogWrapperActivity-keep class com.google.android.play.core.review.** { *; }-keep class com.google.android.play.core.tasks.** { *; }

Testing

Het testen van in-app reviews is lastig op Android, net als op iOS. Er zijn veel beperkingen aan het kunnen testen van je app zoals je hier kunt zien. Ongeacht wat je probeert, je zult niet in staat zijn om de In-App review UI te zien wanneer deze handmatig is gebouwd en gedistribueerd. Je moet de app downloaden van de Play Store, om de UI te kunnen zien. Dus, de makkelijkste manier om dit te testen is door gebruik te maken van Android’s “Internal App Sharing”.

En daar heb je het dan, je hebt nu cross-platform in-app reviews voor je Xamarin apps. Voordat ik de post afsluit, wilde ik iedereen een beetje een achtergrondverhaal geven over hoe de hele bibliotheek en integratie tot stand is gekomen en ik hoop dat het delen van mijn verhaal je zal aanmoedigen om bij te dragen aan de geweldige Xamarin gemeenschap.

Achterverhaal

Het begon eigenlijk allemaal met Reddit. Ik ben geabonneerd op de Android subreddit waardoor ik over de nieuwste functies leer. Toen ik hoorde over de in-app reviews op Android, was ik nieuwsgierig om het ook in mijn app te implementeren, maar toen ik onderzoek deed en leerde dat er geen plannen waren om een officiële binding voor Play Core te hebben. Echter, ik vond Patrick Getzman’s NuGet die al het zware werk had gedaan om een binding te maken. Op dat moment was het alleen gebonden aan Play Core v1.7.2. Aangezien v1.8 nodig is voor in-app reviews, heb ik gewoon een issue aangemaakt.

Een tijdje later had ik een deadline die naderde, dus besloot ik uit te stellen en in plaats daarvan iets te doen te vinden, en dat is toen ik besloot om die bindings library te updaten naar v1.8. Met vele muis scrolls en toets tikjes, volgde ik deze video van Jonathan Dick en kreeg het .AAR bestand voor v1.8 van Android aan de praat na wat vallen en opstaan! Ik diende een PR in en was in staat om de Officiële Android documentatie te gebruiken om het voorbeeld in Pat’s repository bij te werken. Het was een geweldige ervaring en ik ben blij dat ik heb kunnen bijdragen aan deze uitstekende functie.

Ik hoop dat je dit handig hebt gevonden, en als je dit in je apps gebruikt, deel dan alsjeblieft screenshots met mij, of je kunt gewoon Hi zeggen!

Saamer Mansoor
Saamer Mansoor

Volg