Encerrando o suporte para Android 4.x
Em fevereiro de 2017, a HL lançou um aplicativo renovado nas plataformas IOS e Android. Durante o desenvolvimento do aplicativo atualizado, medimos o uso de nossos clientes existentes para as faixas superior e inferior de versões do Android que eles usaram. Nossa versão mais baixa do Android suportada atualmente é o Android Jelly Bean 4.3 – que foi lançado originalmente em julho de 2013. Na época do lançamento de nosso aplicativo atualizado, ele já tinha pouco menos de três anos. Nossa versão com mais suporte quando relançamos era o Android Marshmallow 6.0. Em dezembro de 2017, aumentamos para o Android Oreo 8.0, novamente em agosto de 2018 para o Android Oreo 8.1 e, mais recentemente, em novembro de 2019 para o Android 10 (infelizmente, este não tem um nome de código baseado no deserto).
Em três anos de operação da versão atualizada do aplicativo, aumentamos o suporte em 6 versões do Android (devido à forma como o Android numera internamente sua plataforma é API 23 a 29 – você pode descobrir mais sobre isso nesta página). No entanto, não suspendemos o suporte para versões anteriores, o que significa que o número de versões da plataforma Android que oferecemos agora é API 18 a 29. São 12 versões distintas do Android!
Essa história é muito comum na comunidade Android. Ao contrário de nossos amigos IOS, o suporte para versões de plataforma mais antigas tende a ter uma cauda bem longa – o que significa que eles permanecem em uso por um longo tempo – e não é incomum ver aplicativos que suportam versões mais antigas do Android. No entanto, o que também é comum é que os aplicativos reavaliem isso periodicamente em vários pontos. De acordo com nossas estatísticas para o último trimestre, as versões do Android 4.x representam menos de ~ 0,54% de nossa base de usuários.
A partir de hoje, estamos avisando aos clientes que o suporte para Android 4.x será retirado até o final do verão de 2020.
As razões pelas quais estamos fazendo isso
Esforço Relativo
Em uma estimativa conservadora, gastamos cerca de 5% do nosso tempo testando cada versão da plataforma Android 4.x (4.3, 4.4.x) para problemas específicos. O gráfico acima mostra a ponderação relativa dos usuários do Android 4.x em relação à população total de usuários do Android. Em termos de percentuais estamos em torno de 0,54% e caindo. Dado que quanto mais antiga a versão do Android, geralmente, mais difícil é encontrar dispositivos de teste adequados e que a plataforma em si é pior em comparação com as versões mais recentes do Android, esse esforço se tornou insustentável. Por exemplo, a maneira como certos fabricantes de dispositivos Android costumavam fornecer suporte para gráficos vetoriais significava que frequentemente vemos problemas nesses dispositivos quando tentamos exibir ícones vetoriais simples. O suporte a esses dispositivos de nicho incidente a incidente não é uma maneira eficiente de desenvolver o aplicativo.
Build Times
Passamos grande parte do nosso tempo como desenvolvedores construindo constantemente a base de código (compilando o código, organizando os muitos recursos visuais e baseados em texto no aplicativo, empacotando o aplicativo) para que possamos distribuir compilações de teste para nossos desenvolvedores, equipes de teste, e proprietários do produto. No momento em que este texto foi escrito, a base de código tinha cerca de 177 mil linhas de código e leva muito tempo para ser construída a partir do zero. Melhorias em versões posteriores do Android podem ajudar aqui, mas não até que atualizemos nossa versão mínima com suporte para Android 5 Lollipop. O benefício prático disso é que podemos gastar mais tempo aprimorando o aplicativo e menos tempo esperando por compilações.
Características
Queremos aproveitar as vantagens dos novos recursos da plataforma sem ter que criar soluções alternativas para dispositivos Android mais antigos. Essas soluções alternativas nem sempre são as melhores e, no mínimo, introduzem caminhos de código extras com os quais precisamos ter cuidado quando estamos desenvolvendo / testando. Exemplos disso incluem não fazer uso total da API de atualizações no aplicativo (isso permite que nosso processo de atualização para versões novas e críticas do aplicativo seja mais suave e rápido para os clientes) e uso (total) da estrutura de transições, que é uma experiência do usuário melhoria. Embora a situação tenha melhorado muito nos últimos meses, há muito tempo, o suporte a tarefas em segundo plano não foi uma grande experiência. Essa é uma das áreas às quais precisamos prestar atenção especial, porque as implementações diferiam muito entre as versões do Android.
Segurança
Temos um alto compromisso com a segurança de nossos aplicativos. As versões mais antigas do Android normalmente não têm mais janelas de atualização dos fabricantes e não recebem atualizações críticas de segurança. Além disso, a versão mais antiga do Android (embora considerada segura no momento de seu lançamento) agora pode ser considerada insegura pelos padrões de hoje. A segurança é um cenário em constante mudança, então uma das melhores coisas que você pode fazer para se proteger é certificar-se de que está executando um software atualizado. Um exemplo disso é o nível de suporte TLS v1.2 a partir do Android 5.0 Lollipop. Embora as versões anteriores possam ativar esse recurso, ele é ativado por padrão a partir do Android 5.0. Isso melhora a segurança das conexões quando seu dispositivo se comunica com os servidores. Em versões anteriores do sistema operacional, tivemos que fazer uma quantidade considerável de trabalho extra para habilitar isso e testar o TLS v1.2.
Dependências de terceiros
Como a maioria dos aplicativos Android, usamos OkHttp como base para criar conexões e nos comunicarmos pela Internet. A equipe OkHttp deixou claro que as novas versões não suportam versões anteriores ao Android 5.0. Visto que esta é uma dependência crítica para nosso aplicativo, queremos garantir que podemos continuar a atualizar a biblioteca.
O resto da indústria
Isso segue requisitos semelhantes de todo o setor financeiro:
· Nationwide Android 5.0 e superior
· Santander Android 5.0 e superior
· NatWest Android 6.0 e superior
· Barclays Android 5.0 e superior
· Lloyds Android 5.0 e superior
O que os usuários devem fazer após o término do suporte?
Estaremos entrando em contato com usuários de plataformas Android abaixo do Android 5.0 para informá-los sobre o fim do suporte para seus dispositivos. Se eles puderem atualizar para o Android 5.0 ou superior, recomendamos que o façam o mais rápido possível.