Pour quelques lignes de plus…

J’aime les ordinateurs sous toutes leurs formes, j’aime le code et j’aime expérimenter.

Ce blog n’a d’autre but que partager mes divagations dans ce domaine.  Je ne l’envisage que dans l’esprit ‘Open Source’. Tous les codes sources publiés sont donc, sauf instruction contraire, libre de droits et librement réutilisables dans vos projets. Simplement, n’oubliez pas de citer ce blog comme source…

Je crée aussi des applications mobiles, de préférence pour iOS, et en langage Swift. C’est pourquoi j’essaierai aussi de vous partager quelques ressources francophones sur ce langage !

Pour le site pro, c’est ici : Vincent Barousse

Bonne consultation.

Publicités

Réduire la taille d’une image en Swift

Swift_logo

Juste un partage d’une méthode trouvée aujourd’hui sur Stakoverflow (j’ai oublié de mettre le lien en marque page).

Donc, si vous voulez réduire la taille d’une image, pour la mettre sur un serveur en ligne, ou simplement réduire l’espace disque utilisé, vous pouvez utiliser cette fonction :

——————————– Code ———————————-

import UIKit

func resizeImage(image: UIImage, targetSize: CGSize) -> UIImage {

// usage :
// self.resizeImage(UIImage(named: « yourImageName »)!, targetSize: CGSizeMake(200.0, 200.0))

let size = image.size

let widthRatio = targetSize.width / image.size.width
let heightRatio = targetSize.height / image.size.height

// Figure out what our orientation is, and use that to form the rectangle
var newSize: CGSize
if(widthRatio > heightRatio) {
newSize = CGSize(width: size.width * heightRatio, height: size.height * heightRatio)
} else {
newSize = CGSize(width: size.width * widthRatio, height: size.height * widthRatio)
}

// This is the rect that we’ve calculated out and this is what is actually used below
let rect = CGRect(x: 0, y: 0, width: newSize.width, height: newSize.height)

// Actually do the resizing to the rect using the ImageContext stuff
UIGraphicsBeginImageContextWithOptions(newSize, false, 1.0)
image.draw(in: rect)
let newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()

return newImage!
}

——————————– / Code ———————————-

Ensuite, elle s’utilise comme cela (bien sûr, remplacer les valeurs 200.0 par la taille finale désirée) :

self.resizeImage(UIImage(named: « yourImageName »)!, targetSize: CGSizeMake(200.0, 200.0))

L’intérêt de cette méthode est qu’elle conserve les proportions de l’image.

 

Nono le petit robot – 1

Lors d’un week end prolongé et pluvieux, j’ai eu l’idée de me construire un petit robot commandé par smartphone Android. Rien de très exceptionel sauf que, comme souvent en informatique, cela ne s’est pas vraiment passé comme prévu…

L’idée était pourtant simple : récupérer le chassis Makeblock utilisé ici, lui greffer une carte Arduino Uno, une carte Annikken Andee (utilisée ici), et une carte de gestion moteurs Polulu Dual MC33926.

Mais très vite, je suis tombé sur un os : impossible d’afficher un « Slider » sur l’appli Android en programmant la carte Andee. Pourtant, ce code marchait très bien sur le projet du bateau pirate !!

Donc, il faut régler le problème Andee !!!

Lire la suite

Dessine moi un mouton…

C’est encore expérimental, mais Google à mis en ligne un outil basé sur l’Intelligence Artificielle :

AutoDraw – A.I. Experiments.

Le principe d’utilisation est simple : vous dessinez (à peut près…) la forme de l’objet, animal, humain… auquel vous pensez, et l’I.A. vous suggère des images, libres d’utilisation et téléchargeables, sélectionnées dans sa banque de données et qui lui paraissent être ce que vous avez voulu dessiner.

Et cela fonctionne !

Ne sachant absolument pas dessiner, on peut dire que je ne facilite pas la vie de cette pauvre I.A., et pourtant, elle arrive à comprendre ce que je désire !

Impressionnant !

Un petit aperçu des capacités du Machine Learning… Utile en tous cas si vous avez des sites ou des applis à illustrer !

Un menu « Hamburger » pour une appli iOS

Ce diaporama nécessite JavaScript.

Dans le cadre de mon dernier projet, comprenant beaucoup de vues différentes, je me suis mis à la recherche d’une manière à la fois esthétique et efficace de présenter mes vues.

Ni le système basé sur les Tab Bars Controllers, ni celui basé sur les Split View Controlers ne répondaient à mes attentes.

Puis je suis tombé sur la génialissime librairie de John Lluch : SWRevealViewController

Celle-ci permet d’avoir de manière très simple un menu « Hamburger« , vous savez, les 3 trait horizontaux qui développent un menu, que l’on retrouve de plus en plus souvent sur les sites web « mobiles » ou sur les applis modernes ?

Voici donc comment l’utiliser dans le cadre du développement d’une appli Swift 3.

Lire la suite

Cocoa Pod et Swift 3

Swift_logo

Juste un petit mémo sur l’utilisation de Cocoa Pod avec Xcode.

Pour rappel, Cocoa Pod est un gestionnaire de dépendances (librairies). Il permet l’accès à des milliers de librairies, toutes plus utiles les unes que les autres, sans (trop) se casser la tête avec les dépendances.

Pour plus d’infos, c’est ici…

Voici donc les étapes à suivre :

  • En premier, il faut bien sûr installer Cocoa Pods. Pour les plus « purs », cela se fait en ligne de commande (Cocoa Pod est à la base en Ruby), mais perso, je préfère utiliser l’app téléchargeable ici.
  • Ensuite, dans un terminal, aller dans le dossier de votre projet Swift.
  • Entrer la commande « pod init ». Ceci va créer un nouveau fichier « .pod »
  • A l’aide de votre éditeur de texte préféré (voire avec Xcode directement), ouvrez ce fichier et modifiez le afin de pouvoir installer la librairie qui vous intéresse. Un fichier Pod, cela ressemble à cela :

podfileExample

  • De retour dans le terminal, entrez la commande « pod update » si vous n’avez pas utilisé Pod depuis un moment. Attention, cela peut être long (le téléchargement est de plus de 4 Go). Pour moins vous impatienter, vous pouvez ajouter « –verbose » à la commande.
  • Puis entrer « pod install ». Ceci installe les librairies
  • Attention, à partir de maintenant, votre projet Xcode n’est plus le « .xcworkspace » mais le « .xcodeproj ». C’est donc sur ce dernier qu’il faudra dorénavant travailler !
  • Voir les avertissements de Xcode, cliquer sur « update to recommended settings »
  • Si, comme dans mon cas, Xcode met une erreur lorsque vous incluez la librairie convoitée dans votre méthode (ex : include Chart), refaire un build et tout rentre dans l’ordre !

 

Communiquer avec un Arduino via Java / Eclipse

coffee-beans-1082213_1280

J’aime bien Arduino, et j’aime bien Java… Donc l’idée de faire communiquer un microcontrôleur Arduino avec Java m’est venue tout naturellement.

J’ai donc commencé par suivre quelques tutoriels, puis encore d’autres car finalement, ce n’est pas si simple que cela… en tous cas la première fois.

Ce tutoriel est fortement inspiré / traduit du super site http://dummyscodes.blogspot.fr/

Merci à lui.

Lire la suite

Un feu de garage

feugarage

Cela faisait un petit moment que je n’avais pas bricolé quelque chose à base d’Arduino… J’y reviens avec plaisir pour vous présenter un feu de garage.

A quoi cela peut-il servir ?

Et bien c’est simple, j’ai une grosse voiture, et un petit garage, ce qui fait que lorsque je la rentre en marche arrière, il ne faut pas se louper !

Lire la suite