From 5ff719c7736b447d59ab2f0aa00bfb38995ae0da Mon Sep 17 00:00:00 2001 From: Carlos Millan Date: Fri, 3 Aug 2018 21:12:37 -0500 Subject: [PATCH 1/4] =?UTF-8?q?Traducci=C3=B3n=20del=20archivo=20accessibl?= =?UTF-8?q?ity.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- es_ES/accessiblity.md | 84 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 es_ES/accessiblity.md diff --git a/es_ES/accessiblity.md b/es_ES/accessiblity.md new file mode 100644 index 00000000000..df93b8a615d --- /dev/null +++ b/es_ES/accessiblity.md @@ -0,0 +1,84 @@ +--- +layout: page +title: Accessibility + +permalink: /accessibility/ +--- + +Flutter se compromete a apoyar a los desarrolladores que quieran hacer sus aplicaciones más +accesible: utilizable por la mayor cantidad de gente posible, incluidos aquellos con +discapacidades tales como ceguera o impedimento motor. + +* Placeholder for TOC +{:toc} + +# Soporte de accesibilidad de Flutter + +Flutter admite tres componentes para el soporte de accesibilidad: + +* **[Fuentes grandes](#large-fonts)**: Renderizar widgets de texto con tamaños de fuente especificados por el usuario +* **[Lectores de pantalla](#screen-reader)**: Comunicar comentarios verbales sobre el contenido de la interfaz de usuario +* **[Suficiente contraste](#sufficient-contrast)**: Hacer widgets con colores que tengan suficiente contraste + +## Inspección del soporte de Accesibilidad + +Los detalles de estos se discuten a continuación. Además de las pruebas para estos temas específicos, recomendamos el uso de escáneres de accesibilidad automatizados: + + * Para Android: + 1. Instale el [Escáner de accesibilidad][accessibility-scanner] para Android + 1. Habilite el Escáner de Accesibilidad desde Android Settings > Accessibility > + Accessibility Scanner > On + 1. Acceda al botón de icono 'casilla de verificación' del Analizador de accesibilidad para iniciar un escaneo + * For iOS: + 1. Abra la carpeta `iOS` de su aplicación Flutter en Xcode + 1. Seleccione un simulador como objetivo y haga clic en el botón Run + 1. En Xcode, seleccione Xcode > Open Developer Tools > Accessibility Inspector + 1. En el Inspector de Accesibilidad, seleccione Inspection > Enable Point to + Inspect, y luego seleccione los diversos elementos de la interfaz de usuario en la aplicación Flutter para inspeccionar sus atributos de accesibilidad + 1. En el Inspector de Accesibilidad, seleccione Audit en la barra de herramientas, y luego + seleccione Run Audio para obtener un reporte de problemas potenciales. + +[accessibility-scanner]: https://play.google.com/store/apps/details?id=com.google.android.apps.accessibility.auditor&hl=en + +## Fuentes grandes {#large-fonts} + +Tanto Android como iOS contienen configuraciones de sistema para configurar los tamaños de fuente deseados utilizados por las aplicaciones. Los widgets de texto de Flutter respetan esta configuración del sistema operativo cuando se determinan los tamaños de fuente. + +### Tips para desarroladores + +Los tamaños de fuente son calculados automáticamente por Flutter según la configuración del sistema operativo. Sin embargo, como desarrollador, debe asegurarse de que todos los diseños tengan espacio suficiente para mostrar todos sus contenidos cuando aumente el tamaño de las fuentes. Por ejemplo, puede probar todas las partes de su aplicación en un dispositivo de pantalla pequeña configurado para usar la configuración de fuente más grande. + +### Ejemplo + +Las siguientes dos capturas de pantalla muestran la plantilla estándar de la aplicación Flutter representada 1) con la configuración de fuente predeterminada de iOS, y 2) con la configuración de fuente más grande seleccionada en la configuración de accesibilidad de iOS. + +![Captura de pantalla que muestra una aplicación de Flutter con un tamaño de fuente regular](/images/a18n/a18n-fonts-regular.png) +![Captura de pantalla que muestra una aplicación de Flutter que utiliza el tamaño de fuente más grande disponible](/images/a18n/a18n-fonts-large.png) + +## Lectores de pantalla {#screen-reader} + +Lectores de pantalla ([TalkBack][talkback], [VoiceOver][voiceover]) permite a los usuarios con discapacidad visual recibir comentarios por voz sobre el contenido de la pantalla. + +### Tips para desarrolladores + +Active VoiceOver o TalkBack en tu dispositivo y navega por tu aplicación. Si se encuentra con algún problema, use el [widget Semantics][semanticswidget] para personalizar la experiencia de accesibilidad de su aplicación. + +[talkback]: https://support.google.com/accessibility/android/answer/6283677?hl=en +[voiceover]: https://www.apple.com/lae/accessibility/iphone/vision/ +[semanticswidget]: https://docs.flutter.io/flutter/widgets/Semantics-class.html + +## Suficiente contraste {#sufficient-contrast} + +El suficiente contraste de color hace que el texto y las imágenes sean más fáciles de leer. Además de beneficiar a los usuarios con diversas discapacidades visuales, el suficiente contraste de color ayuda a todos los usuarios cuando visualizan una interfaz en dispositivos en condiciones de iluminación extrema, como cuando están expuestos a la luz solar directa o en una pantalla con bajo brillo. + +La [W3C recomienda](https://www.w3.org/TR/UNDERSTANDING-WCAG20/visual-audio-contrast-contrast.html): + +* Al menos 4.5:1 para texto pequeño (por debajo de 18 puntos regulares o 14 puntos en negrita) +* Al menos 3.0:1 para texto grande (18 puntos y más arriba de lo normal o 14 puntos y más arriba en negrita) + +### Tips para desarrolladores + +Asegúrese de que las imágenes que incluya tengan suficiente contraste. + +Al especificar colores en widgets, asegúrese de que se use suficiente contraste entre +selecciones de color en primer plano y fondo. From 61e350ffeb768ca856f0725132aab41684cb1f81 Mon Sep 17 00:00:00 2001 From: Carlos Millan Date: Sat, 4 Aug 2018 11:05:42 -0500 Subject: [PATCH 2/4] =?UTF-8?q?Correcci=C3=B3n=20de=20algunas=20palabras?= =?UTF-8?q?=20en=20el=20archivo=20accessiblity.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- es_ES/accessiblity.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/es_ES/accessiblity.md b/es_ES/accessiblity.md index df93b8a615d..20dc70baa0e 100644 --- a/es_ES/accessiblity.md +++ b/es_ES/accessiblity.md @@ -6,7 +6,7 @@ permalink: /accessibility/ --- Flutter se compromete a apoyar a los desarrolladores que quieran hacer sus aplicaciones más -accesible: utilizable por la mayor cantidad de gente posible, incluidos aquellos con +accesibles: utilizable por la mayor cantidad de gente posible, incluidos aquellos con discapacidades tales como ceguera o impedimento motor. * Placeholder for TOC @@ -29,7 +29,7 @@ Los detalles de estos se discuten a continuación. Además de las pruebas para e 1. Habilite el Escáner de Accesibilidad desde Android Settings > Accessibility > Accessibility Scanner > On 1. Acceda al botón de icono 'casilla de verificación' del Analizador de accesibilidad para iniciar un escaneo - * For iOS: + * Para iOS: 1. Abra la carpeta `iOS` de su aplicación Flutter en Xcode 1. Seleccione un simulador como objetivo y haga clic en el botón Run 1. En Xcode, seleccione Xcode > Open Developer Tools > Accessibility Inspector From fbb03576597c894c1042d79570d64aad67d6bb7b Mon Sep 17 00:00:00 2001 From: Carlos Millan Date: Sat, 4 Aug 2018 11:22:49 -0500 Subject: [PATCH 3/4] =?UTF-8?q?correccion=20traducci=C3=B3n=20t=C3=ADtulo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- es_ES/accessiblity.md | 2 +- es_ES/android-release-build.md | 240 +++++++++++++++++++++++++++++++++ 2 files changed, 241 insertions(+), 1 deletion(-) create mode 100644 es_ES/android-release-build.md diff --git a/es_ES/accessiblity.md b/es_ES/accessiblity.md index 20dc70baa0e..d51f87a3ec1 100644 --- a/es_ES/accessiblity.md +++ b/es_ES/accessiblity.md @@ -1,6 +1,6 @@ --- layout: page -title: Accessibility +title: Accesibilidad permalink: /accessibility/ --- diff --git a/es_ES/android-release-build.md b/es_ES/android-release-build.md new file mode 100644 index 00000000000..acfe28dad0b --- /dev/null +++ b/es_ES/android-release-build.md @@ -0,0 +1,240 @@ +--- +layout: page +title: Preparing an Android App for Release + +permalink: /android-release/ +--- + +During the typical development cycle, you'll test an app using `flutter run` at the +command line, the Run and Debug toolbar buttons in IntelliJ, or both. By default, +Flutter builds a *debug* version of your app. + +When you're ready to prepare a *release* version for Android, for example to +[publish to the Google Play Store][play], follow the steps on this page. + +* TOC Placeholder +{:toc} + +## Review the App Manifest + +Review the default [App Manifest][manifest] file `AndroidManifest.xml` located +in `/android/app/src/main/` and verify the values are correct, +especially: + +* `application`: Edit the [`application`][applicationtag] tag to reflect the +final name of the app. + +* `uses-permission`: Remove the `android.permission.INTERNET` +[permission][permissiontag] if your application code does not need Internet +access. The standard template includes this tag to enable communication between +Flutter tools and a running app. + +## Review the build configuration + +Review the default [Gradle build file][gradlebuild] file `build.gradle` +located in `/android/app/` and verify the values are correct, especially: + +* `defaultConfig`: + + * `applicationId`: Specify the final, unique (Application Id)[appid] + + * `versionCode` & `versionName`: Specify the interall app version number, and + the version number display string. Consult the version information guidance in + the [versions documenation][versions] for details. + + * `minSdkVersion` & `targetSdkVersion`: Specify the minimum API level, and the + API level on which the app is designed to run. Consult the API level section + in the [versions documetation][versions] for details. + +## Adding a Launcher icon + +When a new Flutter app is created, it has a default Launcher icon. To +customize this icon you might want to check out the [Flutter Launcher Icons](https://pub.dartlang.org/packages/flutter_launcher_icons) package. + +Alternatively, if you want to do it manually, here's how: + +1. Review the [Android Launcher Icons][launchericons] guidelines for icon +design. + +1. In the `/android/app/src/main/res/` directory, place your icon files +in folders named using [Configuration Qualifiers][configurationqualifiers]. +The default `mipmap-` folders demonstrate the correct naming convention. + +1. In `AndroidManifest.xml`, update the [`application`][applicationtag] tag's +`android:icon` attribute to reference icons from the previous step (e.g. +`/android/key.properties` that contains a +reference to your keystore: + +``` +storePassword= +keyPassword= +keyAlias=key +storeFile=/key.jks> +``` + +*Note*: Keep this file private; do not check it into public source control. + +### Configure signing in gradle + +Configure signing for your app by editing the `/android/app/build.gradle` +file. + +1. Replace: +``` + android { +``` + with the keystore information from your properties file: +``` + def keystorePropertiesFile = rootProject.file("key.properties") + def keystoreProperties = new Properties() + keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) + + android { +``` + +1. Replace: +``` + buildTypes { + release { + // TODO: Add your own signing config for the release build. + // Signing with the debug keys for now, so `flutter run --release` works. + signingConfig signingConfigs.debug + } + } +``` + with: +``` + signingConfigs { + release { + keyAlias keystoreProperties['keyAlias'] + keyPassword keystoreProperties['keyPassword'] + storeFile file(keystoreProperties['storeFile']) + storePassword keystoreProperties['storePassword'] + } + } + buildTypes { + release { + signingConfig signingConfigs.release + } + } +``` + +Release builds of your app will now be signed automatically. + + +## Enabling Proguard + +By default, Flutter does not obfuscate or minify the Android host. +If you intend to use third-party Java or Android libraries, +you may want to reduce the size of the APK or protect that code from +reverse engineering. + +For information on obfuscating Dart code, see [Obfuscating Dart +Code](https://github.com/flutter/flutter/wiki/Obfuscating-Dart-Code) +in the [Flutter wiki](https://github.com/flutter/flutter/wiki/). + +### Step 1 - Configure Proguard + +Create `/android/app/proguard-rules.pro` file and add rules listed below. + +``` +#Flutter Wrapper +-keep class io.flutter.app.** { *; } +-keep class io.flutter.plugin.** { *; } +-keep class io.flutter.util.** { *; } +-keep class io.flutter.view.** { *; } +-keep class io.flutter.** { *; } +-keep class io.flutter.plugins.** { *; } +``` + +The configuration above only protects Flutter engine libraries. +Any additional libraries (for example, Firebase) require their own +rules to be added. + +### Step 2 - Enable obfuscation and/or minification + +Open `/android/app/build.gradle` file and locate `buildTypes` definition. +Inside `release` configuration set `minifiyEnabled` and `useProguard` flags +to true. You have to also point ProGuard to the file you have created in step 1. + +``` +android { + + ... + + buildTypes { + + release { + + signingConfig signingConfigs.debug + + minifyEnabled true + useProguard true + + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + + } + } +} +``` + +Note: Obfuscation and minification can considerably extend compile time +of the Android application. + +## Building a release APK + +This section describes how to build a release APK. If you completed the +signing steps in the previous section, the release APK will be signed. + +Using the command line: + +1. `cd ` (replace `` with your application's directory). +1. Run `flutter build apk` (`flutter build` defaults to `--release`). + +The release APK for your app is created at `/build/app/outputs/apk/app-release.apk`. + +## Installing a release APK on a device + +Follow these steps to install the APK built in the previous step on a +connected Android device. + +Using the command line: + +1. Connect your Android device to your computer with a USB cable. +1. `cd ` where `` is your application directory. +1. Run `flutter install` . + +## Publishing an APK to the Google Play Store + +For detailed instructions on publishing the release version of an app to the +Google Play Store, see the [Google Play publishing documentation][play]. + +[manifest]: http://developer.android.com/guide/topics/manifest/manifest-intro.html +[manifesttag]: https://developer.android.com/guide/topics/manifest/manifest-element.html +[appid]: https://developer.android.com/studio/build/application-id.html +[permissiontag]: https://developer.android.com/guide/topics/manifest/uses-permission-element.html +[applicationtag]: https://developer.android.com/guide/topics/manifest/application-element.html +[versions]: https://developer.android.com/studio/publish/versioning.html +[launchericons]: https://developer.android.com/guide/practices/ui_guidelines/icon_design_launcher.html +[configurationqualifiers]: https://developer.android.com/guide/practices/screens_support.html#qualifiers +[play]: https://developer.android.com/distribute/googleplay/start.html From 212399f5816a4450d1e7e74eafc0f53788ece0ae Mon Sep 17 00:00:00 2001 From: Carlos Millan Date: Sat, 4 Aug 2018 12:11:05 -0500 Subject: [PATCH 4/4] Borrado archivo android-release-build --- es_ES/android-release-build.md | 240 --------------------------------- 1 file changed, 240 deletions(-) delete mode 100644 es_ES/android-release-build.md diff --git a/es_ES/android-release-build.md b/es_ES/android-release-build.md deleted file mode 100644 index acfe28dad0b..00000000000 --- a/es_ES/android-release-build.md +++ /dev/null @@ -1,240 +0,0 @@ ---- -layout: page -title: Preparing an Android App for Release - -permalink: /android-release/ ---- - -During the typical development cycle, you'll test an app using `flutter run` at the -command line, the Run and Debug toolbar buttons in IntelliJ, or both. By default, -Flutter builds a *debug* version of your app. - -When you're ready to prepare a *release* version for Android, for example to -[publish to the Google Play Store][play], follow the steps on this page. - -* TOC Placeholder -{:toc} - -## Review the App Manifest - -Review the default [App Manifest][manifest] file `AndroidManifest.xml` located -in `/android/app/src/main/` and verify the values are correct, -especially: - -* `application`: Edit the [`application`][applicationtag] tag to reflect the -final name of the app. - -* `uses-permission`: Remove the `android.permission.INTERNET` -[permission][permissiontag] if your application code does not need Internet -access. The standard template includes this tag to enable communication between -Flutter tools and a running app. - -## Review the build configuration - -Review the default [Gradle build file][gradlebuild] file `build.gradle` -located in `/android/app/` and verify the values are correct, especially: - -* `defaultConfig`: - - * `applicationId`: Specify the final, unique (Application Id)[appid] - - * `versionCode` & `versionName`: Specify the interall app version number, and - the version number display string. Consult the version information guidance in - the [versions documenation][versions] for details. - - * `minSdkVersion` & `targetSdkVersion`: Specify the minimum API level, and the - API level on which the app is designed to run. Consult the API level section - in the [versions documetation][versions] for details. - -## Adding a Launcher icon - -When a new Flutter app is created, it has a default Launcher icon. To -customize this icon you might want to check out the [Flutter Launcher Icons](https://pub.dartlang.org/packages/flutter_launcher_icons) package. - -Alternatively, if you want to do it manually, here's how: - -1. Review the [Android Launcher Icons][launchericons] guidelines for icon -design. - -1. In the `/android/app/src/main/res/` directory, place your icon files -in folders named using [Configuration Qualifiers][configurationqualifiers]. -The default `mipmap-` folders demonstrate the correct naming convention. - -1. In `AndroidManifest.xml`, update the [`application`][applicationtag] tag's -`android:icon` attribute to reference icons from the previous step (e.g. -`/android/key.properties` that contains a -reference to your keystore: - -``` -storePassword= -keyPassword= -keyAlias=key -storeFile=/key.jks> -``` - -*Note*: Keep this file private; do not check it into public source control. - -### Configure signing in gradle - -Configure signing for your app by editing the `/android/app/build.gradle` -file. - -1. Replace: -``` - android { -``` - with the keystore information from your properties file: -``` - def keystorePropertiesFile = rootProject.file("key.properties") - def keystoreProperties = new Properties() - keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) - - android { -``` - -1. Replace: -``` - buildTypes { - release { - // TODO: Add your own signing config for the release build. - // Signing with the debug keys for now, so `flutter run --release` works. - signingConfig signingConfigs.debug - } - } -``` - with: -``` - signingConfigs { - release { - keyAlias keystoreProperties['keyAlias'] - keyPassword keystoreProperties['keyPassword'] - storeFile file(keystoreProperties['storeFile']) - storePassword keystoreProperties['storePassword'] - } - } - buildTypes { - release { - signingConfig signingConfigs.release - } - } -``` - -Release builds of your app will now be signed automatically. - - -## Enabling Proguard - -By default, Flutter does not obfuscate or minify the Android host. -If you intend to use third-party Java or Android libraries, -you may want to reduce the size of the APK or protect that code from -reverse engineering. - -For information on obfuscating Dart code, see [Obfuscating Dart -Code](https://github.com/flutter/flutter/wiki/Obfuscating-Dart-Code) -in the [Flutter wiki](https://github.com/flutter/flutter/wiki/). - -### Step 1 - Configure Proguard - -Create `/android/app/proguard-rules.pro` file and add rules listed below. - -``` -#Flutter Wrapper --keep class io.flutter.app.** { *; } --keep class io.flutter.plugin.** { *; } --keep class io.flutter.util.** { *; } --keep class io.flutter.view.** { *; } --keep class io.flutter.** { *; } --keep class io.flutter.plugins.** { *; } -``` - -The configuration above only protects Flutter engine libraries. -Any additional libraries (for example, Firebase) require their own -rules to be added. - -### Step 2 - Enable obfuscation and/or minification - -Open `/android/app/build.gradle` file and locate `buildTypes` definition. -Inside `release` configuration set `minifiyEnabled` and `useProguard` flags -to true. You have to also point ProGuard to the file you have created in step 1. - -``` -android { - - ... - - buildTypes { - - release { - - signingConfig signingConfigs.debug - - minifyEnabled true - useProguard true - - proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' - - } - } -} -``` - -Note: Obfuscation and minification can considerably extend compile time -of the Android application. - -## Building a release APK - -This section describes how to build a release APK. If you completed the -signing steps in the previous section, the release APK will be signed. - -Using the command line: - -1. `cd ` (replace `` with your application's directory). -1. Run `flutter build apk` (`flutter build` defaults to `--release`). - -The release APK for your app is created at `/build/app/outputs/apk/app-release.apk`. - -## Installing a release APK on a device - -Follow these steps to install the APK built in the previous step on a -connected Android device. - -Using the command line: - -1. Connect your Android device to your computer with a USB cable. -1. `cd ` where `` is your application directory. -1. Run `flutter install` . - -## Publishing an APK to the Google Play Store - -For detailed instructions on publishing the release version of an app to the -Google Play Store, see the [Google Play publishing documentation][play]. - -[manifest]: http://developer.android.com/guide/topics/manifest/manifest-intro.html -[manifesttag]: https://developer.android.com/guide/topics/manifest/manifest-element.html -[appid]: https://developer.android.com/studio/build/application-id.html -[permissiontag]: https://developer.android.com/guide/topics/manifest/uses-permission-element.html -[applicationtag]: https://developer.android.com/guide/topics/manifest/application-element.html -[versions]: https://developer.android.com/studio/publish/versioning.html -[launchericons]: https://developer.android.com/guide/practices/ui_guidelines/icon_design_launcher.html -[configurationqualifiers]: https://developer.android.com/guide/practices/screens_support.html#qualifiers -[play]: https://developer.android.com/distribute/googleplay/start.html