“Entender como o sistema funciona permitiu muitos hackers”: Roy Beniosef no desenvolvimento do Android



Como entender que uma pessoa está profundamente imersa no mundo Android e, ao mesmo tempo, trabalha na Samsung? Bem, mesmo que uma pesquisa no Google comece a tirar uma foto dessa pessoa para o Samsung Galaxy, esse é um sinal claro!

Roy Beniosef é um dos primeiros GDEs Android do mundo, um organizador de GDG, funcionário da unidade especial da Samsung NEXT. Em breve, ele virá até nós com a conferência Mobius, e perguntamos sobre tudo: desde como foi o desenvolvimento do Android no início do ecossistema até o que exatamente eles estão fazendo no NEXT.

- Você se chama "o primeiro Android GDE" ...

- Isso é uma piada, eles não me chamam oficialmente assim - simplesmente não consegui encontrar nenhum especialista em desenvolvedor do Google para Android antes de mim. Tudo começou com o fato de eu ser amigo de Amir Chevat - agora ele é o principal evangelista do Twitch. Ele foi o iniciador do programa GDE , que estava acontecendo em Tel Aviv. Então, em 2011-2012, participei ativamente da comunidade local do Android, por isso não é surpresa que, entre outros, ele tenha me escolhido. O programa foi então muito menos estruturado. Às vezes, brincando, digo que me tornei o GDE porque, na época, eles ainda não estavam se preocupando com a seleção.

- Ou seja, não havia procedimentos padronizados?

- Não, o programa ainda era muito imaturo: meu amigo acabou de me convidar e eu concordei.

- O que você estava fazendo naquele momento? Você fez relatórios e escreveu artigos sobre o Android?

- Principalmente eu falei em público. E fui co-fundador e organizador do grupo GDG, com foco em aplicativos móveis. Fiz muitas apresentações para o MobileMonday e para o GDG, também organizamos o DevFest. Tudo isso foi no ano de 2011, não me lembro exatamente. Além disso, escrevemos código-fonte aberto, escrevemos em blogs, mas nossa ocupação principal era falar em público.

- O Android ainda não tinha três anos de idade. Quais eram os tópicos mais populares da época? Quais problemas foram os mais difíceis?

- Em geral, o mesmo de hoje - proporcionando uma experiência de qualidade ao usuário, problemas de desempenho, gráficos. Para fazer com que o aplicativo Android pareça elegante e funcione sem problemas, mesmo agora, e depois foi ainda mais difícil. Se falarmos sobre quais são as melhorias mais significativas que ocorreram desde então - acho que elas estão relacionadas a essas dificuldades, ou seja, essa é a reestruturação que ocorreu em conexão com o Marshmallow, o surgimento de novas ferramentas, o ConstraintLayout. Houve uma oportunidade de escrever aplicativos interessantes, sem criar tudo do zero, e isso foi muito importante.

- Ou seja, a mudança mais tangível é que há uma base para aplicativos, as ferramentas necessárias para a interface do usuário e as estruturas para a interface do usuário, como o Design de materiais?

Provavelmente sim. De um modo geral, tudo isso existia desde o início, mas era muito difícil trabalhar. Além disso, o Android é sempre comparado ao iOS e sempre foi relativamente fácil criar aplicativos muito bonitos, quase sem experiência. E, para criar um aplicativo Android de alta qualidade, você precisa gastar muito tempo para se tornar um especialista. Agora ficou mais fácil.

- Por que você escolheu o Android inicialmente? Como o iOS era mais fácil, você poderia ir lá ou não no desenvolvimento móvel.

- Comecei a me engajar em aplicativos móveis porque era uma área completamente nova, estava interessado em chegar lá - naquela época havia um desvio de telefones, “discadores”. Além disso, o iOS explodiu uma corporação arrogante, e o Android é, considere o Linux. O iOS, é claro, também é semelhante ao Unix, mas o Android está muito mais próximo do Linux. E sou desenvolvedor de código aberto, tenho o Ubuntu no meu laptop, então o Android estava mais perto de mim, queria ajudá-lo a atingir a maturidade. E meu conhecimento do Linux ajudou nos estágios iniciais de desenvolvimento do Android - quando algo não funcionava, eu sempre podia ir para o nível do Linux e resolver o problema lá.

Sério? Quando comecei a trabalhar no Android (era a versão 1.6), para começar a trabalhar, tive que instalar o Android SDK, IntelliJ IDEA e depois apenas ler o manual e o código. Quais problemas específicos você resolveu através do Linux?

- o mais diferente. Por exemplo, quando, antes do advento do NDK, tivemos problemas com gráficos, escrevi algumas partes no OpenGL, porque era versado nisso. Consegui resolver problemas com alguns dispositivos que surgiam no nível do driver. Compreender como o sistema funciona permitiu muitos hackers.

- Então você tem muito trabalho de baixo nível?

- Naquela época havia muitos. Sou especialista em plataformas não padrão para Android - liderei a criação de sistemas para plataformas que não estavam instaladas em telefones padrão. Antes do Samsung NEXT TLV, trabalhei na Vidmind, onde liderava o grupo de clientes e, entre outras coisas, criamos nosso próprio projeto para Smart TV e STB junto com o Hisense baseado no Android. Então, minhas responsabilidades incluíam o desenvolvimento a partir do nível Linux.

- Acontece que sua experiência facilitou seu desenvolvimento no Android. Vamos agora falar sobre seu trabalho com o GDG em Israel e especificamente em Tel Aviv. O que você pode nos dizer sobre a comunidade lá? É numeroso, o que faz?

Agora, o GDG em Israel é muito menos ativo. A maioria dos desenvolvedores mais talentosos aqui está envolvida em tecnologias em nuvem, inteligência artificial e blockchains. Mas há uma comunidade muito grande, ativa e de sucesso envolvida no desenvolvimento móvel - Android Academy. A Academia foi fundada por Jonathan Levin junto com outros parceiros.

"Nossos leitores conhecem Jonathan bem porque ele falou bastante em conferências Mobius anteriores." E como você está conectado com ele e com a Android Academy? Você os ajuda?

- Tanto quanto possível. Agora, estamos desenvolvendo uma série de relatórios e seminários que irei realizar no próximo ano como parte de cursos avançados na Android Academy. Tenho uma longa amizade com eles e tento ajudá-los o máximo que posso - por exemplo, conduzi hackathons e, devido ao fato de trabalhar na Samsung NEXT, eles foram mantidos várias vezes nos escritórios desta unidade.

- A que seus seminários na Android Academy serão dedicados?

"Ainda não decidimos." Como regra, ensino algo em que eu próprio sou bem versado. Geralmente, esses são os problemas mais chatos e técnicos, geralmente de baixo nível - segurança cibernética, bancos de dados Android, cache correto de informações, uso correto da GPU e assim por diante.

- Diga-nos, por favor, o que exatamente é a Android Academy? Organizamos várias vezes em São Petersburgo, e eu não sei se é em Moscou, então talvez nossos leitores estejam interessados ​​em saber qual formato ele possui, se há cursos, reuniões ou qualquer outra coisa ?

- Jonathan está muito mais envolvido na Academia Android do que eu, então é um pouco incomum falar sobre isso. Mas, em geral, é uma comunidade muito ativa, aberta e amigável. Eles conduzem cursos como o Udacity, alguns deles são de nível básico, outros são dedicados a áreas mais avançadas, por exemplo, multithreading, gráficos, animação. Estes cursos são gratuitos e abertos a todos.

- Você recomendaria participar de cursos da Android Academy na Rússia?

- Se é semelhante ao israelense - sim, é claro.

- Até onde eu sei, Jonathan está tentando exportar o modelo israelense, isto é, tornar o russo o mais semelhante possível ao israelense. Vamos seguir para o seu trabalho agora. Todo mundo sabe o que é a Samsung - uma grande corporação que lida com tudo no mundo, desde a construção até os smartphones. E o que é o Samsung NEXT e qual o seu papel lá?

- Samsung NEXT é o departamento de inovação da Samsung. Não estamos totalmente integrados à Samsung Electronics e somos especializados em software. Temos uma divisão de produtos que cria software avançado no campo da computação de borda, realidade aumentada e inteligência artificial.

Mas 90% do que fazemos aqui em Israel é investimento de capital de risco e cumpro os deveres do diretor de nosso fundo (embora não o seja). Investimos em startups em estágios de pré-semente a B, por valores de até US $ 3 milhões. Nós os avaliamos com base em investimentos financeiros, ou seja, não somos investidores estratégicos, outra divisão, a Samsung Ventures, está envolvida nisso e eles estão fazendo um ótimo trabalho. Temos uma estratégia diferente, fazemos investimentos em estágios iniciais e investimos apenas em software. Além disso, investimos com base em critérios financeiros, mas, ao mesmo tempo, investimos naquelas startups que podem ter significado estratégico nos próximos 2 a 10 anos, mesmo que a Samsung ainda não tenha um produto nessa área.

Por exemplo, investimos em uma startup chamada StreamElements, que fornece aos streamers ferramentas para recrutar, aumentar e monetizar o público. A Samsung não possui produtos nesta área, portanto, esse investimento não pode ser chamado de estratégico. Além disso, um investidor estratégico nunca investiria em startups nos estágios pré-semente. Decidimos investir, porque vimos como essa startup é monetizada. Mas, ao mesmo tempo, não se pode descartar que, no futuro, a Samsung estará envolvida no campo de jogos de computador e, se isso acontecer, o StreamElements será de grande importância estratégica.

Além disso, em Israel, minha posição é Gerente de Relações com Ecossistemas. Na verdade, eu mesmo inventei o nome do post, tirei do teto. As conexões do ecossistema geralmente são entendidas como, por exemplo, eventos que o Google realiza para melhor apresentar a comunidade a seus produtos. E gerenciamento de comunidade é quando você tem sua própria comunidade na qual organiza seus eventos. Eu meio que não faço um ou outro, mas ao mesmo tempo faço um pouco dos dois. Sou evangelista de tecnologias que eu mesmo não criei, porque a Samsung NEXT não desenvolve nada, é uma empresa de risco. Fazemos nosso trabalho de graça e sem impor nenhuma obrigação, simplesmente porque queremos ajudar as pessoas - nisso vemos nossa missão. Nós não temos nossa própria comunidade, estamos fazendo parceria com outras comunidades e ajudando-as. Fazemos isso, em primeiro lugar, porque somos pessoas boas e, em segundo lugar, porque quanto maior a torta (ou seja, a comunidade), mais peças irão para todos, inclusive para nós. Assim, no final, também nos beneficiaremos com isso, ou seja, em essência, este é o patrocínio de nossa parte.

- Vamos falar sobre as startups em que você investe. Você avalia apenas o design, o software ou, além disso, realiza uma avaliação técnica da arquitetura, processos e assim por diante?

- De maneiras diferentes, dependendo do estágio da inicialização. Uma startup não é uma ideia. Existem ótimas idéias com implementação assustadora e vice-versa. De maneira geral, sou responsável pela parte técnica das inspeções, mas também analisamos a organização do negócio. Tudo nunca se resume apenas a uma ideia: nós olhamos para ela e para a implementação.

- Qual é o mais interessante em um emprego assim? Conhecer novas pessoas, conhecer novas idéias, uma oportunidade de ver as tecnologias do futuro?

- Sim, gosto da busca de novas pessoas - geralmente são pessoas muito inteligentes e entusiasmadas, com ótimas idéias. Mas o mais valioso é a oportunidade de mergulhar em novas tecnologias que eu não tinha tempo antes. Quando eu estava gerenciando uma equipe de 45 desenvolvedores da Sérvia, Ucrânia, China e Israel, não tive tempo para experimentar o Firebase, o aprendizado de máquina ou a visão computacional. Tudo o que fiz foi muito orientado a curto prazo. E agora posso me aprofundar nas novas tecnologias devido ao fato de elas serem pesquisadas pelas empresas em que estamos envolvidos - preciso desse conhecimento para avaliar corretamente os projetos com os quais estamos familiarizados.

- Ou seja, você costumava se envolver na organização do desenvolvimento, mas agora está fazendo algo mais inovador e tem tempo para explorar o horizonte das novas tecnologias. Parece realmente interessante. Este trabalho tem algum inconveniente?

- É claro - eu mesmo não crio nada diretamente, mas apenas avalio se alguém pode fazer o que ele planeja e, às vezes, forneço dinheiro e ajuda. Aqui, sensações completamente diferentes, um retorno diferente do trabalho. Eu realmente gosto do processo de criação em si, e especificamente esse sentimento não está aqui. Isso é uma desvantagem.

- Você tem algum projeto em seu tempo livre?

"Sim, claro." Você não pode experimentar novas tecnologias enquanto não coleta nada. Há um projeto em que trabalho há algum tempo.

- Você pode nos contar algo sobre ele?

- Como eu disse, queria experimentar visão computacional e aprendizado de máquina. Eu escrevi um pequeno aplicativo Android que se comunica com o Firebase e usa o TensorFlow no próprio dispositivo e no Firebase. Instalei este aplicativo no meu telefone antigo e o coloquei na minha sala de jantar. Ele verificou a presença de pessoas na sala e, se alguém descobriu, gravou um vídeo. E devo dizer que minha esposa nunca apaga a luz. Portanto, o objetivo do aplicativo era prever se uma pessoa apagará a luz ao sair da sala e, se não desligar, enviará um lembrete para o telefone.

O engraçado é que, depois de algumas semanas, ele começou a funcionar - engraçado porque o aplicativo, em geral, não é muito inteligente. Apenas enviava um lembrete toda vez que minha esposa estava no quarto, porque ela nunca apaga a luz e eu sempre a apago. Ou seja, não era muito inteligente, mas era engraçado poder nos distinguir, ou seja, criou sua própria lógica, que eu não escrevi.

- Sim, isso parece muito legal. Resolvendo problemas domésticos com a ajuda de novas tecnologias.

- Na verdade, eu queria ver se realmente podia escrever alguma coisa com essa tecnologia, e não apenas ler o artigo e pensar comigo mesmo que isso provavelmente é realizável.

- Diga-me, que evento na sua vida profissional lhe trouxe mais satisfação?

- Há muito o que conversar. Acho que a maior honra para mim foi participar do Google I / O como palestrante há dois anos. Também estou muito satisfeito com o fato de todos os anos minha inscrição no programa GDE ser confirmada. Então, na minha carreira, há muitos pontos por causa dos quais me considero sortudo. Meu exemplo prova que todos os erros imagináveis ​​podem ser cometidos e, ainda assim, ter sucesso. Fui expulso de duas universidades quando comecei a trabalhar no Android. O Android era então um sistema lento com muitas falhas, e foi nessa época que o boom do iOS começou. Além disso, a startup que eu gastei 30 milhões e faliu. O fracasso se seguiu ao fracasso e, no entanto, sinto-me bem-sucedido porque todos esses eventos me permitiram crescer.

- Acredito que você não pode ter sucesso sem cometer erros. E se os erros forem grandes, você pode aprender muito com eles. Minha próxima pergunta é sobre sua próxima conversa sobre Mobius "G (PU) force"). Sobre o que exatamente você quer falar? Que problema você quer resolver?

- Se você está desenvolvendo para o OpenGL, por exemplo, escrevendo jogos, você tem uma certa idéia de como usar a GPU e o que fazer se ela não se comportar como deveria. Se você escreve no Android, quando o seu código é impertinente, você não sabe se isso é devido ao seu erro, devido a problemas com o processador ou porque você está usando a GPU incorretamente. O relatório é baseado em casos reais da experiência da empresa em que trabalhei anteriormente - Vidmind, bem como em vários casos que observei especificamente para ver se alguma coisa havia mudado nos últimos três anos. Tivemos constantemente as falhas mais incríveis e não conseguimos entender o porquê. Só muito mais tarde eu percebi que estávamos usando a GPU incorretamente. No relatório, também explicarei como corrigir esses erros e sugerirei regras que os desenvolvedores do Android poderiam usar para evitar esses problemas.

Obviamente, com novas ferramentas, novos dispositivos e novos sistemas operacionais, fica mais fácil trabalhar. Mas a maioria dos desenvolvedores não consegue criar programas exclusivamente para os dispositivos mais recentes; portanto, há uma tendência de escrever aplicativos que funcionam muito mal em todos os dispositivos. A maioria dessas dificuldades está relacionada à implementação da GPU. Se você tem uma idéia do que o Android espera de você em diferentes níveis da API, é possível criar um aplicativo que funcione perfeitamente, independentemente de onde ele for implantado.

- Ou seja, sua ideia é que é importante para um desenvolvedor profissional do Android saber como a GPU funciona, o que a GPU espera dele.

Sim. Obviamente, após este relatório, você não poderá dizer: "Agora eu posso fazer algo que não sabia antes". Mostro exemplos de como a GPU é integrada ao ecossistema Android. Sabendo exatamente o que precisa ser testado, você pode criar um aplicativo que sempre funcionará perfeitamente e eu quero demonstrá-lo.

- Espero que isso seja muito útil para nossos leitores. No final, eu gostaria de perguntar - o que você gostaria dos visitantes da conferência?

- Gostaria de aprender muito sobre tecnologia e sobre os outros. Pessoalmente, eu geralmente faço muito pouco dos relatórios - o que, é claro, é muita ironia, porque minha carreira, em geral, é baseada em falar em público. Mas, para mim, os relatórios de visitas sempre foram uma fonte de inspiração. Escrevo algumas frases-chave e tento coletar algo sozinho para entender se entendi o orador corretamente. , — , , . , , .

Mobius , . 8-9 .

Source: https://habr.com/ru/post/pt428606/


All Articles