CHICIO CODING

Android Studio vs Xcode vs AppCode: uma breve comparação sobre a velocidade de codificação

16 Jan 2018 – 4 min read

Neste post vou comparar a velocidade de codificação que é possível atingir com Android Studio, Xcode e alguns JetBrains IDEs em termos de criação e refatoração de código.

IDE, Integrated Development Environment, são as caixas de ferramentas para desenvolvedores de software. Quando eu comecei a trabalhar no grupo lastminute.com meu conhecimento da plataforma Android era muito limitado. Mas… lastminute.com group é uma empresa ágil de desenvolvimento de software e uma das técnicas que usamos durante nosso fluxo de trabalho de desenvolvimento é a programação em pares: dois desenvolvedores trabalham no mesmo recurso na mesma estação de trabalho. Como relatado na Wikipedia, uma das principais vantagens da programação em pares é o compartilhamento de conhecimento:

Knowledge é constantemente compartilhado entre programadores de pares, seja na indústria ou em uma sala de aula, muitas fontes sugerem que os alunos mostram maior confiança quando programam em pares, e muitos aprendem se é desde dicas sobre regras de linguagem de programação até a habilidade geral de design. No “emparelhamento promíscuo”, cada programador se comunica e trabalha com todos os outros programadores da equipe, ao invés de emparelhar apenas com um parceiro, o que faz com que o conhecimento do sistema se espalhe por toda a equipe. A programação de pares permite que os programadores examinem o código do seu parceiro e forneçam feedback que é necessário para aumentar sua própria capacidade de desenvolver mecanismos de monitoramento para suas próprias atividades de aprendizagem.

Foi por isso que comecei a trabalhar com meu colega Francesco Bonfadelli, um desenvolvedor sênior do Android, iOS e Backend. Durante nossas sessões de programação de pares eu aprendi muito sobre o desenvolvimento de aplicativos móveis para a plataforma Android. Uma das coisas que aprendi nos primeiros dias foi a diferença entre as IDEs oficiais: o Android Studio e o Xcode. Depois de ver a velocidade de codificação que Francesco foi capaz de atingir durante uma sessão de codificação do Android, e o quanto mais lento é fazer as mesmas coisas no Xcode para iOS, percebi o quanto mais avançado é o Android Studio com seu conjunto de recursos de refatoração em comparação com o Xcode.
Neste post vou analisar brevemente alguns IDEs comumente usados para desenvolvimento de aplicações móveis focando na velocidade de codificação que é possível alcançar usando-os e vou explicar a vocês porque, no momento em que escrevo este post, comecei a preferir a família de IDEs JetBrains (não apenas para desenvolvimento de aplicações móveis :bowtie:).

Xcode

Eu sempre adorei Xcode. Comecei a usá-lo há 8 anos e ele ainda está aqui comigo durante o meu trabalho diário. Ele abre em poucos segundos e você pode começar a codificar muito rapidamente. Mas…. o que acontece quando o seu código de aplicação começa a aumentar em termos de complexidade e você precisa fazer uma simples operação de refactoring? Ajuda de alguma forma quando é necessário criar uma nova classe/propriedade? Ajuda quando você precisa navegar no seu código e precisa saltar rapidamente de uma classe para outra? Bem, para ser honesto, não o ajuda muito. Mesmo uma simples renomeação pode tornar-se uma operação dolorosa, especialmente se você tiver um projeto com partes Swift/Objective-C misturadas. Tudo deve ser feito manualmente. Considere por exemplo esta lista de operações mistas de criação/refatoração de código:

  • criar uma nova classe
  • instanciá-la e mantê-la como uma variável local
  • add um método à classe anterior
  • add um parâmetro ao método previamente criado
  • extrair a variável local como uma propriedade do controlador no qual eu a criei

No vídeo a seguir eu tentarei fazer estas operações em Xcode. No momento em que escrevo este vídeo a versão disponível do Xcode é 9.2.

Mais de 2 minutos para implementar todas as coisas da lista acima. Muito lento, não é?!?? :fearful:

Android Studio

Antes do grupo lastminute.com, eu tinha usado o Android Studio apenas algumas vezes para alguns aplicativos muito simples do Android. Então eu comecei a trabalhar com Francesco e ele me apresentou o poder do JetBrains IDEs. Esta IDE dá-lhe a capacidade de navegar rapidamente no seu código fonte, criar e modificar classes, e permite-lhe fazer muitas outras operações de refactoring sem deixar o teclado! Basicamente, você pode escrever código e esquecer o seu mouse!! :open_mouth:. A lista de atalhos de teclado que você pode usar no seu fluxo de desenvolvimento é interminável. Você pode encontrar a lista completa aqui. Vamos tentar fazer exatamente as mesmas operações que eu fiz antes com o Xcode, e também adicionar um renome da classe criada no final de toda a operação anterior. No momento em que escrevi a versão disponível do Android Studio é 3.0.1.

Apenas 50 segundos e eu fiz todas as coisas (e eu não estava empurrando com força no teclado…:stuck_out_tongue_winking_eye:).Como você pode ver, o Android Studio te dá a capacidade de escrever código à velocidade da luz!!! :flushed:.

AppCode

Como você pode imaginar, depois de trabalhar algumas horas com o Android Studio, eu comecei a me perguntar se existe um IDE que me permite configurar o mesmo estilo de código de escrita e fluxo de trabalho. Aqui outro colega com quem trabalhei, Tommaso Resti, um desenvolvedor sênior de iOS e Android, me mostrou o AppCode pela primeira vez. Este é outro IDE da JetBrains para desenvolvimento de iOS. Ele permite que você melhore sua velocidade de desenvolvimento, permitindo que você use algumas das ferramentas de refatoração que você pode encontrar no Android Studio. No entanto, nem tudo é paz e luz neste caso. Algumas das ferramentas de refatoração não estão disponíveis para a Swift e você ainda precisará do Xcode para trabalhar no Xib e Storyboard (a equipe JetBrains desenvolveu um plugin para o construtor de interfaces, mas isso foi descontinuado). De qualquer forma, se você começar a se acostumar com o fluxo de trabalho de escrita de código do Android Studio, você se sentirá em casa com o AppCode :relaxed:.

Final thoughts

Android Studio e AppCode são baseados no IntelliJ IDEA, o famoso Java IDE da JetBrains. Mas isso é metade da história: A família JetBrains IDE é realmente grande. Você pode encontrar uma IDE para cada uma de suas linguagens favoritas:

  • CLion, para C e C++
  • PhpStorm
  • PyCharm
  • RubyMine para Ruby
  • GoLand para GO
  • Rider para C#

Então não se preocupe: se você quiser começar a melhorar sua velocidade de codificação provavelmente existe um IDE para sua linguagem favorita. O Xcode terá sempre um lugar especial no meu coração. Eu ainda vou continuar a usá-lo no meu trabalho diário como desenvolvedor móvel. Mas… a velocidade de codificação que ganhei com os IDEs JetBrains não poderia ser ignorada :smiling_imp:. Foi por isso que comecei a preferi-los :heart:.

.