Como você sabe, alguns autores do YouTube estão extremamente insatisfeitos com as condições que esta plataforma oferece. Uma batalha semelhante agora está sendo travada pelos desenvolvedores de aplicativos Android na plataforma Google Play. Tentarei em 20 minutos explicar o que há de errado com o Android.O Android já foi considerado a melhor plataforma móvel: controle, capacidade de personalização, recursos avançados, multitarefa real, suporte até casos raros de uso e liberdade dos desenvolvedores. Era a melhor plataforma para ciência e educação: em primeiro lugar, as ferramentas de desenvolvimento são gratuitas e multiplataforma e, em segundo lugar, o Android era um sistema operacional muito flexível que não interferia na experimentação de conceitos inovadores e na atualização de equipamentos. Agora tudo isso está desaparecendo rapidamente.
Anteriormente, os principais lançamentos do Android traziam novos recursos que encantavam desenvolvedores e usuários. Mas em algum momento eu já estava com medo dos anúncios de novas versões e ainda estou procurando a força (heh) de mim mesmo para examinar a lista de alterações e recomendações para desenvolvedores da versão mais recente. E novas versões não são a única razão para o aborrecimento: as alterações nas políticas da Google Play Store também são sempre divertidas de ler.
Para começar, há um pouco de contexto: antes do Android, eu experimentei o Windows Mobile 6.x e mudei para o Android após o lançamento da versão 4.2: lembro que eles anunciaram o 4.4 logo depois disso, e ela ficou no meu primeiro telefone Android pelo resto da vida. O Android foi o primeiro e até agora o único SO móvel em que investi seriamente no desenvolvimento de aplicativos.
Comecei a mexer no desenvolvimento de aplicativos pouco antes do lançamento do 6.0 (Marshmallow), então não era um veterano e não posso dizer que assisti à evolução do Android desde o início e, é claro, não observei todo o processo do ponto de vista do desenvolvedor. No entanto, uma década de mudanças passou diante de meus olhos - mesmo durante os experimentos com o Windows Mobile, prestei atenção ao que estava acontecendo no campo Android, embora ainda não tivesse dinheiro suficiente para esses telefones (tudo foi para "computadores portáteis" no Windows Mobile) . Entendo perfeitamente como era inconveniente para os usuários e desenvolvedores do Android 4.x antes: eu mesmo poderia experimentar essas versões e meus aplicativos precisavam suportá-las.
Descontinuação da API e perda de compatibilidade com versões anteriores
Com cada versão do Google muda a API do Android. Essas interfaces determinam amplamente o que os aplicativos podem ou não fazer. Além disso, algumas APIs requerem permissões com as quais você concorda durante a instalação, e algumas dessas permissões podem ser definidas na inicialização (a idéia é que o aplicativo seja
degradado normalmente fornecendo funções separadas sem obter algumas permissões). Isso se aplica à lista de contatos ou à API do local.
As versões mais recentes do Android incluem APIs mais recentes. Anteriormente, quase nenhuma alteração era feita nas APIs antigas das versões anteriores. Ou seja, aplicativos antigos continuaram funcionando normalmente.
Nos últimos dois a três anos, novas versões do Android começaram a remover e modificar APIs antigas. Por exemplo, se um aplicativo deseja permanecer ativo em segundo plano, agora deve exibir uma notificação constante. A ideia parece boa em teoria, mas no final você tem constantemente várias notificações, uma para cada aplicativo em segundo plano. Por exemplo, duas notificações permanecem penduradas no meu telefone: uma para o gravador e outra para o equalizador. Um dos meus próprios aplicativos também deve exibir constantemente uma notificação no Android 8 / Oreo e versões mais recentes para uma verificação confiável em segundo plano de Wi-Fi, a fim de estabelecer a aparência do usuário em determinados locais.
Na versão futura do Android 10 / Q, os recursos do aplicativo limitarão ainda mais. O Google
remove o acesso à área de transferência , eliminando toda uma categoria de aplicativos para gerenciar a área de transferência (histórico de fragmentos copiados, sincronização com outros telefones, computadores etc.). Atualmente, todos os aplicativos podem acessar o buffer sem permissões especiais. Você pode resolver o problema adicionando uma solicitação de permissão, em vez de remover completamente a API.
Os aplicativos não podem mais ativar e desativar o Wi-Fi , o que impede, por exemplo,
desligar automaticamente o Wi-Fi enquanto viaja de carro. O Google pensa
proibir completamente os aplicativos de acessar arquivos arbitrários no "armazenamento externo" (cartões SD e a área de memória interna do seu telefone, onde capturas de tela e fotos, MP3s, imagens para emulação etc.).
Observe que eles excluem todas essas coisas por "segurança", mas podem simplesmente ser protegidos com uma solicitação de permissão, como uma lista de contatos ou local. Em vez disso, eles decidiram remover completamente os recursos. Mesmo que os usuários desejem, os aplicativos não poderão implementá-los. Os aplicativos existentes provavelmente serão esmagados pelos usuários, porque as pessoas não entenderão por que o programa parou de funcionar depois de atualizar para uma nova versão maravilhosa do Android.
Essas são mudanças significativas. Aplicativos normais podem parar de funcionar. Os desenvolvedores terão que atualizá-los para implementar soluções alternativas menos convenientes, implementar mensagens explicativas e assim por diante. Isso requer tempo, esforço, dinheiro, etc., que podem ser gastos na correção de outros problemas ou no desenvolvimento de novas funções. Para equipes pequenas ou desenvolvedores independentes, especialmente aqueles que fazem isso em seu tempo livre, pode ser muito difícil acompanhar as últimas tendências do Google. Por exemplo, devido a uma alteração na operação dos serviços em segundo plano, durante o verão, passei a maior parte do meu tempo livre redesenhando a arquitetura de um dos aplicativos, o que, por sua vez, levou a novos erros que precisavam ser diagnosticados, corrigidos etc. para tornar o aplicativo mencionado. mostrou uma notificação e funcionou corretamente nas versões mais recentes do Android.
Mesmo sem o lançamento de novas versões do Android, o Google pode enviar APIs antigas para o recado: por exemplo, defina novas regras para a Play Store proibindo aplicativos com determinadas permissões. Recentemente, o Google baniu permissões para acessar SMS e registros de chamadas: portanto, todos esses aplicativos são expulsos do diretório.
Esses aplicativos ainda podem ser instalados diretamente do APK ou de diretórios alternativos, mas não da Play Store. Na prática, verifica-se que, dentre muitos aplicativos na Play Store, a funcionalidade principal é cortada. Por exemplo, o gravador não pode mais indicar o número de telefone nas gravações de áudio, e os aplicativos de automação não podem mais usar mensagens SMS como acionador de ações. Como 99% dos usuários baixam aplicativos do Google Play, essa funcionalidade agora é proibida e está disponível apenas para uma minoria absoluta de usuários que sabem como contornar essas restrições.
A Google Play Store é o YouTube para desenvolvedores de aplicativos.
Os desenvolvedores da Play Store estão cada vez mais se sentindo como criadores de conteúdo para o YouTube, onde as mudanças nas políticas ocorrem repentinamente e sem aviso prévio. No YouTube, os produtores sempre temem que o conteúdo seja desmonetizado por algum motivo: isso é decidido por um sistema totalmente automatizado e opaco, além de responder a reclamações de detentores de direitos autorais. A Play Store agora também precisa monitorar constantemente por que novo motivo eles podem excluir repentinamente seu aplicativo ou bloquear a conta de desenvolvedor, juntamente com todas as outras contas que o Google considerar envolvidas:
E esses são apenas exemplos isolados de nem mesmo as histórias mais "assustadoras" que são publicadas todos os dias no r / androiddev. Na "categoria" correspondente, dezenas de histórias sobre cada um desses tópicos. Às vezes, casos semelhantes chegam ao Hacker News. Parece que o Google trata o banimento de contas e a desinstalação de aplicativos da Play Store com a mesma frivolidade dos moderadores de jogos on-line, que pelo menor motivo proíbem os jogadores por suspeita de fraude. Para a maioria dos jogadores, os jogos online são apenas entretenimento, ao contrário do desenvolvimento de aplicativos Android. Surge a pergunta óbvia: o que fazer com as pessoas que foram banidas?
Agora entendo que a analogia com o YouTube é terrível. Veja bem, o YouTube geralmente recebe avisos. Você não acordou e descobriu que sua conta foi banida. Os autores de vídeos geralmente têm a oportunidade de capitalizar o drama alcançando os usuários. O público geralmente simpatiza com eles, enquanto os desenvolvedores de aplicativos lidam com a indignação de usuários que não têm idéia ou não querem saber por que precisamos remover massivamente a funcionalidade ou reduzir o desempenho de nossos aplicativos. Por exemplo, o desenvolvedor do popular gravador ACR, depois de remover a permissão para acessar o registro de chamadas,
enfrentou críticas ruins, abuso e palavrões de milhares de usuários irritados - e isso ocorreu após um extenso aviso de campanha sobre alterações futuras (como usuário do ACR, desinstalei a versão da Play Store e instalei através do XDA Labs, uma versão não vinculada que mantém a funcionalidade antiga).
Para desenvolvedores independentes e pequenas empresas, o desenvolvimento do Android se tornou mais arriscado do que nunca. Hoje vou começar a trabalhar no projeto e, seis meses depois, quando prepararei a primeira versão, as alterações na política do catálogo não permitirão que seja publicada ou afetem seriamente a funcionalidade ... além do parágrafo acima sobre APIs, que se tornam desatualizadas e mudam a semântica, exigindo suporte constante do código, para acompanhar as versões mais recentes.
Se você seguiu os links acima, entendeu outra coisa: o Google realmente não oferece suporte ao usuário para pessoas reais e se os bots foram tão responsivos quanto o Google Assistant ... Se eles não são bots, mas pessoas, a diferença não é sentida: eles cospem respostas de modelos. É sabido que a melhor maneira de resolver problemas com a listagem no Google Play é chamar a atenção de um funcionário do Google nas redes sociais.
Parece que o nível de suporte do Google depende da quantidade de ruído emitido nas redes sociais. E essa é uma correlação exponencial, porque muito barulho não é suficiente para obter um nível moderado de suporte; precisa levantar um ruído gigante. Esse é um problema com a maioria dos serviços do Google, especialmente se você não estiver usando o G Suite (aparentemente, os desenvolvedores de aplicativos não são considerados "clientes pagos" quando se trata de suporte). Uma das coisas que eu gostaria de regulamentar no nível estadual, é claro, é a obrigação dessas megaempresas de fornecer suporte real ao usuário.
Embora a analogia do YouTube provavelmente tenha sido incorreta, há mais um paralelo aqui: muitos acreditam que nos últimos anos o YouTube vem fazendo alterações nos modelos e algoritmos de negócios, favorecendo autores grandes e conhecidos e dificultando os menores. Acredito que estamos vendo uma tendência semelhante na Google Play Store - lembre-se de que a popularidade do aplicativo ou seu "nível" não deve ser estimada pelo número de downloads ou usuários ativos, mas pela quantidade de comissões do Google por publicidade e compras no jogo.
"Android é de código aberto"
“Android é open source” se tornou uma piada há cinco anos. Embora o Android Open Source Project (AOSP) ainda exista, muitos componentes que são realmente importantes para usuários finais e desenvolvedores estão se tornando cada vez mais fechados.
Os aplicativos do Google podem fazer coisas quase inacessíveis a aplicativos de terceiros, graças à interação estreita com o hipopótamo proprietário, que é o Google Play Services. Isso é especialmente visível no próprio aplicativo do Google, no Assistente do Google e no Google Launcher (Google Start).
Falta muito na montagem do AOSP e muitos aplicativos, incluindo o meu, terão problemas com a operação normal. Os projetos de "discordância" do Android desenvolveram alternativas gratuitas para muitos dos recursos do Google Play. Mas o fato de a comunidade precisar desenvolver essas alternativas e serem essenciais para o lançamento de aplicativos mais populares mostra que atualmente o Android pode ser considerado gratuito, exceto como uma distribuição Linux.
O AOSP em si é efetivamente controlado pelo Google. Este projeto é importante porque define APIs comuns para as várias "versões OEM" do Android, para que possamos desenvolver para o Android, não para "Samsung Android" ou "Nokia Android". Mas qual API implementar e qual excluir depende inteiramente do Google. O mesmo vale para a arquitetura geral do sistema, modelo de segurança etc. Isso significa que o Google pode inclinar o AOSP de qualquer forma, remover funções e transferi-lo para componentes proprietários, o que ele quiser.
Obviamente, a implementação de funções importantes através do Google Play e a ligação do sistema operacional aos componentes do Google são importantes para manter o controle sobre os "montadores OEM". O efeito positivo para usuários e desenvolvedores é que funções e correções de segurança ficam disponíveis mesmo em dispositivos que não recebem atualizações do OEM ou recebem atualizações apenas para sua versão do Android, mas não para uma nova. O efeito negativo é que essas alterações durante a noite podem afetar versões ainda mais antigas do Android. Isso permanece inteiramente a critério do Google, bem como restrições de aplicativos na Play Store.
Parece que o Google abre apenas o mínimo necessário do Android, quanto é necessário para o sistema operacional funcionar em dispositivos OEM. Não chegamos ao ponto extremo, principalmente porque os maiores OEMs têm alavancagem suficiente para evitar isso. Eu sinto que se o Google pudesse fazer do Android um sistema completamente fechado, eu o faria. Curiosamente, o que vai mudar no futuro sistema operacional Fuchsia.
Segurança em detrimento da funcionalidade
O Google tem duas desculpas para alterações nas políticas do Android e do Google Play: "segurança" e "experiência do usuário", incluindo a "duração da bateria". Não sei para quem o Google desenvolveu sua "experiência do usuário" nos últimos anos, mas certamente não para "usuários experientes" como eu. No entanto, vamos falar sobre segurança primeiro.
As medidas de segurança devem ser proporcionais ao que protegem. Em cada versão do Android, vemos uma ênfase crescente na segurança: por exemplo, arruinar um telefone se torna mais difícil sem o firmware personalizado, que inicialmente inclui a funcionalidade de superusuário. Podemos concluir que o Google está agindo para o bem. Mas é fácil ver que, sob o pretexto de segurança, certas permissões, como registros de chamadas e acesso a mensagens, são negadas ou APIs, incluindo acesso a armazenamento externo, são excluídas.
Reforçar as medidas de segurança faz sentido, porque armazenamos informações cada vez mais valiosas em nossos telefones: de informações privadas "antiquadas" a dados biométricos, como impressões digitais, digitalizações de rosto e retinas. Obviamente, o Google e outros provavelmente estão mais preocupados em proteger o acesso a sistemas de pagamento, chaves DRM e assim por diante.
Antes de terminarmos nossa discussão sobre segurança, vamos falar um pouco sobre a experiência do usuário - essa é outra desculpa popular para restringir ou remover completamente determinadas funções. Se 1% das pessoas usa alguma função que é muito complicada (ou mesmo "insegura"), então ela é frequentemente simplificada ... e o mencionado 1% permanece com um sistema que não suporta mais seu caso de uso. Isso não soa tão ruim? Mas é necessário que o Google repita esse processo com frequência suficiente ao lançar novas versões (para que os funcionários possam receber seus bônus), sempre atando as mãos de mais 1% dos usuários, e qual será o resultado? Provavelmente apenas a função de visualizar anúncios (obviamente, anúncios do Google). Você não precisa ligar, certo? No final, o interlocutor pode se tornar um scammer, atraí-lo para um esquema de engenharia social ou algo assim.
É difícil combinar segurança forte com uma boa experiência do usuário. Parece que as notificações de permissão também não são fornecidas. Provavelmente é mais fácil remover permissões do que dar aos usuários uma escolha.
De fato, tudo se resume à escolha do usuário. O Android costumava permitir um pequeno sacrifício de segurança em troca de aplicativos mais poderosos e inovadores que o iOS. Anteriormente, eu podia executar 10 aplicativos em segundo plano e colocar a bateria em meio dia, mas agora, se eu quiser fazer isso, precisarei examinar 10 notificações atuais. Eu costumava trocar arquivos entre aplicativos como na área de trabalho, mas, aparentemente, isso também é um insulto à boa segurança. Eu costumava conseguir digitalizar redes Wi-Fi a cada minuto, mas no Android 9 isso era limitado a algumas verificações por hora, matando alguns casos de uso normais, incluindo meu projeto de graduação. Felizmente, na universidade, podemos simplesmente fingir que a versão mais recente do Android é a oitava.
Cartões inteligentes, incluindo cartões SIM, foram inventados para contêiner a parte protegida dos sistemas. Autenticação, certificação - todas as funções de segurança devem ser executadas lá para que um sistema grande permaneça menos seguro e mais flexível. Mas em algum momento das últimas décadas, várias empresas decidiram que seria melhor (talvez para uma "experiência do usuário"?) Transferir operações importantes de segurança para o processador de aplicativos, incluindo sistemas de pagamento sem contato inteiros.
Sistemas como o SafetyNet foram desenvolvidos . E vamos proibir o lançamento de um aplicativo bancário em um telefone enraizado? Imagine que o Internet banking na área de trabalho se recusou a funcionar porque se tratava das informações que eu conheço a senha da conta de administrador ...No final, ao restringir os aplicativos normais em seu diretório, o Google finalmente incentiva o download direto e a instalação do APK. Isso é indesejável do ponto de vista da segurança, sem a necessidade de explicar o porquê.Nossos telefones definitivamente se tornaram mais seguros, mas a "segurança" excessiva estraga a vida das pessoas que querem mais do telefone do que sem parar para assistir ao YouTube e verificar seu feed na rede social. Você também precisa se lembrar de que, para muitas pessoas, um smartphone é o único computador e elas não podem dizer: "Faça essa tarefa difícil na área de trabalho". Que tal não armazenar tantas informações confidenciais no telefone para que possamos voltar à nossa flexibilidade anterior com os mesmos riscos? Android, permita-me dar um tiro no pé, como antes.A falta de alternativas reais
Eu não ficaria tão preocupado com esse movimento do Android em relação às massas (ou ao entendimento do Google sobre o que o público em geral pode fazer) se houvesse uma alternativa viável ao sistema operacional móvel. Mas não temos. Existe apenas o iOS da Apple, cujo apelo desde o início foi o lema “simplesmente funciona”: uma plataforma segura com funcionalidade limitada, que ao mesmo tempo limita a possibilidade de erros. Não tenho dúvida de que este é um achado para a maioria dos usuários. Mas, pessoalmente, essa plataforma não combina comigo. Como eu disse, me dê a oportunidade de me dar um tiro no pé, se eu quiser: me dê 2 horas de bateria, se desejar, e deixe meus próprios aplicativos espionarem minha localização, se eu permitir.As limitações do iOS eram boas, porque por muitos anos tivemos o Android que nos permitiu fazer essas coisas. Aconteceu que, graças à AOSP e à falta de concorrência, o Android acabou sendo o padrão de fato para todos os smartphones que não são da Apple. Entre os smartphones de baixo custo, o Android é realmente a única opção. Obviamente, por causa disso, a participação de mercado do Android aumentou. Como "todo mundo" está usando agora, houve uma tentação de copiar o modelo iOS "simplesmente funciona" e impor segurança a pessoas "propensas a se auto-prejudicarem" - agora você não pode se machucar, mesmo que queira.Os esforços dos concorrentes do Android são ridículos na melhor das hipóteses. O Windows Phone / Windows Mobile falhou em parte devido à entrada fraca e possivelmente muito tardia no mercado, juntamente com a "visão" dúbia e as más decisões de gerenciamento da Microsoft. Embora o sistema da Microsoft fosse muito bom, havia muitos fãs de WP / WM, mas entrou no mercado tão tarde (e com um futuro tão incerto) que não conseguiu atrair desenvolvedores e, sem aplicativos de ponta, a plataforma não é necessária para as pessoas, por assim dizer, excelente ela não era do ponto de vista técnico. Obviamente, o problema é que muitos dos principais aplicativos são lançados pelo Google; ela lançou esses aplicativos para iOS principalmente porque a plataforma iOS veio mais cedo.Se mesmo um grande player com bolsos profundos, como a Microsoft, não consegue imaginar uma terceira plataforma móvel, o que podemos dizer sobre tentativas menos ambiciosas, como o Firefox OS. Aqui o resultado é bastante previsível. Eles também têm um problema adicional ao encontrar ferro para correr. Infelizmente, você não pode pegar e alterar o SO no seu telefone, como em um computador. Em 2015, eu já reclamei da falta de padronização no hardware dos smartphones . É realmente interessante ler esse artigo quando o Android 4.4 era a versão mais recente e ver como minha percepção do Android mudou.Também deve ser observado que uma alternativa bem-sucedida ao Android deve executar definitivamente aplicativos Android, possivelmente por meio da camada de compatibilidade. De certa forma, o Android definiu o padrão para aplicativos, assim como o IE6 ditou os padrões da web da pior maneira há 15 anos. Alguém disse antitruste ?Últimos pensamentos
Assim, o Google através do Android define o padrão - e a implementação - da funcionalidade dos smartphones modernos, a menos que a Apple introduza uma grande inovação que deve ser rapidamente implementada no Android. Agora parece que a Apple está desacelerando um pouco com a inovação, então o Google adotou a iniciativa, tornando o Android mais parecido com o iOS, transformando-o em um sistema operacional suave, limitado e adequado para crianças que liga as mãos a desenvolvedores e usuários experientes.O Google elimina alguns dos aplicativos indesejados e até mesmo alguns aplicativos maliciosos da Play Store, aprimorando a automação, ao mesmo tempo em que é ainda mais movimentado e surdo do que nunca. É difícil distinguir um aplicativo normal de um aplicativo malicioso na máquina e o usuário não tem permissão para resolver um problema tão importante. Portanto, o Google simplesmente "proíbe" o uso de certas funções, descontinuando a API e banindo essas funções no diretório do programa, bloqueando literalmente todos os aplicativos que desejam abrir arquivos arbitrários no repositório do usuário, bem como gravadores de voz, programas de automação etc.Precisamos desesperadamente de uma alternativa para Android. Mas não está claro quem irá desenvolver e usar essa alternativa. Só sei que não me sinto mais feliz como desenvolvedor do Android ou como usuário do Android e, em geral , dificilmente recomendo o Android para amigos e parentes .