Академический Документы
Профессиональный Документы
Культура Документы
Pour tester Swift il est possible de crer un Playground (Ecran daccueil) ou menu File
New Playground
Documentation Swift
UIKit Reference
AppKit reference
Foundation framework reference
4
Quick Help Inspector : Menu View Utilities Show Quick Help Inspector
5
1. Variables et constantes
Variables
var myString : String = "Bonjour"
var myInt : Int = 10
var myDouble : Double = 9.99
var myBool : Bool = true
Ou
Formatage et concatnation
var name = "Jrme"
"Bonjour \(name)"
Concatnation
Constantes
let myConst = 100
Optionals
Ce sont en fait lquivalent des Nullables, cest--dire des variables pouvant accepter une valeur
nulle.
On ajoute ? au type
var myInt : Int?
}
6
On pourrait ajouter les parenthses mais elles ne
sont pas ncessaires avec Swift
2. Conditions
if myInt > 10 {
} else if myInt == 10 {
}
else {
}
+ Utilisation de && et ||
Switch
switch myInt {
case 0 :
break
}
}
Boucle de 0 10
for index in 0...10{
println(index)
}
4. Fonctions
Nom du paramtre puis type
func myFunction (name : String) {
println(name)
}
myFunction("Jrme")
Type de retour
Avec retour
5. Collections
a. Tableaux
Crer un tableau
Nombre dlments
println(fruits.count)
if fruits.isEmpty {
Ajout
fruits.append("Banane")
.. Ou
fruits += ["Kiwi"]
8
println(fruits[0])
Suppression
fruits.removeLast()
fruits.removeAtIndex(0)
Tout supprimer
fruits.removeAll(keepCapacity: false)
.. Ou tableau vide
fruits = []
b. Dictionnaire
Crer un dictionnaire vide
if myDictionary.isEmpty {
Nombre dlments
println(myDictionary.count)
Suppression
myDictionary.removeValueForKey(1)
Ou
myDictionary[1] = nil
Tout supprimer
myDictionary.removeAll(keepCapacity: false)
Ou dictionnaire vide
myDictionary = [:]
c. Tuple
Ce sont des ensembles (groups entre parenthses). Tuple pour quintuple, sextuple par
exemple.
6. Enum
enum myEnum {
case One
case two
}
Utilisation
7. Structures
struct User {
var name : String
var email : String
static func myFunc () { Mthode statique dclare avec
static dans une structure
}
}
8. Objets
Classe
class User {
var name : String Variables initialiser soit dans le constructeur
var email : String soit la dclaration. Marquer les membres
private pour les rendre inaccessible en dehors
init() {
du fichier
name = ""
email = ""
} Constructeurs. Accs aux
init(name : String, email : String) { membres avec self
self.name = name
self.email = email
}
Destructeur
deinit {
}
func sayHello() -> String {
return ("Bonjour \(name)")
}
class func doSomething() -> String{ Mthode statique
return ("...") accessible par le nom de la
} classe
}
Proprit readonly
private(set) var email : String = ""
Cration dun objet
Utilisation. Ex
b. Protocol
Dfinit les membres que la classe devra implmenter
protocol UserProtocol {
var name : String { get }
var email : String { get set }
func sayHello()
}
func sayHello() {
}
}
9. Extension
Exemple on cre une mthode dextension pour la classe User
extension User {
func sayBye() -> String{
return ("Aurevoir \(name)")
}
}
10. Generics
Un peu comme avec C#, on retrouve les Generics
Documentation
12
I. iOS
1. Installation
Besoins :
- Mac OS X (Maverick minimum) (ou cration dune image virtuelle avec VM Ware par
exemple)
- XCode 6.* (free)
Sinscrire au Apple Developer Program pour pouvoir mettre ses applications sur lApp Store.
Ressources
13
Objective-C ou Swift
Tailles de
Quick help llment
slectionn
File inspector
16
Proprits du projet
En cliquant sur la racine du projet on a accs aux proprits du projet (version, device,
launchscreen, capabilities, etc.)
iOS Simulator
Lorsque le simulator est lanc on a accs un menu permettant par exemple de zoomer, scale
(menu Window ). Le menu Hardware permet de changer la version mule, grer le
keyboard, etc.
Debug
On peut placer des points darrt . Pour supprimer un point darrt clic droit dessus
Delete Breakpoint
Pas pas
Continuer
lexcution
Variables, objets
courants Fentre de sortie On peut entrer la commande
po suivi de la variable ou lobjet obtenir
18
3. ViewController ct Storyboard
a. Diffrents ViewControllers pouvant tre ajouts au Storyboard
Reprables avec leur couleur jaune dans l Object Library
ViewController
Une flche avec un symbole est ajoute entre les 2 ViewControllers . Il est possible galement
de raliser cette opration depuis le panneau Document Outline
Segues
20
Segue
Actuellement la barre naffichera quun bouton retour lorsque la navigation de retour sera
possible.
Puis ajout de Segues glisser depuis le bouton vers le nouveau ViewController afficher
22
TableViewController
TableViewCell
TableView
LaunchScreen (* .xib)
Personnalisable, on peut ajouter des lments, (exemple une ImageView en fond), la font
(couleur, famille, etc.)
24
ImageView
On peut facilement slectionner
limage affiche par l ImageView
parmis les assets
if(indexPath.item % 2 == 0){
cell.backgroundColor = UIColor.clearColor()
}
else{
cell.backgroundColor = UIColor.whiteColor().colorWithAlphaComponent(0.2)
cell.textLabel?.backgroundColor =
UIColor.whiteColor().colorWithAlphaComponent(0.0)
}
return cell
}
First Responder
Faire perdre le focus un contrle. Exemple quand on valide (clic sur bouton) on fait prendre le
focus une boite de texte
Auto Layout
Un peu comme un site Web Responsive On dfinit des contraintes pour que les
lments restent positionns correctement selon les diffrentes rsolutions et orientations
de devices.
2 mthodes pour ajouter des contraintes : soit par le Ctrl + glisser de la souris soit depuis les
boutons de raccourcis en bas du Storyboard
- Alignement
- Tailles
- Pour rsoudre les problmes de contraintes
- Resizing
Les repres laisss peuvent avoir plusieurs couleurs :
- Bleu : ok
- Orange : avertissement, problme de contrainte
- Rouge : erreur
On peut voir les contraintes ajoutes depuis le Document Outline
Centrer un lment
Par ex pour centrer horizontalement :
1. Ajouter une contrainte de taille (width)
3. Et enfin contrainte par rapport au top. Maintenir Ctrl et glisser de la souris vers le top
choisir Top space to top layout guide )
Ancrer un lment
Exemple un bouton en bas droite
Add missing Constraints cette option peut tre trs utile pour ajouter automatiquement
pour nous des contraintes. Par exemple on ajoute un label au centre de la vue, puis raccourci
bouton issues en bas du storyboard (ou menu Editor Resolve Auto Layout Issues ) et
Add missing constraints .
Pour tester utiliser le menu Hardware avec le Simulator : tourner ( rotate right ou
command + ) pour voir avec un changement dorientation (portrait/paysage) et essayer
sous plusieurs devices.
29
4. ViewController ct Code
a. Ajout de la classe du ViewController
Une classe de base est affecte au ViewController . Si toutefois on a besoin de personnaliser le
code il faut crer sa propre classe.
Classe personnelle
Menu File New File (Ou depuis le dossier dsir clic droit New File )
30
b. UIViewController
Cest un peu le ViewController de base tout faire.
import UIKit
import UIKit
Plusieurs sections
1. Changer le nombre de sections
if indexPath.section == 0 {
let (name,twitter) = people[indexPath.row]
cell.textLabel?.text = name
cell.detailTextLabel?.text = twitter
}
else{
let candy = candies[indexPath.row]
cell.textLabel?.text = candy
}
return cell
}
3. Header de sections
if section == 0 {
return "Contacts"
}
else{
return "Confiseries"
}
}
34
Headers de
sections
Disclosure
Avoir droite des cellules
Rgler la proprit Accessory de TableViewCell
On ajoute les images aux assets du projet, puis on utilise un tableau de tuples
return cell
}
35
Custom Cell
1. Crer une nouvelle classe hritant de UITableViewCell
Et rcupration
destinationController.person = cell.person
}
}
36
Suppression de lignes
Swap
Dcommenter ou
// Override to support editing the table view. ajouter le code pour
override func tableView(tableView: UITableView, commitEditingStyle editingStyle: prendre en charge
UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
la suppression
if editingStyle == .Delete {
PeopleService.Remove(indexPath.item)
tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
}else if editingStyle == .Insert {
}
}
On vrifie que cest bien la
navigation vers le
37 ViewController dsir,
puis on rcupre e
ViewController
d. Passage de donnes entre ViewControllers ( PrepareForSegue ) destination pour lequel on
renseigne la variable (dans
Dans le ViewController metteur lexemple nomme name )
avec la valeur de la cellule
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if(segue.identifier == "table_to_details"){
self.title = name;
}
}
38
e. Cration dOutlets
1re Mthode
Exemple on cre deux Outlets correspondants deux labels devant afficher le dtail de la
personne (nom et email)
1. Utiliser la vue splitte
2. Se positionner sur le contrle (exemple ici un label) maintenir Ctrl
3. et faire glisser la souris vers lemplacement dans le code o sera insr celle-ci
Attention toutefois, si on renomme ou supprime lOutlet dans le code, la connexion ne sera pas
supprime et peut tre source dexception. Ne pas oublier donc dans ce cas daller dans les
proprits des contrles depuis le Storyboard pour supprimer les connexions.
Note Avec Objective-C les Outlets sont places dans l@interface
2nde Mthode
1. Dfinir les Outlets en code
2. Aller ensuite dans le panneau de proprits (onglet Connections Connector ) des
contrles afin de les connecter.
Pareil que pour les Outlets, en vue splitte maintenir Ctrl depuis le contrle dsir (ici un
bouton) et glisser jusqu lendroit o insrer laction dans le code.
40
2me mthode
En code puis on va dans les proprits (onglet Connections Connector ) ou depuis le menu
contextuel du contrle (bouton ici) afin de la connecter laction.
Dans le code
Action connecte
41
g. Activity Indicator
import UIKit
Service
if myvalue != nil {
output.text = myvalue
}
else {
output.text = "Pas de valeur retrouve!"
}
}
La gestion du cycle de vie de lapplication est disponible depuis AppDelegate.swift
43
7. iPad (tablette)
Options lorsque lon cre un nouveau projet ( iPad et Universal )
Avec le Simulator
Navigation Controller
a. SplitView avec iPad du ViewController SplitView
master
Navigation Controller
du ViewController
details
Details ViewController
Master ViewController
44
b. Popup