Ensemble-programmering is een set tools en praktijken voor geïntegreerde applicatie-ontwikkeling op verschillende platforms. De applicaties draaien op meerdere apparaten en interfaces met behoud van een consistente gebruikerservaring. Ensemble-programmering zorgt voor een contextbewuste gebruikerservaring en is vaak van toepassing op ontwikkelen IoT toestellen.