Da web e bancos ao desenvolvimento do iOS: a experiência pessoal do programador Apiqa

A equipe da Apiqa está envolvida no desenvolvimento de produtos para um setor habitacional específico. Não é fácil encontrar desenvolvedores experientes em Ecaterimburgo - as grandes empresas de TI estão procurando por eles aqui, muitos candidatos partem para a capital ou deixam o país, e a cooperação remota no estágio atual não nos convém. Aumentamos os funcionários da empresa, os conhecemos e tentamos oferecer condições de trabalho confortáveis. Então, um de nossos desenvolvedores da Web no ano passado decidiu tentar a programação para iOS. Nós o ajudamos a fazer essa transição sem problemas, agora ele está simultaneamente envolvido no desenvolvimento web e móvel. E agora ele está pronto para compartilhar sua história na primeira pessoa. Bem-vindo ao gato.


Quem sou eu


Olá Habr! Sou Sasha Kalinin, desenvolvedora da Apiqa. Eu sempre gostei de escrever sites, montar computadores e entender coisas técnicas complicadas, mas, por insistência de meus pais, tive uma educação econômica e fui trabalhar no setor bancário.



Em 2015, ele começou a estudar programação e conseguiu um estágio na UrZPI (Ural Software Products Plant), que posteriormente se uniu à agência interativa Everything Is Clear, e Apiqa apareceu. Então eu mergulhei no mundo do desenvolvimento web. No ano passado, eu queria experimentar a vastidão do iOS, e a empresa foi me conhecer.


Início: Programação Web


A UrZPI se engajou no desenvolvimento de sites: “Golden Apple”, “Liga da Habitação e Serviços Públicos”, uma marca de joias, salões de beleza e outros. Criamos um projeto em larga escala Digital Pathology - uma plataforma para o estudo do câncer. Paralelamente ao meu trabalho principal, fui mentor em duas escolas on-line: Loftschool e HTML Academy.


Em 2018, a PIK Comfort, a maior empresa de administração da Rússia, tornou-se o cliente âncora da Apiqa, como resultado da especialização determinada, e começamos a nos envolver no desenvolvimento de produtos no setor de habitação e serviços comunitários.



Em maio do ano passado, tivemos uma demanda por aplicativos móveis, e desenvolvedores nativos vieram para a empresa. Naquela época, eu estava cansado da web e queria me experimentar em um telefone celular. Como sou um grande fã da Apple, decidi escrever para iOS.


Imersão no mundo móvel


No primeiro dia, pedi ao desenvolvedor do iOS para me aconselhar por onde começar. Ele se mostrou responsivo e desempenhou o papel de meu mentor, ajudando em diferentes estágios do treinamento. No outono, comecei a ler livros: “Rápido. Noções básicas de desenvolvimento de aplicativos para iOS e macOS ”(4ª edição) por Vasily Usov e“ Swift 3. Desenvolvimento de aplicativos no ambiente Xcode para iPhone e iPad usando o iOS SDK ”(3ª edição) Molly Mascri. Seis meses que li, concluí tarefas, escrevi algo ao mesmo tempo, recebi idéias de aplicativos de um mentor para aprimorar suas habilidades.



Eu gostei do Swift - acabou sendo bastante simples e semelhante ao TypeScript na sintaxe em que escrevo na web. As ferramentas de desenvolvimento para plataformas da Apple são mais complicadas - há muito legado desde a época do Objective-C, uma API do sistema antiga e inconveniente. Eu li o segundo livro com um rangido.


A primeira solicitação de recebimento falhou e, pela primeira vez, eu quis descartar tudo, mas não o fiz. E o processo foi concluído em cerca de seis meses: agora escrevo para a web e para iOS.


Distribuímos as tarefas atuais. Gosto de fazer algo incomum e inacessível a um desenvolvedor da web - por exemplo, o 3D Touch, mas as animações ainda não são passíveis, não tenho uma sensação de design. Animar uma interface na Web é, obviamente, mais fácil - aí o código é mais compreensível, não há problemas complicados.


Desenvolvimento móvel e web: qual a diferença


Na web, todo o visual é criado usando código. Você pode ler e imaginar o produto final. No Xcode, este é um IDE para desenvolvedores do iOS, existe o Interface Builder - uma ferramenta que permite que você digite usando a interface gráfica arrastando o cursor com o cursor - ou seja, você não precisa escrever código para a parte visual.



Parece legal, mas funciona muito instável - é de buggy, congela e depois quebra. Às vezes, surgem conflitos entre o código nativo e o Interface Builder - muitos erros caem no console, o próprio aplicativo pode falhar, tudo pode ir para o inferno.


O que escolher: web ou celular?


A decisão é sua. Você precisa entender que eles têm uma situação de mercado fundamentalmente diferente. A web é uma plataforma gratuita, e os legisladores no celular são empresas que possuem iOS e Android - eles decidem onde desenvolver, quais ferramentas os desenvolvedores devem usar. Ao programar para a web, você pode usar estruturas diferentes, escrever em idiomas diferentes, usar IDEs diferentes, enquanto para iOS existem apenas Swift, Cocoa e Xcode. Se algum novo recurso for lançado para o Xcode, ele será exibido para todos os desenvolvedores, mas se não, então não. Essa limitação da Apple fornece ordem ao escrever o código, mas na web você deve definir esse pedido por conta própria.


Também posso nomear uma vantagem da Web como um grande número de soluções de código aberto que não são para iOS. Quando comecei a escrever aplicativos móveis, estava procurando ferramentas semelhantes à Web que automatizassem algo, mas aqui tenho que escrever com as mãos.


Por sua vez, além do desenvolvimento para iOS nativamente, a Apple oferece ao desenvolvedor mais liberdade em termos de funcionalidade de implementação - Face ID, iCloud, armazenamento e muito mais. Você tem ótimo acesso ao hardware personalizado. E no navegador, você está limitado pelo que esse navegador permite.


Caminho adicional


Meu desenvolvimento potencial na web é o estudo de coisas que não são muito procuradas no trabalho diário. No iOS, ainda tenho muitas perguntas, há onde desenvolver, crescer e aprender. Sou atraído pela possibilidade de aplicação prática de habilidades no âmbito da vida cotidiana e do trabalho: você precisa escrever algo para o telefone - eu escreverei, preciso para o Mac - vou me atormentar, resolver e escrever também para o relógio e a Apple TV. Eu já queria escrever brinquedos, mas então percebi que essa é uma direção complexa separada, imersão na qual levará muito tempo. Ainda não estou pronto para isso.


Agora estou mais engajado no desenvolvimento para iOS, mas a qualquer momento posso voltar. Eu sigo atualizações frequentes da Web, obtenho notas de versão e entendo para onde tudo está indo. Nas plataformas móveis, as atualizações ocorrem virtualmente uma vez por ano.


Imediatamente após o anúncio do SwiftUI e novas versões dos sistemas operacionais, eu queria tocá-los. Eu instalei um beta ... e matei o relógio - ele se transformou em um tijolo. Para fazê-los funcionar novamente, eu também tive que atualizar o telefone para o beta bruto do iOS.


Em geral, gostei da abordagem com o SwiftUI muito mais do que a que estamos trabalhando agora - Layout Automático. SwiftUI é simples e direto, você escreve o código e vê imediatamente o que recebe. De fato, é semelhante à web: você escreve o código e tudo aparece no navegador imediatamente, não requer nenhuma compilação longa e montagem constante do aplicativo.



Qual é o resultado?


Não me arrependo de ter vindo por aqui. Se você deseja repetir minha experiência, avalie suas habilidades e capacidades de sua empresa. Os colegas da Apiqa vieram me encontrar, mas não o fato de que você terá o mesmo; portanto, antes de iniciar essa transição, discuta-a com a gerência.


É importante dedicar tempo suficiente ao desenvolvimento móvel e aplicar novos conhecimentos em um ambiente de combate - a criação de um aplicativo simples não dará uma imagem completa; a experiência valiosa ocorre apenas quando há uma tarefa que não pode ser abandonada.


Se você não está familiarizado com a programação, lembre-se de que na Web a barra de entrada é mais baixa, há muito mais recursos educacionais em russo disponíveis. O iOS é mais difícil de dominar em termos de escrita de código - aqui você precisa pensar, como programador, para ter conhecimento básico suficiente.


Qualquer pessoa que se propôs a essa tarefa pode se tornar um desenvolvedor da Web ou do Android - basta procurar informações, estudá-las e obter experiência. Mas para se dedicar ao iOS, pelo menos você precisa comprar um Mac.

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


All Articles