Xamarin - Lecciones aprendidas 2

Esta es la segunda parte de las lecciones aprendidas con Xamarin. Aquí está la primera parte.

API Keys, URLs y otras variables importantes:

Las API Keys, App URLs, Client IDs, etc. se deben manejar con mucho cuidado, especialmente para no publicarlas en repositorios de git, svn o tfs. Ese error es todo un dolor de cabeza.

Todavía estoy buscando la forma de utilizar variables de entorno en proyectos Xamarin desde Visual Studio for Mac. La idea es definir variables por consola (ej. export MY_AZURE_URL=https://myazureurl.azurewebsites.net) y luego usarlas en la aplicación (ej. var myAzureUrl = Environment.GetEnvironmentVariable("MY_AZURE_URL");), como en cualquier framework web decente.

En Xamarin es distinto porque Environment.GetEnvironmentVariable() lee variables locales, en este caso del teléfono, en lugar de cargarlas durante la compilación. Y Visual Studio for Mac todavía no tiene funciones "tan avanzadas".

Por ahora hago lo siguiente:
  1. Creo una clase estática como DemoApp.Infrastructure.AzureConfig para poner las variables, inicialmente con valores falsos.
  2. Subo el archivo al VCS (git en este caso).
  3. Ignoro todos los cambios futuros usando el comando git update-index --skip-worktree AzureConfig.cs. Aquí está la documentación del comando y aquí un ejemplo rápido.
Es importante que esas variables queden en una clase separada que se modifique muy de vez en cuando. Al principio las tenía directamente en el servicio de acceso a datos (ej. DataService.cs), que por supuesto editaba todo el tiempo... eso alcanzó a generarme un par de problemas.

Comentarios

Entradas más populares de este blog

Ampliar el sistema de archivos de una máquina virtual Ubuntu

Adviento C# 2020: Diario de ASP.NET

Historia de una App: un mes en la Tienda Windows y en Google Play