Kurze Antwort: Die von der Agentur gewählte Technologie und Entwicklungsumgebung bindet euch direkt; denn die verwendete Sprache und die Tools bestimmen, wie schnell ihr später einen Entwickler findet, der das Projekt übernimmt, eure Wartungskosten und die Hardware-Kompatibilität der App. Wenn die Agentur statt gängiger Standardtechnologien ihre eigenen geschlossenen Bibliotheken wählt, macht sie euch von dieser Firma abhängig.
Beim Vertragsabschluss solltet ihr zuerst das Code-Eigentum und das Übergabeformat klären. Im Angebot muss nicht nur die lauffähige Version der App stehen, sondern auch, dass die Quellcodes mit Standarddokumentation und einer klar aufgelisteten Übersicht externer Lizenzabhängigkeiten in einem Git-Repository übergeben werden. Verhindert, dass die Agentur eigene, geschlossene Kernmodule verwendet, oder verlangt das vollständige Nutzungsrecht und den offenen Code dieser Module.
Im zweiten Schritt legt den Technologiestandard fest. Wenn nur iOS gemacht wird, sollten branchenübliche native Sprachen wie Swift bevorzugt werden; wenn später Android geplant ist, sollten gängige Cross-Platform-Lösungen wie Flutter oder React Native gewählt werden, für die es am Markt viele unabhängige Entwickler gibt. Von Nischen-, alten oder unbekannten Hybrid-Tools solltet ihr unbedingt die Finger lassen.
Zuletzt fügt eine Übergabe- und Garantieklausel hinzu. Knüpft an den Zahlungsplan eine mindestens 60-tägige Garantiezeit nach der Übergabe und die Bedingung, dass die Codes von einem unabhängigen Dritten oder eurem neuen Entwickler geprüft und abgenommen werden.