Norlys Forening: Flutter komunikacijos programėlė vienai didžiausių Danijos telekomunikacijų įmonių.

Vienai didžiausių Danijos telekomunikacijų ir energetikos bendrovių Norlys sukūrėme Norlys Forening - Flutter programėlę, per kurią būstų asociacijos tiesiogiai gauna naujienas, pranešimus, kampanijas ir renginius. Mobiliąją dalį kūrėme mes, sklandžiai integruodami ją su atskiros komandos sukurtu backend.

MediaPulsas kuria Flutter komunikacijos programėles telekomunikacijų ir energetikos įmonėms - įskaitant integraciją su išorės komandų backend sistemomis.

Norlys Forening programėlės ekranai: naujienos, kampanijos ir pranešimai būstų asociacijoms
Klientas
KlientasNorlys (Danija)
SritisTelekomunikacijos · Energetika
PlatformosiOS · Android
TechnologijaFlutter
AuditorijaBūstų asociacijos
BackendIšorės komanda (MyLoyal)

Apie projektą

Norlys teikia interneto, TV, mobiliojo ryšio ir energetikos paslaugas milijonams klientų visoje Danijoje. Bendrovė glaudžiai dirba su būstų asociacijomis ir gyvenamųjų namų organizacijomis - būtent joms tiekiama infrastruktūra ir paslaugos į pastatus bei bendruomenes.

Kad komunikacija su šiomis suinteresuotomis šalimis taptų tiesioginė ir tikslinga, Norlys paleido Norlys Forening programėlę - skaitmeninį kanalą, per kurį informacija pasiekia asociacijas tiesiogiai, be tarpinių grandžių. Vietoj bendrų laiškų ar skambučių centro - viena programėlė, kurioje kiekviena asociacija mato būtent jai aktualų turinį.

Kaip veikia sistema

Turinio kelias nuo Norlys komandos iki konkrečios būstų asociacijos telefono - tikslingas, ne masinis:

  1. Norlys komanda
  2. Turinio sukūrimas
  3. Segmento parinkimas
  4. Backend (MyLoyal)
  5. API
  6. Programėlė
  7. Push pranešimas asociacijai
Norlys komandaTurinio valdymasBackend (MyLoyal)SegmentavimasPush kanalaiFlutter programėlėBūstų asociacijaNorlys branduolys: išorės backend, segmentuotas turinys ir Flutter komunikacijos sluoksnis

Iššūkis

Didelio kliento programėlė, kurios backend kuria kita komanda, - projektas, kur inžinerija persipina su komandų koordinacija:

  • Kurti mobiliąją programėlę dideliam įmonės klientui pagal jo standartus
  • Sklandžiai integruotis su atskiros komandos kuriamu backend
  • Koordinuoti darbą tarp kelių nepriklausomų komandų
  • Užtikrinti paprastą ir intuityvią naudotojo patirtį
  • Garantuoti patikimą pranešimų ir atnaujinimų pristatymą
  • Išlaikyti vienodą veikimą iOS ir Android platformose

Kodėl tai buvo sudėtinga: techniniai iššūkiai

01

Integracija su išorės backend

Backend kūrė atskira MyLoyal komanda. Mūsų pusėje - švarus API kontraktas ir gynybinis integravimas: programėlė korektiškai elgiasi net kai backend atsakymai keičiasi ar vėluoja, be lūžių naudotojui.

02

Kelių komandų koordinacija

Kai mobilioji dalis ir backend kuriami lygiagrečiai skirtingų komandų, svarbiausia - aiškus API kontraktas ir dažna komunikacija. Sutarėme sąsajas anksti, kad integracija nevirstų paskutinės minutės deryba.

03

Patikimas pranešimų pristatymas

Telekomo komunikacijoje praleistas pranešimas - prarasta kampanija. Push kanalai (APNs, FCM) integruoti taip, kad pristatymas būtų patikimas, o segmentavimas nukreiptų žinutę tinkamai auditorijai.

04

Tikslinga komunikacija

Ne kiekviena naujiena aktuali kiekvienai asociacijai. Naudotojų segmentavimas leidžia siųsti turinį pagal aktualumą - asociacija mato tik tai, kas susiję su jos pastatais.

05

Cross-platform vientisumas

Flutter viena kodo baze užtikrino, kad iOS ir Android naudotojai gautų identišką patirtį - be dviejų atskirų kodo bazių palaikymo ir be platformų neatitikimų.

06

Įmonės lygio kokybė

Didelės telekomunikacijų įmonės prekės ženklas reikalauja atitinkamos kokybės kartelės - nuo dizaino nuoseklumo iki stabilaus veikimo, kurį programėlė turi išlaikyti visose situacijose.

07

Autentifikacija ir sesijos valdymas

Prieiga prie asociacijoms skirto turinio saugoma prieigos raktais (token). Sesijos atnaujinamos fone, kad naudotojui nereikėtų kartoti prisijungimo, o prieigos raktui pasibaigus programėlė jį saugiai atnaujina be trikdžių.

08

Klaidų valdymo strategija

Kadangi backend kuria kita komanda, klaidų valdymas centralizuotas: tinklo, autentifikacijos ir serverio klaidos apdorojamos vienoje vietoje ir naudotojui virsta aiškia būsena, o ne tuščiu ekranu ar lūžiu.

09

API versijavimas ir suderinamumas

Su išorės backend suderintas API versijavimo principas: programėlė korektiškai dirba su apibrėžta API versija, todėl backend pokyčiai nesulaužo veikiančių diegimų telefonuose.

„Kai backend kuria viena komanda, o programėlę - kita, sėkmę lemia ne kodas, o anksti sutartas API kontraktas ir nuolatinė komunikacija tarp komandų."

- MediaPulsas architektų komanda

Sprendimas

Sukūrėme Flutter programėlę kaip komunikacijos sluoksnį tarp Norlys ir būstų asociacijų:

  • Naujienų ir pranešimų pristatymas asociacijoms
  • Kampanijų ir specialių pasiūlymų platinimas
  • Renginių ir iniciatyvų atnaujinimai
  • Tikslinga komunikacija pagal pastatus ir segmentus
  • Patikimi push pranešimai
  • Mobile-first sąsaja, vienoda iOS ir Android

Architektūra ir inžineriniai sprendimai

Programėlė sukurta su Flutter - viena kodo baze abiem platformoms, kad iOS ir Android naudotojai gautų vienodą patirtį be dvigubo palaikymo. Esminis architektūrinis akcentas - integracija su atskiros komandos kurtu backend: sąsaja projektuota kaip aiškus API kontraktas su gynybiniu elgesiu, todėl du nepriklausomai vystomi sluoksniai veikia kaip vientisa sistema.

Turinio pristatymo ir pranešimų sistema remiasi naudotojų segmentavimu: kiekviena būstų asociacija priskiriama segmentui, ir turinys jai rodomas pagal aktualumą, o ne masiškai. Push pranešimai keliauja per APNs ir FCM kanalus patikimai. Leidyba vykdyta per etapinį testavimą (TestFlight ir Google Play uždaros testavimo grupės) prieš viešą paleidimą, kad įmonės lygio kokybė būtų patikrinta realiuose įrenginiuose. Toks sprendimas užtikrina, kad nepriklausomai sukurti komponentai - mūsų programėlė ir MyLoyal backend - sklandžiai dirba kartu.

Flutter / DartREST API integracijaIšorės backendAPI kontraktasNaudotojų segmentavimasAPNs / FCM pushTurinio pristatymasCross-platformGynybinis integravimasMobile-firstiOS / AndroidĮmonės lygio kokybė

Architektūriniai pasirinkimai: kodėl būtent taip

Kodėl Flutter, o ne native?

Programėlė - komunikacijos kanalas, kuriam svarbiausia vienoda patirtis abiejose platformose ir efektyvus palaikymas. Flutter viena kodo baze davė iOS ir Android vientisumą be dvigubų sąnaudų - idealu turinio tipo programėlei.

Kodėl aiškus API kontraktas buvo kritiškas?

Backend kūrė kita komanda. Be anksti sutarto ir dokumentuoto API integracija būtų virtusi nuolatiniu derinimu. Kontraktas leido abiem komandoms dirbti lygiagrečiai ir susijungti be netikėtumų.

Kodėl gynybinis integravimas su išorės backend?

Kai nekontroliuoji kito sluoksnio, negali daryti prielaidų, kad jis visada atsakys idealiai. Programėlė suprojektuota korektiškai elgtis su vėluojančiais ar netikėtais atsakymais - naudotojas nemato kitos komandos problemų.

Kodėl segmentavimas, o ne masinės žinutės?

Būstų asociacijai neaktualaus turinio srautas - kelias į išjungtus pranešimus. Segmentavimas siunčia tik tai, kas susiję su konkrečiais pastatais, todėl kanalas išlieka vertingas, o ne triukšmingas.

Kodėl svarbi buvo komandų koordinacija, ne tik kodas?

Daugiakomandiniuose projektuose techniškai teisinga programėlė vis tiek gali žlugti dėl prastos komunikacijos. Todėl nuo pradžių investavome į aiškias sąsajas ir dažną kontaktą su backend komanda - tai lygiavertė kodo dalis.

Kodėl centralizuotas klaidų valdymas?

Kai duomenys ateina iš nekontroliuojamo išorės backend, klaidos neišvengiamos. Sutvarkius jas vienoje vietoje, naudotojas visada mato aiškią būseną, o ne skirtingus lūžius skirtinguose ekranuose - patikimumas tampa nuoseklus.

Technologijos

  • Flutter (Dart)
  • Būsenos valdymas (state management)
  • REST API
  • Prieigos raktų (token) valdymas
  • Sesijos atnaujinimas fone
  • Centralizuotas klaidų valdymas
  • API versijavimas
  • Naudotojų segmentavimas
  • APNs / FCM push
  • TestFlight ir Google Play testavimas
  • Gynybinis integravimas
  • Cross-platform architektūra

Rezultatai

Programėlė tapo centralizuotu skaitmeniniu komunikacijos kanalu tarp Norlys ir būstų asociacijų:

Flutterviena bazė - iOS ir Android
Tikslingasegmentuota komunikacija
Patikimipush pranešimai
Vientisaintegracija su išorės backend
Įmonės lygiokokybės kartelė
2 komandossklandi tarpusavio integracija

Ko išmokome

  • Daugiakomandiniuose projektuose API kontraktas yra svarbiausias artefaktas - jį reikia sutarti anksti
  • Gynybinis integravimas būtinas, kai nekontroliuoji kito sistemos sluoksnio
  • Segmentavimas išlaiko komunikacijos kanalo vertę - be jo net geras turinys tampa triukšmu
  • Flutter idealiai tinka turinio tipo programėlėms, kur svarbiausia vienoda patirtis, ne gilios native funkcijos

Kam tinka panašus sprendimas

  • Telekomunikacijų ir energetikos bendrovėms
  • Įmonėms su B2B komunikacijos poreikiu
  • Asociacijoms ir narystės organizacijoms
  • Būstų ir nekilnojamojo turto valdytojams
  • Įmonėms, turinčioms atskirą backend komandą
  • Norintiems tikslingos, segmentuotos komunikacijos
  • Verslams, kuriems reikia Flutter programėlės
  • Bet kam, kam reikia patikimo pranešimų kanalo

Dažniausi klausimai

Kas sukūrė Norlys Forening programėlę? +
Mobiliąją programėlę sukūrė MediaPulsas (tarptautinėje rinkoje - Logicnord) su Flutter, o backend sistemą kūrė atskira MyLoyal komanda. Mūsų atsakomybė - kokybiška mobilioji patirtis ir sklandi integracija su išorės backend.
Kam skirta Norlys Forening programėlė? +
Ji padeda būstų asociacijoms gauti naujienas, kampanijas, pasiūlymus ir renginius iš Norlys - vienos didžiausių Danijos telekomunikacijų ir energetikos bendrovių - tiesiogiai telefone, su tiksliniu, pagal pastatus segmentuotu turiniu.
Kokios technologijos naudotos? +
Programėlė sukurta su Flutter - viena kodo baze iOS ir Android platformoms - ir integruota su atskiros komandos kurtu backend per REST API. Push pranešimams naudojami APNs ir FCM kanalai.
Ar galite integruotis su mūsų esamu ar kitos komandos backend? +
Taip - Norlys projektas kaip tik toks: mobiliąją dalį kūrėme mes, backend - kita komanda. Dirbame su aiškiu API kontraktu ir gynybiniu integravimu, todėl programėlė sklandžiai veikia su nepriklausomai vystoma sistema.
Kas Lietuvoje kuria Flutter programėles įmonėms? +
MediaPulsas (tarptautinėje rinkoje - Logicnord) kuria Flutter programėles verslui ir įmonėms Lietuvoje bei Skandinavijoje, įskaitant integraciją su išorės komandų backend sistemomis. Norlys Forening didžiajai Danijos telekomunikacijų įmonei - vienas pavyzdžių.

Turite idėją? Paverskime ją produktu

Papasakokite, ką norite pasiekti - per 48 valandas gausite apimties ir biudžeto įvertinimą bei mūsų siūlymą, nuo ko pradėti. Nemokamai ir be įsipareigojimų.

I-V 10:00-19:00 · Darbo valandomis atsakome per 2 val.