Chapitre 01 - Introduction Flashcards

1
Q

Il y avait 2 millions d’applications sur le App Store / Google Play, 235 000 sur le Blackberry World, 670 000 sur le Windows Store. Utilisant vos connaisances sur la popularité des téléphones intelligents, que pouvez-vous déduire?

A

Il y a un lien de corrélation entre le nombre d’applications sur le app store d’une plateforme et le succès de celle-ci.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quelles sont des contraintes du développement mobile?

A
  • Mémoire vive limitée
  • Espace disque limité
  • Taille d’écran
  • Énergie limitée
  • Interruption (SMS, appel, email, etc…)
  • Accessiblités
  • Langues
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Quelle est la différence principale entre le C/C++ et l’ObjC?

A

En C/C++, on appel une méthode sur un objet. En ObjC, en lui envoie un message.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

À qui peux-t-on envoyer des messages en ObjC?

A

N’importe qui, mais nous ne sommes pas garantie d’avoir une réponse.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Quel est l’équivalent en ObjC de ce code en Java?

Voiture maVoiture = new Voiture();
int wheels = maVoiture.getNumberOfWheels();
A

Voiture *maVoiture = [[Voiture alloc] init];

int wheels = [maVoiture numberOfWheels]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Quel est l’objet de base de ObjC?

A

NSObject

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Comment est-ce qu’on déclare une classe en ObjC dans un .h en ObjC?

A

@interface NomClasse : ClasseSurdéfinie

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Comment est-ce qu’on implémente une classe déclaré dans un .h en ObjC?

A

@implementation NomClasse

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Comment est-ce qu’on indique la fin de l’implémentation ou de la définition d’une classe en ObjC?

A

@end

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Que signifie le décorateur @private en ObjC?

A

Indique qu’un élément ne peut être modifié/accédé que par la classe elle-même

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Que signifie le décorateur @protected en ObjC?

A

Indique qu’un élément ne peut être modifié/accédé que par une sous-classe

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Que signifie le décorateur @public en ObjC?

A

Indique qu’un élément peut être modifié/accédé par n’importe qui

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Qu’est-ce qui ne peut pas être @private en ObjC?

A

Les méthodes (fonctions) et les @property

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Quel est la particularité de @private en ObjC?

A

Un objet ne peut pas être 100% privé dû au fait que tu peux envoyer des messages à n’importe quoi, l’objet n’est que caché.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Que signfie - et + devant une méthode dans une classe en ObjC?

A

-: Méthode disponible sur une instance

+: Méthode dispnible sur la classe elle-même (e.g.: statique)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Quel convention standard devrait être respecté dans les méthodes init de toute classe en ObjC et pourquoi?

A

if (self = [super init])

On s’assure que le parent qui a appellé la méthode n’est pas nil

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Comment est-ce qu’on passe plusieurs arguments en ObjC?

A

[monObjet monMessage:MonArgument1 lasuite:MonArgument2];

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Qu’est-ce que @property fait en ObjC?

A

Crée dynamiquement le set/get pour une propriété et s’occupe de l’allocation/désallocation de la mémoire.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Qu’est-ce que la ligne suivante fait en ObjC:

@property(nonatomic)int numberOfWheels;

A

Crée une propriété dynamique qui ne garantis pas qu’un objet soit présent de façon complète/atomique (est plus rapide) lors des get.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Qu’est-ce que la ligne suivante fait en ObjC:

@property(atomic)int numberOfWheels;

A

Crée une propriété dynamique qui garantis qu’un objet soit présent de façon complète/atomique (est moins rapide) lors des get.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Quelle est la différence entre ces lignes en ObjC:

int wheels = [maVoiture numberOfWheels];
int wheels = maVoiture.numberOfWheels;

A

Au niveau du compilateur, il n’y a aucune différence. Il va transformer la deuxième ligne avec le point vers la première ligne.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Comment est-ce qu’on fait de l’assignation de variable dans un string en ObjC?

A

NSLog(@”Ma phrase est %@”, @”cool”);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Qu’est-ce que ARC en ObjC?

A

Automatic Reference Counting, dans la même famille que le Garbage Collector de Java. Désaloue un objet lorsquele [monObjet retainCount] atteint 0.

24
Q

Comment est-ce qu’on incrémente/décrémente le retainCount en ObjC?

A

Par les attributs:

Incrémente: retain
Décrémente: release

25
Q

Quelle est la différence entre un objet immuable et variable?

A

Immuable: L’état de l’objet ne peut pas être modifié après la création. Ex: NSArray
Variable: L’état peu être modifié après la création. Ex: NsMutableArray

26
Q

Qu’est-ce qu’un block en ObjC?

A

Un segment de code/fonction. Ce sont des objets “completS” qui peuvent êtes passés en paramètres dans une fonction ou être placés dans un NSArray/NSDictionnary.

  • Utile pour l’asynchrone / comme callback
27
Q

Comment est-ce qu’on déclare un block en ObjC?

A
  • (void)testMethod {
    int myInt = 42;void (^testBlock)(void) = ^{
    NSLog(@”Int is: %i”, myInt);
    };testBlock();
    }
28
Q

Qu’est-ce que l’ABI?

A

Application Binary Interface, comme un API mais pour programmes compilés.

29
Q

Comment définir plusieurs constantes en Swift?

A

let q = 1, w = 2, e = 3

30
Q

Comment définir une variable (sans type) en Swift?

A

var passengers = 0

31
Q

Comment définir une variable (avec type) en Swift?

A

var message:String

32
Q

Est-ce que Swift est un langage typé statiquement ou dynamiquement?

A

Swift en un langage typés statiquement, mais le compilateur fait de l’inférence de type pour deviner le type des variables qui n’ont pas été explicitement définies par le programmeur.

33
Q

Comment se déclare une valeur optionnelle en Swift?

A

type?

34
Q

Quelle est la valeur par défaut d’une valeur optionnelle qui n’est pas définie en Swift?

A

nil

35
Q

Quelle est la différence entre nil en ObjC et Swift?

A

ObjC: Pointeur non existant, seulement sur objet
Swift: Absence de valeur, sur tous les types

36
Q

À quoi faut-il faire attention en Swift avec les variables optionnelles?

A

Il faut vérifer qu’elles ne sont pas nil

37
Q

Comment est-ce qu’on accède à une variable optionnelle en Swift?

A

variable!

38
Q

Definissez qu’est-ce que l’optionnal binding en Swift? et donnez un exemple.

A

Permet d’accéderà une variable optionnele est mettant dans une autre variable/constante et en validant si elle est nil ou non.

if let lExample = example{
    print("Ceci est un : \(lexample)")
}

Peut être fait avec plusieurs variables

39
Q

Definissez qu’est-ce que le implicitly unwrapped optional en Swift et donnez un exemple.

A

Comme une variable optionnelle, mais à laquelle on indique que l’on veut toujours la unwrap lorsqu’on l’accède. La variable est automatiquement vérifié pour nil lors de l’accès.

let implicitExample: String! = “String optionnel implicite”
let newExample: String = implicitExample

40
Q

Definissez qu’est-ce que le optional chaining en Swift et donnez un exemple.

A

Permet d’appeler une méthode/propriété sur un objet de type optionnel. Ne retourne pas d’erreur.

monGarage.voiture1?.numberOfWheels()

41
Q

Qu’est-ce que le guard else en Swift?

A

Évalue une condition comme un if; si vrai, skip, si faux, rentre à l’intérieur

42
Q

Pour quoi est-ce qu’un guard else est utile en Swift?

A

Pour éviter une multitude de if imbriqué

43
Q

Comment est-ce qu’on définie une classe en Swift?

A

class NomClasse:SuperClass{ }

44
Q

Comment est-ce qu’on définie une fonction en Swift?

A

func nomFonction() ->Type{ return mWheels }

45
Q

Comment est-ce qu’on définie une variable en Swift?

A

var

46
Q

Quelle est la différence entre le init de ObjC et de Swift?

A

Le init() de Swift ne retourne pas d’objet, comparativement à ObjC.

47
Q

Quelle est la différence entre une entité open et public en Swift?

A

Une entité public est accessible de l’extérieur et peut être utilisé comme sous classe/overrider.

Une entité open est accessible de l’extérieur, mais ne peut pas être utilisé comme sous classe/overrider.

48
Q

Qu’est-ce qu’une entité internal en Swift?

A

Une entité qui peut être utilisé uniquement à l’intérieur du présent module

49
Q

Qu’est-ce qu’une entité fileprivate en Swift?

A

Restreint l’usage au fichier courant seulement

50
Q

Qu’est-ce qu’une entité private en Swift?

A

Restreint l’usage à la déclaration seulement (scope).

51
Q

Quelle est le niveau par défat des classes/fonctions/variables en Swift?

A

internal

52
Q

Qu’est-ce qu’un module en Swift?

A

Une unité de distribution de code, application/librarie compilée.

53
Q

Qu’est-ce qu’un _ devant un nom de variable signifie en Swift?

A

Il est optionnel de fournir le nom de la variable.

54
Q

Quelle est la différence être une classe et un struct en Swift?

A

Le struct est passé en copie alors qu’une classe est passée en référence.

55
Q

Qu’est-ce qu’une extension en Swift?

A

Un artifice qui permet d’ajouter une nouvelle fonction à type existant.

extension Double {
    var ft: Double { return self / 3.28084 }
}
let threeFeet = 3.ft
56
Q

Qu’est-ce qu’un closure en Swift?

A

Similaire au block en ObjC, utilisé pour callbacks. Retiennent contexte de leur origine.