Moderno
O Swift é o resultado das pesquisas mais recentes em linguagens de programação, combinado com décadas de experiência na construção de plataformas Apple. Os parâmetros nomeados são expressos em uma sintaxe limpa que torna as APIs em Swift ainda mais fáceis de ler e manter. Melhor ainda, você nem precisa digitar ponto-e-vírgula. Os tipos inferidos tornam o código mais limpo e menos sujeito a erros, enquanto os módulos eliminam cabeçalhos e fornecem namespaces. Para melhor oferecer suporte a idiomas e emoji internacionais, as Strings são corretas para Unicode e usam uma codificação baseada em UTF-8 para otimizar o desempenho para uma ampla variedade de casos de uso. A memória é gerenciada automaticamente usando uma contagem de referência determinística restrita, mantendo o uso de memória em um mínimo sem a sobrecarga da coleta de lixo.
Declare novos tipos com moderno e direto sintaxe. Forneça valores padrão para propriedades de instância e defina inicializadores personalizados.
Adicione funcionalidade aos tipos existentes usando extensões e reduza o clichê com interpolações de string personalizadas.
Estenda rapidamente seus tipos personalizados para tomar vantagem de recursos poderosos de linguagem, como codificação e decodificação JSON automática.
Realize transformações personalizadas poderosas usando fechamentos simplificados.
Esses conceitos inovadores resultam em uma linguagem que é divertida e fácil para usar.
Swift tem muitos outros recursos para tornar seu código mais expressivo:
- Genéricos que são poderosos e simples de usar
- Extensões de protocolo que tornar a escrita de código genérico ainda mais fácil
- funções de primeira classe e uma sintaxe de encerramento leve
- iteração rápida e concisa em um intervalo ou coleção
- Tuplas e múltiplos valores de retorno
- Estruturas que suportam métodos, extensões e protocolos
- Enums podem ter cargas úteis e suportar correspondência de padrões
- Padrões de programação funcional, por exemplo, mapear e filtrar
- Tratamento de erros nativo usando try / catch / throw
Projetado para segurança
O Swift elimina classes inteiras de código não seguro. As variáveis são sempre inicializadas antes do uso, arrays e inteiros são verificados quanto a estouro, a memória é gerenciada automaticamente e a aplicação de acesso exclusivo a proteções de memória contra muitos erros de programação. A sintaxe é ajustada para facilitar a definição de sua intenção – por exemplo, palavras-chave simples de três caracteres definem uma variável (var) ou constante (let). E o Swift aproveita fortemente os tipos de valor, especialmente para tipos comumente usados, como Arrays e Dicionários. Isso significa que quando você faz uma cópia de algo com aquele tipo, você sabe que não será modificado em nenhum outro lugar.
Outro recurso de segurança é que, por padrão, os objetos Swift nunca podem ser nulos. Na verdade, o compilador Swift impedirá você de tentar fazer ou usar um objeto nil com um erro de tempo de compilação. Isso torna a escrita de código muito mais limpa e segura e evita uma grande categoria de travamentos de tempo de execução em seus aplicativos. No entanto, há casos em que nil é válido e apropriado. Para essas situações, o Swift possui um recurso inovador conhecido como opcional. Um opcional pode conter nulo, mas a sintaxe do Swift força você a lidar com ele com segurança usando o caractere? sintaxe para indicar ao compilador que você entende o comportamento e vai lidar com ele com segurança.
Use opcionais quando você pode ter uma instância para retornar de uma função ou não.
Recursos como vinculação opcional, encadeamento opcional e coalescência nula permitem que você trabalhe com segurança e eficiência com valores opcionais.
Rápido e poderoso
Desde sua concepção inicial, o Swift foi construído para ser rápido. Usando a tecnologia do compilador LLVM de alto desempenho, o código Swift é transformado em código nativo otimizado que obtém o máximo do hardware moderno. A sintaxe e a biblioteca padrão também foram ajustadas para tornar a maneira mais óbvia de escrever seu código e ter o melhor desempenho, independentemente de ser executado no relógio em seu pulso ou em um cluster de servidores.
Swift é um sucessor para as linguagens C e Objective-C. Inclui primitivas de baixo nível, como tipos, controle de fluxo e operadores. Ele também fornece recursos orientados a objetos, como classes, protocolos e genéricos, dando aos desenvolvedores Cocoa e Cocoa Touch o desempenho e o poder que exigem.
Great First Language
O Swift pode abrir portas para o mundo da codificação. Na verdade, ela foi projetada para ser a primeira linguagem de programação de qualquer pessoa, quer você ainda esteja na escola ou explorando novos planos de carreira. Para educadores, a Apple criou um currículo gratuito para ensinar Swift dentro e fora da sala de aula. Os programadores iniciantes podem baixar o Swift Playgrounds, um aplicativo para iPad que torna os primeiros passos com o código Swift interativo e divertido.
Os aspirantes a desenvolvedores de aplicativos podem acessar cursos gratuitos para aprender a construir seus primeiros aplicativos no Xcode.E as Apple Stores em todo o mundo hospedam o Today at Apple Coding & Sessões de aplicativos em que você pode obter experiência prática com o código Swift.
Saiba mais sobre os recursos educacionais do Swift da Apple
Compatibilidade de código-fonte e binária
Com o Swift 5, você não precisa modificar nenhum código do Swift 4 para usar a nova versão do compilador. Em vez disso, você pode começar a usar o novo compilador e migrar em seu próprio ritmo, aproveitando os novos recursos do Swift 5, um módulo por vez. E o Swift 5 agora apresenta compatibilidade binária para aplicativos. Isso significa que você não precisa mais incluir bibliotecas Swift em aplicativos voltados para versões atuais e futuras do sistema operacional, porque as bibliotecas Swift serão incluídas em cada versão do sistema operacional a partir de agora. Seus aplicativos aproveitarão a versão mais recente da biblioteca no sistema operacional e seu código continuará a ser executado sem recompilar. Isso não apenas torna o desenvolvimento do seu aplicativo mais simples, mas também reduz o tamanho do seu aplicativo e seu tempo de inicialização.
Código aberto
O Swift é desenvolvido abertamente no Swift. org, com código-fonte, um rastreador de bug, fóruns e compilações de desenvolvimento regulares disponíveis para todos. Esta ampla comunidade de desenvolvedores, tanto dentro da Apple quanto centenas de colaboradores externos, trabalham juntos para tornar o Swift ainda mais incrível. Há uma gama ainda mais ampla de blogs, podcasts, conferências e encontros onde os desenvolvedores da comunidade compartilham suas experiências de como realizar o grande potencial do Swift.
Plataforma cruzada
O Swift já oferece suporte a todos Plataformas Apple e Linux, com membros da comunidade trabalhando ativamente para portar para ainda mais plataformas. Com o SourceKit-LSP, a comunidade também está trabalhando para integrar o suporte ao Swift em uma ampla variedade de ferramentas de desenvolvedor. Estamos entusiasmados em ver mais maneiras em que o Swift torna o software mais seguro e rápido, ao mesmo tempo em que torna a programação mais divertida.
Swift para servidor
Enquanto o Swift capacita muitos novos aplicativos nas plataformas Apple , também está sendo usado para uma nova classe de aplicativos de servidor modernos. O Swift é perfeito para uso em aplicativos de servidor que precisam de segurança de tempo de execução, desempenho compilado e um pequeno consumo de memória. Para orientar o Swift para o desenvolvimento e implantação de aplicativos de servidor, a comunidade formou o grupo de trabalho do Swift Server. O primeiro produto desse esforço foi o SwiftNIO, uma estrutura de aplicativo de rede baseada em eventos assíncronos de plataforma cruzada para servidores e clientes de protocolo de alto desempenho. Ele serve como a base para a construção de ferramentas e tecnologias orientadas a servidor adicionais, incluindo registro, métricas e drivers de banco de dados que estão todos em desenvolvimento ativo.
Para saber mais sobre a comunidade de código aberto Swift e o trabalho do servidor Swift grupo, visite Swift.org
Playgrounds e Read-Eval-Print-Loop (REPL)
Muito parecido com o Swift Playgrounds para iPad, playgrounds em Xcode tornam a escrita de código Swift incrivelmente simples e divertido. Digite uma linha de código e o resultado aparecerá imediatamente. Você pode então visualizar rapidamente o resultado do lado do seu código ou fixar o resultado diretamente abaixo. A visualização do resultado pode exibir gráficos, listas de resultados ou gráficos de um valor ao longo do tempo. Você pode abrir o Timeline Assistant para assistir a uma visão complexa evoluir e animar, ótimo para experimentar com o novo código de IU ou para reproduzir uma cena animada de SpriteKit enquanto você o codifica. Depois de aperfeiçoar seu código no playground, basta mover esse código para o projeto. O Swift também é interativo quando você o usa no Terminal ou no console de depuração LLDB do Xcode. Use a sintaxe do Swift para avaliar e interagir com seu aplicativo em execução ou escreva um novo código para ver como ele funciona em um ambiente semelhante a um script.
Gerenciador de pacotes
O gerenciador de pacotes Swift é um único ferramenta de plataforma cruzada para construir, executar, testar e empacotar suas bibliotecas e executáveis Swift. Pacotes Swift são a melhor maneira de distribuir bibliotecas e código-fonte para a comunidade Swift. A configuração dos pacotes é escrita no próprio Swift, tornando fácil configurar destinos, declarar produtos e gerenciar dependências de pacotes. Novo no Swift 5, o comando swift run agora inclui a capacidade de importar bibliotecas em um REPL sem a necessidade de construir um executável. O próprio Swift Package Manager é construído com Swift e incluído no projeto de código aberto Swift como um pacote.
Interoperabilidade Objective-C
Você pode criar um aplicativo inteiramente novo com o Swift hoje, ou comece a usar o código Swift para implementar novos recursos e funcionalidades em seu aplicativo. O código Swift coexiste com seus arquivos Objective-C existentes no mesmo projeto, com acesso total à API Objective-C, facilitando a adoção.