Chapitre 01 - Introduction Flashcards
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?
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.
Quelles sont des contraintes du développement mobile?
- Mémoire vive limitée
- Espace disque limité
- Taille d’écran
- Énergie limitée
- Interruption (SMS, appel, email, etc…)
- Accessiblités
- Langues
Quelle est la différence principale entre le C/C++ et l’ObjC?
En C/C++, on appel une méthode sur un objet. En ObjC, en lui envoie un message.
À qui peux-t-on envoyer des messages en ObjC?
N’importe qui, mais nous ne sommes pas garantie d’avoir une réponse.
Quel est l’équivalent en ObjC de ce code en Java?
Voiture maVoiture = new Voiture(); int wheels = maVoiture.getNumberOfWheels();
Voiture *maVoiture = [[Voiture alloc] init];
int wheels = [maVoiture numberOfWheels]
Quel est l’objet de base de ObjC?
NSObject
Comment est-ce qu’on déclare une classe en ObjC dans un .h en ObjC?
@interface NomClasse : ClasseSurdéfinie
Comment est-ce qu’on implémente une classe déclaré dans un .h en ObjC?
@implementation NomClasse
Comment est-ce qu’on indique la fin de l’implémentation ou de la définition d’une classe en ObjC?
@end
Que signifie le décorateur @private en ObjC?
Indique qu’un élément ne peut être modifié/accédé que par la classe elle-même
Que signifie le décorateur @protected en ObjC?
Indique qu’un élément ne peut être modifié/accédé que par une sous-classe
Que signifie le décorateur @public en ObjC?
Indique qu’un élément peut être modifié/accédé par n’importe qui
Qu’est-ce qui ne peut pas être @private en ObjC?
Les méthodes (fonctions) et les @property
Quel est la particularité de @private en ObjC?
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é.
Que signfie - et + devant une méthode dans une classe en ObjC?
-: Méthode disponible sur une instance
+: Méthode dispnible sur la classe elle-même (e.g.: statique)
Quel convention standard devrait être respecté dans les méthodes init de toute classe en ObjC et pourquoi?
if (self = [super init])
On s’assure que le parent qui a appellé la méthode n’est pas nil
Comment est-ce qu’on passe plusieurs arguments en ObjC?
[monObjet monMessage:MonArgument1 lasuite:MonArgument2];
Qu’est-ce que @property fait en ObjC?
Crée dynamiquement le set/get pour une propriété et s’occupe de l’allocation/désallocation de la mémoire.
Qu’est-ce que la ligne suivante fait en ObjC:
@property(nonatomic)int numberOfWheels;
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.
Qu’est-ce que la ligne suivante fait en ObjC:
@property(atomic)int numberOfWheels;
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.
Quelle est la différence entre ces lignes en ObjC:
int wheels = [maVoiture numberOfWheels];
int wheels = maVoiture.numberOfWheels;
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.
Comment est-ce qu’on fait de l’assignation de variable dans un string en ObjC?
NSLog(@”Ma phrase est %@”, @”cool”);
Qu’est-ce que ARC en ObjC?
Automatic Reference Counting, dans la même famille que le Garbage Collector de Java. Désaloue un objet lorsquele [monObjet retainCount] atteint 0.
Comment est-ce qu’on incrémente/décrémente le retainCount en ObjC?
Par les attributs:
Incrémente: retain
Décrémente: release
Quelle est la différence entre un objet immuable et variable?
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
Qu’est-ce qu’un block en ObjC?
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
Comment est-ce qu’on déclare un block en ObjC?
- (void)testMethod {
int myInt = 42;void (^testBlock)(void) = ^{
NSLog(@”Int is: %i”, myInt);
};testBlock();
}
Qu’est-ce que l’ABI?
Application Binary Interface, comme un API mais pour programmes compilés.
Comment définir plusieurs constantes en Swift?
let q = 1, w = 2, e = 3
Comment définir une variable (sans type) en Swift?
var passengers = 0
Comment définir une variable (avec type) en Swift?
var message:String
Est-ce que Swift est un langage typé statiquement ou dynamiquement?
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.
Comment se déclare une valeur optionnelle en Swift?
type?
Quelle est la valeur par défaut d’une valeur optionnelle qui n’est pas définie en Swift?
nil
Quelle est la différence entre nil en ObjC et Swift?
ObjC: Pointeur non existant, seulement sur objet
Swift: Absence de valeur, sur tous les types
À quoi faut-il faire attention en Swift avec les variables optionnelles?
Il faut vérifer qu’elles ne sont pas nil
Comment est-ce qu’on accède à une variable optionnelle en Swift?
variable!
Definissez qu’est-ce que l’optionnal binding en Swift? et donnez un exemple.
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
Definissez qu’est-ce que le implicitly unwrapped optional en Swift et donnez un exemple.
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
Definissez qu’est-ce que le optional chaining en Swift et donnez un exemple.
Permet d’appeler une méthode/propriété sur un objet de type optionnel. Ne retourne pas d’erreur.
monGarage.voiture1?.numberOfWheels()
Qu’est-ce que le guard else en Swift?
Évalue une condition comme un if; si vrai, skip, si faux, rentre à l’intérieur
Pour quoi est-ce qu’un guard else est utile en Swift?
Pour éviter une multitude de if imbriqué
Comment est-ce qu’on définie une classe en Swift?
class NomClasse:SuperClass{ }
Comment est-ce qu’on définie une fonction en Swift?
func nomFonction() ->Type{ return mWheels }
Comment est-ce qu’on définie une variable en Swift?
var
Quelle est la différence entre le init de ObjC et de Swift?
Le init() de Swift ne retourne pas d’objet, comparativement à ObjC.
Quelle est la différence entre une entité open et public en Swift?
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.
Qu’est-ce qu’une entité internal en Swift?
Une entité qui peut être utilisé uniquement à l’intérieur du présent module
Qu’est-ce qu’une entité fileprivate en Swift?
Restreint l’usage au fichier courant seulement
Qu’est-ce qu’une entité private en Swift?
Restreint l’usage à la déclaration seulement (scope).
Quelle est le niveau par défat des classes/fonctions/variables en Swift?
internal
Qu’est-ce qu’un module en Swift?
Une unité de distribution de code, application/librarie compilée.
Qu’est-ce qu’un _ devant un nom de variable signifie en Swift?
Il est optionnel de fournir le nom de la variable.
Quelle est la différence être une classe et un struct en Swift?
Le struct est passé en copie alors qu’une classe est passée en référence.
Qu’est-ce qu’une extension en Swift?
Un artifice qui permet d’ajouter une nouvelle fonction à type existant.
extension Double { var ft: Double { return self / 3.28084 } } let threeFeet = 3.ft
Qu’est-ce qu’un closure en Swift?
Similaire au block en ObjC, utilisé pour callbacks. Retiennent contexte de leur origine.