¿Por qué no funciona la aplicación móvil? Un día en Alfa-Bank: desarrollo móvil. Falta de RAM

La mayoría de propietarios de dispositivos Android se han encontrado con el problema de que alguna aplicación no se inicia. O no quieren empezar en absoluto o no funcionan como deberían. Esto plantea la pregunta: "¿Por qué las aplicaciones no funcionan en Android?" Esto puede causar algunos inconvenientes, pero cualquier problema/error se puede resolver.

Qué hacer si las aplicaciones de Android no funcionan

Constantemente se desarrollan nuevas aplicaciones y esto, por supuesto, es bueno. Sin embargo, el mercado de dispositivos tampoco sufre escasez y, en ocasiones, algunas aplicaciones resultan incompatibles con dispositivos específicos. Los desarrolladores están haciendo todo lo posible para que se produzcan el menor número posible de casos de este tipo. Hay otras razones:

  • Pocos RAM en el dispositivo;
  • La aplicación requiere una versión más reciente de Android;
  • La aplicación o el sistema falla.

Si instala aplicaciones exclusivamente desde GooglePlay, entonces todo estará bien, porque si su dispositivo y el programa/juego son incompatibles, el botón "Instalar" quedará inaccesible. puedes descargar archivo apk por separado e instalar. Pero esto no ofrece ninguna garantía.

Falta de RAM

Todas las aplicaciones tienen requisitos del sistema y necesitan una cierta cantidad de RAM para funcionar. Si falta, la aplicación no se iniciará o fallará constantemente. Puede borrarlo cerrando todos los programas que se ejecutan en segundo plano.

Hay otros métodos. Puede crear un archivo de intercambio utilizando, por ejemplo, Roehsoft Swapit RamExpander. Ocupará algo de espacio en su tarjeta de memoria. Esto será necesario para aumentar la cantidad de RAM. tendrá impacto negativo depende de la velocidad de su dispositivo y no todos los teléfonos inteligentes admiten archivos de intercambio (archivo de página).

    1. Instale Roehsoft Swapit RamExpander, ejecútelo y presione el botón "Activar intercambio".

  1. Luego tendrás que esperar hasta que se cree. Este es un proceso corto.

Al usar este método Esté preparado para que la tarjeta SD no funcione por mucho tiempo y tendrá que cambiarla.

Versión antigua de Android

Ahora ya existe la séptima versión de Android, que responde a la pregunta de por qué las aplicaciones no funcionan en Android 5 o 5.1. Todas las aplicaciones nuevas se desarrollan bajo. últimas versiones Androide. Por ello, es recomendable buscar actualizaciones constantemente y actualizar a la última versión. Esto puede mejorar el rendimiento del dispositivo y eliminar cualquier error de la versión anterior del firmware. Buscar actualizaciones es muy sencillo:

    1. Apertura "Ajustes" V menú de Android(icono de engranaje).

    1. Desplácese hacia abajo a la sección "Acerca del teléfono".

  1. Toca la inscripción "Buscar actualizaciones" o « Actualización inalámbrica» Será diferente para todos.

Este método no está disponible para todos los dispositivos. A veces es necesario ir al sitio web del desarrollador y consultar allí. Luego instale la actualización usando una PC.

Fallos del sistema/aplicación

Si la aplicación deja de funcionar repentinamente o comienza a fallar repentinamente, lo más probable es que se trate de un error. Luego debes apagarlo por completo y reiniciarlo. Para hacer esto:

    1. Abra la configuración de Android nuevamente.

    1. Ahora necesitas encontrar el punto. "Aplicaciones". Tócalo con el dedo.

    1. Ahora desliza hacia la derecha para desplazarte a la sección. "Laboral". Contiene todas las aplicaciones que se están ejecutando actualmente.

    1. Encuentra allí lo que necesitas y haz clic en él con el dedo.
    2. Ahora tenemos que detenerlo. Para hacer esto, toque el botón "Detener".

  1. Ahora vaya al menú y vuelva a abrir lo que necesita. Lo más probable es que funcione como debería.

Es posible que tengas que quitarlo e instalarlo nuevamente. Para hacer esto:

    1. Pasamos por las primeras 4 etapas, como en las instrucciones anteriores.
    2. Ahora para desinstalar el programa, haga clic en "Borrar".

    1. Reinicie su dispositivo manteniendo presionado el botón de bloqueo y seleccionando .

  1. Ahora debes descargarlo nuevamente desde Playmarket e instalarlo.

Si todas las aplicaciones dejan de funcionar en masa, entonces hay que asumir que las fallas son mayores y afectan al propio sistema. Intente restablecer su configuración.

En algunos casos esto ayuda. Si no, queda última opción- parpadeando. Este es un proceso individual para cada dispositivo, así que consulte las instrucciones en línea.

Conclusión

Hemos considerado todo posibles razones, por qué la aplicación no se inicia en Android y qué hacer en este caso. Si más de un método no ayuda, lo más probable es que el culpable sea el desarrollador. Es posible que haya actualizado el programa, así que regrese a versión anterior. Para hacer esto, en lugar del botón Eliminar, debe presionar "Desinstalar actualizaciones".

Alfa-Bank se convirtió en uno de los pioneros de la banca móvil: las aplicaciones para iOS y Android aparecieron en 2010, cuando la posibilidad de "recargar el saldo del teléfono desde el propio teléfono" era inusual. ¿Cómo van las cosas con el desarrollo móvil en el banco ahora, después de todos estos años?

Anteriormente publicamos "Un día en Alfa-Bank: desarrollo de Java", y ahora finalmente toca continuar, donde preguntamos sobre cómo trabajar en aplicaciones de iOS y Android. Nos respondieron Iliá Tsarev Y Antón Pujonin. Si escribe sus nombres como iLya y Anton, inmediatamente queda claro quién es responsable de qué en la empresa.

- Cuando en 2010 Habrowser informó sobre la aparición de una aplicación para Android en Alfa-Bank, escribió: "La investigación de mercado sobre la necesidad de dicha aplicación llevó más de seis meses". Desde entonces banca móvil se ha convertido en una parte tan integral de la vida que hoy estas palabras suenan divertidas. ¿Cómo afecta este cambio en el mundo al desarrollo móvil? No ha estado trabajando en las aplicaciones de Alfa-Bank desde el principio, pero últimos años atrapado: ¿qué ha cambiado a lo largo de los años?

Antón: En primer lugar, la velocidad: ahora necesita cortar y soltar rápidamente y arrastrar muchas funciones a su teléfono móvil.

Y lo segundo es que ahora es móvil primero e incluso sólo móvil. La aplicación ahora debería tenerlo todo, incluso los poco utilizados. Hace unos tres años, mi opinión personal era la siguiente: una aplicación móvil necesita aquellas funciones que utilizas al menos una vez al mes. Si es menos frecuente, vaya al sitio web y todo estará bien. Algo se usa una vez cada pocos años, por ejemplo, la activación de una tarjeta. Antes definitivamente habría dicho: ¿por qué es necesario esto en la aplicación? Abra el sitio.

Ilya: Insertar en el cajero automático.

Antón:¡El cajero automático está completamente vacío! En general, ahora ya no funciona así, debes agregarlo a aplicación móvil.

Para desarrollar funciones tan poco utilizadas lo más rápido posible y dedicar menos tiempo a su mantenimiento, WebView aparece cada vez más en las aplicaciones. En la sección “activación de tarjeta”, donde el usuario visita una vez cada cinco años, no necesita hermosas animaciones y una interfaz impecablemente pulida. Puede presionar el botón una vez y olvidarse de él. Y si desarrollamos esta característica no en forma nativa, sino en WebView, obtenemos un desarrollo más rápido, porque ya está implementado en el sitio, y velocidad de actualización, porque podemos actualizar algo en solo unos minutos. Esto afectó mucho nuestro trabajo.

Por supuesto, las vidas de los desarrolladores de JavaScript también se vieron afectadas. Anteriormente, presentaba la pantalla y no se preocupaba por el teléfono móvil, pero ahora sabe que el sitio probablemente se abrirá en un teléfono inteligente, necesita diseño adaptativo, y también hay una aplicación nativa, por favor, que sea similar dentro del móvil. Personalizaron el CSS para nosotros.

- Se escucharon las palabras "solo móvil". ¿Sucede que se agrega una función a Alfa-Mobile, pero no en el sitio?

Anton: Hay pocos de estos, pero existen. Por ejemplo, en el caso de los adinerados (5% de los clientes bancarios más ricos) hay bonificaciones si se cumplen ciertas condiciones (tener más de X cantidad de dinero en su cuenta, realizar más de Y cantidad de transacciones por mes), y ciertas La funcionalidad relacionada está disponible sólo en teléfonos móviles.

- Recordaré de nuevo el post de 2010 sobre la aparición de una aplicación para Android. En ese momento, en los comentarios, me sorprendió desagradablemente su tamaño de 29 megabytes: en aquellos días, los usuarios de Android tenían que contar cada megabyte, y aplicación típica pesaba mucho menos. Los tiempos parecen ser diferentes ahora, incluso en teléfonos inteligentes baratos decenas de gigabytes, pero todavía aparecen publicaciones "¿por qué aplicación de facebook tan grande que es una locura”. Por tanto, es interesante comparar: ¿cuánto pesan ahora sus aplicaciones?

Ilya: Tenemos 66 megas en iOS.

Antón: Tenemos alrededor de 40, cinco más o menos.

¿El tamaño es el adecuado para usted ahora? problema urgente? ¿Crece con el tiempo o hay que hacer esfuerzos para reducirlo?

Antón: El tamaño de la aplicación de Android no aumenta mucho. El volumen de código está creciendo, se están agregando algunas bibliotecas, pero en los últimos dos años la aplicación solo se ha vuelto más pequeña. Google introdujo VectorDrawable, los recursos ya no se almacenaban en archivos PNG en 4 tamaños, sino simplemente dibujo vectorial, que pesa unos pocos kilobytes. No se ve ningún jabón en la aplicación en la interfaz de usuario. ahora desde fotos grandes En la aplicación móvil, en mi opinión, sólo hay un par de fondos. Todo lo demás se extrae del backend según sea necesario.

Ilya: ya he abierto Tienda de aplicaciones- escribe que la aplicación pesa 90 megabytes, pero esta es la versión descomprimida, por lo que ocupará mucho espacio después de la instalación. Lo que se descargaba pesaba 60 megas cuando me uní a Alpha, ahora pesa 66. ¿Por qué aumentó? En parte gracias a Swift, que antes no existía. Además, recursos, sí...

Pero, por ejemplo, tengo 12 gigabytes de tráfico al mes en mi iPhone. no creo que sea muy bueno problema actual.

Antón: Para Moscú.

Ilya: Tenemos una distribución de usuarios con un sesgo muy grande hacia Moscú.

En general, no estamos haciendo nada radical para reducir la aplicación y es poco probable que se pueda hacer mucho. Se han cosechado todos los PNG y estamos constantemente refactorizando el código, eliminando cosas innecesarias. Pero incluso si eliminas 100 archivos de código, necesitarás un máximo de un megabyte, y eso si tienes suerte. Es decir, todas las cosas sencillas ya se han hecho. Hacemos otros nuevos según sea necesario.

Actualmente la App Store tiene un límite de descarga de 150 megas. red móvil, pasamos normalmente, no hay problemas. Facebook pesa realmente unos 200 megabytes y, descomprimido, 400. Tienen muchas bibliotecas y todo tipo de cosas y, al mismo tiempo, también se publican con mucha frecuencia. Leí una publicación interesante sobre tallas. Allí, una persona escribió sobre las actualizaciones de la aplicación "¿Por qué tengo que gastar 300 megabytes cada semana? Estás loco". Pero parece que todos estamos siguiendo esta historia, todas las empresas están intentando lanzar más a menudo, aportar algún tipo de valor con más frecuencia, y esto es genial.

Antón: Mientras tanto, miré el tamaño exacto de la versión de Android: ahora pesa 42,26 megabytes. En principio, nos esforzamos en reducir el tamaño tanto como sea posible. Limpiamos todos los recursos que ocupan mucho espacio, transferimos todo a un vector, a la representación en código o a la carga desde el backend.

Pero es como trabajar en calidad general código, aplicaciones. Si la tarea fuera precisamente “reducir la aplicación al mínimo”, la habríamos tomado y reducido aún más. Pero ¿por qué buscarte a ti mismo? trabajo extra¿Dónde obtendrá pocos resultados? En métricas del producto, parece que incluso si reducimos la aplicación de 40 megas a 10, esto aportará poco valor al producto. Es mejor dedicar tiempo a optimizar las descargas, la velocidad y las hermosas animaciones; será mejor para el usuario. Bueno, esta es mi opinión subjetiva.

El apoyo bancario es muy notorio para los usuarios pago de manzana Y pago de google, pero esta historia no trata sobre la aplicación móvil del banco. Cuando se introduce su soporte, ¿se necesitan desarrolladores móviles y cuál es su papel?

Antón: Si solo necesita agregar Apple Pay/Google Pay para su banco, entonces no necesita involucrar a los proveedores de telefonía móvil ni a la primera línea. Pero si quieres hacerlo bien, los necesitarás.

Ilya: Bueno, por ejemplo, se trata de que desde nuestra aplicación puedes suspender cualquier acción. tarjeta digital. Hay una lista de dispositivos donde funcionan Apple Pay y Google Pay; puede pausarlos o eliminar el enlace a ellos desde la aplicación;

Antón: Pero en general el trabajo en el frente es mínimo. Incluso si establece el objetivo máximo y lee atentamente la documentación, lo logrará en 2-3 semanas. El trabajo principal recae en el procesamiento: configurar terminales, negociar con Mastercard y Visa. Cada encuadernación de cartas es, de hecho, una nueva tarjeta virtual. Se le asigna un nuevo identificador y todos los problemas están en algún lugar del interior. Y solo necesitamos hacernos amigos aplicación de manzana Pagar o Google Pay.

Ilya: Bueno, Apple o Google deberían permitir esto.

La palabra “banco” se asocia con “seguridad”, pero ¿cómo afecta esto al desarrollo móvil? Por ejemplo, ¿no resulta que todo el trabajo debe realizarse exclusivamente dentro de la oficina?

Ilya: Para todos los desarrolladores existe una VPN que se conecta a nuestro red interna, por lo que es posible trabajar en aplicaciones desde cualquier parte del mundo, hay acceso. Hay inicios de sesión, contraseñas, certificados en las computadoras portátiles; si se pierde el dispositivo, simplemente puede bloquear todo. En general, desde desarrolladores móviles Si no tienes acceso a ningún servidor de combate, los riesgos son menores.

Antón: Si hablamos de la seguridad de una aplicación móvil, la mayoría de vulnerabilidades se cierran a nivel API: todas las operaciones están confirmadas. contraseñas de un solo uso mensajes recibidos vía SMS, se configuran filtros para bloquear transacciones sospechosas. Si existe una mínima sospecha de fraude, la operación se bloquea y el operador del call center llama al cliente. La interacción con el servidor se produce a través de un canal cifrado y se implementa la verificación del certificado.

Los bancos también están asociados con el conservadurismo. ¿Qué tan fácil es usar algo nuevo (por ejemplo, cómo se ve la migración a Swift en su caso) o no estándar en dispositivos móviles?

Ilya: Hemos estado escribiendo en Swift durante el último año y medio, empezamos con 2.3, ahora estamos en el cuarto. Miramos abiertamente tecnologías nuevas e inusuales, no hay prohibiciones. Lo que probablemente sea interesante es que trabajamos con la interfaz de usuario solo a través de código y usamos SnapKit para esto.

Antón: Sí, no hay prohibiciones, pero existe una comunidad interna común de desarrolladores. Si demuestras que tu tecnología es prometedora, necesaria y realmente útil, todo el mundo empezará a utilizarla.

Pero aquí hay que entender que el proyecto Alfa-Mobile tiene muchos años, hay una larga cola de funcionalidades y legado. Por supuesto, se han reescrito muchas cosas, pero lo antiguo permanece. Y cuando mucha gente está impulsando el proyecto, entonces... Cuando dices "tu MVP ya no está de moda hoy, presentamos un MVRx juvenil con estilo, a la moda", preguntan. pregunta lógica: “Amigo, aquí estás ahora nueva arquitectura aplica, ¿qué vamos a hacer con el resto? Tendremos que soportar las dos arquitecturas de forma independiente". Y si cada uno sigue arrastrando lo que quiere, vivir con esto será cada vez más difícil.

Si demuestra, en términos generales, que la transición de AsyncTask a Rx vale la pena, entonces desarrollamos un plan sobre cómo implementarlo, cómo refactorizar el anterior, para no arrastrar enfoques 2-3-4.

Ilya: Es decir, todo funciona a través de la comunidad. La comunidad lo acepta, así que vámonos.

- ¿Sucede que la comunidad está dividida en dos bandos?

Ilya: Sucede. Entonces solución final acepta plomo.

Antón: Esto también nos pasó a nosotros. Por ejemplo, al escribir pruebas unitarias. Tenemos dos aplicaciones para individuos y para los legales. Cuando estábamos pensando en la mejor manera de escribir pruebas, la mitad dijo "escribamos pruebas en Kotlin" (esto fue hace aproximadamente un año) y la otra mitad dijo "Kotlin es bueno, pero escribir Kotlin en JUnit puro es aburrido, hay demasiado código, Traigamos a Spock y Groovy".

Miramos a Spock y Groovy, la mitad de ellos dijo "genial, escribamos así". Y la otra mitad dijo que los cierres en Groovy son algo más allá de lo razonable, y escribamos en Kotlin. Y como resultado, ahora tenemos pruebas escritas en Kotlin en una aplicación y en Groovy en otra.

- ¿Qué tan sincronizado estás? trabajo de iOS y Android? ¿Las nuevas funciones aparecen simultáneamente en ambas plataformas?

Ilya: Trabajamos de acuerdo con Scrum, por lo que cada equipo es una pequeña startup con participantes en todas las capas y también desarrolla una nueva característica en todas las capas a la vez. En consecuencia, la funcionalidad suele estar lista aproximadamente de la misma manera. Puede haber un ligero retraso en el lanzamiento de versiones: por ejemplo, el lanzamiento en Android es anterior y la función se lanzará un poco antes. Grandes cambios Por supuesto, hacemos el tipo de rediseño juntos.

Sus aplicaciones están instaladas en millones de teléfonos inteligentes, ¿cómo le afecta esa escala? Por ejemplo, ¿tienes que jugar con cosas exóticas como teléfonos inteligentes poco conocidos que se comportan de manera extraña? ¿Incluso problemas muy raros provocan una reacción negativa en alguien y requieren corrección?

Ilya: Sí, siempre que pienses “definitivamente no habrá tal caso”, será 100%. Cuando comencé a trabajar, un mes después surgió una situación en la que pensamos "no habrá nadie allí" y, por supuesto, en una base de usuarios enorme, todo esto salió a la luz y tuvimos que solucionarlo. Sí, siempre hay casos de este tipo. Por lo tanto, las pruebas son especialmente importantes para nosotros: tanto las pruebas unitarias en el código, que verifican su lógica de negocios (incluidos algunos casos extremos), como las pruebas de UI, que verifican automáticamente que los escenarios de negocios funcionan, y las pruebas de aceptación, donde el evaluador verifica que los escenarios de negocios funcionan. el diseño no ha aparecido en ninguna parte y todo está bien, y regresión cuando verifican manualmente que la aplicación no haya deteriorado su funcionalidad.

Antón: Respecto a los smartphones exóticos: en iOS todo está claro, la base de dispositivos no es muy grande y Android es un zoológico de dispositivos. A pesar de que se han solucionado los principales errores de la aplicación, a veces en los dispositivos chinos sin nombre ocurre algún problema inexplicable y la aplicación falla.

A veces, el propio Android falla y hay poco que podamos hacer al respecto. A veces te decepcionan firmware modificado fabricantes de dispositivos. vamos a decidir problemas similares trivial: buscamos dicho dispositivo y descubrimos cuál es la causa del defecto. "Chicos, quién tiene tal o cual dispositivo en Moscú, probémoslo", mensajes frecuentes en nuestros chats corporativos.

Hace un par de años hubo un caso en el que de un dispositivo a Tienda de juegos Hubo las mismas críticas "no funciona", nada estaba claro, y luego fuimos a la tienda: "¿Podemos mirar este teléfono inteligente?" Nos lo consiguieron, fingimos que en 30 minutos estábamos decidiendo si compraríamos este dispositivo por mil rublos nominales, pero en realidad instalamos una versión especial de la aplicación, encontramos el motivo del fallo, llegamos a la oficina. Lo arreglé y lo volví a subir. Allí el problema estaba relacionado con la resolución: el dispositivo era grande, pero la resolución era de algún modo muy pequeña.

A “a veces el propio Android falla”: ¿sientes algún dolor por su parte? Por ejemplo, Google puede tomar y Modo dormido limitar las aplicaciones: ¿esto te duele?

Anton: Digamos que vale la pena comenzar con el hecho de que Google presenta todo con anticipación: describe los cambios, habla de ello en la E/S y lanza nuevas versiones para los desarrolladores con anticipación. Y tratamos de cerrar todo lo crítico con anticipación.

A veces requiere esfuerzo. Cuando aparecieron los permisos de tiempo de ejecución, me causó mucho dolor; tuve que pasar una semana o incluso más tratando de detectar todos los casos en la aplicación. Pero si sigues las novedades, no tendrás problemas repentinos a la hora del lanzamiento.

Y problemas con Android en general... Bueno, por ejemplo, el año pasado nos vimos obligados a abandonar soporte de Android 4.0. ¿Por qué? WebView falló en muchos dispositivos. Simplemente no había AsyncTask allí, el sistema no pudo encontrar dicha clase. Analizamos qué soluciones había disponibles y nada funcionó para nosotros; nuestra importante funcionalidad se implementó mediante WebView.

Había que hacer algo y decidimos que era mejor dejar a los usuarios con versiones inferiores a 4.1 (entonces había entre un 2% y un 2,5% de ellos) en versión actual, y luego se publicaron actualizaciones solo para el 98%.

En las presentaciones de nuevas versiones de iOS/Android se pueden ver cosas espectaculares como ARKit, pero la realidad aumentada claramente no es lo tuyo. Cuando sale una nueva versión, ¿cuánto os afecta?

Ilya: Bueno, ¡la realidad aumentada en realidad se trata de nosotros! Ahora lo iniciaré en mi iPhone y les mostraré cómo buscar un cajero automático en realidad aumentada moviendo su teléfono inteligente. Esto se hizo hace mucho tiempo, todavía no en ARKit, por supuesto.

en general sobre actualizaciones de iOS- cuando cambiaron de iOS 6 a iOS 7 y rediseñaron completamente la interfaz, todo lo posible se rompió. Yo no estaba trabajando en Alpha entonces, pero pasamos dos meses haciendo la transición a otro proyecto, fue terrible. Y después todo se vuelve más fácil. En iOS 11 parece que nada ha cambiado fundamentalmente para nosotros, aunque Apple ha hecho mucho por dentro, por ejemplo, su sistema de archivos- Esto en general es genial. Por cierto, después de la actualización, se borraron todas las fotos de mi teléfono. Es bueno que las copias de seguridad se dejaron y luego se cargaron.

Por tanto, pocas de las innovaciones de iOS 11 son relevantes para nosotros. Está claro que estamos usando cosas técnicas: estamos pasando a nuevas versiones de Swift, Xcode. Este proceso normal, no existe tal cosa que todo se estropee. Incluso con el lanzamiento del tercer Swift, cuando hubo muchas quejas en la industria.

Antón: La última actualización de Android no tuvo un impacto muy fuerte en los usuarios, pero realmente tuvo un fuerte impacto en los desarrolladores. Allí presentaron muchas cosas arquitectónicas, inmediatamente comenzamos a mirar de cerca y a pensar; por ejemplo, decidimos crear una nueva funcionalidad en Room, esta es una base de datos que presentó Google. Y los componentes de la arquitectura de Android también nos interesaron de inmediato, aunque inicialmente eran demasiado toscos para que estuviéramos listos para usarlos con audacia.

Y de las novedades para el usuario: Aplicaciones instantáneas algo interesante que también notamos, pero no teníamos prisa por implementarlo. Me gustaría que cualquier sección de la aplicación pudiera iniciarse a través de la aplicación instantánea, y esto requiere una refactorización profunda de toda la aplicación. A escala de la aplicación Alfa-Mobile, esto es muy difícil y lleva mucho tiempo. Espero que podamos implementar esto en 2018.

Ilya: Me parece que CoreML en la forma en que está ahora tiene poca relevancia. No sabe cómo seguir entrenando modelos, sólo utiliza modelos ya preparados. Sería genial si el modelo pudiera entrenarse adicionalmente en usuario específico quién usa este dispositivo en particular. Por ejemplo, todos pagan teléfono móvil por 500 rublos, y él paga por 50. Y ahora le damos una oferta de 500, porque todo el mundo paga por 500. 50 sería mejor.

En el backend esto es más relevante para nosotros. Por ejemplo, predecir qué transacciones tendrá el usuario. Si tiene algún gasto regular, por ejemplo, paga todos los meses. servicios publicos, se puede predecir con cierta probabilidad que en mes próximo También completarán previamente los datos y enviarán una notificación. Actualmente estamos desarrollando esta dirección.

De nuestra conferencia de Mobius vemos que en mundo móvil Hoy en día se habla mucho de arquitectura. ¿A qué le atribuyes esto y qué estás haciendo con ello ahora?

Ilya: Me parece que proyectos moviles y las nuevas empresas que sobrevivieron y tuvieron éxito ahora han crecido. Tienen mucho legado y muchos desarrolladores. Por lo tanto, en algún momento quedó claro para todos que ya no sobreviviríamos en MVC. Algo va mal. No podemos apoyar esto. Necesitamos rehacer algo. Y así empezó a parpadear cada vez más a menudo.

Tenemos una historia similar. Por supuesto, cuando tenemos mucho legado y muchos desarrolladores en el proyecto, ya no podemos escribir en MVC, porque pasaremos un mes creando una característica elemental. Por supuesto, empezamos a pensar en pruebas, en reutilización, en cómo hacer que todo fuera legible y mantenible.

Pasamos por un viaje en el que primero tuvimos MVC y dos personas, luego éramos tres y llegamos a MVVM. Y parecieron vivir bien hasta las diez. Y después de eso nos dimos cuenta de que cada uno ve MVVM a su manera y comenzamos a discutir sobre quién lo hace y cómo. Nos dimos cuenta de que necesitábamos hacer algo diferente y, de hecho, no había muchas opciones en el mercado. Y cuando escuchábamos informes sobre arquitectura en Mobius, siempre decían "no es un hecho que necesites exactamente esto o aquello, piensa en lo que necesitas y haz algo específicamente para ti, basado en estos requisitos".

Eso es lo que hicimos. Tomamos MVVM, tomamos VIPER, encontramos un artículo sobre Clean Swift y pensamos: "También tema interesante, intentémoslo ". Nos sentamos y escribimos el mismo módulo en una semana. diferentes arquitecturas. Luego nos sentamos y lo discutimos juntos: mira, tenemos un artículo sobre MVVM. ¿Qué nos gusta y qué no nos gusta de ello? Hay un artículo sobre VIPER, ¿qué contiene? Era el mismo código, la misma funcionalidad.

Decidimos que en nuestro caso sería bueno coger Arquitectura Limpia y adaptarla a nuestro gusto, y al final hicimos lo que llamamos “Otra arquitectura más”. Y parece que va bien. Por supuesto, fuimos inmediatamente decir sobre eso en la reunión, porque había exageración, otra arquitectura, todos decían "oooh, VIPER matará o no". Sobre "matar", por supuesto, ya veremos, no nos propusimos ese objetivo. Simplemente ofrecieron una alternativa.

Antón: Sí, mi opinión es similar. Android se introdujo en 2008. Se empezaron a crear pequeñas aplicaciones. Un fuerte aumento en el desarrollo, probablemente en 2010. Y poco a poco los equipos, las aplicaciones y las tendencias exclusivamente móviles comenzaron a crecer. Cuando el equipo crece a 5 personas, es necesario introducir estándares para que la aplicación no se desmorone, se pueda mantener y mejorar de manera efectiva.

Me parece que Google no tuvo un error, sino un defecto: no prestó atención a la falta de una arquitectura claramente definida. Había todo tipo de herramientas, IDE, SDK, pero no había arquitectura.

En Google I/O en 2010, el empleado de Google Virgil Dobzhansky descrito Tres patrones, tres enfoques para desarrollar aplicaciones de Android. Cuando me confiaron el desarrollo desde cero por primera vez en mi vida, lo intenté; de lo contrario, algo no funciona, necesito pensar en cómo organizarlo. Empecé a buscar en Google sobre arquitectura; en ese momento solo había uno, tres enfoques de Dobzhansky. Empecé a usarlo. Todo estaba bien, pero resultó ser un gran lío de código, una gran cantidad de clases que resuelven de manera muy detallada algún problema muy pequeño. Aparentemente, no soy el único que encontró este problema y gente inteligente Comencé a intentar mejorarlo, mire los análogos: cómo se desarrolla en gran java en Enterprise, como lo hace iOS con VIPER.

Ahora los equipos son cada vez más grandes, por lo que adoptan enfoques estándar o idean algo propio. Y cuanto más grande sea el equipo, más rigurosa se necesita la arquitectura. Me gustó la frase de la última reunión de Alfa-Bank "El código debe ser impersonal".

Ilya: La reutilización también es importante. Esto se debe al hecho de que las empresas dicen “más rápido, más rápido, más rápido”, la competencia está creciendo y muchas empresas se están moviendo hacia el desarrollo móvil. Si no tienes una aplicación móvil en este momento, es extraño. Tiene que ser rápido y soportable, y esto conduce a estándares apropiados.

- Se nos acabaron las preguntas, ¿te gustaría agregar algo más sobre el desarrollo móvil en Alpha?

Ilya: Quiero contarles un poco sobre el equipo. Somos completamente independientes. Nosotros mismos configuramos CI, podemos configurar cualquier servidor nosotros mismos, conectar Grafana y mucho más. No necesitamos cinco equipos más de ingenieros de DevOps para configurar algo. Lo máximo que necesitamos de los demás es recibir acceso, pero esto está bastante formalizado: envié una carta y me dieron acceso.

Los desarrolladores aprenden mucho. Y arquitectura, y cómo escribir código en general, si se trata de desarrolladores junior, y cómo trabajar en equipo, asumir responsabilidades y desarrollar algunas cosas adicionales. Un desarrollador de Android vino a nosotros y rehizo la mitad de CI...

Antón:¿“En nuestra casa” o “en tu casa”?

Ilya: Bueno... de todos modos, ¡estos son desarrolladores móviles que saben cómo hacer CI! Esto es genial. No es así en todas partes.

Antón: Y te lo diré de una manera ligeramente diferente. Cuando un desarrollador de Android viene a una entrevista, siempre le pregunto: “¿Estaría interesado en trabajar con nosotros? ¿Qué problemas quieres resolver?

Alguien dice: "Quiero visualizar las características del producto para poder acceder a la aplicación y ver inmediatamente el resultado de mi trabajo". Alguien dice: “Quiero rootear algo, en C, para Android, para que todo quede súper óptimo”. Y aquí tenemos que decepcionar a los demás porque prácticamente no tenemos tales tareas. Te envían una muestra JSON que debería llegar, la pegas en lugar correcto, escribir pruebas, hacer todo lo demás. Mucho depende del diseño, a veces es complejo, a veces es simple. Pero todo esto, en promedio, lleva un poco de tiempo y rara vez surge una tarea que no sea trivial.

Las tareas más interesantes y difíciles que tenemos ahora están en otra área: en el área de escalamiento. Nuestro número de desarrolladores móviles está creciendo. ¿Y cómo se puede conseguir que 20 personas trabajen para que el código no se degrade, sea compatible, la cantidad de errores no aumente y la velocidad de desarrollo no disminuya? Y estamos haciendo mucho por esto.

Digamos, según CI. Solíamos tener uno MacPro, hicieron montajes sobre ello. Después de un tiempo empezamos a extrañarlo. El viernes, todos terminan los sprints, comienza una gran cantidad de construcciones y su construcción puede permanecer en fila durante una hora o incluso más. Por lo tanto, decidimos utilizar el equipo de Android para transferir todos los ensamblados a servidores en servicios en la nube. Y para ello, envuelva la infraestructura en un contenedor Docker. Y utilice tuberías de Jenkins. EN mundo androide No dedican mucho tiempo a DevOps. Pero realmente lo necesitamos y se ha puesto mucho esfuerzo en ello.

También hay muchas tareas de prueba. Tenemos el principio "cada uno cubre su propio código con pruebas". Pero hay gente que trabaja un poco más profundamente con las pruebas. Están estudiando e integrando nuevos frameworks: Spock, Spek, Espresso. Automatizan la ejecución de pruebas y verifican la cobertura del código mediante pruebas. En una palabra, hacen todo lo posible para garantizar que otros redacten pruebas de forma eficaz.

No prestamos menos atención a la arquitectura y desarrollamos una biblioteca de componentes visuales. ¿Qué nos aporta una biblioteca así? El diseñador no nos lo da todo. diseño terminado, que tiene píxeles perfectos, pero es solo una maqueta de la pantalla: aquí hay un botón azul, aquí hay un encabezado grande, aquí hay un encabezado mediano, hay una estrella amarilla. Las sangrías se describen en la biblioteca de componentes, colores, fuentes y todo eso. Es decir, se reduce el trabajo del diseñador, se reduce el trabajo del desarrollador, el tiempo de depuración, la revisión del diseño también se reduce mucho, los errores estúpidos de medio píxel no pueden existir en principio.

- ¡Gracias a ambos por sus respuestas!

Pronto organizaremos uno nuevo. Móbius, y Alfa-Bank se convirtió en su patrocinador. Esto significa que si todavía tiene preguntas sobre el desarrollo móvil en esta empresa, ¡en la conferencia habrá alguien a quien hacérselas!

Etiquetas:

  • banco alfa
  • ios
  • androide
  • mobius
Agregar etiquetas

En este artículo descubriremos por qué es posible que la aplicación móvil de Aliexpress no funcione y qué hacer al respecto.

A veces los usuarios encuentran el problema de que no arranca o no arranca Algunas funciones funcionan. Sin duda, el problema puede estar en el propio smartphone o quizás en la aplicación. Veamos por qué la aplicación aliexpress puede que no funcione y qué hacer al respecto.

¿Por qué la aplicación Aliexpress no funciona en Android y qué hacer al respecto?

aplicación móvil aliexpress

Muy a menudo con el problema de que una aplicación no funciona. aliexpress que enfrentan los usuarios de Android. Esto se debe a varias razones:

  • ¿Estás usando versión antigua aplicaciones. Si necesita actualizar a nueva versión, entonces la aplicación no funcionará correctamente. En este caso, simplemente deberás actualizarlo a la última versión.
  • en el sitio web aliexpress se llevan a cabo trabajo técnico. Esta situación también puede afectar el funcionamiento de la aplicación. Lo único que necesitas es un poco de paciencia y todo saldrá bien por sí solo.
  • Durante las rebajas importantes, cuando hay demasiados usuarios en el sitio y la aplicación, es posible que algunas funciones o incluso la aplicación misma no funcionen. Aquí tampoco depende nada de ti, solo espera y visita la aplicación periódicamente.
  • Si la aplicación también ha recogido gran caché, es posible que no se inicie o que falle constantemente. En este caso, es necesario limpiarlo. Abra la configuración de su teléfono inteligente, vaya a la sección "Aplicaciones", seleccionar "Aliexpress" y presione la tecla "Borrar caché".

Como puede ver, existen razones especialmente terribles por las que la aplicación no funciona. aliexpress- No. Si nada le ayuda y la aplicación no funciona en absoluto, lo más probable es que el problema esté en su teléfono inteligente. Intenta restablecerlo a la configuración de fábrica; quizás tengas un virus en tu teléfono o la memoria esté demasiado llena.

Vídeo: Aplicación móvil AliExpress




Arriba