Após sua saída compulsória da Apple, Steve Jobs fundou em 1985 a NeXT, que desenvolveu e fabricou computadores visando o mercado acadêmico e comercial. A produção e venda dos equipamentos foi relativamente limitada, mas o sistema operacional dos computadores NeXT, – o NeXTstep – era completamente inovador, tanto em termos gráficos, quanto em sua arquitetura interna, casando com o design externo arrojado do computador.
Embutido, o ambiente de desenvolvimento OpenStep orientado a objetos foi a base para muitas tecnologias que ainda estariam por vir. Naturalmente, a companhia abandonou o mercado de hardware para focar suas energias na implementação do OpenStep, e tecnologias de software, como o WebObjects, um dos primeiros frameworks de aplicações web. Em 1996, a Apple adquiriu a NeXT e como parte do acordo, Steve Jobs retornou à Apple, cuja companhia ele fundou em 1976, e pretendia combinar o software produzido pela NeXT com a plataforma de hardware da Apple.
Com isso, foi formada a Foundation Kit, uma framework Objective-C na especificação OpenStep, a qual usa o prefixo NS (NeXTstep) em toda arquitetura interna (em nomes de classes, bibliotecas, tipos, etc.) deste ambiente de desenvolvimento, o qual deu origem à linguagem de programação Objective-C, o predecessor do Swift, que também herdou a mesma arquitetura.
O Swift foi projetado por Chris Lattner, que contou com apoio dos demais desenvolvedores da Apple, para desenvolver uma linguagem de programação baseada nos melhores conceitos de linguagens como Objective-C e C, porém também adotando abordagens de linguagens como Rust, Haskell, Ruby, Python, C#, CLU, entre muitas outras.
Assim, temos um ambiente de desenvolvimento composto de múltiplos paradigmas, projetado para trabalhar com os frameworks Cocoa e CocoaTouch e a vasta imensidão de códigos Objective-C dos produtos da Apple. Utilizando o Xcode 6 e seu compilador LLVM, podemos usar códigos Objective-C, C++ e Swift em um único programa, que pode ser projetado tanto para iOS quanto para o OSX.
A linguagem não possui garbage collector e seu gerenciamento de memória é feito em tempo de compilação (ARC). Ela não trabalha com ponteiros. As classes em Swift são definidas em arquivos com extensão .swift e, opcionalmente, possuem uma interface gráfica ".xib". A classe principal em um aplicativo escrito em Swift é a AppDelegate, a qual possuirá um atributo @UIApplicationMain previamente à declaração da classe, similar às Annotations do Java. Esta classe é responsável por todo o ciclo de vida do aplicativo bem como por prover a janela (objeto Window) aonde os objetos serão renderizados.
Particularidades de destaque
Swift possui uma sintaxe muito similar a C e Objective-C no que diz respeito ao controle de fluxo, formato de declarações, chamadas, operadores e etc. Por outro lado, ela também possui suas particularidades como, por exemplo, a linguagem não exige que uma linha termine com “;” apesar de poder ser utilizado caso desejado. O uso do “;” pode separar duas ou mais declarações em uma mesma linha.
Os objetos em Swift, assim como em demais linguagens de programação, são instâncias de classes declaradas. Quando um objeto ainda não está instanciado, ele é nulo (nil, no caso do Swift). Objetos estáticos são instanciados com o comando let, enquanto objetos variáveis são instanciados com o comando var. Ao instanciar uma classe usando o construtor padrão, usamos (), ou um valor default. Na Listagem 1 encontram-se as formas mais comuns de criação de objetos e inicialização de variáveis.
Listagem 1. Usos comuns de declaração de variáveis e objetos.
var annotation:POIAnnotation = POIAnnotation()
var nome:String = “”
let nomeFixo:String = “Ola Sr.”
var arr:Array = []
var arr2:Array = ["item1", "item2", "item3"]
var dic1:Dictionary = [”chave” : ”valor"]
var dic2:Dictionary = Dictionary<String, String>()As variáveis e propriedades de classes podem ter seu escopo definido como private, public e internal. Quando uma variável é ...
Desbloqueie toda a DevMedia
-
+2000 artigos e vídeos
-
+40 trilhas sobre Front-end, Back-end, IA e muito mais
-
+5000 exercícios práticos
-
Mentorias ao vivo individuais
Confira outros conteúdos:
Programador Mobile
Desenvolvimento de aplicativos para...
Conceitos básicos para programar para...
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.