Flutter 1.0

Logo FlutterFlutter est un framework de Google destiné au développement d’applications mobiles sur iOS et Android.

C’est un framework qui utilise une approche similaire aux autres outils de développement hybrides comme ionic/cordova en créant une vue unique dans laquelle toute l’interface de l’application apparaîtra. Cependant, au lieu d’utiliser une vue web, flutter se base sur le moteur graphique Skia, ce qui d’après Google, garantit une grande vitesse d’exécution.

Les éléments d’interface, boutons, menus, listes  spécifiques aux deux plateformes ont été soigneusement reproduits pour donner l’illusion du natif.

Un projet flutter se code en Dart.

Pour en savoir plus, lisez l’annonce de Google et visitez le site officiel.

Les erreurs ‘CDVPlugin.h’ file not found et Missing dependency target CordovaLib

Si vous rencontrez l’une de ces erreurs lors de la compilation d’un projet iOS produit par ionic/cordova, votre projet est abimé et doit être recréé. Le contenu du dossier CordovaLib dans platforms/ios/ est manquant ou incomplet.

La solution est simple. Supprimez et ajoutez la plateforme de cette manière :

ionic cordova platform rm ios
ionic cordova platform add ios

Vous pouvez alors compiler ( build ) le projet.

Manipuler le JSON facilement en swift avec SwiftyJSON

Même si Swift fournit des moyens de gérer le JSON avec JSONSerialization, on se retrouve rapidement avec un empilement de valeurs optionnelles et du code assez peu lisible.

SwiftyJSON apporte une solution élégante et simplifie votre code. Par exemple :

if let statusesArray = try? JSONSerialization.jsonObject(with: data, options: .allowFragments)
  as? [[String: Any]],
  let user = statusesArray[0]["user"] as? [String: Any],
  let username = user["name"] as? String {
// Finally we got the username
}

devient :

let json = JSON(data: dataFromNetworking)
if let userName = json[0]["user"]["name"].string {
  //Now you got your value
}

SwiftyJSON peut être ajouté à un projet XCode via Carthage ou CocoaPods. Il est disponible sur github sous license MIT.

https://github.com/SwiftyJSON/SwiftyJSON

Carthage ou CocoaPods ?

Les deux gestionnaires de frameworks les plus populaires pour le développent iOS sont Carthage et CocoaPods. Quelles sont les spécificités de chaque produit et lequel choisir pour un nouveau projet ?

CocoaPods

  • est un gestionnaire de dépendances centralisé écrit en Ruby. Vous pouvez chercher un framework compatible directement sur cocoapods.org
  • modifie votre projet XCode et modifie les paramètres pour vous. Il simplifie donc l’ajout d’un framework.
  • dépend de la version de XCode que vous utilisez. Si vous metttez à jour XCode, veillez à ce que CocoaPods dispose d’une version compatible.
  • dispose d’une application qui vous permet de l’utiliser sans taper de commandes dans le terminal.

Carthage

  • est un gestionnaire de dépendance décentralisé écrit en Swift. Vous n’avez pas de liste des frameworks compatibles. En général le README du framework vous indique sa compatibilité. Les plus populaires proposent tous une installation via Carthage.
  • ne modifie pas votre projet. Vous devez vous-même mettre à jour la section Linked Frameworks and Libraries de votre projet XCode et ajouter une Build Phase à votre Target.
  • nécessite l’usage du terminal et de lignes de commandes

 

 

Méfiez vous de U+2028 !

Le caractère unicode U+2028 porte aussi le nom de LINE SEPARATOR. C’est un caractère invisible qui selon l’âge de votre éditeur de texte affichera un retour à la ligne sans changement de paragraphe, ou sera simplement ignoré. Sa présence dans un objet JSON sur une de mes applications web a bloqué un ancien interpréteur, alors que le même objet était reconnu valide sur le site jsonlint.

Curieusement, il est aussi autorisé, quoique fortement déconseillé dans les noms de domaines. Il fait d’ailleurs partie de la liste des caractères interdits par certains navigateurs dans les url à cause des problèmes de sécurité qu’ils posent. En effet, cette liste permettrait de créer des noms de domaines ressemblant à des noms existant déjà, et à diriger les internautes vers de faux sites pour leur prendre leurs données confidentielles.

Pour plus d’information, voyez la page de wikipedia sur les attaques homographiques (en)