Welchen I²C-Bus meinst Du denn konkret?
Welche/was für eine App (Windows/Android?)?
Und worauf willst Du mit "relativ leicht programmieren können" hinaus?
I²C ist selbst schon relativ komplex, wenn das zu Fuß gemacht werden muß. Bietet das eingesetzte System Hardware, die das nativ unterstützt, wirds natürlich einfacher. Auf der anderen Seite gibts natürlich auch Programmierumgebungen, die Dir entsprechende Sachen erleichtern/abnehmen (BASCOM, die Arduino-IDE (die auch die ESPs unterstützt),...).
Und dann kommts auch noch darauf an, was Dein I²C-Bus können soll - I²C betrifft ja nur den eigentlichen Bus; für Displays, Speicher, Sensoren usw bieten sich ggf unterschiedliche Protokoll-Umsetzungen an.
Alexa: kommuniziert mMn mit verbundenen ...äh... was auch immer über (W)LAN - Deine I²C-Hardware müßte also über (W)LAN-Anbindung verfügen. Das wird bei den hier meist eingesetzten AVR schon recht tricky (natürlich gibt's Möglichkeiten mit entsprechenden Interface-Chips (ENC28J60, WIZ812MJ u.ä.)), aber selbst dann...
Das ganze muß dann auch softwaretechnisch in Alexa eingebunden werden. Du benötigst also irgend'n Skin (oder wie das da auch immer heißt). Die ESP kann man als Philips HUE-Gerät nutzen.
Ich würde eher versuchen, ein offenes Hausautomationssystem wie FHEM (in Verbindung mit Alexa) auszunutzen, und da dann eigene Hardware anzuschließen. Auch hier muß Deine Hardware natürlich das zugrunde liegende Kommunikationsnetz unterstützen ((W)LAN, dieses 433MHz-Netz oder was auch immer, auch da gibts entsprechende Lösungen auf Raspi/ESP-Basis, und auch da kann man natürlich weitere eigene primitivere Hardware (AVR etc) anbinden.
Sind aber alles erstmal nur Ansätze fixer Ideen...