[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"technologies":3,"\u002Fblog\u002Fflutter-app-development-process":167,"team-members":898,"blog-topics":1240,"mdc-w0yfea-key":1282,"glossary":1326},[4,10,15,21,26,32,38,43,48,53,58,63,68,73,77,82,87,92,97,103,108,113,118,123,128,133,138,143,147,152,157,162],{"title":5,"description":6,"slug":7,"category":8,"icon":9},"Android","Elke app die we uitbrengen bereikt Android — platform-API's, uitvoering op de achtergrond, permissies en de winkeleisen die daarbij horen.","android","framework","logos:android-icon",{"title":11,"description":12,"slug":13,"category":8,"icon":14},"Angular","Het front-endframework waarin we werken als een product al Angular is — een kant-en-klare structuur die past bij grote, langlevende applicaties.","angular","logos:angular-icon",{"title":16,"description":17,"slug":18,"category":19,"icon":20},"Dart","De taal waarin elke Flutter-app die we uitbrengen geschreven is — sound null safety, echte pattern matching, en een compiler voor native en web.","dart","language","logos:dart",{"title":22,"description":23,"slug":24,"category":8,"icon":25},"Django","Het Python-framework dat we pakken als een product op dag één een beheeromgeving, authenticatie en een echt datamodel nodig heeft.","django","logos:django-icon",{"title":27,"description":28,"slug":29,"category":30,"icon":31},"Docker","Elke service die we bouwen verschijnt als container, zodat wat op een laptop, in CI en in productie draait één artefact is en niet drie verschillende.","docker","infrastructure","logos:docker-icon",{"title":33,"description":34,"slug":35,"category":36,"icon":37},"Fastlane","De releaseautomatisering achter ons mobiele werk — ondertekenen, builds en winkeluploads draaien vanuit CI, niet vanaf één laptop.","fastlane","tools","logos:fastlane",{"title":39,"description":40,"slug":41,"category":8,"icon":42},"Flutter","Onze belangrijkste mobiele stack sinds 2018 — één Dart-codebase die uitkomt op iOS, Android, web en desktop zonder een apart team per platform.","flutter","logos:flutter",{"title":44,"description":45,"slug":46,"category":36,"icon":47},"Git","Elk project dat we aanraken leeft in Git — beoordeelde pull requests, CI op elke branch, en een historie die maanden later nog te volgen is.","git","logos:git-icon",{"title":49,"description":50,"slug":51,"category":19,"icon":52},"Go","Onze backendtaal voor realtime-API's en services onder belasting — kleine binaries, snelle builds, en gelijktijdigheid die leesbaar blijft.","go","logos:gopher",{"title":54,"description":55,"slug":56,"category":30,"icon":57},"Google Cloud","De cloud waarop onze productieworkloads draaien — beheerde Kubernetes, opslag en netwerken, zonder handgebouwde servers die niemand wil onderhouden.","gcp","logos:google-cloud",{"title":59,"description":60,"slug":61,"category":36,"icon":62},"Gradle","Het buildsysteem waar elke Android-release doorheen gaat — product flavours, ondertekeningsconfiguraties, en de afhankelijkheden onder een Flutter-app.","gradle","logos:gradle",{"title":64,"description":65,"slug":66,"category":30,"icon":67},"Helm","Hoe we een Kubernetes-uitrol verpakken — service, configuratie, secrets en ingress als één versiebeheerde eenheid die je kunt promoveren en terugdraaien.","helm","logos:helm",{"title":69,"description":70,"slug":71,"category":19,"icon":72},"Kotlin","Waar we naar grijpen als een Flutter-app echt Android eronder nodig heeft — platform channels, achtergrondwerk en integraties met native SDK's.","kotlin","logos:kotlin-icon",{"title":74,"description":75,"slug":76,"category":8,"icon":72},"Kotlin Multiplatform","Bedrijfslogica delen tussen iOS en Android terwijl elk platform zijn eigen native UI houdt — het alternatief wanneer Flutter niet past.","kmp",{"title":78,"description":79,"slug":80,"category":30,"icon":81},"Kubernetes","Hoe we services in productie draaien — Helm-uitrollen, rollouts die terug te draaien zijn, en schalen zonder dat iemand om 3 uur 's nachts wakker hoeft te zijn.","kubernetes","logos:kubernetes",{"title":83,"description":84,"slug":85,"category":30,"icon":86},"NATS","Lichtgewicht berichtenverkeer tussen services — publish\u002Fsubscribe en request\u002Freply zonder het beheergewicht van een volledig brokercluster.","nats","logos:nats-icon",{"title":88,"description":89,"slug":90,"category":8,"icon":91},"Nuxt","Vue met serverrendering, routering en SEO al geregeld — hoe we marketingsites en webapps bouwen die bij het eerste laden snel en vindbaar moeten zijn.","nuxt","logos:nuxt-icon",{"title":93,"description":94,"slug":95,"category":19,"icon":96},"PHP","Waar we met een bestaande PHP-backend werken — hem uitbreiden, ermee integreren, en de mobiele en webclients bouwen die hij moet bedienen.","php","logos:php",{"title":98,"description":99,"slug":100,"category":101,"icon":102},"PostgreSQL","Onze standaarddatabase — waar we naar grijpen tenzij een product een specifieke reden geeft om dat niet te doen, van schema tot indexen.","postgres","database","logos:postgresql",{"title":104,"description":105,"slug":106,"category":19,"icon":107},"Python","Onze taal voor backends, datawerk en AI-integraties — inclusief de Python-bindings die we bij onze eigen Rust-tooling leveren.","python","logos:python",{"title":109,"description":110,"slug":111,"category":8,"icon":112},"React","De front-endbibliotheek waarin we werken als een product al React is — componenten, hooks, en het ecosysteem dat eromheen is gegroeid.","react","logos:react",{"title":114,"description":115,"slug":116,"category":101,"icon":117},"Redis","Waar we data neerzetten die snel moet zijn en opnieuw op te bouwen valt — caches, sessies, verzoeklimieten en achtergrondwachtrijen.","redis","logos:redis",{"title":119,"description":120,"slug":121,"category":19,"icon":122},"Ruby","De taal waarin onze mobiele releaseautomatisering geschreven is — Fastlane-lanes, eigen acties, en de CI-lijm die builds naar de winkels brengt.","ruby","logos:ruby",{"title":124,"description":125,"slug":126,"category":19,"icon":127},"Rust","Waar we heen gaan als prestaties én correctheid allebei tellen — documenten renderen, CLI-tooling, en services die snel en voorspelbaar moeten blijven.","rust","simple-icons:rust",{"title":129,"description":130,"slug":131,"category":101,"icon":132},"SQLite","De database die meereist in de app — lokale caches, offline-first opslag, en alles wat ook zonder netwerk moet blijven werken.","sqlite","logos:sqlite",{"title":134,"description":135,"slug":136,"category":8,"icon":137},"Strapi","Een headless CMS waar we naar grijpen als redacteuren de content moeten beheren — een echte beheeromgeving en een schone API, zonder ze zelf te bouwen.","strapi","logos:strapi-icon",{"title":139,"description":140,"slug":141,"category":19,"icon":142},"Swift","Waar we naar grijpen als een Flutter-app echt iOS eronder nodig heeft — platform channels, integraties met native SDK's, widgets en App Clips.","swift","logos:swift",{"title":144,"description":145,"slug":146,"category":8,"icon":142},"SwiftUI","Het UI-framework van Apple, waar we de native oppervlakken bouwen die een Flutter-app niet kan afdekken — widgets, App Clips, extensies en systeemintegraties.","swiftui",{"title":148,"description":149,"slug":150,"category":8,"icon":151},"Tailwind CSS","Hoe we elke front-end die we bouwen vormgeven — utility-klassen en designtokens in plaats van een stylesheet die alleen maar groeit en nooit wordt opgeschoond.","tailwind","logos:tailwindcss-icon",{"title":153,"description":154,"slug":155,"category":19,"icon":156},"TypeScript","De standaard voor alles wat we voor de browser en voor Node-services schrijven — types die integratiebugs vangen voordat ze een review halen.","typescript","logos:typescript-icon",{"title":158,"description":159,"slug":160,"category":8,"icon":161},"Vue","Ons front-endframework voor beheerpanelen, dashboards voor winkeliers en webapps die jaren onderhoudbaar moeten blijven, geen sprints.","vue","logos:vue",{"title":163,"description":164,"slug":165,"category":36,"icon":166},"Whisper","Het opensource spraakherkenningsmodel van OpenAI — de transcriptiemotor achter spraakinvoer, draaiend als backendservice én op het toestel in de app.","whisper","simple-icons:openai",{"id":168,"title":169,"author":170,"body":171,"description":880,"extension":881,"hero":882,"meta":885,"metaDescription":886,"metaTitle":887,"navigation":888,"ogDescription":889,"path":890,"seo":891,"slug":892,"stem":893,"summary":894,"timestamp":895,"topic":41,"updated":896,"__hash__":897},"blog_nl\u002Fblog\u002Fflutter-app-development-process.md","Het Flutter-ontwikkelproces: hoe we een app van idee naar App Store brengen","dima",{"type":172,"value":173,"toc":865},"minimark",[174,220,223,228,231,392,406,409,416,418,421,424,427,453,460,466,468,471,474,485,498,501,506,508,511,514,517,565,573,575,578,585,588,600,608,613,615,618,621,624,653,656,667,669,672,675,681,692,701,707,709,713,716,719,739,742,744,748,751,761,770,779,788,795,797,801,805,807,811,818,851,854],[175,176,177,181,182,185,186,185,189,185,192,185,195,185,198,201,202,205,206,210,211,214,215,219],"p",{},[178,179,180],"strong",{},"Kort samengevat."," Het Flutter-ontwikkelproces loopt in zeven fasen: ",[178,183,184],{},"verkenning en afbakening",", ",[178,187,188],{},"UX\u002FUI-ontwerp",[178,190,191],{},"architectuur en fundamenten",[178,193,194],{},"iteratief bouwen",[178,196,197],{},"testen en kwaliteit",[178,199,200],{},"uitbrengen",", en ",[178,203,204],{},"onderhoud na de lancering",". Wat ze verbindt is dat het ",[207,208,209],"em",{},"feedbackloops zijn, geen waterval"," — het ontwerp begint voordat de verkenning klaar is, testen loopt naast de bouw in plaats van erna, en elke twee weken krijg je iets installeerbaars op je telefoon in plaats van een statusrapport. De ene regel waar we niet van afwijken: ",[178,212,213],{},"de invarianten komen vóór de functiecode."," Het statemodel, het thema, de foutentaxonomie, de CI-pijplijn en de teststrategie worden in week één bepaald, want elk scherm dat daarna wordt gebouwd volgt ze of vecht ertegen. Een gebruikelijke bouw is 2 tot 3 maanden voor een ",[216,217],"term",{"slug":218},"mvp"," en 3 tot 5 maanden voor een volledig product, en de lancering is het midden van het proces, niet het einde.",[221,222],"hr",{},[224,225,227],"h2",{"id":226},"de-stappen-van-flutter-appontwikkeling-in-één-oogopslag","De stappen van Flutter-appontwikkeling in één oogopslag",[175,229,230],{},"Zeven fasen, in de volgorde waarin ze beginnen. Dit is de hele Flutter-ontwikkelcyclus op één scherm.",[232,233,234,256],"table",{},[235,236,237],"thead",{},[238,239,240,244,247,250,253],"tr",{},[241,242,243],"th",{},"Fase",[241,245,246],{},"Wat er gebeurt",[241,248,249],{},"Belangrijkste oplevering",[241,251,252],{},"Wie erbij zit",[241,254,255],{},"Gebruikelijke duur",[257,258,259,279,298,317,336,355,373],"tbody",{},[238,260,261,267,270,273,276],{},[262,263,264],"td",{},[178,265,266],{},"1. Verkenning en afbakening",[262,268,269],{},"Het idee wordt een concrete, geordende backlog; de schraplijst wordt afgesproken",[262,271,272],{},"Afgebakende backlog, offerte met vaste scope, planning",[262,274,275],{},"Oprichter of productleider, technisch leider, ontwerper",[262,277,278],{},"3 dagen – 2 weken",[238,280,281,286,289,292,295],{},[262,282,283],{},[178,284,285],{},"2. UX\u002FUI-ontwerp",[262,287,288],{},"Eerst het designsysteem, daarna flows en schermen daartegen",[262,290,291],{},"Designsysteem plus klikbaar prototype",[262,293,294],{},"Ontwerper, productleider, technisch leider",[262,296,297],{},"2–4 weken (overlapt de bouw)",[238,299,300,305,308,311,314],{},[262,301,302],{},[178,303,304],{},"3. Architectuur en fundamenten",[262,306,307],{},"Statemodel, mapindeling, foutentaxonomie, CI\u002FCD, teststrategie",[262,309,310],{},"Draaiend appskelet, groene pijplijn, besluitnotities",[262,312,313],{},"Technisch leider, backendengineer",[262,315,316],{},"1–2 weken",[238,318,319,324,327,330,333],{},[262,320,321],{},[178,322,323],{},"4. Iteratief bouwen",[262,325,326],{},"Verticale functieplakken, elke sprint demonstreerbaar",[262,328,329],{},"Elke 1–2 weken een installeerbare build",[262,331,332],{},"Engineers, ontwerper, productleider",[262,334,335],{},"4–16 weken",[238,337,338,343,346,349,352],{},[262,339,340],{},[178,341,342],{},"5. Testen en kwaliteit",[262,344,345],{},"Widget-, golden-, integratie- en toesteltesten",[262,347,348],{},"Testsuite in CI plus een hardingsronde",[262,350,351],{},"Engineers, testers, testers bij de klant",[262,353,354],{},"Doorlopend plus 1–2 weken harden",[238,356,357,362,365,368,371],{},[262,358,359],{},[178,360,361],{},"6. Uitbrengen",[262,363,364],{},"Winkelmateriaal, indienen, beoordeling, gefaseerde uitrol",[262,366,367],{},"Live app in de App Store en Google Play",[262,369,370],{},"Technisch leider, productleider, accounts van de klant",[262,372,316],{},[238,374,375,380,383,386,389],{},[262,376,377],{},[178,378,379],{},"7. Na de lancering",[262,381,382],{},"Monitoring, crashes afhandelen, itereren op echt gebruik",[262,384,385],{},"Maandelijkse releasecadans, crashvrij percentage",[262,387,388],{},"Engineers, productleider",[262,390,391],{},"Doorlopend",[175,393,394,395,400,401,405],{},"Die duren zijn bandbreedtes, en ze overlappen — de kalender is korter dan de som van de rijen. Waar de weken in een echt project werkelijk heen gaan staat in het bijbehorende stuk: ",[396,397,399],"a",{"href":398},"\u002Fblog\u002Fhow-long-to-build-a-flutter-app","hoe lang het duurt om een Flutter-app te bouwen",". Wat elke fase kost staat in ",[396,402,404],{"href":403},"\u002Fblog\u002Fflutter-app-development-cost-2026","Wat een Flutter-app kost in 2026",".",[175,407,408],{},"Structureel is dit hetzelfde proces voor mobiele appontwikkeling dat elk bekwaam team draait — de fasen zijn geen uitvinding van Flutter. Wat Flutter verandert is de economie erbinnen: één codebase om voor te ontwerpen, één om te testen, één om uit te brengen, en een interfacelaag die in code leeft in plaats van in een stylesheet. Dat laatste detail is waarom de ontwerp- en architectuurfasen hier zwaarder wegen dan elders.",[410,411],"how-to-schema",{":steps":412,"description":413,"name":414,"totalTime":415},"[{\"name\":\"Verkenning en afbakening\",\"text\":\"Maak van het idee een concrete, geordende backlog. Spreek af wat er in versie één komt en wat uitdrukkelijk wordt geschrapt. De uitkomst is een afgebakende backlog, een offerte met vaste scope, en een planning.\"},{\"name\":\"UX- en UI-ontwerp\",\"text\":\"Bouw eerst het designsysteem, ontwerp daarna flows en schermen daartegen. De uitkomst is een designsysteem en een klikbaar prototype dat de klant kan doorlopen voordat er functiecode bestaat.\"},{\"name\":\"Architectuur en fundamenten\",\"text\":\"Bepaal het statemodel, de mapindeling, de foutentaxonomie, de CI-pijplijn en de teststrategie voordat het functiewerk begint. De uitkomst is een draaiend appskelet met een groene pijplijn.\"},{\"name\":\"Iteratief bouwen\",\"text\":\"Bouw verticale functieplakken die van het scherm tot de backend reiken. Lever elke een tot twee weken een installeerbare build op en beoordeel besluiten in plaats van regels.\"},{\"name\":\"Testen en kwaliteit\",\"text\":\"Draai widgettests, goldentests en integratietests in continue integratie, plus tests op echte toestellen bij 200 procent tekstgrootte, in donkere modus, en op een afgeknepen netwerk.\"},{\"name\":\"Uitbrengen\",\"text\":\"Bereid winkelmateriaal voor, dien in bij de App Store en Google Play, handel de beoordeling af, en rol gefaseerd uit in plaats van in één keer naar iedereen. Automatiseer bouwen en uploaden met Fastlane.\"},{\"name\":\"Na de lancering en onderhoud\",\"text\":\"Bewaak crashes en prestaties, handel af wat echt gebruik blootlegt, en houd een vaste releasecadans aan. De lancering is het begin van het product, niet het einde van het project.\"}]","Hoe een Flutter-app van idee tot App Store wordt gebouwd, fase voor fase.","Het Flutter-ontwikkelproces","P12W",[221,417],{},[224,419,266],{"id":420},"_1-verkenning-en-afbakening",[175,422,423],{},"Verkenning is de fase waarin een idee een concrete, geordende lijst dingen wordt om te bouwen. Het is geen workshop met plakbriefjes. Het is een technisch leider en een ontwerper die de app doorvragen tot elk scherm een reden heeft om te bestaan.",[175,425,426],{},"Er komen drie dingen uit:",[428,429,430,437,447],"ul",{},[431,432,433,436],"li",{},[178,434,435],{},"Een backlog, geordend."," Niet \"gebruikersbeheer\" — \"inloggen met Apple, inloggen met e-mail, wachtwoordherstel, account verwijderen.\" Vage regels zijn waar ramingen sterven.",[431,438,439,442,443,446],{},[178,440,441],{},"Een schraplijst."," De functies die ",[207,444,445],{},"niet"," in versie één zitten, opgeschreven en afgesproken. Het waardevolste document in het proces, en degene waar klanten zich het hardst tegen verzetten.",[431,448,449,452],{},[178,450,451],{},"Een offerte met vaste scope en een planning",", afgeleid uit de backlog en niet uit een onderbuikgevoel over \"een app als deze\".",[175,454,455,456,459],{},"Hier worden budgetten en planningen werkelijk gezet, en daarom is een gehaaste verkenning de duurste manier om een week te besparen. Beschrijf je \"een simpele trainingstracker\" en geven wij een backlog van 40 schermen terug, dan is dat gat geen opvulling — onboarding, authenticatie, instellingen, account verwijderen, betalingen, pushmeldingen en offline werken zaten altijd al in de app die je beschreef. De ",[396,457,458],{"href":403},"kostenuitsplitsing"," behandelt hoe scope tot een bedrag optelt.",[175,461,462,465],{},[178,463,464],{},"Waar het breekt:"," verkenning met iemand die niet kan beslissen. Gaat elk antwoord terug naar een commissie, dan rekt de verkenning van één week naar vier en staat de raming op drijfzand.",[221,467],{},[224,469,285],{"id":470},"_2-uxui-ontwerp",[175,472,473],{},"UX\u002FUI-ontwerp is de fase waarin de visuele en interactietaal van de app wordt vastgelegd. Het begint bij het systeem, niet bij de schermen.",[175,475,476,477,480,481,484],{},"De eerste oplevering is een ",[178,478,479],{},"designsysteem",": een palet met lichte en donkere varianten, een typografische ladder, een ruimteschaal, componentstaten (standaard, ingedrukt, uitgeschakeld, ladend, fout), en de interactiewoordenschat — hoe ",[207,482,483],{},"deze app"," laden toont, een lege lijst toont, een onomkeerbare handeling bevestigt. Schermen worden daarna tegen dat systeem ontworpen.",[175,486,487,488,492,493,497],{},"Die volgorde is geen esthetische voorkeur; het is bouwsnelheid. Een Flutter-app rendert elke pixel uit Dart-code, en een volwassen designsysteem valt vrijwel één op één op ",[489,490,491],"code",{},"ThemeData"," af te beelden — één keer aangesloten, en elk later scherm wordt samengesteld uit componenten die al bestaan. Zonder krijg je wat we beschrijven in ",[396,494,496],{"href":495},"\u002Fblog\u002Fai-agents-struggle-with-flutter","hoe AI-agents worstelen met Flutter",": veertig schermen die elk werken en samen geen app vormen, kleuren die op elke aanroepplek hard staan, en een merkwijziging die een diff van enkele honderden bestanden kost.",[175,499,500],{},"We ontwerpen ook voor de beperkingen die Flutter-lay-outs later breken — lange teksten in de tweede taal, 200% tekstgrootte, kleine telefoons op 320pt. Die in Figma vangen kost minuten; ze bij het testen vangen kost een herontwerp. Wat je uit de fase krijgt is een designsysteem plus een klikbaar prototype, voordat er één regel functiecode bestaat.",[175,502,503,505],{},[178,504,464],{}," ontwerpen per beoordelingsronde. Drie rondes \"kunnen we nog één optie zien\" op het beginscherm vertraagt elke fase erachter, want engineers kunnen niet tegen een bewegend doel bouwen.",[221,507],{},[224,509,304],{"id":510},"_3-architectuur-en-fundamenten",[175,512,513],{},"Architectuur is de fase waarin de besluiten vallen waar elk later scherm van afhangt — voordat er een scherm bestaat. Praktisch betekent dat dat we een of twee weken een app bouwen die niets doet.",[175,515,516],{},"Die veertien dagen bepalen de volgende zes maanden. Wat er wordt beslecht:",[428,518,519,529,535,545,559],{},[431,520,521,524,525,528],{},[178,522,523],{},"Statebeheer."," Eén keuze, overal toegepast. Sealed stateklassen, zodat onmogelijke combinaties — tegelijk ladend ",[207,526,527],{},"en"," fout — niet weer te geven zijn in plaats van slechts onwaarschijnlijk.",[431,530,531,534],{},[178,532,533],{},"Mapindeling en modulegrenzen."," Waar een functie leeft, wat hij mag importeren.",[431,536,537,540,541,544],{},[178,538,539],{},"Een foutentaxonomie."," Benoemde faalwijzen — netwerk, verlopen authenticatie, validatie, geweigerde betaling, conflict — in plaats van één ",[489,542,543],{},"Er ging iets mis"," dat elke bug onreproduceerbaar maakt.",[431,546,547,550,551,554,555,558],{},[178,548,549],{},"CI\u002FCD."," Pijplijn groen op dag één: ",[489,552,553],{},"flutter analyze"," met lints die als errors gelden, ",[489,556,557],{},"flutter test",", een buildartefact per commit, Fastlane aangesloten op TestFlight en het interne kanaal van Play.",[431,560,561,564],{},[178,562,563],{},"Teststrategie."," Welke lagen widgettests krijgen, welke schermen goldens krijgen, wat het framebudget is.",[175,566,567,568,572],{},"Wij noemen dat de invarianten, en ze komen eerst omdat ze niet goedkoop achteraf zijn aan te brengen. \"Volg het bestaande patroon\" is een goedkope instructie om aan een mens of een agent te geven — maar alleen zodra er een patroon is om naar te wijzen. In een repo zonder verzint iedereen zijn eigen, en het resultaat is de opgraving waarvoor we twee jaar later betaald worden om te ",[396,569,571],{"href":570},"\u002Fservices\u002Fai-code-audit","beoordelen",". De fase eindigt met een draaiend skelet, een groene pijplijn, en korte besluitnotities voor de keuzes die een toekomstige engineer anders opnieuw ter discussie stelt.",[221,574],{},[224,576,323],{"id":577},"_4-iteratief-bouwen",[175,579,580,581,584],{},"Iteratief bouwen is de fase waarin functies in kleine, demonstreerbare stappen worden gebouwd en opgeleverd in plaats van in één klomp aan het eind. De Flutter-werkstroom loopt hier in ",[178,582,583],{},"verticale functieplakken",": één functie van begin tot eind gebouwd — interface, state, API-koppeling, foutafhandeling, tests — in plaats van \"alle schermen\" gevolgd door \"alle leidingen\". Een plak die je op een telefoon kunt openen vertelt je iets waars. Een map met niet-aangesloten schermen niet.",[175,586,587],{},"De cadans is elke een tot twee weken een demonstreerbare stap, op jouw toestel via TestFlight of het interne kanaal van Play. Geen schermafbeelding, geen video — de app, op je telefoon, die je aan een collega kunt geven.",[175,589,590,591,594,595,599],{},"Code review gaat over ",[178,592,593],{},"besluiten, niet over regels",". Is dit hetzelfde statemodel als de rest van de app? Is het vanuit het thema vormgegeven? Wordt deze waarde één keer afgeleid, of voor de derde keer? Overleeft deze tekst het Russisch? Agents schrijven een groot deel van de code en onze engineers nemen die besluiten, en zo ",[396,596,598],{"href":597},"\u002Fblog\u002Fbuilding-with-ai","bouwen wij"," — regel voor regel gegenereerde code beoordelen schaalt niet; op besluitniveau beoordelen wel.",[175,601,602,603,607],{},"Ontwerp en testen lopen ondertussen door, en backendwerk ook — en daarom wordt een systeem als de ",[396,604,606],{"href":605},"\u002Fblog\u002Fextraetf-realtime-fintech-flutter-go","realtime marktdatalaag achter ExtraETF"," gebouwd en onder belasting getest terwijl de Flutter-client nog schermen tegen een mock-endpoint samenstelt.",[175,609,610,612],{},[178,611,464],{}," stille sprints. Gaan er twee weken voorbij zonder dat je een build opent, dan is de lus gebroken en hoor je een maand te laat over het misverstand.",[221,614],{},[224,616,342],{"id":617},"_5-testen-en-kwaliteit",[175,619,620],{},"Testen is de laag die van de eerste functieplak tot de laatste doorloopt, geen fase die er aan het eind op wordt geschroefd — geautomatiseerde controles in CI bij elke commit, plus een hardingsronde vóór de release.",[175,622,623],{},"Wat er bij elke commit in CI draait:",[428,625,626,632,641,647],{},[431,627,628,631],{},[178,629,630],{},"Widgettests"," voor gedrag: de knop wordt uitgeschakeld tijdens het versturen, de fout verdwijnt bij opnieuw typen, de lijst pagineert op de juiste plek.",[431,633,634,640],{},[178,635,636],{},[216,637,639],{"slug":638},"golden-test","Goldentests"," voor het uiterlijk — het testtype met de grootste hefboom in Flutter, want een golden maakt van \"brak dit herontwerp de lege staat op 320pt in donkere modus bij 200% tekstgrootte?\" een controle die in seconden draait in plaats van een vraag die niemand stelt.",[431,642,643,646],{},[178,644,645],{},"Integratietests"," voor de flows die geld kosten als ze breken: aanmelden, afrekenen, betalen.",[431,648,649,652],{},[178,650,651],{},"Een regressietest voor elke opgeloste bug",", zodat hij niet terug kan komen.",[175,654,655],{},"Wat een machine niet kan, doet een mens op echte hardware: de app op 200% tekstgrootte, in donkere modus, in beide talen, op een kleine oude Android-telefoon, met een afgeknepen netwerk en daarna midden in een verzoek afgesloten. Tien minuten daarvan vindt een hele categorie defecten die geen statische controle ooit meldt.",[175,657,658,659,662,663,666],{},"En we houden een ",[178,660,661],{},"framebudget"," aan — 16,6 ms bij 60 fps, gecontroleerd op profielbuilds. Een lijst die hapert nadat iemand een schaduw en een ",[489,664,665],{},"Opacity"," in de itembuilder heeft gezet, is een regressie die geen unittest vangt en elke gebruiker voelt.",[221,668],{},[224,670,361],{"id":671},"_6-uitbrengen",[175,673,674],{},"Uitbrengen is de fase waarin de app door indiening, beoordeling en uitrol gaat. Het is 1 tot 2 weken werk dat de meeste planningen voor een middag aanzien.",[175,676,677,680],{},[178,678,679],{},"Winkelmateriaal en metadata"," — schermafbeeldingen in elk vereist formaat, beschrijvingen, trefwoorden, privacylabels, verklaringen over gegevensveiligheid. Account verwijderen moet in de app bestaan; beide winkels handhaven dat.",[175,682,683,686,687,691],{},[178,684,685],{},"De realiteit van de beoordeling."," De beoordeling van Apple duurt doorgaans 24 tot 48 uur, maar doorgaans is geen garantie, en de afwijscategorieën zijn voorspelbaar: ontbrekende accountverwijdering, een inlogmuur zonder demogegevens, een onvolledige privacyverklaring, betalingen die om de in-app-aankoop heen lopen. Voor wie meerdere merkapps uitbrengt is richtlijn 4.2.6 een vak apart — we behandelden ",[396,688,690],{"href":689},"\u002Fblog\u002Fwhite-label-app-platform-flutter","wat werkelijk door de beoordeling komt"," op vlootschaal. De beoordeling van Google is meestal sneller, maar een nieuw ontwikkelaarsaccount kan dagen in verlengde beoordeling blijven hangen.",[175,693,694,700],{},[178,695,696,405],{},[216,697,699],{"slug":698},"staged-rollout","Gefaseerde uitrol"," We leveren aan 10% op Google Play en kijken naar het crashvrije percentage voordat we verbreden; gefaseerd uitbrengen in de App Store doet hetzelfde. Een slechte build die je bij 10% betrapt is een slechte middag. Dezelfde build bij 100% is een slechte week.",[175,702,703,706],{},[178,704,705],{},"Automatisering."," Fastlane bouwt, ondertekent en uploadt naar beide winkels — inclusief opstellingen met meerdere uitgevers waarbij elk merk onder een eigen account uitkomt. Met de hand uitbrengen is waar om 23 uur een versienummer verkeerd wordt ingetypt.",[221,708],{},[224,710,712],{"id":711},"_7-na-de-lancering-en-onderhoud","7. Na de lancering en onderhoud",[175,714,715],{},"Onderhoud na de lancering is de fase waarin de app echte gebruikers ontmoet en blijft veranderen. De lancering is het begin ervan, niet het einde van het project.",[175,717,718],{},"Echt gebruik legt meteen bloot wat geen test kon: de Android-schil van een fabrikant die pushmeldingen breekt, de OS-update die een API uitfaseert, de crash op een toestel dat je niet bezat. Dus gaat het proces door:",[428,720,721,727,733],{},[431,722,723,726],{},[178,724,725],{},"Monitoring"," — crashrapportage, performance-traces en analytics op de flows die ertoe doen, de eerste 48 uur elk uur bekeken en daarna wekelijks.",[431,728,729,732],{},[178,730,731],{},"Iteratie"," — de backlog die je bij de verkenning schrapte, opnieuw geprioriteerd tegen wat mensen werkelijk doen.",[431,734,735,738],{},[178,736,737],{},"Onderhoud"," — jaarlijkse OS-releases, SDK-updates, wijzigingen in winkelbeleid, certificaten en API-sleutels roteren. Flutter en zijn plug-ins bewegen; een app die een jaar onaangeraakt blijft is niet stabiel, hij is oudbakken.",[175,740,741],{},"Begroot voor het product, niet voor het project. Een app die uitkomt en daarna niets meer krijgt, is langzaam onderweg terug naar een herbouw.",[221,743],{},[224,745,747],{"id":746},"hoe-we-het-op-koers-houden","Hoe we het op koers houden",[175,749,750],{},"Processen falen niet dramatisch. Ze lopen een paar dagen tegelijk uit. Vier dingen voorkomen het meeste ervan, en elk heeft een bekende faalwijze.",[175,752,753,756,757,760],{},[178,754,755],{},"Strakke scope, opgeschreven."," De schraplijst uit de verkenning is een contract met de planning; nieuwe ideeën gaan op de v2-lijst en dat zeggen we hardop. ",[207,758,759],{},"Breekt wanneer"," niemand de lijst verdedigt — elke \"kleine toevoeging\" is werkelijk klein, en de twintigste is een maand.",[175,762,763,766,767,769],{},[178,764,765],{},"Een besluitvaardige cadans met de opdrachtgever."," Eén persoon die een scherm kan goedkeuren op de dag dat hij het ziet, een wekelijks gesprek, een build om te installeren. ",[207,768,759],{}," besluiten via een commissie lopen. Bij een bouw van zes weken is één week besluitvertraging al 20% overschrijding voordat een engineer iets fout heeft gedaan.",[175,771,772,775,776,778],{},[178,773,774],{},"Invarianten vooraf gezet."," De reden dat onze derde maand ongeveer kost wat onze eerste kostte. ",[207,777,759],{}," een deadline iedereen verleidt week één over te slaan en met schermen te beginnen.",[175,780,781,784,785,787],{},[178,782,783],{},"Korte feedbackloops."," Installeerbare builds elke een tot twee weken, testen in CI, een demo die je ook echt opent. ",[207,786,759],{}," de klant stil valt — de lus werkt alleen als er iemand aan de andere kant zit.",[175,789,790,791,794],{},"En de eerlijke: ",[178,792,793],{},"onze ramingen zitten in één richting fout."," Koppelingen zijn waar ze het meest missen. Elke SDK van een derde partij lijkt in het voorstel een middag en wordt een debugsessie van twee weken over randgevallen op Android 10. We bouwen daar speling voor in in plaats van het weg te wensen, en gaat een fase overlopen, dan hoor je dat die week en niet op de deadline.",[221,796],{},[224,798,800],{"id":799},"veelgestelde-vragen","Veelgestelde vragen",[802,803],"questions",{":items":804},"[{\"title\":\"Wat zijn de stappen om een Flutter-app te bouwen?\",\"text\":\"Er zijn zeven stappen: verkenning en afbakening, UX\u002FUI-ontwerp, architectuur en fundamenten, iteratief bouwen, testen en kwaliteit, uitbrengen, en onderhoud na de lancering. De verkenning maakt van het idee een geordende backlog en een vaste scope, het ontwerp levert een designsysteem en een prototype op, en de architectuur legt het statemodel, de foutafhandeling, de CI-pijplijn en de teststrategie vast voordat er functiecode wordt geschreven. Daarna bouwt de ontwikkeling functies in verticale plakken met tests die ernaast lopen in plaats van erna, gevolgd door uitbrengen in de winkels en doorlopend onderhoud.\"},{\"title\":\"Hoe werkt het Flutter-ontwikkelproces?\",\"text\":\"Het werkt als een set overlappende feedbackloops in plaats van een lineaire waterval. Het ontwerp begint voordat de verkenning klaar is, de technische fundamenten worden gelegd terwijl de laatste schermen worden ontworpen, en testen loopt doorlopend in continue integratie in plaats van als fase aan het eind. De klant ziet elke een tot twee weken een installeerbare build, en dat is de lus die misverstanden vangt terwijl ze nog goedkoop te herstellen zijn. Een gebruikelijke bouw is twee tot drie maanden voor een MVP en drie tot vijf maanden voor een volledig product.\"},{\"title\":\"Wat komt eerst bij appontwikkeling?\",\"text\":\"De verkenning komt eerst: het idee omzetten in een concrete, geordende backlog met een expliciete lijst van wat niet in versie één zit. Budgetten en planningen worden hier werkelijk gezet en niet later, want alles daarna is uitvoering tegen deze besluiten. Aan de technische kant is het eerste wat gebouwd wordt geen functie maar het fundament — het statemodel, de mapindeling, de foutentaxonomie, de CI-pijplijn en de teststrategie — omdat die niet goedkoop achteraf zijn aan te brengen zodra er veertig schermen bestaan.\"},{\"title\":\"Hoe wordt er getest bij Flutter-apps?\",\"text\":\"Testen loopt doorlopend, niet als slotfase. Widgettests dekken gedrag, goldentests vangen visuele regressies door gerenderde schermen met referentiebeelden te vergelijken, en integratietests dekken de stromen die geld kosten als ze breken. Daarbovenop testen engineers op echte toestellen bij 200 procent tekstgrootte, in donkere modus, in elke ondersteunde taal, en op een geknepen of weggevallen netwerk. Frametijden worden op profielbuilds tegen een budget van 16,6 ms gelegd, want haperen is een regressie die geen unittest vangt en elke gebruiker voelt.\"},{\"title\":\"Hoe lang duurt elke fase van een Flutter-project?\",\"text\":\"De verkenning kost drie dagen tot twee weken, het ontwerp twee tot vier weken, en architectuur en fundamenten een tot twee weken. Iteratief bouwen loopt vier tot zestien weken afhankelijk van de scope, met testen doorlopend plus een hardingsronde van een tot twee weken. Uitbrengen kost een tot twee weken inclusief winkelmateriaal, beoordeling en gefaseerde uitrol. De fasen overlappen sterk, dus de kalender is korter dan de som van die bandbreedtes — doorgaans twee tot drie maanden voor een MVP en drie tot vijf voor een volledig product.\"},{\"title\":\"Wat gebeurt er nadat een Flutter-app is gelanceerd?\",\"text\":\"De lancering is het begin van het product, niet het einde van het project. De eerste 48 uur gaan op aan crashrapporten, performance-traces en het percentage van de gefaseerde uitrol bekijken voordat je verbreedt. Daarna wordt het werk itereren op echte gebruiksdata plus onderhoud: jaarlijkse releases van iOS en Android, updates van Flutter en plug-ins, wijzigingen in winkelbeleid, en certificaten en API-sleutels wisselen. Een app die uitkomt en daarna niets meer krijgt is niet stabiel, hij gaat stilletjes richting een herbouw.\"},{\"title\":\"Hoe wordt agile gebruikt bij Flutter-ontwikkeling?\",\"text\":\"Het wordt gebruikt als korte feedbackloops en niet als ceremonieel raamwerk. Werk wordt gebouwd in verticale functieplakken die van het scherm tot de backend reiken, zodat elke stap iets is dat je kunt installeren en gebruiken en geen map met niet-aangesloten schermen. Sprints duren een tot twee weken en elke sprint eindigt met een build op het toestel van de klant via TestFlight of het interne kanaal van Play. Wat bewust niet agile blijft is de architectuur: het statemodel, het thema, de foutentaxonomie en de teststrategie worden vooraf gezet, want daarop itereren wanneer er veertig schermen bestaan is een herbouw en geen sprint.\"}]",[221,806],{},[224,808,810],{"id":809},"baken-je-bouw-met-ons-af","Baken je bouw met ons af",[175,812,813,814,817],{},"Zo worden Flutter-apps gebouwd wanneer iemand het proces werkelijk draait. Beoordeel je bureaus, dan ",[207,815,816],{},"is"," het proces het product — schermafbeeldingen kan iedereen laten zien. Wat bepaalt of je app op tijd uitkomt is of er een echte machine achter zit: een schraplijst die iemand verdedigt, invarianten die in week één worden gezet, elke veertien dagen een build op je telefoon, en tests die draaien voordat een mens kijkt.",[428,819,820,831,841],{},[431,821,822,825,826,830],{},[178,823,824],{},"Plan een verkennend gesprek"," en we halen je idee door stap één: ",[396,827,829],{"href":828},"\u002Fcontact","neem contact op",". Je krijgt een geordende backlog, een schraplijst, en een offerte met vaste scope — geen bandbreedte om je in te verstoppen.",[431,832,833,836,837,405],{},[178,834,835],{},"Bekijk het aanbod"," — team, stack en tariefniveaus op de pagina ",[396,838,840],{"href":839},"\u002Fservices\u002Fflutter-app-development","Flutter-appontwikkeling",[431,842,843,846,847,850],{},[178,844,845],{},"Heb je al een bouw?"," Draaide iemand anders dit proces slecht, dan vertelt een ",[396,848,849],{"href":570},"audit van AI-code"," je wat het kost om het ter plekke te herstellen — vrijwel altijd minder dan de herbouw die je wordt aangeboden.",[175,852,853],{},"Vertel ons wat je bouwt en waar je vastzit, en we zeggen welke fasen makkelijk worden en welke pijn gaan doen.",[855,856,857],"post-credits",{},[175,858,859,860,864],{},"Dima is lead Flutter-developer bij ",[396,861,863],{"href":862},"\u002F","Nerdy Production",", een Flutter-first bureau dat apps van verkenning tot de App Store brengt in fintech, retail en AI-producten.",{"title":866,"searchDepth":867,"depth":867,"links":868},"",2,[869,870,871,872,873,874,875,876,877,878,879],{"id":226,"depth":867,"text":227},{"id":420,"depth":867,"text":266},{"id":470,"depth":867,"text":285},{"id":510,"depth":867,"text":304},{"id":577,"depth":867,"text":323},{"id":617,"depth":867,"text":342},{"id":671,"depth":867,"text":361},{"id":711,"depth":867,"text":712},{"id":746,"depth":867,"text":747},{"id":799,"depth":867,"text":800},{"id":809,"depth":867,"text":810},"Kort samengevat. Het Flutter-ontwikkelproces loopt in zeven fasen: verkenning en afbakening, UX\u002FUI-ontwerp, architectuur en fundamenten, iteratief bouwen, testen en kwaliteit, uitbrengen, en onderhoud na de lancering. Wat ze verbindt is dat het feedbackloops zijn, geen waterval — het ontwerp begint voordat de verkenning klaar is, testen loopt naast de bouw in plaats van erna, en elke twee weken krijg je iets installeerbaars op je telefoon in plaats van een statusrapport. De ene regel waar we niet van afwijken: de invarianten komen vóór de functiecode. Het statemodel, het thema, de foutentaxonomie, de CI-pijplijn en de teststrategie worden in week één bepaald, want elk scherm dat daarna wordt gebouwd volgt ze of vecht ertegen. Een gebruikelijke bouw is 2 tot 3 maanden voor een  en 3 tot 5 maanden voor een volledig product, en de lancering is het midden van het proces, niet het einde.","md",{"type":883,"src":884},"image","\u002Fblog\u002Fflutter-app-development-process.webp",{},"Hoe een Flutter-app werkelijk gebouwd wordt — van verkenning tot uitbrengen en onderhoud, fase voor fase, met de werkwijzen die het op koers houden.","Het Flutter-ontwikkelproces, stap voor stap",true,"Van verkenning tot App Store, fase voor fase — hoe een Flutter-bouw werkelijk loopt wanneer het korte feedbackloops zijn in plaats van een waterval.","\u002Fblog\u002Fflutter-app-development-process",{"title":169,"description":880},"flutter-app-development-process","blog\u002Fflutter-app-development-process","Het werkelijke proces achter een Flutter-bouw — verkenning, ontwerp, architectuur, iteratief bouwen, testen, uitbrengen en onderhoud — gedraaid als korte feedbackloops in plaats van een waterval. Wat er in elke fase gebeurt, wat je eruit krijgt, wie erbij zit, hoe lang het duurt, en de specifieke plekken waar het proces breekt.","2026-07-29T18:35:16Z",null,"OLinatLUtNWpjF3o0STtxul1a1ZPr08XeIXqfsSklvI",[899,955,1002,1052,1142,1194],{"id":900,"bio":901,"expertise":906,"extension":922,"links":923,"meta":927,"metaDescription":928,"name":933,"ogDescription":936,"photo":941,"role":942,"seniority":947,"skills":948,"slug":170,"specialization":949,"stem":170,"__hash__":954},"team_members\u002Fdima.yaml",{"en":902,"ru":903,"es":904,"nl":905},"Dima has been building with [Flutter](\u002Ftechnologies\u002Fflutter) since 2021, and specializes in :term[state management]{slug=\"state-management\"} and app architecture.\n\nHe has hands-on experience with real-time communication protocols — :term{slug=\"webrtc\"} for audio and video, and :term{slug=\"xmpp\"} for messaging — which makes him comfortable with the network-heavy, stateful features many teams struggle to get right.\n","Дима работает с [Flutter](\u002Ftechnologies\u002Fflutter) с 2021 года и специализируется на :term[state management]{slug=\"state-management\"} и архитектуре приложений.\n\nУ него есть практический опыт с протоколами реального времени — :term{slug=\"webrtc\"} для аудио и видео и :term{slug=\"xmpp\"} для обмена сообщениями, — поэтому ему близки сетевые stateful-фичи, которые многим командам даются с трудом.\n","Dima trabaja con [Flutter](\u002Ftechnologies\u002Fflutter) desde 2021 y se especializa en :term[gestión de estado]{slug=\"state-management\"} y arquitectura de aplicaciones.\n\nTiene experiencia práctica con protocolos de comunicación en tiempo real —:term{slug=\"webrtc\"} para audio y vídeo, y :term{slug=\"xmpp\"} para mensajería—, lo que le hace sentirse cómodo con esas funcionalidades con mucho estado y mucha red que a muchos equipos se les atragantan.\n","Dima werkt sinds 2021 met [Flutter](\u002Ftechnologies\u002Fflutter) en is gespecialiseerd in :term[state management]{slug=\"state-management\"} en applicatiearchitectuur.\n\nHij heeft praktijkervaring met protocollen voor realtime communicatie — :term{slug=\"webrtc\"} voor audio en video, en :term{slug=\"xmpp\"} voor berichten — waardoor hij zich thuis voelt bij de netwerkzware functies met veel staat waar veel teams moeite mee hebben.\n",[907,910,915,917],{"en":908,"ru":908,"es":909,"nl":908},"State management","Gestión de estado",{"en":911,"ru":912,"es":913,"nl":914},"Application architecture","Архитектура приложений","Arquitectura de aplicaciones","Applicatiearchitectuur",{"en":916,"ru":916,"es":916,"nl":916},"WebRTC",{"en":918,"ru":919,"es":920,"nl":921},"XMPP messaging","Обмен сообщениями по XMPP","Mensajería XMPP","Berichten via XMPP","yaml",[924],{"type":925,"address":926},"email","konopatov@nerdy.pro",{},{"en":929,"ru":930,"es":931,"nl":932},"Lead Flutter developer at Nerdy Production, building real-time apps since 2021 — state management, app architecture, WebRTC and XMPP.","Ведущий Flutter-разработчик Nerdy Production: приложения реального времени с 2021 года — state management, архитектура, WebRTC и XMPP.","Lead de desarrollo Flutter en Nerdy Production, construyendo apps en tiempo real desde 2021: gestión de estado, arquitectura de aplicaciones, WebRTC y XMPP.","Lead Flutter-developer bij Nerdy Production, bouwt sinds 2021 realtime-apps — state management, applicatiearchitectuur, WebRTC en XMPP.",{"en":934,"ru":935,"es":934,"nl":934},"Dima","Дима",{"en":937,"ru":938,"es":939,"nl":940},"Lead Flutter developer at Nerdy Production — real-time apps since 2021, and the state management that keeps them from falling over.","Ведущий Flutter-разработчик Nerdy Production: приложения реального времени с 2021 года и state management, на котором они держатся.","Lead de desarrollo Flutter en Nerdy Production: apps en tiempo real desde 2021 y la gestión de estado que evita que se caigan.","Lead Flutter-developer bij Nerdy Production — realtime-apps sinds 2021, en het state management dat ze overeind houdt.","\u002Fteam\u002Fdima.webp",{"en":943,"ru":944,"es":945,"nl":946},"Lead Flutter Developer","Ведущий Flutter-разработчик","Lead de desarrollo Flutter","Lead Flutter-developer","lead",[41,18,155,160,90,111,150,95],{"en":950,"ru":951,"es":952,"nl":953},"Real-time apps, state management, and architecture","Приложения реального времени, state management и архитектура","Apps en tiempo real, gestión de estado y arquitectura","Realtime-apps, state management en architectuur","1TuxUt3zjdVkQUvMf9dBITG872C0exrdZyyoKw1beiE",{"id":956,"bio":957,"expertise":962,"extension":922,"links":896,"meta":973,"metaDescription":974,"name":979,"ogDescription":982,"photo":987,"role":988,"seniority":993,"skills":994,"slug":995,"specialization":996,"stem":995,"__hash__":1001},"team_members\u002Fmasha.yaml",{"en":958,"ru":959,"es":960,"nl":961},"Masha builds [Flutter](\u002Ftechnologies\u002Fflutter) apps where design and copy are treated as one job.\n\nShe specializes in UI\u002FUX — turning product requirements into clean, usable interfaces — and in the writing inside the app, from onboarding flows to the microcopy that makes a screen make sense. The result is apps that feel considered, not just functional.\n","Маша делает приложения на [Flutter](\u002Ftechnologies\u002Fflutter), где дизайн и текст — одна задача.\n\nОна специализируется на UI\u002FUX, превращая продуктовые требования в чистые и удобные интерфейсы, и на текстах внутри приложения — от онбординга до микрокопирайта, который делает экран понятным. В итоге приложения получаются продуманными, а не просто рабочими.\n","Masha crea apps en [Flutter](\u002Ftechnologies\u002Fflutter) donde el diseño y el texto se tratan como un mismo trabajo.\n\nSe especializa en UI\u002FUX —convertir requisitos de producto en interfaces limpias y usables— y en la escritura dentro de la app, desde los flujos de onboarding hasta el microcopy que hace que una pantalla se entienda. El resultado son apps que se sienten pensadas, no solo funcionales.\n","Masha bouwt [Flutter](\u002Ftechnologies\u002Fflutter)-apps waarin ontwerp en tekst als één taak worden behandeld.\n\nZe is gespecialiseerd in UI\u002FUX — productwensen omzetten in heldere, bruikbare interfaces — en in de teksten binnen de app, van onboarding tot de microteksten die een scherm begrijpelijk maken. Het resultaat zijn apps die doordacht aanvoelen en niet alleen werken.\n",[963,968],{"en":964,"ru":965,"es":966,"nl":967},"UI\u002FUX design","UI\u002FUX-дизайн","Diseño UI\u002FUX","UI\u002FUX-ontwerp",{"en":969,"ru":970,"es":971,"nl":972},"Product copywriting","Продуктовый копирайтинг","Redacción de producto","Productteksten",{},{"en":975,"ru":976,"es":977,"nl":978},"Flutter developer at Nerdy Production working where design meets copy — UI\u002FUX, onboarding flows, and the microcopy that makes a screen make sense.","Flutter-разработчик Nerdy Production на стыке дизайна и текста: UI\u002FUX, онбординг и микрокопирайт, который делает экран понятным.","Desarrolladora Flutter en Nerdy Production, donde el diseño se encuentra con el texto: UI\u002FUX, onboarding y el microcopy que hace que una pantalla se entienda.","Flutter-developer bij Nerdy Production op het snijvlak van ontwerp en tekst — UI\u002FUX, onboarding, en de microteksten die een scherm begrijpelijk maken.",{"en":980,"ru":981,"es":980,"nl":980},"Masha","Маша",{"en":983,"ru":984,"es":985,"nl":986},"Flutter developer at Nerdy Production working where design meets copy — onboarding flows and the microcopy that makes a screen make sense.","Flutter-разработчик Nerdy Production на стыке дизайна и текста: онбординг и микрокопирайт, который делает экран понятным.","Desarrolladora Flutter en Nerdy Production, donde el diseño se encuentra con el texto: onboarding y el microcopy que hace entender una pantalla.","Flutter-developer bij Nerdy Production op het snijvlak van ontwerp en tekst — onboarding en de microteksten die een scherm begrijpelijk maken.","\u002Fteam\u002Fmasha.webp",{"en":989,"ru":990,"es":991,"nl":992},"Flutter Developer","Flutter-разработчик","Desarrolladora Flutter","Flutter-developer","middle",[41,18],"masha",{"en":997,"ru":998,"es":999,"nl":1000},"UI\u002FUX and copywriting for Flutter apps","UI\u002FUX и копирайтинг для Flutter-приложений","UI\u002FUX y redacción para apps Flutter","UI\u002FUX en teksten voor Flutter-apps","z3c64iWR39RIrn8wE0elSy00IfCITYgNkbgp_G_sslk",{"id":1003,"bio":1004,"expertise":1009,"extension":922,"links":1020,"meta":1023,"metaDescription":1024,"name":1029,"ogDescription":1032,"photo":1037,"role":1038,"seniority":1043,"skills":1044,"slug":1045,"specialization":1046,"stem":1045,"__hash__":1051},"team_members\u002Fmaxim.yaml",{"en":1005,"ru":1006,"es":1007,"nl":1008},"Maxim is a polyglot engineer who moves comfortably across [Go](\u002Ftechnologies\u002Fgo), [Flutter](\u002Ftechnologies\u002Fflutter), [Python](\u002Ftechnologies\u002Fpython), and [TypeScript](\u002Ftechnologies\u002Ftypescript), which lets him own a feature from the backend to the screen.\n\nHe came up at Ozon, one of Russia's largest marketplaces, where scale makes reliability non-negotiable — and it shows in his work: testing is a first-class part of how he builds, not an afterthought bolted on at the end.\n","Максим — полиглот-инженер, свободно работающий с [Go](\u002Ftechnologies\u002Fgo), [Flutter](\u002Ftechnologies\u002Fflutter), [Python](\u002Ftechnologies\u002Fpython) и [TypeScript](\u002Ftechnologies\u002Ftypescript), что позволяет ему вести фичу от бэкенда до экрана.\n\nОн вырос в Ozon, одном из крупнейших маркетплейсов России, где масштаб делает надёжность обязательной, — и это видно в его работе: тестирование для него первоклассная часть разработки, а не то, что прикручивают в конце.\n","Maxim es un ingeniero políglota que se mueve con soltura entre [Go](\u002Ftechnologies\u002Fgo), [Flutter](\u002Ftechnologies\u002Fflutter), [Python](\u002Ftechnologies\u002Fpython) y [TypeScript](\u002Ftechnologies\u002Ftypescript), lo que le permite hacerse cargo de una funcionalidad desde el backend hasta la pantalla.\n\nSe formó en Ozon, uno de los mayores marketplaces de Rusia, donde la escala hace que la fiabilidad no sea negociable, y se le nota: el testing es para él una parte de primera clase de cómo construye, no un añadido al final.\n","Maxim is een polyglotte engineer die zich moeiteloos beweegt tussen [Go](\u002Ftechnologies\u002Fgo), [Flutter](\u002Ftechnologies\u002Fflutter), [Python](\u002Ftechnologies\u002Fpython) en [TypeScript](\u002Ftechnologies\u002Ftypescript), waardoor hij een functie van de backend tot het scherm kan dragen.\n\nHij is opgegroeid bij Ozon, een van de grootste marktplaatsen van Rusland, waar schaal betrouwbaarheid onderhandelbaar maakt noch toestaat — en dat zie je terug in zijn werk: testen is bij hem een volwaardig onderdeel van hoe hij bouwt, geen bijzaak die er aan het eind bij komt.\n",[1010,1015],{"en":1011,"ru":1012,"es":1013,"nl":1014},"Automated testing","Автоматизированное тестирование","Testing automatizado","Geautomatiseerd testen",{"en":1016,"ru":1017,"es":1018,"nl":1019},"High-load backend systems","Высоконагруженные бэкенд-системы","Sistemas backend de alta carga","Backendsystemen met hoge belasting",[1021],{"type":925,"address":1022},"maxim@nerdy.pro",{},{"en":1025,"ru":1026,"es":1027,"nl":1028},"Senior engineer at Nerdy Production across Go, Flutter, Python and TypeScript — from backend to screen, with automated testing built in.","Старший инженер Nerdy Production: Go, Flutter, Python и TypeScript — от бэкенда до экрана, с автотестами как частью разработки.","Ingeniero senior en Nerdy Production con Go, Flutter, Python y TypeScript: del backend a la pantalla, con testing automatizado incorporado.","Senior engineer bij Nerdy Production met Go, Flutter, Python en TypeScript — van backend tot scherm, met geautomatiseerd testen ingebouwd.",{"en":1030,"ru":1031,"es":1030,"nl":1030},"Maxim","Максим",{"en":1033,"ru":1034,"es":1035,"nl":1036},"Senior engineer at Nerdy Production working from backend to screen — Go, Flutter, Python and TypeScript, with the tests written as he goes.","Старший инженер Nerdy Production, работающий от бэкенда до экрана: Go, Flutter, Python и TypeScript — и тесты, которые пишутся по ходу дела.","Ingeniero senior en Nerdy Production, del backend a la pantalla: Go, Flutter, Python y TypeScript, con los tests escritos sobre la marcha.","Senior engineer bij Nerdy Production, van backend tot scherm — Go, Flutter, Python en TypeScript, met de tests die hij onderweg schrijft.","\u002Fteam\u002Fmax.webp",{"en":1039,"ru":1040,"es":1041,"nl":1042},"Senior Software Engineer","Старший инженер-программист","Ingeniero de software senior","Senior software engineer","senior",[41,18,51,106,155,13,150],"maxim",{"en":1047,"ru":1048,"es":1049,"nl":1050},"Backend and Flutter engineering with a testing focus","Бэкенд и Flutter с фокусом на тестирование","Ingeniería backend y Flutter con foco en testing","Backend- en Flutter-engineering met focus op testen","a-8Kx1i-PQXIGU92_Rimqr3bPEur6ZwMfPKQWr2uk4I",{"id":1053,"bio":1054,"expertise":1059,"extension":922,"links":1101,"meta":1113,"metaDescription":1114,"name":1119,"ogDescription":1122,"photo":1127,"role":1128,"seniority":1133,"skills":1134,"slug":1135,"specialization":1136,"stem":1135,"__hash__":1141},"team_members\u002Fnixan.yaml",{"en":1055,"ru":1056,"es":1057,"nl":1058},"Ilya founded Nerdy Production and leads its engineering. He has been building software since 2010 and shipping production Flutter since 2018.\n\nBefore that he was CTO of QIWI, one of Russia's largest payment platforms, where he ran roughly 12 engineering teams spanning web products down to card processing, :term{slug=\"pci-dss\"} scope, and contactless payments — including building contactless card payments on Android via :term[Host Card Emulation]{slug=\"host-card-emulation\"} over ISO\u002FIEC 14443, with EMV Contactless (Visa PayWave) on top.\n\nHe was also a principal developer at Yandex, where he worked on Yandex.Auto — taking native Android deep into the vehicle, with heavy CAN-bus integration through a custom CAN shield — and a principal at Evotor, whose point-of-sale devices run on a forked :term{slug=\"aosp\"}, giving him a low-level view of Android most app developers never touch.\n\nToday he leads delivery on the agency's flagship apps — from the chart-heavy fintech UI of [ExtraETF](\u002Fportfolio\u002Fextraetf) to the fully custom design system of [Arcana](\u002Fportfolio\u002Farcana). He writes most of the essays on this blog and maintains the agency's open-source work, including the [dxpdf](\u002Fopen-source\u002Fdxpdf) DOCX-to-PDF engine.\n\nHe works across [Flutter](\u002Ftechnologies\u002Fflutter), native iOS and Android, [Go](\u002Ftechnologies\u002Fgo), [Rust](\u002Ftechnologies\u002Frust), [TypeScript](\u002Ftechnologies\u002Ftypescript), [Kotlin](\u002Ftechnologies\u002Fkotlin), [Kubernetes](\u002Ftechnologies\u002Fkubernetes), and [Docker](\u002Ftechnologies\u002Fdocker), with a focus on app architecture, cross-platform delivery, and building teams that ship.\n","Илья основал Nerdy Production и руководит инженерной командой. Он занимается разработкой с 2010 года и выпускает продакшн-приложения на Flutter с 2018-го.\n\nДо этого он был CTO QIWI — одной из крупнейших платёжных платформ России, — где руководил примерно 12 инженерными командами: от веб-продуктов до карточного процессинга, зоны :term{slug=\"pci-dss\"} и бесконтактных платежей, включая бесконтактную оплату картой на Android через :term[Host Card Emulation]{slug=\"host-card-emulation\"} поверх ISO\u002FIEC 14443, с платёжным протоколом EMV Contactless (Visa PayWave).\n\nОн также был принципал-разработчиком в Яндексе, где работал над Яндекс.Авто, уводя нативный Android глубоко в автомобиль, с серьёзной интеграцией по шине CAN через собственный CAN-шилд, и принципалом в Эвоторе, чьи кассовые устройства работают на форке :term{slug=\"aosp\"}, что дало ему низкоуровневый взгляд на Android, недоступный большинству прикладных разработчиков.\n\nСейчас он ведёт поставку флагманских приложений агентства — от насыщенного графиками финтех-интерфейса [ExtraETF](\u002Fportfolio\u002Fextraetf) до полностью кастомной дизайн-системы [Arcana](\u002Fportfolio\u002Farcana). Он пишет большую часть материалов этого блога и поддерживает open-source агентства, включая движок [dxpdf](\u002Fopen-source\u002Fdxpdf) для конвертации DOCX в PDF.\n\nРаботает с [Flutter](\u002Ftechnologies\u002Fflutter), нативными iOS и Android, [Go](\u002Ftechnologies\u002Fgo), [Rust](\u002Ftechnologies\u002Frust), [TypeScript](\u002Ftechnologies\u002Ftypescript), [Kotlin](\u002Ftechnologies\u002Fkotlin), [Kubernetes](\u002Ftechnologies\u002Fkubernetes) и [Docker](\u002Ftechnologies\u002Fdocker); его фокус — архитектура приложений, кросс-платформенная поставка и построение команд, которые доводят продукт до релиза.\n","Ilya fundó Nerdy Production y dirige su ingeniería. Lleva construyendo software desde 2010 y entregando Flutter en producción desde 2018.\n\nAntes fue CTO de QIWI, una de las mayores plataformas de pago de Rusia, donde dirigió alrededor de 12 equipos de ingeniería que abarcaban desde productos web hasta procesamiento de tarjetas, alcance :term{slug=\"pci-dss\"} y pagos contactless, incluida la construcción de pagos contactless con tarjeta en Android mediante :term[Host Card Emulation]{slug=\"host-card-emulation\"} sobre ISO\u002FIEC 14443, con EMV Contactless (Visa PayWave) por encima.\n\nTambién fue principal developer en Yandex, donde trabajó en Yandex.Auto —llevando Android nativo hasta el interior del vehículo, con una integración intensiva por bus CAN a través de un CAN shield propio— y principal en Evotor, cuyos terminales de punto de venta funcionan sobre un fork de :term{slug=\"aosp\"}, lo que le dio una visión de bajo nivel de Android que la mayoría de desarrolladores de apps nunca llega a tocar.\n\nHoy lidera la entrega de las apps insignia de la agencia, desde la interfaz fintech cargada de gráficos de [ExtraETF](\u002Fportfolio\u002Fextraetf) hasta el sistema de diseño totalmente a medida de [Arcana](\u002Fportfolio\u002Farcana). Escribe la mayoría de los artículos de este blog y mantiene el trabajo de código abierto de la agencia, incluido el motor de conversión de DOCX a PDF [dxpdf](\u002Fopen-source\u002Fdxpdf).\n\nTrabaja con [Flutter](\u002Ftechnologies\u002Fflutter), iOS y Android nativos, [Go](\u002Ftechnologies\u002Fgo), [Rust](\u002Ftechnologies\u002Frust), [TypeScript](\u002Ftechnologies\u002Ftypescript), [Kotlin](\u002Ftechnologies\u002Fkotlin), [Kubernetes](\u002Ftechnologies\u002Fkubernetes) y [Docker](\u002Ftechnologies\u002Fdocker), con foco en arquitectura de aplicaciones, entrega multiplataforma y la construcción de equipos que entregan.\n","Ilya richtte Nerdy Production op en leidt de engineering. Hij bouwt software sinds 2010 en levert sinds 2018 Flutter in productie.\n\nDaarvoor was hij CTO van QIWI, een van de grootste betaalplatforms van Rusland, waar hij zo'n 12 engineeringteams aanstuurde die reikten van webproducten tot kaartverwerking, :term{slug=\"pci-dss\"}-scope en contactloos betalen — waaronder het bouwen van contactloze kaartbetalingen op Android via :term[Host Card Emulation]{slug=\"host-card-emulation\"} over ISO\u002FIEC 14443, met EMV Contactless (Visa PayWave) daarbovenop.\n\nHij was ook principal developer bij Yandex, waar hij aan Yandex.Auto werkte — native Android diep de auto in brengen, met zware integratie over de CAN-bus via een eigen CAN-shield — en principal bij Evotor, waarvan de kassa-apparaten op een fork van :term{slug=\"aosp\"} draaien, wat hem een blik op Android op laag niveau gaf die de meeste app-ontwikkelaars nooit krijgen.\n\nVandaag leidt hij de oplevering van de vlaggenschipapps van het bureau — van de grafiekzware fintech-UI van [ExtraETF](\u002Fportfolio\u002Fextraetf) tot het volledig eigen designsysteem van [Arcana](\u002Fportfolio\u002Farcana). Hij schrijft de meeste artikelen op deze blog en onderhoudt het opensourcewerk van het bureau, waaronder de DOCX-naar-PDF-motor [dxpdf](\u002Fopen-source\u002Fdxpdf).\n\nHij werkt met [Flutter](\u002Ftechnologies\u002Fflutter), native iOS en Android, [Go](\u002Ftechnologies\u002Fgo), [Rust](\u002Ftechnologies\u002Frust), [TypeScript](\u002Ftechnologies\u002Ftypescript), [Kotlin](\u002Ftechnologies\u002Fkotlin), [Kubernetes](\u002Ftechnologies\u002Fkubernetes) en [Docker](\u002Ftechnologies\u002Fdocker), met de nadruk op applicatiearchitectuur, cross-platform oplevering en het bouwen van teams die opleveren.\n",[1060,1065,1070,1075,1080,1085,1090,1095,1097,1099],{"en":1061,"ru":1062,"es":1063,"nl":1064},"iOS development","Разработка под iOS","Desarrollo iOS","iOS-ontwikkeling",{"en":1066,"ru":1067,"es":1068,"nl":1069},"Software architecture","Архитектура ПО","Arquitectura de software","Softwarearchitectuur",{"en":1071,"ru":1072,"es":1073,"nl":1074},"Engineering team leadership","Руководство инженерными командами","Liderazgo de equipos de ingeniería","Leidinggeven aan engineeringteams",{"en":1076,"ru":1077,"es":1078,"nl":1079},"Payment systems","Платёжные системы","Sistemas de pago","Betaalsystemen",{"en":1081,"ru":1082,"es":1083,"nl":1084},"Card processing","Карточный процессинг","Procesamiento de tarjetas","Kaartverwerking",{"en":1086,"ru":1087,"es":1088,"nl":1089},"PCI-DSS compliance","Соответствие PCI-DSS","Cumplimiento de PCI-DSS","Naleving van PCI-DSS",{"en":1091,"ru":1092,"es":1093,"nl":1094},"NFC and contactless payments","NFC и бесконтактные платежи","NFC y pagos contactless","NFC en contactloos betalen",{"en":1096,"ru":1096,"es":1096,"nl":1096},"Host Card Emulation",{"en":1098,"ru":1098,"es":1098,"nl":1098},"EMV Contactless",{"en":1100,"ru":1100,"es":1100,"nl":1100},"AOSP",[1102,1105,1108,1111],{"type":1103,"url":1104},"github","https:\u002F\u002Fgithub.com\u002Fthenixan",{"type":1106,"url":1107},"linkedin","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fthenixan\u002F",{"type":1109,"url":1110},"telegram","https:\u002F\u002Ft.me\u002Fthenixan",{"type":925,"address":1112},"nixan@nerdy.pro",{},{"en":1115,"ru":1116,"es":1117,"nl":1118},"Founder and lead developer at Nerdy Production, former CTO of QIWI. Flutter architecture, payments infrastructure, and engineering teams that ship.","Основатель и ведущий разработчик Nerdy Production, экс-CTO QIWI. Архитектура на Flutter, платёжная инфраструктура и команды, которые доводят до релиза.","Fundador y lead developer en Nerdy Production, ex-CTO de QIWI. Arquitectura Flutter, infraestructura de pagos y equipos de ingeniería que entregan.","Oprichter en lead developer bij Nerdy Production, oud-CTO van QIWI. Flutter-architectuur, betaalinfrastructuur en teams die opleveren.",{"en":1120,"ru":1121,"es":1120,"nl":1120},"Ilya Nixan","Илья Никсан",{"en":1123,"ru":1124,"es":1125,"nl":1126},"Founder and lead developer at Nerdy Production, former CTO of QIWI — Flutter architecture, payments infrastructure, and teams that ship.","Основатель и ведущий разработчик Nerdy Production, экс-CTO QIWI: архитектура на Flutter, платёжная инфраструктура и команды, которые доводят до релиза.","Fundador y lead developer en Nerdy Production, ex-CTO de QIWI: arquitectura Flutter, infraestructura de pagos y equipos que entregan.","Oprichter en lead developer bij Nerdy Production, oud-CTO van QIWI — Flutter-architectuur, betaalinfrastructuur en teams die opleveren.","\u002Fteam\u002Fnixan.webp",{"en":1129,"ru":1130,"es":1131,"nl":1132},"Founder & Lead Developer","Основатель и ведущий разработчик","Fundador y lead developer","Oprichter & lead developer","founder_lead",[41,18,71,141,76,146,51,126,121,155,160,90,13,150,136,7,29,80],"nixan",{"en":1137,"ru":1138,"es":1139,"nl":1140},"Flutter architecture and leading delivery teams","Архитектура на Flutter и руководство командами поставки","Arquitectura Flutter y liderazgo de equipos de entrega","Flutter-architectuur en het leiden van opleverteams","BmeQZ7JyhRFIx8527WO2t1-WklP8AAvevAxiN9U4TEs",{"id":1143,"bio":1144,"expertise":1149,"extension":922,"links":1161,"meta":1166,"metaDescription":1167,"name":1172,"ogDescription":1175,"photo":1180,"role":1181,"seniority":1043,"skills":1186,"slug":1187,"specialization":1188,"stem":1187,"__hash__":1193},"team_members\u002Froma.yaml",{"en":1145,"ru":1146,"es":1147,"nl":1148},"Roman works across native iOS and Android and [Flutter](\u002Ftechnologies\u002Fflutter), and pairs that mobile depth with [Python](\u002Ftechnologies\u002Fpython) and applied AI.\n\nMuch of his background is in ERP and CRM development — complex, data-heavy business systems where getting the domain model right matters more than the UI — which gives him a pragmatic eye for how an app fits the process behind it.\n","Роман работает с нативными iOS и Android и с [Flutter](\u002Ftechnologies\u002Fflutter), дополняя мобильную экспертизу [Python](\u002Ftechnologies\u002Fpython) и прикладным AI.\n\nЗначительная часть его опыта — разработка ERP и CRM, сложных систем с большим объёмом данных, где правильная доменная модель важнее интерфейса, — что даёт ему прагматичный взгляд на то, как приложение встраивается в процесс за ним.\n","Roman trabaja con iOS y Android nativos y con [Flutter](\u002Ftechnologies\u002Fflutter), y combina esa profundidad móvil con [Python](\u002Ftechnologies\u002Fpython) e IA aplicada.\n\nBuena parte de su trayectoria está en el desarrollo de ERP y CRM —sistemas de negocio complejos y con mucho dato, donde acertar con el modelo de dominio importa más que la interfaz—, lo que le da una mirada pragmática sobre cómo encaja una app en el proceso que hay detrás.\n","Roman werkt met native iOS en Android en met [Flutter](\u002Ftechnologies\u002Fflutter), en combineert die mobiele diepgang met [Python](\u002Ftechnologies\u002Fpython) en toegepaste AI.\n\nEen groot deel van zijn achtergrond ligt in ERP- en CRM-ontwikkeling — complexe, datazware bedrijfssystemen waarin het domeinmodel goed krijgen zwaarder weegt dan de interface — wat hem een pragmatische blik geeft op hoe een app in het proces erachter past.\n",[1150,1151,1156],{"en":1061,"ru":1062,"es":1063,"nl":1064},{"en":1152,"ru":1153,"es":1154,"nl":1155},"Applied AI","Прикладной AI","IA aplicada","Toegepaste AI",{"en":1157,"ru":1158,"es":1159,"nl":1160},"ERP and CRM systems","ERP- и CRM-системы","Sistemas ERP y CRM","ERP- en CRM-systemen",[1162,1164],{"type":1106,"url":1163},"https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fromanbatler\u002F",{"type":925,"address":1165},"roma@nerdy.pro",{},{"en":1168,"ru":1169,"es":1170,"nl":1171},"Senior mobile developer at Nerdy Production — native iOS and Android, Flutter, applied AI, and a background in data-heavy ERP and CRM systems.","Старший мобильный разработчик Nerdy Production: нативные iOS и Android, Flutter, прикладной AI и опыт в ERP- и CRM-системах.","Desarrollador móvil senior en Nerdy Production: iOS y Android nativos, Flutter, IA aplicada y experiencia en sistemas ERP y CRM con gran volumen de datos.","Senior mobiele developer bij Nerdy Production — native iOS en Android, Flutter, toegepaste AI, en een achtergrond in datazware ERP- en CRM-systemen.",{"en":1173,"ru":1174,"es":1173,"nl":1173},"Roman","Рома",{"en":1176,"ru":1177,"es":1178,"nl":1179},"Senior mobile developer at Nerdy Production — native iOS and Android, Flutter, applied AI, and years of data-heavy ERP and CRM behind him.","Старший мобильный разработчик Nerdy Production: нативные iOS и Android, Flutter, прикладной AI и годы работы с нагруженными ERP и CRM.","Desarrollador móvil senior en Nerdy Production: iOS y Android nativos, Flutter, IA aplicada y años de ERP y CRM con mucha carga de datos.","Senior mobiele developer bij Nerdy Production — native iOS en Android, Flutter, toegepaste AI, en jaren datazware ERP en CRM achter zich.","\u002Fteam\u002Froma.webp",{"en":1182,"ru":1183,"es":1184,"nl":1185},"Senior Mobile Developer","Старший мобильный разработчик","Desarrollador móvil senior","Senior mobiele developer",[7,41,18,141,146,106],"roma",{"en":1189,"ru":1190,"es":1191,"nl":1192},"Mobile, AI, and ERP\u002FCRM systems","Мобильная разработка, AI и системы ERP\u002FCRM","Móvil, IA y sistemas ERP\u002FCRM","Mobiel, AI en ERP\u002FCRM-systemen","caPSPO2BX35G9lEjNb6p3U4uF_V7yh8cexCe6l5hm8Y",{"id":1195,"bio":1196,"expertise":1201,"extension":922,"links":896,"meta":1212,"metaDescription":1213,"name":1218,"ogDescription":1221,"photo":1226,"role":1227,"seniority":1043,"skills":1232,"slug":1233,"specialization":1234,"stem":1233,"__hash__":1239},"team_members\u002Fxsox.yaml",{"en":1197,"ru":1198,"es":1199,"nl":1200},"Eugene builds the systems that apps depend on. His background is in backend engineering — designing and running the APIs, data models, and services behind a product, primarily in [Python](\u002Ftechnologies\u002Fpython) and [Django](\u002Ftechnologies\u002Fdjango).\n\nHe also works in [Flutter](\u002Ftechnologies\u002Fflutter), so he can reason about a feature from the database to the device and build the backend so the app that consumes it stays simple.\n","Женя строит системы, на которые опираются приложения. Его основной опыт — бэкенд-инженерия: проектирование и эксплуатация API, моделей данных и сервисов за продуктом, в первую очередь на [Python](\u002Ftechnologies\u002Fpython) и [Django](\u002Ftechnologies\u002Fdjango).\n\nОн также работает с [Flutter](\u002Ftechnologies\u002Fflutter), поэтому может рассуждать о фиче от базы данных до устройства и строить бэкенд так, чтобы потребляющее его приложение оставалось простым.\n","Eugene construye los sistemas de los que dependen las apps. Su trayectoria está en la ingeniería backend: diseñar y operar las APIs, los modelos de datos y los servicios que hay detrás de un producto, principalmente en [Python](\u002Ftechnologies\u002Fpython) y [Django](\u002Ftechnologies\u002Fdjango).\n\nTambién trabaja con [Flutter](\u002Ftechnologies\u002Fflutter), así que puede razonar sobre una funcionalidad desde la base de datos hasta el dispositivo y construir el backend de forma que la app que lo consume siga siendo simple.\n","Eugene bouwt de systemen waar apps op leunen. Zijn achtergrond ligt in backend-engineering: de API's, datamodellen en services achter een product ontwerpen en draaien, vooral in [Python](\u002Ftechnologies\u002Fpython) en [Django](\u002Ftechnologies\u002Fdjango).\n\nHij werkt daarnaast met [Flutter](\u002Ftechnologies\u002Fflutter), zodat hij over een functie kan nadenken van de database tot het toestel en de backend zo kan bouwen dat de app die hem verbruikt eenvoudig blijft.\n",[1202,1207],{"en":1203,"ru":1204,"es":1205,"nl":1206},"API design","Проектирование API","Diseño de APIs","API-ontwerp",{"en":1208,"ru":1209,"es":1210,"nl":1211},"Data modelling","Моделирование данных","Modelado de datos","Datamodellering",{},{"en":1214,"ru":1215,"es":1216,"nl":1217},"Senior backend developer at Nerdy Production building the APIs, data models and services behind our apps, primarily in Python and Django.","Старший бэкенд-разработчик Nerdy Production: API, модели данных и сервисы за нашими приложениями, в первую очередь на Python и Django.","Desarrollador backend senior en Nerdy Production: las APIs, modelos de datos y servicios detrás de nuestras apps, sobre todo en Python y Django.","Senior backenddeveloper bij Nerdy Production die de API's, datamodellen en services achter onze apps bouwt, vooral in Python en Django.",{"en":1219,"ru":1220,"es":1219,"nl":1219},"Eugene Xsox","Женя Xsox",{"en":1222,"ru":1223,"es":1224,"nl":1225},"Senior backend developer at Nerdy Production — the APIs, data models and services our apps run on, mostly in Python and Django.","Старший бэкенд-разработчик Nerdy Production: API, модели данных и сервисы, на которых работают наши приложения, в основном на Python и Django.","Desarrollador backend senior en Nerdy Production: las APIs, modelos de datos y servicios sobre los que corren nuestras apps, en Python y Django.","Senior backenddeveloper bij Nerdy Production — de API's, datamodellen en services waarop onze apps draaien, vooral in Python en Django.","\u002Fteam\u002Fxsox.webp",{"en":1228,"ru":1229,"es":1230,"nl":1231},"Senior Backend Developer","Старший бэкенд-разработчик","Desarrollador backend senior","Senior backenddeveloper",[106,24,41,18,155,160,90,150],"xsox",{"en":1235,"ru":1236,"es":1237,"nl":1238},"Python\u002FDjango backends, plus Flutter","Бэкенды на Python\u002FDjango и Flutter","Backends en Python\u002FDjango, además de Flutter","Backends in Python\u002FDjango, plus Flutter","w_QAKKq_Mh_dtMvAxFpAJBC10PW1I7zgVOxELwRHwO8",[1241,1250,1257,1262,1272],{"id":1242,"extension":922,"meta":1243,"name":1244,"slug":1248,"stem":1248,"__hash__":1249},"blog_topics\u002Fcybersecurity.yaml",{},{"en":1245,"ru":1246,"es":1247,"nl":1245},"Cybersecurity","Кибербезопасность","Ciberseguridad","cybersecurity","kt1rdsMy5W4b9MvGHm6mZVCr0inHidEuqaosPYmmk4E",{"id":1251,"extension":922,"meta":1252,"name":1253,"slug":1255,"stem":1255,"__hash__":1256},"blog_topics\u002Fdevops.yaml",{},{"en":1254,"ru":1254,"es":1254,"nl":1254},"DevOps","devops","D3mxlZuFHKCGeszKZuWCiQmHmP5EiCvzg1qEAIQhnyU",{"id":1258,"extension":922,"meta":1259,"name":1260,"slug":41,"stem":41,"__hash__":1261},"blog_topics\u002Fflutter.yaml",{},{"en":39,"ru":39,"es":39,"nl":39},"OOeALAmwFuEqByuJvTGk4g15FIHENPfYMdpfZh_HTAE",{"id":1263,"extension":922,"meta":1264,"name":1265,"slug":1270,"stem":1270,"__hash__":1271},"blog_topics\u002Ffor-founders.yaml",{},{"en":1266,"ru":1267,"es":1268,"nl":1269},"For Founders","Для основателей","Para fundadores","Voor oprichters","for-founders","lp2u6Ol2qF4DGxpB83HxbbGzWioT-e40mJhD4lr28-U",{"id":1273,"extension":922,"meta":1274,"name":1275,"slug":1280,"stem":1280,"__hash__":1281},"blog_topics\u002Fsoftware-engineering.yaml",{},{"en":1276,"ru":1277,"es":1278,"nl":1279},"Software Engineering","Разработка ПО","Ingeniería de software","Software-engineering","software-engineering","aZMb3aUDptoFQk_cEE6l5H4wrYcgZuBYUubmKqOAaaU",{"data":1283,"body":1284},{},{"type":1285,"children":1286},"root",[1287,1309],{"type":1288,"tag":175,"props":1289,"children":1290},"element",{},[1291,1294,1299,1301,1307],{"type":1292,"value":1293},"text","Dima werkt sinds 2021 met ",{"type":1288,"tag":396,"props":1295,"children":1297},{"href":1296},"\u002Ftechnologies\u002Fflutter",[1298],{"type":1292,"value":39},{"type":1292,"value":1300}," en is gespecialiseerd in ",{"type":1288,"tag":216,"props":1302,"children":1304},{"slug":1303},"state-management",[1305],{"type":1292,"value":1306},"state management",{"type":1292,"value":1308}," en applicatiearchitectuur.",{"type":1288,"tag":175,"props":1310,"children":1311},{},[1312,1314,1318,1320,1324],{"type":1292,"value":1313},"Hij heeft praktijkervaring met protocollen voor realtime communicatie — ",{"type":1288,"tag":216,"props":1315,"children":1317},{"slug":1316},"webrtc",[],{"type":1292,"value":1319}," voor audio en video, en ",{"type":1288,"tag":216,"props":1321,"children":1323},{"slug":1322},"xmpp",[],{"type":1292,"value":1325}," voor berichten — waardoor hij zich thuis voelt bij de netwerkzware functies met veel staat waar veel teams moeite mee hebben.",[1327,1341,1362,1375,1389,1403,1417,1434,1447,1462,1476,1489,1504,1518,1533,1542,1554,1565,1575,1588,1598,1609,1624,1633,1646,1660,1667,1678,1691,1702,1717,1730,1743,1756,1769,1782,1795,1806,1817,1829,1840,1852,1862,1874,1887,1898,1910,1924,1935,1947,1958,1967,1979],{"slug":1328,"term":1100,"definition":1329,"category":1330,"aliases":1331,"links":1333,"related":1337,"readMore":-1,"target":1339,"hasArticle":1340},"aosp","Het Android Open Source Project — Android zonder de Google-laag erbovenop, door iedereen vrij te forken. Kassaterminals, kiosken en autosystemen draaien op forks ervan, en werken op dat niveau legt delen van het OS bloot die een app-ontwikkelaar nooit ziet.","platform",[1332],"Android Open Source Project",[1334],{"kind":1335,"url":1336},"website","https:\u002F\u002Fsource.android.com\u002F",[1338],"host-card-emulation","\u002Fglossary#aosp",false,{"slug":1342,"term":1343,"definition":1344,"category":1345,"aliases":1346,"links":1351,"related":1357,"readMore":-1,"target":1361,"hasArticle":1340},"gdpr","AVG","De EU-verordening over persoonsgegevens van mensen in de EU: een rechtsgrond om ze te verzamelen, echte toestemming voor tracking, en het recht om ze in te zien en te laten wissen. Ze volgt je gebruikers, niet je servers, en geldt dus ongeacht waar het bedrijf staat ingeschreven.","practice",[1347,1348,1349,1350],"GDPR","General Data Protection Regulation","Algemene verordening gegevensbescherming","gegevensbescherming",[1352,1354],{"kind":1335,"url":1353},"https:\u002F\u002Fgdpr.eu\u002F",{"kind":1355,"url":1356},"wikipedia","https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FGeneral_Data_Protection_Regulation",[1358,1359,1360],"pci-dss","soc-2","hipaa","\u002Fglossary#gdpr",{"slug":1363,"term":1364,"definition":1365,"category":1330,"aliases":1366,"links":1367,"related":1371,"readMore":-1,"target":1374,"hasArticle":1340},"app-clips","App Clips","Een Apple-functie die een klein stuk van een iOS-app draait — onder de 15 MB — zonder het geheel te installeren. Te starten via een QR-code, een NFC-tag of een link, voor als de eerste handeling van een gebruiker niet eerst een gang naar de App Store zou moeten vergen.",[],[1368],{"kind":1369,"url":1370},"documentation","https:\u002F\u002Fdeveloper.apple.com\u002Fapp-clips\u002F",[1372,1373],"deep-linking","install-referrer","\u002Fglossary#app-clips",{"slug":1376,"term":1377,"definition":1378,"category":1330,"aliases":1379,"links":1380,"related":1385,"readMore":-1,"target":1388,"hasArticle":1340},"bigquery","BigQuery","Het analytische datawarehouse van Google Cloud. Je laat SQL los op miljarden rijen en het scant ze in seconden, op opslag die losstaat van de machines die de query uitvoeren — en juist dat houdt rapportage en verkenning weg bij de database die het live verkeer bedient.",[],[1381,1383],{"kind":1335,"url":1382},"https:\u002F\u002Fcloud.google.com\u002Fbigquery",{"kind":1355,"url":1384},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FBigQuery",[1386,1387],"object-storage","elasticsearch","\u002Fglossary#bigquery",{"slug":1390,"term":1391,"definition":1392,"category":1345,"aliases":1393,"links":1398,"related":1401,"readMore":-1,"target":1402,"hasArticle":1340},"ci-cd","CI\u002FCD","Automatisering die elke wijziging bouwt, test en uitlevert zonder dat iemand handmatig commando's uitvoert. Op mobiel is het wat van een release een druk op de knop maakt in plaats van een middag wachten tot iemand anders tijd heeft.",[1394,1395,1396,1397],"CI","continuous integration","continuous delivery","continue integratie",[1399],{"kind":1355,"url":1400},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCI\u002FCD",[],"\u002Fglossary#ci-cd",{"slug":1404,"term":1405,"definition":1406,"category":1407,"aliases":1408,"links":1410,"related":1413,"readMore":-1,"target":1416,"hasArticle":1340},"crud","CRUD","Create, read, update, delete — de vier bewerkingen achter zo goed als elk formulier en elk beheerscherm. Verzamelnaam voor de helft van een app die routinematig gegevensbeheer is, tegenover de delen die echte domeinlogica dragen.","architecture",[1409],"Create, Read, Update, Delete",[1411],{"kind":1355,"url":1412},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FCreate,_read,_update_and_delete",[1414,1415],"rest","graphql","\u002Fglossary#crud",{"slug":1418,"term":1419,"definition":1420,"category":1407,"aliases":1421,"links":1427,"related":1430,"readMore":-1,"target":1433,"hasArticle":1340},"container-registry","Containerregistry","Een gehoste opslagplaats voor container-images, aangesproken op naam en tag — Docker Hub, GitHub Container Registry, of die van je eigen cloudprovider. Een build daarheen pushen verandert 'werkt op mijn machine' in een image die iedereen ongewijzigd kan pullen en draaien.",[1422,1423,1424,1425,1426],"container registry","image registry","Docker registry","GHCR","ghcr.io",[1428],{"kind":1369,"url":1429},"https:\u002F\u002Fdocs.github.com\u002Fen\u002Fpackages\u002Fworking-with-a-github-packages-registry\u002Fworking-with-the-container-registry",[1431,1432],"dev-container","multi-arch-image","\u002Fglossary#container-registry",{"slug":1372,"term":1435,"definition":1436,"category":1330,"aliases":1437,"links":1442,"related":1445,"readMore":1446,"target":1446,"hasArticle":888},"Deep linking","Een link die een specifiek scherm in een geïnstalleerde app opent in plaats van het beginscherm of een webpagina. Deferred deep linking overleeft een installatie, zodat een tik die via de appwinkel loopt alsnog op het juiste scherm landt.",[1438,1439,1440,1441],"deferred deep linking","universal links","Android App Links","diepe links",[1443],{"kind":1355,"url":1444},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMobile_deep_linking",[1363,1373],"\u002Fglossary\u002Fdeep-linking",{"slug":1431,"term":1448,"definition":1449,"category":1345,"aliases":1450,"links":1455,"related":1460,"readMore":-1,"target":1461,"hasArticle":1340},"Dev Container","Een ontwikkelomgeving die één keer beschreven staat in devcontainer.json — het OS, de tools en de runtimeversies die een project nodig heeft — en die bij iedere bijdrager identiek in een container opent, in plaats van een installatiehandleiding die iedereen anders leest.",[1451,1452,1453,1454],"devcontainer.json","Dev Containers","VS Code Dev Containers","ontwikkelcontainer",[1456,1458],{"kind":1335,"url":1457},"https:\u002F\u002Fcontainers.dev\u002F",{"kind":1369,"url":1459},"https:\u002F\u002Fcode.visualstudio.com\u002Fdocs\u002Fdevcontainers\u002Fcontainers",[1418],"\u002Fglossary#dev-container",{"slug":1463,"term":1464,"definition":1465,"category":1407,"aliases":1466,"links":1471,"related":1474,"readMore":-1,"target":1475,"hasArticle":1340},"floating-point","Drijvende komma","Het binaire IEEE 754-formaat achter double en float. Het kan 0,1 niet exact weergeven, dus 0.1 + 0.2 is 0.30000000000000004 — onzichtbaar in graphics en fataal bij geld, dat thuishoort in gehele kleinste eenheden (centen) of een decimaal type.",[1467,1468,1469,1470],"IEEE 754","double","floating point","zwevende komma",[1472],{"kind":1355,"url":1473},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FIEEE_754",[],"\u002Fglossary#floating-point",{"slug":1387,"term":1477,"definition":1478,"category":1330,"aliases":1479,"links":1482,"related":1487,"readMore":-1,"target":1488,"hasArticle":1340},"Elasticsearch","Een zoek- en analysemachine die records indexeert zodat je ze interactief kunt filteren en doorzoeken in plaats van ze te scannen. Waar je naar grijpt als de vraag 'laat me deze specifieke sessies zien, op zes manieren ingeperkt' is en niet 'tel deze kolom op'.",[1480,1481],"Elastic","ELK",[1483,1485],{"kind":1335,"url":1484},"https:\u002F\u002Fwww.elastic.co\u002Felasticsearch",{"kind":1355,"url":1486},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FElasticsearch",[1376],"\u002Fglossary#elasticsearch",{"slug":1490,"term":1491,"definition":1492,"category":1407,"aliases":1493,"links":1497,"related":1500,"readMore":-1,"target":1503,"hasArticle":1340},"end-to-end-encryption","End-to-end-versleuteling","Versleuteling die op het verzendende apparaat wordt aangebracht en pas op het ontvangende weer wordt weggehaald, zodat de dienst die het bericht vervoert het niet kan lezen — niet na een vordering, niet na een datalek. Het beschermt de inhoud, nooit de metadata.",[1494,1495,1496],"E2EE","end-to-end encryption","end-to-end versleuteld",[1498],{"kind":1355,"url":1499},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FEnd-to-end_encryption",[1501,1502],"tls","jwt","\u002Fglossary#end-to-end-encryption",{"slug":1505,"term":1506,"definition":1507,"category":1407,"aliases":1508,"links":1512,"related":1513,"readMore":-1,"target":1517,"hasArticle":1340},"fan-out","Fan-out","Eén keer uit een bron lezen en elke update afleveren bij iedere client die erop geabonneerd is. De naïeve versie schrijft in een lus naar abonnees en loopt vast zodra één socket traag is; een echte buffert per client en laat vallen wie niet kan bijbenen.",[1509,1510,1511],"fanout","broadcast","uitzending",[],[1514,1515,1516],"websocket","pub-sub","server-sent-events","\u002Fglossary#fan-out",{"slug":1519,"term":1520,"definition":1521,"category":1345,"aliases":1522,"links":1526,"related":1529,"readMore":-1,"target":1532,"hasArticle":1340},"feature-flags","Feature flags","Schakelaars die functionaliteit aan- of uitzetten vanuit configuratie in plaats van vanuit een release. Ze laten één binary zich per merk, markt of gebruiker anders gedragen, en laten je een riskante functie uitzetten zonder een nieuwe build door de review te sturen.",[1523,1524,1525],"feature flag","feature toggle","functieschakelaar",[1527],{"kind":1355,"url":1528},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FFeature_toggle",[698,1530,1531],"white-label","multi-tenancy","\u002Fglossary#feature-flags",{"slug":698,"term":699,"definition":1534,"category":1345,"aliases":1535,"links":1539,"related":1540,"readMore":-1,"target":1541,"hasArticle":1340},"Een build eerst naar een klein percentage gebruikers uitbrengen en pas verbreden als het crashvrije percentage standhoudt. Een slechte build die je bij tien procent betrapt is een slechte middag; dezelfde build bij honderd procent is een slechte week.",[1536,1537,1538],"staged rollout","gefaseerde release","canary release",[],[1519,1390],"\u002Fglossary#staged-rollout",{"slug":638,"term":1543,"definition":1544,"category":1345,"aliases":1545,"links":1549,"related":1552,"readMore":-1,"target":1553,"hasArticle":1340},"Golden test","Een test die een widget rendert en het resultaat pixel voor pixel vergelijkt met een opgeslagen referentiebeeld. In Flutter is het de goedkoopste manier om te zien of een herontwerp de empty state brak op 320pt, in donkere modus, bij 200% tekstgrootte.",[1546,1547,1548],"golden tests","screenshottest","snapshottest",[1550],{"kind":1369,"url":1551},"https:\u002F\u002Fapi.flutter.dev\u002Fflutter\u002Fflutter_test\u002FmatchesGoldenFile.html",[1390],"\u002Fglossary#golden-test",{"slug":1415,"term":1555,"definition":1556,"category":1407,"aliases":1557,"links":1558,"related":1563,"readMore":-1,"target":1564,"hasArticle":1340},"GraphQL","Een querytaal voor API's waarin de client precies de velden benoemt die hij wil en één antwoord terugkrijgt dat daarop past. Het haalt de over-fetching weg waar REST-endpoints naar afglijden, en voegt er een eigen faalmodus aan toe: een onbegrensde query die het hele datamodel afloopt.",[],[1559,1561],{"kind":1335,"url":1560},"https:\u002F\u002Fgraphql.org\u002F",{"kind":1355,"url":1562},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FGraphQL",[1414],"\u002Fglossary#graphql",{"slug":1360,"term":1566,"definition":1567,"category":1345,"aliases":1568,"links":1570,"related":1573,"readMore":-1,"target":1574,"hasArticle":1340},"HIPAA","De Amerikaanse wet over beschermde gezondheidsinformatie — hoe die opgeslagen, verstuurd, gelogd en gedeeld mag worden. Net als PCI-DSS is het een architectuurkeuze aan het begin, geen beleidsstuk dat je vlak voor de lancering toevoegt.",[1569],"Health Insurance Portability and Accountability Act",[1571],{"kind":1355,"url":1572},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FHealth_Insurance_Portability_and_Accountability_Act",[1358,1342,1359],"\u002Fglossary#hipaa",{"slug":1576,"term":1577,"definition":1578,"category":1407,"aliases":1579,"links":1582,"related":1585,"readMore":-1,"target":1587,"hasArticle":1340},"headless-cms","Headless CMS","Een contentsysteem met een redactieomgeving en een API, maar zonder eigen front-end. Redacteuren publiceren op één plek, en de site of app rendert die content zelf — zodat de presentatielaag van jou is en niet van de CMS-leverancier.",[1580,1581],"headless contentmanagementsysteem","content-API",[1583],{"kind":1355,"url":1584},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FHeadless_content_management_system",[1586,1414],"server-side-rendering","\u002Fglossary#headless-cms",{"slug":1338,"term":1096,"definition":1589,"category":1330,"aliases":1590,"links":1593,"related":1596,"readMore":-1,"target":1597,"hasArticle":1340},"Een Android-telefoon zich in software laten gedragen als een contactloze kaart via NFC, zonder secure element in hardware. Zo betaalt een wallet-app bij een terminal: de telefoon spreekt hetzelfde contactloze EMV-protocol als de plastic kaart zou hebben gedaan.",[1591,1098,1592],"HCE","contactloos betalen",[1594],{"kind":1369,"url":1595},"https:\u002F\u002Fdeveloper.android.com\u002Fdevelop\u002Fconnectivity\u002Fnfc\u002Fhce",[1358,1328],"\u002Fglossary#host-card-emulation",{"slug":1599,"term":1600,"definition":1601,"category":1330,"aliases":1602,"links":1603,"related":1606,"readMore":-1,"target":1608,"hasArticle":1340},"impeller","Impeller","De renderengine die Flutter vandaag gebruikt, standaard op iOS sinds 2023 en op Android sinds 2024. Hij compileert zijn shaders vooraf in plaats van tijdens de eerste animatie, wat de shader-jank wegnam die Flutters zichtbaarste productieprobleem was.",[],[1604],{"kind":1369,"url":1605},"https:\u002F\u002Fdocs.flutter.dev\u002Fperf\u002Fimpeller",[1607],"skia","\u002Fglossary#impeller",{"slug":1610,"term":1611,"definition":1612,"category":1613,"aliases":1614,"links":1618,"related":1621,"readMore":-1,"target":1623,"hasArticle":1340},"in-app-purchase","In-app-aankoop","Digitale goederen of een abonnement verkopen via de Apple- of Google-billing die beide winkels verplicht stellen voor digitale content en waarover ze commissie rekenen. Het moeilijke is nooit de aankoop; het is het herstellen ervan op een nieuw toestel en de rechten kloppend houden.","business",[1615,1616,1617],"IAP","in-app purchase","in-app-abonnement",[1619],{"kind":1369,"url":1620},"https:\u002F\u002Fdeveloper.apple.com\u002Fin-app-purchase\u002F",[1622],"product-market-fit","\u002Fglossary#in-app-purchase",{"slug":1373,"term":1625,"definition":1626,"category":1330,"aliases":1627,"links":1628,"related":1631,"readMore":-1,"target":1632,"hasArticle":1340},"Install Referrer","Een Google Play-API die een net geïnstalleerde Android-app de campagneparameters overhandigt van de link die tot de installatie leidde. De Android-helft van deferred deep linking, en de betrouwbare manier om te weten waar een gebruiker vandaan kwam.",[],[1629],{"kind":1369,"url":1630},"https:\u002F\u002Fdeveloper.android.com\u002Fgoogle\u002Fplay\u002Finstallreferrer",[1372,1363],"\u002Fglossary#install-referrer",{"slug":1502,"term":1634,"definition":1635,"category":1636,"aliases":1637,"links":1639,"related":1644,"readMore":-1,"target":1645,"hasArticle":1340},"JWT","Een ondertekend token dat zijn eigen claims meedraagt, zodat een server kan zien bij wie een verzoek hoort zonder een sessie op te zoeken. Standaard voor mobiele authenticatie. De handtekening bewijst dat er niets is gewijzigd; ze verbergt niet wat erin staat.","protocol",[1638],"JSON Web Token",[1640,1642],{"kind":1335,"url":1641},"https:\u002F\u002Fjwt.io\u002F",{"kind":1355,"url":1643},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FJSON_Web_Token",[1358],"\u002Fglossary#jwt",{"slug":1647,"term":1648,"definition":1649,"category":1345,"aliases":1650,"links":1655,"related":1658,"readMore":-1,"target":1659,"hasArticle":1340},"kyc","KYC","Know Your Customer — de identiteitscontroles die een gereguleerd financieel product uitvoert voordat het iemand geld laat verplaatsen: documentscans, liveness, sanctie- en witwascontroles. Het bepaalt de onboarding sterker dan welke ontwerpkeuze ook.",[1651,1652,1653,1654],"Know Your Customer","AML","KYC\u002FAML","witwascontrole",[1656],{"kind":1355,"url":1657},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FKnow_your_customer",[1358,1342],"\u002Fglossary#kyc",{"slug":76,"term":74,"definition":1661,"category":1330,"aliases":1662,"links":1664,"related":1665,"readMore":1666,"target":1666,"hasArticle":1340},"Bedrijfslogica geschreven in Kotlin delen tussen Android, iOS en de server, terwijl elk platform zijn eigen native UI houdt. Het alternatief voor Flutter wanneer de interface native moet zijn maar de regels erachter niet.",[1663],"KMP",[],[],"\u002Ftechnologies\u002Fkmp",{"slug":218,"term":1668,"definition":1669,"category":1613,"aliases":1670,"links":1673,"related":1676,"readMore":-1,"target":1677,"hasArticle":1340},"MVP","De kleinste versie van een product die je aan echte gebruikers kunt uitbrengen en die nog steeds de vraag beantwoordt waarvoor je het bouwde. Een besluit over scope, niet over kwaliteit — een MVP moet nog altijd werken.",[1671,1672],"minimum viable product","minimaal levensvatbaar product",[1674],{"kind":1355,"url":1675},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMinimum_viable_product",[1530],"\u002Fglossary#mvp",{"slug":1432,"term":1679,"definition":1680,"category":1407,"aliases":1681,"links":1686,"related":1689,"readMore":-1,"target":1690,"hasArticle":1340},"Multi-architectuur-image","Eén image-tag die per CPU-architectuur naar andere binaries verwijst — linux\u002Famd64 en linux\u002Farm64 zijn het gebruikelijke paar — zodat dezelfde docker pull ongewijzigd werkt op Intel- en AMD-servers en op Apple Silicon-laptops.",[1682,1683,1684,1685],"multi-arch build","multi-arch image","multi-platform image","linux\u002Famd64 + linux\u002Farm64",[1687],{"kind":1369,"url":1688},"https:\u002F\u002Fdocs.docker.com\u002Fbuild\u002Fbuilding\u002Fmulti-platform\u002F",[1418],"\u002Fglossary#multi-arch-image",{"slug":1531,"term":1692,"definition":1693,"category":1407,"aliases":1694,"links":1697,"related":1700,"readMore":-1,"target":1701,"hasArticle":1340},"Multi-tenancy","Eén deployment die veel klanten bedient, waarbij elke klant alleen zijn eigen data, configuratie en ingeschakelde functies ziet doordat de tenantcontext per verzoek wordt bepaald. Het is wat een vloot merkapps één product maakt in plaats van veel forks.",[1695,1696],"multi-tenant","tenant",[1698],{"kind":1355,"url":1699},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMultitenancy",[1530,1519],"\u002Fglossary#multi-tenancy",{"slug":1703,"term":1704,"definition":1705,"category":1636,"aliases":1706,"links":1710,"related":1715,"readMore":-1,"target":1716,"hasArticle":1340},"oauth","OAuth","De standaard achter Inloggen met Apple, Google en de rest: de gebruiker geeft je app toestemming bij een aanbieder die hij al vertrouwt, en je app krijgt een token in plaats van zijn wachtwoord. Niemand hoeft nieuwe inloggegevens te verzinnen en jij bewaart ze nergens.",[1707,1708,1709],"OAuth 2.0","social login","Inloggen met Apple",[1711,1713],{"kind":1335,"url":1712},"https:\u002F\u002Foauth.net\u002F2\u002F",{"kind":1355,"url":1714},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FOAuth",[1502],"\u002Fglossary#oauth",{"slug":1386,"term":1718,"definition":1719,"category":1407,"aliases":1720,"links":1725,"related":1728,"readMore":-1,"target":1729,"hasArticle":1340},"Objectopslag","Opslag die een heel bestand onder een sleutel bewaart in plaats van in een mappenboom — Amazon S3 en de vele diensten die zijn API spreken. Goedkoop, praktisch onbeperkt, en de gebruikelijke plek voor ruwe events, back-ups en media: eenmaal geschreven, zelden gelezen, eeuwig bewaard.",[1721,1722,1723,1724],"S3","S3-compatibele opslag","object storage","blob storage",[1726],{"kind":1355,"url":1727},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FObject_storage",[1376],"\u002Fglossary#object-storage",{"slug":1358,"term":1731,"definition":1732,"category":1345,"aliases":1733,"links":1736,"related":1741,"readMore":-1,"target":1742,"hasArticle":1340},"PCI-DSS","De beveiligingsstandaard van de kaartindustrie die iedereen bindt die kaartgegevens opslaat, verwerkt of verstuurt. De meeste apps blijven er bewust buiten door de kaartinvoer over te laten aan een gecertificeerde betaaldienstverlener.",[1734,1735],"PCI DSS","Payment Card Industry Data Security Standard",[1737,1739],{"kind":1335,"url":1738},"https:\u002F\u002Fwww.pcisecuritystandards.org\u002F",{"kind":1355,"url":1740},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPayment_Card_Industry_Data_Security_Standard",[1502],"\u002Fglossary#pci-dss",{"slug":1744,"term":1745,"definition":1746,"category":1330,"aliases":1747,"links":1751,"related":1754,"readMore":-1,"target":1755,"hasArticle":1340},"platform-channels","Platform channels","De brug waarmee een Flutter-app native iOS- en Android-code aanroept — Keychain en Keystore, biometrie, betaalschermen, elke SDK zonder Dart-pakket. Routinewerk maar echt werk, en de eerste plek waar een engineer die nooit buiten Dart kwam vastloopt.",[1748,1749,1750],"platform channel","method channel","platformkanaal",[1752],{"kind":1369,"url":1753},"https:\u002F\u002Fdocs.flutter.dev\u002Fplatform-integration\u002Fplatform-channels",[76],"\u002Fglossary#platform-channels",{"slug":1757,"term":1758,"definition":1759,"category":1636,"aliases":1760,"links":1764,"related":1767,"readMore":-1,"target":1768,"hasArticle":1340},"post-quantum-cryptography","Post-quantumcryptografie","Versleutelingsalgoritmen die veilig moeten blijven tegen een toekomstige quantumcomputer, inmiddels gestandaardiseerd door NIST. De migratie is nu al dringend, nog vóór die hardware bestaat, omdat verkeer dat vandaag wordt onderschept later alsnog te ontsleutelen valt.",[1761,1762,1763],"PQC","post-quantum cryptography","postkwantumcryptografie",[1765],{"kind":1355,"url":1766},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPost-quantum_cryptography",[1501,1490],"\u002Fglossary#post-quantum-cryptography",{"slug":1622,"term":1770,"definition":1771,"category":1613,"aliases":1772,"links":1776,"related":1779,"readMore":-1,"target":1781,"hasArticle":1340},"Product-market fit","Het punt waarop een product aantoonbaar mensen heeft gevonden die het willen — ze gebruiken het, komen terug en betalen. Daarvoor beantwoordt engineering een vraag; daarna bedient engineering de vraag.",[1773,1774,1775],"PMF","product\u002Fmarket fit","productmarktfit",[1777],{"kind":1355,"url":1778},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FProduct-market_fit",[218,1780],"time-to-market","\u002Fglossary#product-market-fit",{"slug":1783,"term":1784,"definition":1785,"category":1345,"aliases":1786,"links":1789,"related":1792,"readMore":-1,"target":1794,"hasArticle":1340},"prompt-injection","Prompt injection","Een aanval waarbij tekst van een gebruiker door een taalmodel als instructie wordt gelezen in plaats van als data, en het model zo om zijn eigen regels heen wordt gestuurd. De LLM-variant van SQL-injectie, en hij duikt overal op waar gebruikersinvoer in een prompt wordt geplakt.",[1787,1788],"injectieaanval","injection attack",[1790],{"kind":1355,"url":1791},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPrompt_injection",[1793],"rate-limiting","\u002Fglossary#prompt-injection",{"slug":1515,"term":1796,"definition":1797,"category":1407,"aliases":1798,"links":1801,"related":1804,"readMore":-1,"target":1805,"hasArticle":1340},"Pub\u002FSub","Een berichtenpatroon waarin een producent een gebeurtenis publiceert en willekeurig veel consumenten die elk voor zich lezen, met een broker ertussen. De producent wacht nooit op ze, en zo blijft een verzoekpad snel terwijl het tragere werk erachter gebeurt.",[1799,1800],"publish\u002Fsubscribe","Google Cloud Pub\u002FSub",[1802],{"kind":1355,"url":1803},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPublish%E2%80%93subscribe_pattern",[],"\u002Fglossary#pub-sub",{"slug":1414,"term":1807,"definition":1808,"category":1407,"aliases":1809,"links":1812,"related":1815,"readMore":-1,"target":1816,"hasArticle":1340},"REST","De gangbare stijl voor HTTP-API's: een URL benoemt een resource en het HTTP-werkwoord zegt wat ermee moet gebeuren. De standaardmanier waarop een app met een backend praat, en wat de meeste externe integraties verwachten aan te treffen.",[1810,1811],"REST API","Representational State Transfer",[1813],{"kind":1355,"url":1814},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FREST",[1514,1516],"\u002Fglossary#rest",{"slug":1793,"term":1818,"definition":1819,"category":1345,"aliases":1820,"links":1824,"related":1827,"readMore":-1,"target":1828,"hasArticle":1340},"Rate limiting","Een bovengrens op het aantal verzoeken dat één aanroeper binnen een bepaald venster mag doen. Het houdt tegen dat één enthousiaste gebruiker, een scraper of een bot in een middag een maand aan betaald API-budget opmaakt, en het moet aan jouw kant van de integratie staan.",[1821,1822,1823],"rate limit","throttling","verzoeklimiet",[1825],{"kind":1355,"url":1826},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FRate_limiting",[1783],"\u002Fglossary#rate-limiting",{"slug":1359,"term":1830,"definition":1831,"category":1345,"aliases":1832,"links":1835,"related":1838,"readMore":-1,"target":1839,"hasArticle":1340},"SOC 2","Een rapport van een externe auditor over hoe een organisatie met klantgegevens omgaat — beveiliging, beschikbaarheid, vertrouwelijkheid — en niet een certificaat dat je koopt. Zakelijke kopers vragen erom, en het beperkt de architectuur lang voordat de audit dat doet.",[1833,1834],"SOC2","System and Organization Controls",[1836],{"kind":1355,"url":1837},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSystem_and_Organization_Controls",[1358,1342,1360],"\u002Fglossary#soc-2",{"slug":1841,"term":1842,"definition":1843,"category":1613,"aliases":1844,"links":1847,"related":1850,"readMore":-1,"target":1851,"hasArticle":1340},"saas","SaaS","Software die als doorlopend abonnement op een gehost product wordt verkocht in plaats van als eenmalige licentie die de klant zelf installeert en draait. De leverancier beheert de servers, levert doorlopend updates en factureert per gebruiker of per verbruik.",[1845,1846],"Software as a Service","software-as-a-service",[1848],{"kind":1355,"url":1849},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSoftware_as_a_service",[1531,1530],"\u002Fglossary#saas",{"slug":1516,"term":1853,"definition":1854,"category":1636,"aliases":1855,"links":1857,"related":1860,"readMore":-1,"target":1861,"hasArticle":1340},"Server-Sent Events","Een eenrichtingsstroom van server naar client over een gewone HTTP-verbinding. Eenvoudiger dan een WebSocket en het volstaat overal waar alleen de server iets te melden heeft — een voortgangsfeed, een AI-antwoord dat token voor token binnenkomt.",[1856],"SSE",[1858],{"kind":1355,"url":1859},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FServer-sent_events",[1514,1414],"\u002Fglossary#server-sent-events",{"slug":1586,"term":1863,"definition":1864,"category":1407,"aliases":1865,"links":1869,"related":1872,"readMore":-1,"target":1873,"hasArticle":1340},"Server-side rendering","Een pagina op de server als kant-en-klare HTML opbouwen, zodat het eerste antwoord de inhoud, koppen, metatags en gestructureerde data al meedraagt. Crawlers, linkvoorbeelden en trage apparaten lezen dat zonder JavaScript uit te voeren.",[1866,1867,1868],"SSR","server-rendered","renderen op de server",[1870],{"kind":1355,"url":1871},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FServer-side_scripting",[1576],"\u002Fglossary#server-side-rendering",{"slug":1607,"term":1875,"definition":1876,"category":1330,"aliases":1877,"links":1880,"related":1885,"readMore":-1,"target":1886,"hasArticle":1340},"Skia","De opensource 2D-graphicsbibliotheek van Google die Chrome, Android en — tot Impeller — elk Flutter-frame tekent. Ze rendert net zo goed naar PDF als naar een scherm, en dat is wat print-naar-PDF in Chrome doet.",[1878,1879],"Skia Graphics Engine","skia-safe",[1881,1883],{"kind":1335,"url":1882},"https:\u002F\u002Fskia.org\u002F",{"kind":1355,"url":1884},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSkia_Graphics_Engine",[1599],"\u002Fglossary#skia",{"slug":1303,"term":908,"definition":1888,"category":1407,"aliases":1889,"links":1893,"related":1896,"readMore":-1,"target":1897,"hasArticle":1340},"Hoe een app bepaalt waar een waarde leeft, wie hem mag wijzigen en welke delen van het scherm opnieuw tekenen als dat gebeurt. In Flutter is de keuze tussen Riverpod, BLoC en Provider een van de eerste architectuurbesluiten en het lastigst te herzien.",[1890,1891,1892],"statemanagement","BLoC","Riverpod",[1894],{"kind":1369,"url":1895},"https:\u002F\u002Fdocs.flutter.dev\u002Fdata-and-backend\u002Fstate-mgmt\u002Foptions",[638],"\u002Fglossary#state-management",{"slug":1501,"term":1899,"definition":1900,"category":1636,"aliases":1901,"links":1905,"related":1908,"readMore":-1,"target":1909,"hasArticle":1340},"TLS","De versleutelingslaag onder HTTPS. Ze bewijst dat de server is wie zijn certificaat zegt, spreekt een verse sleutel voor de sessie af en versleutelt alles daarna — zodat het netwerk ertussen alleen cijfertekst ziet die het niet stiekem kan wijzigen.",[1902,1903,1904],"SSL","HTTPS","Transport Layer Security",[1906],{"kind":1355,"url":1907},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FTransport_Layer_Security",[1490,1502],"\u002Fglossary#tls",{"slug":1911,"term":1912,"definition":1913,"category":1613,"aliases":1914,"links":1920,"related":1921,"readMore":-1,"target":1923,"hasArticle":1340},"staff-augmentation","Teamuitbreiding","Een inhuurmodel waarbij engineers van een externe partner bij je team komen en onder jouw aansturing werken — in jouw repository, jouw sprints, jouw proces — in plaats van een eigen project op te leveren. Je koopt capaciteit; de code en de context blijven bij jou.",[1915,1916,1917,1918,1919],"staff augmentation","team augmentation","dedicated developers","outstaffing","teamversterking",[],[1922,1780],"total-cost-of-ownership","\u002Fglossary#staff-augmentation",{"slug":1780,"term":1925,"definition":1926,"category":1613,"aliases":1927,"links":1930,"related":1933,"readMore":-1,"target":1934,"hasArticle":1340},"Time to market","Hoe lang het duurt om een product van besluit naar echte gebruikers te krijgen. De meeste discussies over stack en scope gaan eigenlijk over dit getal, want elke gewonnen week is een week omzet, feedback en concurrentiepositie.",[1928,1780,1929],"TTM","doorlooptijd tot de markt",[1931],{"kind":1355,"url":1932},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FTime_to_market",[218,1922],"\u002Fglossary#time-to-market",{"slug":1922,"term":1936,"definition":1937,"category":1613,"aliases":1938,"links":1942,"related":1945,"readMore":-1,"target":1946,"hasArticle":1340},"Total cost of ownership","Wat een product over zijn hele leven kost in plaats van alleen de bouw: onderhoud, upgrades, jaarlijkse OS- en winkelmigraties, en het tweede team dat je aanneemt om twee codebases gelijk te houden. Meestal groter dan de bouwofferte, en er vrijwel nooit in opgenomen.",[1939,1940,1941],"TCO","kosten van eigenaarschap","totale eigendomskosten",[1943],{"kind":1355,"url":1944},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FTotal_cost_of_ownership",[1780],"\u002Fglossary#total-cost-of-ownership",{"slug":1316,"term":916,"definition":1948,"category":1636,"aliases":1949,"links":1951,"related":1956,"readMore":-1,"target":1957,"hasArticle":1340},"De standaard voor browsers en mobiel om audio, video en data rechtstreeks tussen twee apparaten te sturen, waarbij servers er alleen aan te pas komen om ze aan elkaar voor te stellen. Hierop is een videogesprek in een app gebouwd, tenzij er een gehuurde SDK onder zit.",[1950],"Web Real-Time Communication",[1952,1954],{"kind":1335,"url":1953},"https:\u002F\u002Fwebrtc.org\u002F",{"kind":1355,"url":1955},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FWebRTC",[1322,1514],"\u002Fglossary#webrtc",{"slug":1514,"term":1959,"definition":1960,"category":1636,"aliases":1961,"links":1962,"related":1965,"readMore":-1,"target":1966,"hasArticle":1340},"WebSocket","Een protocol dat één verbinding openhoudt tussen client en server, zodat beide kanten op elk moment kunnen sturen in plaats van dat de client keer op keer vraagt. Waar live koersen, chat en aanwezigheidsindicatoren op draaien.",[],[1963],{"kind":1355,"url":1964},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FWebSocket",[1516,1414],"\u002Fglossary#websocket",{"slug":1530,"term":1968,"definition":1969,"category":1613,"aliases":1970,"links":1974,"related":1977,"readMore":1978,"target":1978,"hasArticle":888},"White-label","Eén product dat onder veel merken wordt uitgebracht. Een white-label platform voor mobiel bouwt elke klant een winkelklare app met een eigen naam, ontwerp en content vanuit één gedeelde codebase, in plaats van het project per klant te forken.",[1971,1972,1973],"white label","multi-tenant app","merkloos product",[1975],{"kind":1355,"url":1976},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FWhite-label_product",[218],"\u002Fglossary\u002Fwhite-label",{"slug":1322,"term":1980,"definition":1981,"category":1636,"aliases":1982,"links":1985,"related":1990,"readMore":-1,"target":1991,"hasArticle":1340},"XMPP","Een open, gefedereerd berichtenprotocol, en al lang het alternatief voor zelf een chatbackend schrijven of er een huren. Het dekt ook aanwezigheid, typindicatoren en bestandsoverdracht, en het is oud genoeg dat elk platform een volwassen clientbibliotheek heeft.",[1983,1984],"Jabber","Extensible Messaging and Presence Protocol",[1986,1988],{"kind":1335,"url":1987},"https:\u002F\u002Fxmpp.org\u002F",{"kind":1355,"url":1989},"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FXMPP",[1316,1514],"\u002Fglossary#xmpp"]