Respuesta corta: la tecnología y el entorno de desarrollo que elija la agencia sí te atan directamente; porque el lenguaje y las herramientas usadas determinan la rapidez con la que encontrarás un desarrollador que retome el proyecto, tus costes de mantenimiento y la compatibilidad de la app con el hardware. Que la agencia elija sus propias librerías cerradas en vez de tecnologías populares y estándar te vuelve dependiente de esa empresa.
Al firmar el contrato, lo primero que debes aclarar es la propiedad del código y el formato de entrega. En la propuesta debe figurar no solo la app funcionando; también que los códigos fuente se entregarán en un repositorio Git con documentación estándar y con las dependencias de licencias externas claramente listadas. Impide que la agencia use módulos centrales propios, cerrados y de código propietario, o exige el derecho de uso completo y el código abierto de esos módulos.
En segundo lugar, fija el estándar tecnológico. Si solo se va a hacer iOS, conviene preferir lenguajes nativos estándar de la industria como Swift; si más adelante hay planes de Android, hay que elegir multiplataformas comunes como Flutter o React Native, que tienen muchos desarrolladores independientes en el mercado. Aléjate totalmente de herramientas híbridas de nicho, antiguas o desconocidas.
Por último, añade una cláusula de traspaso y garantía. Vincula al calendario de pagos un periodo de garantía de al menos 60 días tras la entrega y la condición de que los códigos sean revisados y aprobados por un tercero experto independiente o por tu nuevo desarrollador.