Artyom Kulakov e Roma Choryev são os desenvolvedores do Redmadrobot e gravam podcasts onde discutem vários aspectos da criação de produtos de TI. No décimo primeiro episódio, os convidados compartilham suas experiências e piadas - Dima Suzdalev, líder de tecnologia Android KODE , e Vasya Chirvon, chefe de prática Android na Redmadrobot SPB.
Anexamos um link para a versão mais recente, cronograma e respostas a várias perguntas importantes.
- 1:58 - Vasya Chirvon fala sobre como ele entrou no desenvolvimento do Android.
- 03:25 - E agora Dima Suzdalev sobre seu caminho.
- 14:52 - Onde está o título da plataforma Android.
- 25:05 - É difícil desenvolver aplicativos para Android.
- 34:30 - É mais difícil se tornar um bom desenvolvedor Android do que um desenvolvedor iOS.
- 58:01 - Um pouco sobre o Jetpack Compose.
- 01:02:02 - Um pouco sobre Hilt.
- 01:03:15 – : KMM/Flutter – ?
- 01:20:02 – UI .
- 01:27:14 – .
– Android-
Claro, existem dificuldades e problemas, mas isso é o mesmo que em qualquer profissão.
Dima Suzdalev observou que a experiência de um desenvolvedor Android é sobre o fato de você saber “aonde você não precisa ir”. Bem, se você ainda veio ao lugar errado, então você sabe como contornar este “lugar errado”.
Mas Roma comparou o desenvolvimento do Android com walking in Chains (correntes pesadas de ferro) pode ir, mas, por assim dizer, bolnovato. Como exemplo, ele citou uma situação familiar a qualquer desenvolvedor, quando um elemento do qual você espera um comportamento normal para de funcionar repentinamente. Ou, por exemplo, isso geralmente acontece apenas em um dispositivo específico ("olá" para uma frota de milhares de dispositivos chineses).
Ou é assim que acontece: digamos que o Google tenha um bug na API que funciona de uma maneira específica. Você já está acostumado com isso, não se esqueça de fazer um contorno e conviver com isso em todos os projetos. Mas, de repente, em algum ponto, o Google corrige esse bug, e agora tudo o que você fazia antes quebra o aplicativo. E novamente você tem que fazer algo a respeito.
O desenvolvimento é semelhante ao Lego - às vezes difícil, mas legal! Você se senta e constrói. E você gosta, porque se você não gosta de Lego, você não vai jogar;)
Sobre novos itens na área de desenvolvimento Android
Recentemente, quase todos os anos, o Google apresentou várias coisas úteis para desenvolvedores: Jetpack Compose, Navigation Component, Data Store e outras credenciais de identidade de segurança.
Dima disse que gosta da abordagem do Google para desenvolver o Jetpack Compose. Ele já tinha experimentado e notou especialmente os guias e excelente documentação, onde tudo é explicado e há exemplos de código.
Quanto ao Navigation Component, esta biblioteca prova ser uma ferramenta para aplicações simples. Com sua ajuda, você pode adicionar navegação rapidamente e gerenciá-la bem. Os caras perceberam que seria muito bom se o Google adicionasse a geração rápida de gráficos lá.
Discussão detalhada sobre Punhal / Punho e Bigorna a partir de 01:02:02.
Não o Google sozinho (a Huawei pode, mas um pouco)
No mundo Android gratuito, não existe apenas o Google, que foi repreendido no estúdio. Há também a corporação Huawei, que criou um precedente interessante no mercado.
Quem não sabe: a Huawei fez seus próprios análogos dos serviços do Google, além disso, a interface do codelab foi copiada quase um a um. A empresa investiu pesadamente em marketing para cobrir a história. Resumindo - nas vendas de seus smartphones a Huawei entrou no topo, ultrapassando até mesmo os "gigantes" Apple e Samsung. Mas isso se deveu principalmente ao mercado chinês, a Roma tem certeza.
Vale destacar que essa situação abre algumas oportunidades: é bom quando há escolha e não há apenas Google. Se outras grandes empresas começarem a fornecer alternativas ao Google Play Services, isso será útil para todos. Mas isso inevitavelmente adicionará problemas para desenvolvedores, por exemplo, com fragmentação. O surgimento de um segundo, terceiro, etc. serviços fará com que você conheça dez variedades dos mesmos.
Algumas palavras sobre o desenvolvimento multiplataforma
Junto com o desenvolvimento do Android e do iOS, um mundo separado e bastante grande de desenvolvimento de plataforma cruzada está se desenvolvendo.
Ele tem abordagens tradicionais que ainda estão funcionando e alguns produtos novos que têm sido discutidos ativamente na comunidade nos últimos dois anos. É sobre a Multiplataforma Flutter e Kotlin.
Eles são convenientes e aplicáveis? Os convidados no estúdio decidiram por unanimidade que "Flutter está sentindo falta de Kotlin." Mais detalhes de 01:15:27.
Construído e construído: arquitetura de aplicativo Android
Hoje, para projetar um aplicativo, não basta apenas pegar uma arquitetura tradicional, você precisa olhar para tarefas de negócios específicas e criá-lo você mesmo do zero.
“Claro, você precisa manter as abordagens gerais de design em mente, mas“ você não deve colocar uma coruja no globo ”, diz Artem. Se as tarefas de negócios não se encaixam no normal limpo e MVVM, portanto, você não precisa usá-los. Isso é tudo.
É importante entender que a arquitetura não é um manual, mas um conjunto de soluções que podem ser aplicadas no trabalho. Vasya Chervon explicou desta forma: “Você sabe que a laje deve ter um certo peso para não esmagar as paredes, ou as paredes devem ser fortes o suficiente para suportá-la. E para construir, você precisa manter essas regras em mente. "
É tudo uma questão de experiência, portanto, se o desenvolvedor não entender realmente o que a arquitetura precisa ser feita, você deve consultar um companheiro sênior. Mas, claro, não com alguém que diz: "Faça MVVM, isso é legal."
Para soluções arquitetônicas eficazes, você precisa ler muitos livros sobre design de sistema para entender em quais situações quais soluções podem mudar e como aplicá-las. Leia mais sobre os livros de 01:35:06.
Materiais úteis
- Android. Limpo está morto. Você está enganado;
- Anvil - plugin para simplificar a manipulação de sua aplicação;
- A palestra de Rich Hickey sobre Simple vs Easy;
- A Philosophy of Software Design - um livro sobre design de software, definindo sua complexidade, abordagens para redução, definições legíveis e claras;
- Uma visão geral muito legal de problemas arquitetônicos como padrões e como resolvê-los;
- . ;
- - ;
- HMS Redmadrobot SPb.
« »
Ouça-nos onde for conveniente: YouTube , Soundcloud , Apple Podcasts , Google Podcasts.
Vamos discutir o episódio no chat do Telegram .