MOBIELE APP Herbouw en optimalisatie
Over Urban journalist
Urban Journalist is een mobiele app die nieuwe waarde wil toevoegen aan het uitwisselen van aanbevelingen voor stedentrips. In plaats van te vertrouwen op kwantitatieve informatie zoals Google en TripAdvisor dat doen, vertrouwt Urban Journalist op het opbouwen van sociale verbindingen tussen mensen en hun favoriete hotspots. Gebruikers kunnen vrienden of anderen met een vergelijkbare smaak in hotspots volgen en hierdoor aanbevelingen en inzichten uitwisselen.
“Met Flutter konden we twee compatibele apps bouwen voor de prijs van één, in plaats van twee afzonderlijke apps op verschillende platforms.”
OVER HET PROJECT
Het project begon met de wens om de app platformonafhankelijk te maken. Aanvankelijk was de app alleen beschikbaar op iOS, met behulp van een eigen back-end (Content Management System). Het vertalen van de applicatie naar Android vereiste dat de app van de grond af opnieuw moest worden opgebouwd. Bovendien had het back-end CMS enkele beperkingen, waardoor de groeimogelijkheden werden beperkt. Na het bekijken van de bestaande code tijdens onze Sprint 0, kwamen we tot de conclusie dat in plaats van ook een Android-versie van de app te bouwen, een platformonafhankelijke versie met Flutter een betere keuze was.
“Door de code te optimaliseren, konden we het aantal API-calls en de kosten ervan met meer dan 90% verminderen”
Hiermee konden we ’twee’ apps in één keer bouwen, beide met niet alleen dezelfde features als voorheen, maar ook met een modulaire back-end, waardoor het zeer compatibel was met toekomstige ontwikkelingen. Hierna hebben we ook het aantal API-calls van de Google Maps-server geoptimaliseerd, de kosten onmiddellijk verviervoudigd en op de langere termijn onder de 10% van de oorspronkelijke kosten gebracht. Ten slotte hebben we Analytics toegevoegd, waardoor de conversie en retentie van klanten gemakkelijk kunnen worden geobserveerd.
Deel een
Beoordeling
Het eerste deel van het project bestond uit een analyse van de app en de code. Hier hebben we de omvang van de volgende fasen bepaald, maar ook kansen voor innovatieve oplossingen en verbeteringen. Het doel van dit project was om de iOS-app te vertalen naar een Android-versie. Er was echter ook ruimte voor verbetering in de back-end structuur van de app. Daarom hebben we geadviseerd om de app te bouwen met Flutter, een UI-toolkit van Google die gebruikmaakt van een enkele codebase. Hiermee konden we twee compatibele apps bouwen voor de prijs van één, in plaats van twee afzonderlijke apps op verschillende platforms.
Deel twee
Ontwikkeling
FLUTTER
Flutter houdt rekening met platformverschillen, wat betekent dat je met één build volledige native prestaties hebt op zowel iOS als Android. Met deze oplossing werden voor de prijs van één app in wezen twee applicaties gemaakt. Dit betekent ook dat we de tekortkomingen van de iOS-versie in één keer hebben kunnen verbeteren.
BACK-END
Tegelijkertijd werd een nieuwe back-end structuur gemaakt met behulp van het Yii2-framework, die niet alleen als back-end voor de nieuwe app diende, maar ook de beperkingen van het vorige CMS verbeterde. Deze nieuwe back-end opende ook nieuwe mogelijkheden voor optimalisatie en analyse.
OPTIMALISATIE
Door een nieuwe back-end structuur te bouwen, kon het team ook verschillende back-end processen optimaliseren. Omdat de applicatie Google Maps-gegevens gebruikt, moet deze verbinding maken met de Google Maps API. Voor elk API-call betaalt de klant een vergoeding. Door de code te optimaliseren, hebben we het aantal API-calls en de kosten ervan met meer dan 90% kunnen verminderen. Dit is een forse verlaging van de maandelijkse kosten voor een kernfunctionaliteit van de applicatie.
Deel drie
HET RESULTAAT
Terwijl Urban Journalist een Android-versie van de applicatie wilde, zijn we erin geslaagd om met innovatieve en vooruitstrevende oplossingen te komen die zijn toegesneden op de behoeften van onze klant zonder concessies te doen in de kosten. Het eindresultaat is een app met een modulaire back-end, klaar voor toekomstige ontwikkelingen, platformonafhankelijke compatibiliteit en een API-aanroepoptimalisatie die de kosten van kernfunctionaliteit bijna 10 keer verlaagde.