Escolar Documentos
Profissional Documentos
Cultura Documentos
Tutorial Do CocoaPods para Swift
Tutorial Do CocoaPods para Swift
Tem havido muito burburinho sobre CocoaPods ultimamente. Você pode ter ouvido falar sobre isso de outro
desenvolvedor ou visto em um repositório do GitHub. Se você nunca usou isso antes, provavelmente está se
perguntando: "O que exatamente é o CocoaPods?"
É provavelmente melhor deixar o site CocoaPods fornecer a resposta:
CocoaPods é um gerenciador de dependências para os projetos Swift e Objective-C Cocoa. Tem mais de 30 mil
bibliotecas e é usado em mais de 1,9 milhões de aplicativos. CocoaPods pode ajudá-lo a dimensionar seus projetos
com elegância.
Uau, isso é um monte de bibliotecas usadas em uma tonelada de aplicativos! Escalar seu projeto
elegantemente soa bem também. :]
Mas o que é um gerente de dependência? E por que você precisa de um?
Um gerenciador de dependências facilita adicionar, remover, atualizar e gerenciar dependências de terceiros
usadas pelo seu aplicativo.
Por exemplo, em vez de reinventar sua própria biblioteca de rede, você pode facilmente acessar o
Alamofire usando um gerenciador de dependências. Você pode até especificar a versão exata a ser usada ou um
intervalo de versões aceitáveis.
Assim, mesmo que o Alamofire seja atualizado com alterações incompatíveis com versões anteriores, seu
aplicativo poderá continuar usando a versão mais antiga até que você esteja pronto para atualizá-la.
Tutorial CocoaPods
Neste tutorial, você aprenderá a usar o CocoaPods com o Swift. Especificamente, você:
Instale CocoaPods.
Trabalhe com um aplicativo de demonstração funcional que faz você pensar em sorvete.
Use CocoaPods para adicionar rede.
Aprenda sobre o versionamento semântico.
Adicione outra biblioteca usando uma versão flexível.
Nota: Este tutorial do CocoaPods requer familiaridade básica com o desenvolvimento do iOS e do Swift. Se você é
completamente novo no iOS e / ou Swift, confira alguns dos outros tutoriais escritos e / ou em vídeo neste site antes de fazer
este tutorial. Ou mergulhe no Aprendiz do iOS .
Este tutorial também inclui classes que usam o Core Graphics. Embora o conhecimento do Core Graphics seja benéfico, não é
estritamente necessário. Se você quiser saber mais sobre o Core Graphics, leia nossa série Modern Core Graphics With Swift .
Começando
Você primeiro precisa instalar o CocoaPods. Felizmente, CocoaPods é construído sobre Ruby, que vem com
todas as versões recentes do Mac OS X. Este tem sido o caso desde o OS X 10.7.
Abra o Terminal e digite o seguinte comando:
Digite sua senha quando solicitado. A saída do Terminal deve ser algo como isto:
Você deve usar sudo para instalar o CocoaPods, mas você não precisará usar o sudo depois de instalado.
Por fim, insira este comando no Terminal para concluir a configuração:
Este processo provavelmente levará alguns minutos enquanto ele clona o repositório CocoaPods Master
Specs em ~ / .cocoapods / em seu computador.
A verbose opção registra o progresso à medida que o processo é executado, permitindo que você assista ao
processo em vez de ver uma tela aparentemente "congelada".
Incrível, agora você está pronto para usar o CocoaPods!
Sorveteria, Inc.
Seu principal cliente é a Ice Cream Shop, Inc. O sorvete deles é tão popular que eles não conseguem
acompanhar os pedidos dos clientes no balcão. Eles recrutaram você para criar um aplicativo iOS elegante que
permitirá que os clientes comprem sorvete diretamente de seus iPhones.
Você começou a desenvolver o aplicativo e está indo bem. Faça o download do projeto iniciador tutorial do
CocoaPods a partir daqui .
Abra IceCreamShop.xcodeproj , em seguida, construa e corra para ver um sorvete de baunilha de dar água
na boca:
O usuário deve poder escolher um sabor de sorvete a partir dessa tela, mas isso não é possível porque você
não concluiu a implementação dessa funcionalidade.
Abra Main.storyboard no grupo Views / Storyboards & Nibs para ver o layout do aplicativo. Aqui está uma
rápida visão geral do coração do aplicativo, a cena "Escolha seu sabor":
PickFlavorViewControlleré o controlador de visualização para esta cena. Ele lida com a interação do usuário
e é a fonte de dados para a exibição de coleção que exibe os diferentes sabores de sorvete.
IceCreamViewé uma exibição personalizada que exibe uma casquinha de sorvete e é apoiada por
um Flavormodelo.
ScoopCellé uma célula de exibição de coleção personalizada que contém um ScoopView, que obtém cores
de um Flavor modelo.
Embora todos os locais da Sorveteria tenham sabores de assinatura em comum, cada um também carrega seus
próprios sabores locais. Por esse motivo, as Flavor instâncias contidas nos dados precisam ser fornecidas por um
serviço da web.
No entanto, isso ainda não responde à pergunta: "Por que o usuário não pode selecionar um sabor de sorvete?"
Abra o PickFlavorViewController.swift , encontrado no grupo Controladores , e você verá um método stubbed:
Nota: Você não deve usar o TextEdit para editar o Podfile porque ele substitui aspas padrão por citações compostas com
grafismo mais atraentes. Isso pode fazer com que o CocoaPods fique confuso e lance erros, então é melhor usar o Xcode ou
outro editor de texto de programação para editar o seu Podfile.
O Podfile padrão é assim:
Exclua o # e o espaço antes da plataforma e exclua as outras linhas que começam com # .
Isso informa ao CocoaPods que seu projeto está direcionando o iOS 9.0 e usará estruturas em vez de
bibliotecas estáticas.
Para usar o CocoaPods escrito no Swift, você deve incluir explicitamente o use_frameworks!uso de
estruturas. Se você esquecer de incluir isso e o CocoaPods detectar que você está tentando usar um Swift CocoaPod,
você receberá um erro ao tentar instalar os pods.
Se você apenas já programou no Swift, isso pode parecer um pouco estranho - é porque o Podfile é
realmente escrito em Ruby. Você não precisa saber Ruby para usar o CocoaPods, mas você deve estar ciente de que
até pequenos erros de texto farão com que o CocoaPods lance um erro.
Isso diz ao CocoaPods que você quer incluir o Alamofire versão 4.4.0 - a versão mais recente e estável no
momento de escrever este tutorial - como uma dependência para o seu projeto.
Salve e feche o Podfile.
Agora você precisa informar ao CocoaPods para instalar as dependências do seu projeto. Digite o seguinte
comando no Terminal , depois de garantir que você ainda esteja no diretório que contém o projeto IceCreamShop e
o Podfile :
Abra a pasta do projeto usando o Finder e você verá que o CocoaPods criou um
novo arquivo IceCreamShop.xcworkspace e uma pasta Pods na qual armazenar todas as dependências do projeto.
Nota: A partir de agora, como o aviso da linha de comandos mencionado, você deve sempre abrir o projeto com o arquivo
.xcworkspace e não com o .xcodeproj; caso contrário, você encontrará erros de construção.
Excelente! Você acabou de adicionar sua primeira dependência usando o CocoaPods!
1. Você usa o Alamofire para criar uma solicitação GET e baixar uma lista contendo sabores de sorvete.
2. Para quebrar um ciclo de referência forte, você usa uma referência fraca a si mesmo no bloco de conclusão
de resposta. Depois que o bloco é executado, você obtém imediatamente uma referência forte a si mesmo
para poder definir as propriedades posteriormente.
3. Em seguida, você verifica se response.result ele foi bem-sucedido e se response.result.value há uma matriz
de dicionários.
4. Se tudo correr bem, você define strongSelf.flavors uma matriz de Flavor objetos criados por
um FlavorFactory. Esta é uma classe que um “colega” escreveu para você (você é bem-vindo!), que pega
uma série de dicionários e os usa para criar instâncias de Flavor.
5. Por fim, recarregue a visualização da coleção e selecione o primeiro sabor.
Salve o arquivo e instale as dependências por meio da instalação do pod no Terminal, exatamente como
você fez antes.
Observe algo diferente desta vez? Sim, você especificou o número da versão como ~> 1.0 . Oque esta
acontecendo aqui?
CocoaPods recomenda que todos os pods usem o Versioning Semântico .
Versão Semântica
Os três números são definidos como números maiores , menores e de versão de correção .
Por exemplo, o número da versão 1.0.0 seria interpretado como:
Quando o número principal é aumentado, isso significa que alterações compatíveis com versões anteriores
não foram introduzidas. Quando você atualiza um pod para a próxima versão principal, pode ser necessário corrigir
erros de compilação ou o pod pode se comportar de maneira diferente de antes.
Quando o número menor é aumentado, isso significa que uma nova funcionalidade foi adicionada, mas é
compatível com versões anteriores. Quando você decide atualizar, você pode ou não precisar da nova
funcionalidade, mas isso não deve causar erros de compilação nem alterar o comportamento existente.
Quando o número do patch é aumentado, isso significa que correções de bugs foram adicionadas, mas
nenhuma nova funcionalidade foi adicionada ou mudanças de comportamento foram feitas. Em geral, você sempre
quer atualizar as versões de patch o mais rápido possível para ter a versão mais recente e estável do pod.
Por último, o maior número de ordem (maior que menor que patch) deve ser aumentado de acordo com as
regras acima e qualquer número de ordem inferior deve ser zerado.
Precisa de um exemplo?
Considere um pod que tenha um número de versão atual de 1.2.3.
Se forem feitas alterações que não sejam compatíveis com versões anteriores, não tenham nova
funcionalidade, mas corrijam bugs existentes, a próxima versão seria 2.0.0.
Hora do Desafio
Se um pod tiver uma versão atual do 2.4.6 e forem feitas alterações que corrijam bugs e adicionem funcionalidade
compatível com versões anteriores, qual deve ser o novo número de versão?
Se um pod tiver uma versão atual do 3.5.8 e forem feitas alterações nas funcionalidades existentes que não são
compatíveis com versões anteriores, qual deve ser o novo número da versão?
Se um pod tiver uma versão atual de 10.20.30 e apenas bugs forem corrigidos, qual deve ser o novo número de
versão?
Ótimo trabalho! Os clientes podem agora selecionar o seu sabor de sorvete favorito e mostrar um indicador
de carregamento enquanto os sabores estão sendo baixados.