
Então, dado: a equipe de desenvolvimento é de pouco mais de 50 pessoas. Estamos principalmente envolvidos no desenvolvimento web com todos os tipos de integrações, contas pessoais e e-commerce. Recentemente, no entanto, cerca de 20% é o desenvolvimento móvel. Há também uma equipe compacta separada escrevendo em Dart / Flutter.
Objetivo: preparar o maior número possível de programadores da equipe principal para tarefas de desenvolvimento móvel.
As principais pilhas móveis que usamos antes são React.Native e Flutter. A portabilidade é importante para nós, eles compram. Ambas as plataformas provaram ser valiosas para o desenvolvimento de aplicativos de negócios. Existem limitações e reclamações conhecidas dos desenvolvedores, mas este é um tópico para um artigo separado ("Existem apenas dois tipos de linguagens de programação: aquelas que as pessoas juram o tempo todo e aquelas que ninguém usa" Bjarne Stroustrup).
Por exemplo, os aplicativos Flutter acabam sendo mais sexy e rápidos (do que React.Native), mas quando se trata de widgets , você precisa escrever em nativo. Historicamente, temos mais reagentes (é muito fácil mudar de React para React.Native), mas os desenvolvedores de Dart / Flutter são animais raros.
Já tínhamos experiência no desenvolvimento de projetos no âmbito dos hackathons ( HelpDesk oldies grátis , Huizhin , PlanningPoker e mais alguns talentos). Mas a prática tem mostrado que usar uma tecnologia desconhecida dentro da estrutura de um hackathon é um negócio desastroso. Metade do tempo serão os ajustes de IDEs.
Resolvi fazer um concurso interno com dinheiro e prêmios para os três primeiros lugares. O juiz deveria ser a mesma equipe compacta e experiente que já havia comido o cachorro no Flutter. Resta escolher um projeto não muito difícil. É desejável que tenha algum outro significado prático. Direi desde já que nem tudo correu bem, afetando a inexperiência nesses assuntos.
Decidimos reencarnar o Squarespace.Note, que seu desenvolvedor parou de apoiar em um ponto. Este é um "coletor de idéias" que você abre, escreve uma nota para si mesmo e envia para o seu todushnik ou e-mail. Sim, a ideia de enviar mensagens para você mesmo parece um tanto estranha à primeira vista, mas isso antes de conhecer os princípios do GTD.
Um concurso interno foi anunciado. O projeto foi denominado SingularityNote. Demos aos desenvolvedores um design, um backlog, uma pilha de tecnologia (Dart + Flutter ou React.Native) e todos os casos de competição: regras, júri e fundo de premiação.

A única cópia restante do Squarespace.Note que encontramos acidentalmente em uma antiga docking station para iPod, onde os testadores estão carregando seu zoológico de celular.
O que estamos escrevendo
A tarefa é simples: por 3 semanas de Ano Novo (a competição foi realizada no início de 2020), faça um editor de notas minimalista com a capacidade de enviar uma nota para SingularityApp, e-mail ou Evernote.
Recursos do aplicativo competitivo:
- uma nota pode ser enviada para o seu SingularityApp , Evernote ou por e-mail (+ definindo a ligação, + estados do ícone dependendo das configurações de envio),
- você pode anexar uma imagem da galeria do dispositivo ou um instantâneo de uma câmera a uma nota,
- funções - mínimo. Todas as manipulações com notas - com um deslize:
- Enviar uma nota finalizada? Deslize para cima.
- Excluir? Deslize para baixo.
- Ver todas as notas enviadas? Desliza para a direita.
- Mudar configurações? Deslize para a esquerda.
- E mudando o tema quando você agita seu telefone.
- idioma da interface - ru / en, dependendo da localização do usuário,
- para cada nota enviada na lista você pode ver: o início do texto, a data de criação, para onde foi enviado,
- se a nota não pôde ser enviada (por exemplo, não há Internet), ela se torna cinza e, quando você toca nela, ela é reenviada,
- banner publicitário para o nosso projeto relacionado.
Pilha de tecnologia e critérios de avaliação
De acordo com as condições, o projeto poderá ser realizado para:
- React Native (React + Redux (preferencial) / Mobx (locomotiva a vapor).
- Dart + Flutter (deve ser usado o padrão BLoc).
O lado estético foi avaliado pelo diretor de arte. Usabilidade e suavidade de interfaces - testador. Qualidade de código - programadores experientes em desenvolvimento móvel.
Para ser elegível para a competição, um aplicativo deve:
- conter recursos obrigatórios (sem eles, o projeto não é considerado, desclassificação);
- ser totalmente funcional e cobrir toda a cadeia de trabalho (exceto para itens marcados como “desejáveis” em desempenhos);
- ser desenvolvido em uma pilha de tecnologia listada;
- ser desenvolvido exclusivamente fora do horário de trabalho;
- e nenhuma cooperação com o júri.
Como foi
Quatro equipes de desenvolvimento decidiram participar. Comece em 4 de janeiro. No caminho, uma equipe se fundiu. Os demais, no dia 27 de janeiro, apresentam seus trabalhos ao júri para avaliação. Avaliado por dois parâmetros:
- Código cultural. Não deve haver "jogo" no código e pode ser facilmente mantido (de 1 a 10 pontos),
- Usabilidade. Qualidade de implementação. Estabilidade de aplicação (de 1 a 10 pontos).
O julgamento está aberto. O aplicativo com mais pontos ganha.
O que então
E então finalizamos o que precisava ser finalizado e enviamos o aplicativo para o Google Play e App Store oficial. Desenhamos e distribuímos os landos.
-
, . Android, iOS. iOS — , Evernote ( PRO- Evernote), QR- .
:
- , .
- , .
:
- , . , .
- Demorou muito para polir e ajustar até mesmo a decisão que foi tomada para o primeiro lugar. O projeto foi arquivado porque havia tanto trabalho a fazer com esses vírus corona que não estava à altura.
- Hackathons são divertidos. Mas a competição exige muito esforço e disciplina.
Não sei se seremos capazes de encontrar um equilíbrio entre os benefícios práticos e a agitação do desenvolvimento da próxima vez, mas vamos sentir isso. Se alguém tem experiência em combinar negócios com prazer, ficarei feliz em receber feedback.
Você pode ver tudo aqui
google play
eepstore .