Geocoding et Reverse Geocoding en Swift

Geocoding

Comment obtenir une adresse à partir de coordonnées géographiques ? Et comment obtenir les coordonnées géographiques à partir d’une adresse ?

Voici (un des) problèmes auxquels je me suis frotté pour la réalisation de l’application KayakTracker…

Et cela se nomme le géocodage et le géodécodage (geocoding et reverse geocoding). Une recherche Google montre que cela est réalisable entre autres grâce à leur API Maps…

Mais Apple à également pensé à nous, et c’est cette méthode que je vais vous présenter.

Comme d’habitude, je m’appuie sur une petite application « POC » qui, une fois terminée, donnera cela :

Motivés ? C’est parti !

Lire la suite

Soulageons la planète : programmons mieux !

Plaidoyer pour de meilleurs logiciels

Cette semaine, pas d’article technique (quoi que…), mais plutôt un partage : l’excellent article de Nikita trouvé sur son blog tonsky.me à propos de l’obésité informatique : http://tonsky.me/blog/disenchantment/

Ne vous êtes jamais demandé pourquoi il fallait toujours plus de puissance à nos ordinateurs pour effectuer grosso-modo les mêmes tâches?

Windows 95 était à l’aise avec 30 Mo de Ram, Windows 10 veut 4 GO… quasiment 133 fois plus… Est-il pour autant 133 fois meilleur ?

Comment se fait-il qu’il faille 15 mn pour l’installer sur une machine, et 30 mn pour qu’il se mette à jour sur la même machine ?

L’affichage d’une page web nécessite de plus en plus de puissance… mais avons nous vraiment gagné en ergonomie et en confort pour autant ? Quand on voit ce qu’est devenu Facebook, on peut légitimement se poser la question.

La moindre application iOS ou Android crée des centaines de fichiers avant même que nous ayons écrits la première ligne de code !

Peut être que le temps du programmeur coûte plus cher que le temps machine… en Euros ou en Dollars. Mais a-t-on pensé au coût écologique de milliards de machines gaspillant des ressources ?

Je pense qu’il est de notre devoir en tant que développeur de créer du code non seulement ré-utilisable et facilement débogable, mais aussi et surtout efficace et optimisé !

Bref, du code écologiquement responsable !

 

 

API Charts tutoriel

Swift Charts Tutoriel

Je reprend la petite application utilisée pour le tutoriel sur HealhtKit afin de vous donner un aperçu des innombrables possibilités de l’API Charts.

L’API Charts à été développée par Daniel Gindi et peut être téléchargée sur Github. L’idée est de faciliter la vie des développeurs iOS / Swift pour la création de graphiques. Grâce à Charts, vous pouvez facilement créer des diagrammes, des courbes, des graphiques en barres, et plein d’autres types de graphiques pour représenter de manière visuelle des données.

C’est un peu un Excel pour développeurs. Par contre, tout comme celui-ci, l’utilisation nécessite un certain apprentissage, mais vous verrez, cela en vaut la peine !

Voici à quoi nous allons arriver :

HeartStatisticsWithChars.jpeg

Prêts ? C’est parti…

Lire la suite

React Native : je continue mes essais !

Ma première application mobile React Native

Comme je l’avais évoqué ici, je m’intéresse au développement cross platform, et plus particulièrement à la prometteuse technologie React Native.

Et, grâce au super cours d’Open Classroms, (un giga merci à eux), j’ai pu, après beaucoup de transpiré du cerveau, avoir la joie de faire fonctionner ma première application React Native !

Bon, ce n’est pas grand chose, un petit pas dans Javascript, mais un grand pas pour moi !

Lorsque Microsoft à proposé gratuitement Visual Studio et Xamarin, j’avais déjà tenté la programmation cross platform… et n’avais pas été très enthousiasmé : courbe d’apprentissage rude à mon goût, passage en langage natif tôt ou tard incontournable, temps de compilation ++ …

Mais là, j’ai été bluffé ! J’ai eu un coup de foudre technologique 🙂

La technologie est encore jeune, c’est clair, et je ne suis pas prêt de l’utiliser de manière professionnelle, mais c’est vraiment prometteur !

Le plus bluffant est l’absence de la phase de compilation (merci Javascript) : le résultat d’un changement du code est visible immédiatement sur le device ou la MV (merci Expo). Impressionnant.

Pour le debug, pour le moment, je ne suis pas vraiment à l’aise… Comme « IDE », j’utilise « Atom« , et je n’en ai pas encore exploré toutes les possibilités.

Niveau apprentissage, c’est clair que j’ai du boulot ! Je suis pas près d’être aussi performant qu’en Swift ! Mais ce n’est pas le but pour le moment. De toutes façons, je n’ai pas trouvé comment faire d’appli pour l’Apple Watch alors…

Pour les curieux, voici le code source sur FramaGit (soyez tolérants, c’est mon premier programme en JS :

https://framagit.org/VinceBar/MoviesAndMe.git

Et comme d’habitude, si vous avez des questions, suggestions… commentez !

Quant à moi, je sens que je vais passer quelques we à faire du React Native !

 

Une application dédiée à la pratique du canoë, du kayak…

PhotoKayakChuteEau.png

Allez, cette fois, c’est parti pour le développement d’une nouvelle application mobile iOS. Je n’ai pas encore le nom définitif, et je ne peux pas encore trop en dire…

Sachez juste qu’elle est dédiée aux pratiquants de sports nautiques en rivière tels que le kayak, le canoë, le rafting, standle padle… et qu’elle sera compatible Apple Watch.

Au programme, WatchKit, MapsKit, CoreData, gps sur iPhone et Apple Watch 3, Alamofire, API REST…

Un peu de travail en perspective…

Allez, pour vous faire saliver, l’écran principal :

kayak - iphone

 

Je mettrai la suite au fur et à mesure de l’avancée !

Comment installer React Native sur Mac…

react-native

Pour changer un peu de la programmation iOS, j’ai décidé de jeter un oeil à React-Native

Pour ceux qui ont hiberné ces 2 dernières années, React-Native est un projet initié par Facebook qui est open source, et qui nous fait la promesse de pouvoir enfin développer des application cross-platform aussi efficaces que des applications natives. Dans la même optique, j’avais déjà essayé Xamarin, mais je n’avais pas vraiment été convaincu (à un moment ou un autre, il fallait toujours passé en langage natif).

Voici donc le premier d’une série d’articles concernant React-Native, et pour commencer, nous allons parler de l’installation, qui n’est pas forcément une mince affaire…

Lire la suite

Alamofire POST Tutoriel

Voici la suite de mon précédent tutoriel concernant Alamofire. Cette fois, on attaque la partie « POST ».

Pour cet exemple, j’ai créé une petite application de to-do, dont le source est sur gitLab : https://gitlab.com/vinceBar/MyToDoList

Autant il est relativement simple de trouver des API’s gratuites pour faire du GET, autant trouver des API’s ouvertes pour du POST est compliqué. D’ailleurs, si vous avez des infos là dessus, n’hésitez pas à me les mettre en commentaire ! J’ai cependant trouvé ce site : https://jsonplaceholder.typicode.com/ , avec plus d’infos ici : https://github.com/typicode/jsonplaceholder

Il en découle ceci : les ressources ne sont pas réellement mises à jour sur le serveur, mais celui-ci « fait comme si ». L’application d’exemple n’est donc pas pleinement fonctionnelle (vous ne pourrez pas réellement ajouter ou effacer de to-do), mais le serveur simulera l’action. Tout l’intérêt de l’application se trouve dans les méthodes utilisées pour gérer les différentes actions d’Alamofire.

Allez, entrons dans le vif du sujet !

Lire la suite