iOS Swift Developer
Transcrição
iOS Swift Developer
iOS Swift Developer Carga Horária: 200 Pré requisito Para o melhor aproveitamento do curso iOS Swift Developer, é imprescindível ter participado dos cursos Ambiente Mac OS X e Introdução à Programação Orientada a Objeto ou possuir conhecimentos equivalentes. Objetivo O curso iOS Swift Developer é fundamentado em técnicas e recursos de desenvolvimento de aplicativos para a plataforma Apple iOS, versão 9, ensinando o aluno a utilizar com eficácia as ferramentas mais inovadoras. Com uma base forte na linguagem Swift, o curso de iOS apresenta situações práticas ao aluno, exercitando sua capacidade de desenvolver soluções profissionais completas para a plataforma Apple. Diversos dos recursos estudados podem ser encontrados em aplicações de grande sucesso, como Uber, Facebook, Instagram, Telegram e diversas outras, o que possibilita ao aluno ter uma visão muito mais apurada de como os recursos podem ser aplicados. Introdução <strong>Introdução ao Xcode e ao Swift</strong>Xcode.Swift: Escopo de um programa em Swift; Variáveis e constantes (Qualificadores); Declarando variáveis e constantes em Swift (Exemplo de declaração de variável, Exemplo de declaração de constante); Inferência de tipos (Tipagem implícita, Tipagem explícita); Tuplas; Optionals; Declaração de uma optional; Caracteres de escape.Operadores: Operador de atribuição; Operadores matemáticos básicos; Incremento e decremento; Operador de atribuição composto; Operadores de comparação.<strong>Strings, arrays e dicionários</strong>Strings: Strings literais; Strings mutáveis; Strings vazias; Concatenação de strings; Interpolação de strings; Strings e suas propriedades básicas.Arrays: Métodos e propriedades do array.Dicionários: Métodos e propriedades do dicionário.<strong>Estruturas de controle</strong>Estruturas condicionais: if/else; switch; guard.Operadores lógicos: Operador NOT; Operador AND; Operador OR.Estruturas de repetição: for; for-in; while; repeat while.Operadores de intervalo: Operador de intervalo fechado; Operador de intervalo semifechado.<strong>Funções</strong>Funções: Parâmetros e retornos; Funções com apenas um parâmetro; Funções com mais de um parâmetro; Funções com retorno; Funções com retorno múltiplo; Funções com classes.Métodos: Métodos de instância; Modificando tipos de valor com métodos de instância; Métodos de classe.<strong>Closures</strong>Funções como parâmetro.Definindo uma closure.Inferência de tipos e retorno por contexto.Shorthands em argumentos.<strong>Classes e structures</strong>Structures: Structures são tipos.Classes: Classes são tipos de referências.Structures versus classes.<strong>Enumerations</strong>Definindo uma enumeration.Verificação dos valores de uma enumeration.Associação de valores.Valores padrão em uma enumeration.<strong>ARC</strong>O ARC.Como o ARC funciona.<strong>Optional chaining</strong>Unwrapping com optional chaining.Chamada de métodos com optional chaining.Relacionamentos multiníveis de encadeamento.<strong>Tratamento de erros</strong>Representando e lançando erros.Tratando erros: Lançando erros utilizando throwing functions; Tratando erros utilizando do-catch; Convertendo erros para valores opcionais; Desabilitando a propagação de erros.Utilizando o recurso defer.<strong>Type casting</strong>Type casting.<strong>Tipos aninhados</strong>Definição de um tipo aninhado.Aplicação de um tipo aninhado.Utilizando um tipo aninhado.<strong>Extensions</strong>Declaração de uma extension.Acrescentando propriedades através de uma extension.Acrescentando métodos através de uma extension.<strong>Protocolos</strong>Definindo um protocolo.Adotando um protocolo.Propriedades obrigatórias.Métodos obrigatórios.Delegates. SDK 1 <strong>O modelo de programação MVC</strong>Conceitos básicos sobre Design Pattern.O MVC.Tipos de objetos: Características dos objetos Model; Características dos objetos View; Características dos objetos Controller.Funcionamento do esquema MVC.<strong>Cocoa Touch: trabalhando com interfaces de toque</strong>Conceitos básicos sobre o Cocoa Touch.Trabalhando a interface do usuário: framework UIKit.O ambiente Xcode.Utilizando os arquivos principais de trabalho: Conhecendo o arquivo appDelegate.swift (Método didFinishLaunchingWithOptions, Método applicationWillResignActive, Método applicationDidEnterBackground, Método applicationWillEnterForeground, Método applicationDidBecomeActive, Método applicationWillTerminate); O arquivo ViewController.swift; O Arquivo Assets.xcassets; O arquivo Main.storyboard.<strong>Os objetos de interface: classes, conceitos e utilização</strong>Storyboard.A classe UIView.A classe UIViewController: O método viewDidLoad executando instruções.O objeto First Responder.IBOutlet.IBAction.Criando uma conexão entre objetos e arquivos storyboard.A classe UILabel: Modificando as propriedades de UILabel (Propriedade text, Propriedade textColor, Propriedade textAlignment).A classe UIButton: Modificando as propriedades de UIButton (Propriedade buttonType, Propriedade backgroundColor, Propriedade frame).A classe UISegmentedControl: Modificando as propriedades de UISegmentedControl (Propriedade numberOfSegments, Propriedade selectedSegmentIndex); Métodos para os segmentos (Método setImage:forSegmentAtIndex, Método setTitle:forSegmentAtIndex, Método titleForSegmentAtIndex).A classe UISlider: Modificando as propriedades de UISlider (Propriedade minimumValue, Propriedade maximumValue, Método setValue:animated).<strong>Trabalhando com as caixas de texto</strong>A classe UITextView: Modificando as propriedades de UITextView (Propriedade editable, Propriedade text, Propriedade textColor); Métodos para os textos (Método insertText, Método hasText); O protocolo UITextViewDelegate (Método textViewDidBeginEditing(textView: UITextView), Método textViewDidEndEditing(_ textView: UITextView), Método textViewDidChangeSelection(_ textView: UITextView).A classe UITextField: Modificando as propriedades de UITextField (Propriedade text, Propriedade textColor, Propriedade backgroundColor); O protocolo UITextFieldDelegate (Método textFieldShouldReturn(textField: UITextField)-> Bool, Método textFieldDidBeginEditing(textField: UITextField), Método textFieldDidEndEditing(textField: UITextField)).<strong>Trabalhando com a barra de ferramentas</strong>A classe UIToolBar: Modificando as propriedades de UIToolBar (Propriedade items, Propriedade barStyle, Propriedade tintColor, Método setItens).A classe UIBarButtonItem: Modificando as propriedades de UIBarButtonItem (Propriedade title, Propriedade tintColor, Propriedade tag).FlexibleSpace: espaço flexível na toolbar.FixedSpace: espaço fixo na toolbar.<strong>Conhecendo os indicadores de atividade e progresso</strong>A classe UIActivityIndicatorView: Modificando as propriedades de UIActivityIndicatorView (Propriedade activityIndicatorViewStyle, Propriedade hidesWhenStopped); Métodos referentes ao indicador de atividade (Método startAnimating, Método stopAnimating, Método isAnimating).A classe UIProgressView: Modificando as propriedades de UIProgressView (Propriedade progress, Propriedade progressViewStyle). SDK 2 <strong>Diretórios, gravação de arrays e dicionários</strong>Estrutura de diretórios, sistema de arquivos e Sandbox: Acessando diretórios; Criando o caminho até um diretório conhecido.Gerenciamento de arquivos e diretórios: Criando um objeto de NSFileManager; Criando subdiretórios; Removendo arquivos ou diretórios; Movendo arquivos ou diretórios; Copiando arquivos ou diretórios.Trabalhando com arrays e dicionários: Salvando arrays; Resgatando arrays; Salvando dicionários; Resgatando dicionários.<strong>UIView e UIViewController</strong>UIView: Geometria e sistema de coordenadas (Frame, Bounds e Center); Dimensões de tela; Principais propriedades (frame, bounds, center, backgroundColor, superview, subviews, tag, userInteractionEnabled); Principais métodos (init(frame:), addSubview(_:), viewWithTag(_:), bringSubviewToFront(_:), sendSubviewToBack(_:), exchangeSubviewAtIndex(_:withSubviewAtIndex:)); Criando views manualmente; Animações; Animando com métodos (animateWithDuration(_:animations:), animateWithDuration(_:animations:completion:), animateWithDuration(_:delay:options: animations:completion:)).UIViewController: Principais propriedades (view, title); Principais métodos (viewDidLoad(), viewWillAppear(_:), viewWillDisappear(_:), viewDidAppear(_:), viewDidDisappear(_:), supportedInterfaceOrientations(), didReceiveMemoryWarning()).<strong>Storyboards</strong>Definição e uso do Storyboard.Definindo a View Controller inicial.Main Storyboard.UIStoryBoardSegue: Principais propriedades (sourceViewController, destinationViewController, Identifier); Principais métodos relacionados (performSegueWithIdentifier(_:sender:), prepareForSegue(_:sender:)); Tipos de segues.Transição entre telas com o Storyboard.Segue Unwind.<strong>Listas de seleção, data e hora</strong>UIPickerView: Principais propriedades (delegate, dataSource, numberOfComponents, showsSelectionIndicator); Principais métodos (numberOfRowsInComponent(_:), reloadComponent(_:), reloadAllComponents(), selectRow(_:inComponent:animated:), selectedRowInComponent(_:)); Protocolos (numberOfComponentsInPickerView(_:), pickerView(_:numberOfRowsInComponent:), pickerView(_:titleForRow:forComponent:), pickerView(_:didSelectRow:inComponent:).NSDate: Principais propriedades (description); Principais métodos (init(), init(timeIntervalSinceNow:), init(timeInterval:sinceDate:), dateByAddingTimeInterval(_:), descriptionWithLocale(_:), timeIntervalSinceDate(_:), isEqualToDate(_:).NSDateFormatter: Principais propriedades (dateFormat, dateStyle, locale); Principais métodos (stringFromDate(_:), dateFromString(_:).UIDatePicker: Principais propriedades (date, minimumDate, maximumDate, countDownDuration, datePickerMode); Principal método (setDate(_:animated:)).<strong>Trabalhando com barras de abas</strong>UITabBar: Principais propriedades (delegate, items, selectedItem, translucent, backgroundImage); Principais métodos (beginCustomizingItems(_:), endCustomizingAnimated(_:), setItems(_:animated:), isCustomizing()); Protocolos (tabBar(_:willBeginCustomizingItems:), tabBar(_:didBeginCustomizingItems:), tabBar(_:willEndCustomizingItems:changed:), tabBar(_:didEndCustomizingItems:changed:), tabBar(_:didSelectItem:)).UITabBarItem: Principais propriedades (badgeValue, selectedImage); Principais propriedades relacionadas (image, title); Principais métodos (init(tabBarSystemItem:tag:), init(title:image:tag:), init(title:image:selectedImage:)).UITabBarController: Principais propriedades (delegate, tabBar, viewControllers, selectedViewController, selectedIndex); Principal método (setViewControllers(_:animated:)); Protocolos (tabBarController(_:shouldSelectViewController:), tabBarController(_:didSelectViewController:), tabBarController(_:willBeginCustomizingViewControllers:), tabBarController(_:willEndCustomizingViewControllers:changed:), tabBarController(_:didEndCustomizingViewControllers:changed:)).<strong>Trabalhando com tabelas</strong>UITableView: Principais propriedades (style, delegate, dataSource, allowsSelection, allowsMultipleSelection, separatorColor); Principais métodos (beginUpdates(), endUpdates(), dequeueReusableCellWithIdentifier(_:), deleteRowsAtIndexPaths(_:withRowAnimation:), deleteSections(_:withRowAnimation:), deselectRowAtIndexPath(_:animated:), indexPathForCell(_:), insertRowsAtIndexPaths(_:withRowAnimation:), insertSections(_:withRowAnimation:), reloadData(), setEditing(_:animated:), selectRowAtIndexPath(_:animated:scrollPosition:)); Protocolos (numberOfSectionsInTableView(_:), tableView(_:numberOfRowsInSection:), tableView(_:cellForRowAtIndexPath:), tableView(_:titleForHeaderInSection:), tableView(_:titleForFooterInSection:), tableView(_:didSelectRowAtIndexPath:), tableView(_:didDeselectRowAtIndexPath:), tableView(_:heightForRowAtIndexPath:), tableView(_:heightForHeaderInSection:), tableView(_:heightForFooterInSection:)).UITableViewCell: Principais propriedades (backgoundView, editing, selected, accessoryType, highlighted, textLabel, detailTextLabel, imageView); Principais métodos: init(style:reuseIdentifier:), setEditing(_:animated:), setSelected(_:animated:), setHighlighted(_:animated:)).UITableViewController: Principais propriedades (tableView, clearsSelectionOnViewWillAppear); Principal método (init(style:)).<strong>Trabalhando com barras de navegação</strong>UINavigationController: Principais propriedades (topViewController, visibleViewController, viewControllers, navigationBar, delegate); navigationBarHidden; Principais métodos (setViewControllers(_:animated:), pushViewController(_:animated:), popViewControllerAnimated(_:), popToRootViewControllerAnimated(_:), popToViewController(_:animated:), setNavigationBarHidden(_:animated:)); Protocolo UINavigationControllerDelegate (navigationController(_:willShowViewController:animated:), navigationController(_:didShowViewController:animated:)).UINavigationBar: Principais propriedades (items, backIndicatorImage, backIndicatorTransitionMaskImage, barStyle, barTintColor, tintColor, translucent); Principais métodos (backgroundImageForBarMetrics(_:), setBackgroundImage(_:forBarMetrics:)).UINavigationItem: Principais propriedades (title, prompt, backBarButtonItem, hidesBackButton); Principal método (setHidesBackButton(_:animated:)).<strong>Trabalhando com imagem e vídeo</strong>UIImagePickerController: Principais propriedades (delegate, allowsEditing, sourceType, cameraCaptureMode, showsCameraControls, cameraDevice, cameraFlashMode, mediaTypes, videoQuality, videoMaximumDuration); Principais métodos (availableMediaTypesForSourceType(_:), isSourceTypeAvailable(_:), isCameraDeviceAvailable(_:), isFlashAvailableForCameraDevice(_:)); Protocolo UIImagePickerControllerDelegate (imagePickerController(_:didFinishPickingMediaWithInfo:), imagePickerControllerDidCancel(_:)).<strong>Páginas Web</strong>NSURL: Principais propriedades (absoluteString, URLByDeletingLastPathComponent, URLByDeletingPathExtension); Principais métodos (init(string:), fileURLWithPath(_:), URLByAppendingPathComponent(_:), URLByAppendingPathExtension(_:)).NSURLRequest: Principais propriedades (URL, mainDocumentURL, timeoutInterval, cachePolicy); Principais métodos (init(URL:), init(URL:cachePolicy:timeoutInterval:)).UIWebView: Principais propriedades (canGoBack, canGoFowards, delegate, loading, request); Principais métodos (goBack(), goForward(), reload(), loadRequest(_:), stopLoading()); Protocolo UIWebViewDelegate (webViewDidStartLoad(_:), webViewDidFinishLoad(_:), webView(_:didFailLoadWithError:)). SDK 3 <strong>Janelas de alerta no iOS</strong>Classe UIAlertController: Principais propriedades (title, message, preferredStyle, actions, textFields); Principais métodos (init(title:message:preferredStyle:), addAction(_:), addTextFieldWithConfigurationHandler(_:)).<strong>Trabalhando com UICollectionView</strong>Classe UICollectionView: Principais propriedades (delegate, dataSource, allowsSelection, allowsMultipleSelection); Principais métodos (dequeueReusableCellWithReuseIdentifier(_:forIndexPath:), deleteItemsAtIndexPaths(_:), deleteSections(_:), indexPathsForSelectedItems(), deselectItemAtIndexPath(_:animated:), indexPathForCell(_:), insertItemsAtIndexPaths(_:), insertSections(_:), reloadData(), selectItemAtIndexPath(_:animated:scrollPosition:)); Protocolo UICollectionViewDataSource (collectionView(_:numberOfItemsInSection:), numberOfSectionsInCollectionView(_:), collectionView(_:cellForItemAtIndexPath:)); Protocolo UICollectionViewDelegate (collectionView(_:didSelectItemAtIndexPath:), collectionView(_:didDeselectItemAtIndexPath:)).<strong>Trabalhando com threads e GCD</strong>Definição de threads.Classe NSThread: Principais propriedades (executing, finished, cancelled); Principais métodos (init(target:selector:object:), start(), sleepForTimeInterval(_:), exit(), cancel()).API de multiprocessamento GCD: Queues; Principais funções (dispatch_after(_:_:_:), dispatch_get_global_queue(_:_:), dispatch_async(_:_:), dispatch_sync(_:_:)).<strong>XML</strong>Linguagem XML.Classe NSXMLParser: Principais propriedades (delegate, shouldProcessNamespaces, parserError, columnNumber, lineNumber); Principais métodos (init(contentsOfURL:), init(data:), parse(), abortParsing()); Protocolo NSXMLParserDelegate (parserDidStartDocument(_:), parserDidEndDocument(_:), parser(_:didStartElement:namespaceURI:qualifiedName:attributes:), parser(_:didEndElement:namespaceURI:qualified Name:), parser(_:foundCharacters:)).<strong>Framework Contacts - trabalhando com a agenda de contatos</strong>Conhecendo o framework Contacts: Classe CNContactStore; Principais métodos (unifiedContactWithIdentifier(_:keysToFetch:), unifiedContactsMatchingPredicate(_:keysToFetch:), authorizationStatusForEntityType(_:), requestAccessForEntityType(_:completionHandler:), groupsMatchingPredicate(_:), containersMatchingPredicate(_:), defaultContainerIdentifier()); Classe CNContact; Principais propriedades (identifier, contactType, givenName, middleName, familyName, phoneNumbers, emailAddress, imageData); Objeto CNGroup; Principais propriedades (Identifier, name); Principais métodos (predicateForGroupsWithIdentifiers(_:), predicateForGroupsInContainerWithIdentifier(_:)).Conhecendo o framework ContactsUI: Classe CNContactPickerViewController; Principais propriedades (displayedPropertyKeys, delegate, predicateForSelectionOfContact); Protocolo CNContactPickerDelegate; Principais métodos (contactPickerDidCancel(_:), contactPicker(_:didSelectContact:), contactPicker(_:didSelectContactProperty:), contactPicker(_:didSelectContacts:), contactPicker(_:didSelectContactProperties:)).<strong>QuickLook</strong>Conhecendo o Framework QuickLook.Classe QLPreviewController: Principais propriedades (dataSource, delegate, currentPreviewItem, currentPreviewItemIndex); Principais métodos (canPreviewItem(_:), refreshCurrentPreviewItem(), reloadData()).Protocolo QLPreviewControllerDataSource: Principais métodos (numberOfPreviewItemsInPreviewController(_:), previewController(_:previewItemAtIndex:)).Protocolo QLPreviewControllerDelegate: Principais métodos (previewControllerWillDismiss(_:), previewControllerDidDismiss(_:)).<strong>Mapas e geolocalização</strong>CoreLocation e seus elementos principais.Classe CLLocationManager: Solicitando autorização do usuário; Principais propriedades (delegate, desiredAccuracy, location, heading, pausesLocationUpdatesAutomatically, activityType); Principais métodos (requestWhenInUseAuthorization(), requestAlwaysAuthorization(), startUpdatingLocation(), stopUpdatingLocation(), locationServicesEnabled(), headingAvailable(), startUpdatingHeading(), stopUpdatingHeading()).Protocolo CLLocationManagerDelegate: Principais métodos (locationManager(_:didUpdateLocations:), locationManager(_:didFailWithError:), locationManager(_:didUpdateHeading:)).Framework MapKit.Classe MKMapView: Principais propriedades (annotations, centerCoordinate, delegate, mapType, region, scrollEnabled, showUserLocation, zoomEnabled); Principais métodos (addAnnotation(_:), removeAnnotation(_:), setCenterCoordinate(_:animated:), setRegion(_:animated:)).Protocolo MKMapViewDelegate: Principais métodos (mapViewWillStartLoadingMap(_:), mapViewDidFinishLoadingMap(_:), mapViewDidFailLoadingMap(_:withError:), mapView(_:regionWillChangeAnimated:), mapView(_:regionDidChangeAnimated:), mapView(_:didUpdateUserLocation:)).<strong>Trabalhando com o framework iAd</strong>Framework iAd.Classe ADBannerView: Principais propriedades (delegate, bannerLoaded, adType, bannerViewActionInProgress); Principais métodos (init(adType:), cancelBannerViewAction()).Protocolo AdBannerViewDelegate: Principais métodos (bannerViewWillLoadAd(_:), bannerViewDidLoadAd(_:), bannerViewActionShouldBegin(_:willLeaveApplication:), bannerViewActionDidFinish(_:), bannerView(_:didFailToReceiveAdWithError:)).<strong>Utilizando os sensores de acelerômetro e giroscópio</strong>Classe CMMotionManager: Principais propriedades (accelerometerAvailable, accelerometerUpdateInterval, accelerometerActive, accelerometerData, gyroAvailable, gyroUpdateInterval, gyroActive, gyroData, deviceMotion); Principais métodos (startAccelerometerUpdatesToQueue(_:withHandler:), startAccelerometerUpdates(), stopAccelerometerUpdates(), startGyroUpdatesToQueue(_:withHandler:), startGyroUpdates(), stopGyroUpdates()).Classe CMDeviceMotion: Principais propriedades (attitude, gravity, userAcceleration).Structure CMAcceleration.Classe CMAttitude: Principais propriedades (roll, pitch, yaw).<strong>Gesture Recognizer - Trabalhando com reconhecimento de gestos</strong>Classe UIGestureRecognizer: Principais propriedades (state, view, enabled); Principais métodos (init(target:action:), addTarget(_:action:), removeTarget(_:action:), locationInView(_:), numberOfTouches()).Classe UITapGestureRecognizer: Principais propriedades (numberOfTapsRequired, numberOfTouchesRequired).Classe UIPinchGestureRecognizer: Principais propriedades (scale, velocity).Classe UIRotationGestureRecognizer: Principais propriedades (rotation, velocity).Classe UISwipeGestureRecognizer: Principais propriedades (direction, numberOfTouchesRequired).Classe UIPanGestureRecognizer: Principais propriedades (maximumNumberOfTouches, minimumNumberOfTouches); Principais métodos (translationInView(_:), velocityInView(_:)).Classe UILongPressGestureRecognizer: Principais propriedades (minimumPressDuration, numberOfTouchesRequired, numberOfTapsRequired, allowableMovement).<strong>Framework Multipeer Connectivity</strong>Conhecendo o framework Multipeer Connectivity: Programação para Multipeer Connectivity.Classe MCSession: Principais propriedades (delegate, myPeerID, connectedPeers); Principais métodos (init(peer:), cancelConnectPeer(_:), sendData(_:toPeers:withMode:error:), disconnect()).Protocolo MCSessionDelegate: Principais métodos (session(_:peer:didChangeState:), session(_:didStartReceivingResourceWithName:fromPeer:withProgress:), session(_:didFinishReceivingResourceWithName:fromPeer:atURL:withError:), session(_:didReceiveData:fromPeer:), session(_:didReceiveStream:withName:fromPeer:)).Classe MCBrowserViewController: Principais propriedades (delegate, browser, session, maximumNumberOfPeers, minimumNumberOfPeers); Principal método (init(serviceType:session:)).Protocolo MCBrowserViewControllerDelegate: Principais métodos (browserViewControllerDidFinish(_:), browserViewControllerWasCancelled(_:)).Classe MCAdvertiserAssistant: Principal propriedade (session); Principais métodos (init(serviceType:discoveryInfo:session:), start(), stop()).Classe MCPeerID: Principal propriedade (displayName); Principal método (init(displayName:)). SDK 4 <strong>Multitasking Executando tarefas em segundo plano no iOS</strong>Conhecendo o multitasking.Classe UIMutableUserNotificationAction: Propriedades da classe UIMutableUserNotificationAction.Classe UIMutableUserNotificationCategory: Propriedade da classe UIMutableUserNotificationCategory; Método da classe UIMutableUserNotificationCategory.Classe UIApplication: Métodos da classe UIApplication.<strong>Framework QuartzCore Controlando animações avançadas</strong>Conhecendo o framework QuartzCore.Coleção de classes Core Animation.Classe CALayer: Propriedades da classe CALayer; Métodos da classe CALayer.Classe CABasicAnimation: Propriedades da classe CABasicAnimation.Classe CAAnimationGroup.Classe CAKeyframeAnimation.<strong>Trabalhando com a biblioteca SQLite</strong>Banco de dados SQLite: Lidando com os tipos de armazenamento; Comparando os tipos.Como acessar o SQLite: Comandos de linha; Comandos SQL (Comando para criar uma tabela, Comando para inserir registros em uma tabela, Comando para consultar registros em uma tabela, Cláusula WHERE, Comando para alterar registros em uma tabela, Comando para remover registros de uma tabela, Comando para remover uma tabela).API escrita em C.Exemplo de utilização do SQLite no Swift: Criando ou abrindo o banco; Inserindo um registro no banco; Resgatando registros no banco.<strong>Trabalhando com o framework AVFoundation</strong>Conhecendo o framework AVFoundation.Classe AVAudioPlayer: Propriedades da classe AVAudioPlayer; Métodos da classe AVAudioPlayer.Classe AVAudioRecorder: Propriedades da classe AVAudioRecorder; Métodos da classe AVAudioRecorder.<strong>Trabalhando com o framework Photos</strong>Conhecendo o framework Photos.Classe PHAsset: Propriedades da classe PHAsset; Métodos da classe PHAsset.Classe PHImageRequestOptions: Propriedades da classe PHImageRequestOptions.A Classe PHImageManager: Métodos da classe PHImageManager.<strong>Trabalhando com o framework AVKit</strong>Conhecendo o framework AVKit.Formatos multimídia suportados.Classe AVPlayer: Propriedades da classe AVPlayer; Métodos da classe AVPlayer.Classe AVPlayerViewController: Propriedades da classe AVPlayerViewController.<strong>Trabalhando com o recurso Push Notification</strong>Conhecendo o Push Notification.Estrutura da mensagem de um Push Notification.Geração de certificados: Geração do CSR; Criação do App ID; Certificado SSL; Criando a Provision Profile.<strong>Trabalhando com o framework Message UI</strong>Conhecendo o framework Message UI.Classe MFMailComposeViewController: Propriedade da classe MFMailComposeViewController; Métodos da classe MFMailComposeViewController; Protocolo MFMailComposeViewControllerDelegate.Classe MFMessageComposeViewController: Propriedades da classe MFMessageComposeViewController; Protocolo MFMessageComposeViewControllerDelegate.<strong>Trabalhando com o Social Framework</strong>Social Framework.Classe SLComposeViewController: Métodos da classe SLComposeViewController.Classe UIActivityViewController: Método da classe UIActivityViewController.