Mot-clé - développement

[Rétrospective] Les iBeacons sont-ils les meilleurs amis des développeurs ?

Préambule : Ce billet fait partie d'une rétrospective listant les billets que j'ai produit ou co-produit sur le blog ekito people

Afin de surveiller les innovations, comprendre comment cela marche, ce qu’il est possible de faire avec, mais aussi de nous faire plaisir, ekito achète régulièrement toutes sortes de technologies venant de sortir ou en pré-commande et expérimente avec. Nous avons donc acheté en pré-commande des iBeacons.

Lire la suite : Les iBeacons sont-ils les meilleurs amis des développeurs ?

 

Nouvelle version de Quoi à Qui disponible (1.5.1)

English Français

Une nouvelle version de Quoi à Qui est maintenant disponible sur l'AppStore.

Quoi à Qui est une application de suivi de prêts et d'emprunts auprès de vos connaissances.

Quoi de neuf ?

  • Correction de la traduction.

 

PiZyPwm : jouer facilement avec le PWM sur un Raspberry Pi

English Français

PiZyPwm, pour Raspberry (Pi) Ea(zy) PWM, est une méthode simple pour implémenter des sorties PWM (Pulse Width Modulation) sur un Raspberry Pi à l'aide du language Python.

Vous pouvez le récupérer depuis sa page dédiée.

 

RemoteTone : un Raspberry Pi, une Asus AI Remote, et du bruit

English Français

Il s'agit un essai pour faire fonctionner une Asus AI Remote venant d'une carte mère Asus (morte) avec un Raspberry Pi, tout en utilisant le langage de programmation Python.

Le buzzer utilisé semble être une version 5V à cause du niveau sonore un peu faible en utilisation sur une broche GPIO en 3,3V.

L'onde sonore est carrée car il n'est pas possible de contrôler le niveau de sortie (0V ou 3,3V, sans intermédiaire), et la fréquence n'est pas très régulière (vous pouvez entendre des grésillements), du fait à la fois de la qualité du buzzer, et du fait que le Raspberry Pi n'est pas une plateforme temps-réel : il faut faire avec les interruptions dues à l'OS, ainsi que celles dues au garbage collector de Python.

Le code pour RemoteTone est disponible à l'adresse https://github.com/aboudou/remotetone.

 

Nouvelle version de RasPiRepCol disponible (1.2)

English Français

Une nouvelle version de RasPiRepCol, un projet destiné à fournir au Raspberry Pi un clone du jeu électronique Simon, est maintenant disponible.

Quoi de neuf ?

  • Ajout du mode difficile.
  • Nécessite RPi.GPIO 0.4.0a

 

Nouvelle version de Simple ROT13 Premium disponible (1.2)

English Français

Une nouvelle version de Simple ROT13 Premium est maintenant disponible sur l'AppStore.

Simple ROT13 Premium est un utilitaire permettant de chiffrer un texte en utilisant l'algorithme ROT13 ou bien L33T ROT13, et plus encore.

Quoi de neuf ?

  • Compatibilité iOS 6.
  • Compatibilité iPhone 5.

 

Nouvelle version de Simple ROT13 disponible (1.3)

English Français

Une nouvelle version de Simple ROT13 est maintenant disponible sur l'AppStore.

Simple ROT13 est un utilitaire permettant de chiffrer un texte en utilisant l'algorithme ROT13 ou bien L33T ROT13.

Quoi de neuf ?

  • Compatibilité iOS 6.
  • Compatibilité iPhone 5.

 

Nouvelle version de Simple ROT13 Free disponible (1.1)

English Français

Simple ROT13 Free est maintenant disponible sur l'AppStore.

Simple ROT13 Free est un utilitaire permettant de chiffrer un texte en utilisant l'algorithme ROT13 ou bien L33T ROT13.

Quoi de neuf ?

  • Compatibilité iOS 6.
  • Compatibilité iPhone 5.

 

Nouvelle version de Quoi & Où disponible (1.4)

English Français

Une nouvelle version de Quoi & Où est maintenant disponible sur l'AppStore.

Quoi & Où est une application de comparaison de prix dans les magasins physiques que vous visitez.

Quoi de neuf ?

  • Compatibilité avec iOS 6.
  • Compatibilité avec l'iPhone 5.
  • Redesign de l'interface.

 

Nouvelle version de RasPiLEDMeter disponible (1.1)

English Français

Une nouvelle version de RasPiLEDMeter, un projet destiné à fournir au Raspberry Pi un visualisateur d'usage à base de LED, est maintenant disponible.

Quoi de neuf ?

  • Entièrement réécrit en Python.

 

How-To iOS : Changer la couleur du segment sélectionné d'un UISegmentedControl

English Français

Le contexte

Un des usages de l'objet UISegmentedControl peut être celui d'une barre d'onglet pour naviguer entre des vues, ou bien celui d'un sélecteur entre différentes valeur. Dans le cas d'un UISegmentedControl utilisant le style UISegmentedControlStyleBar, le segment sélectionné est juste plus sombre que les segments non sélectionnés. Selon le choix de couleur du contrôle, cette distinction peut être assez difficile à faire (exemple ci-dessous).

Standard behavior for UISegmentedControl

Le but de ce billet est de montrer qu'avec un peu de code, il est tout à fait possible d'obtenir un comportement autre, avec une couleur pour le segment sélectionné tout à fait différente de celle des autres segments (exemple ci-dessous).

Better behavior for UISegmentedControl

Le code

Tout d'abord, vous trouverez en fin de ce billet une archive zip avec un projet XCode contenant le code utilisé pour ce billet. Pour la suite, il faudra tenir compte des éléments suivants :

  • L'objet UISegmentedControl doit être du style UISegmentedControlStyleBar (obligatoire).
  • Un selecteur sur « Value Changed » pointe sur la méthode « -(IBAction)selectSegment:(id)sender » (à adapter selon vos besoins).

Il faut ajouter à la classe dans laquelle vous manipulez l'objet UISegmentedControl une fonction permettant de trier des UIView en fonction de leur coordonnées horizontales :

NSInteger static compareViewsByOrigin(id sp1, id sp2, void *context)
{
    // UISegmentedControl segments use UISegment objects (private API). But we can safely cast them to UIView objects.
    float v1 = ((UIView *)sp1).frame.origin.x;
    float v2 = ((UIView *)sp2).frame.origin.x;
    if (v1 < v2)
        return NSOrderedAscending;
    else if (v1 > v2)
        return NSOrderedDescending;
    else
        return NSOrderedSame;
}

Puis, dans la méthode « -(IBAction)selectSegment:(id)sender », ajoutez simplement le code suivant :

// Get number of segments
    int numSegments = [betterSegmentedControl.subviews count];
 
    // Reset segment's color (non selected color)
    for( int i = 0; i < numSegments; i++ ) {
        // reset color
        [[betterSegmentedControl.subviews objectAtIndex:i] setTintColor:nil];
        [[betterSegmentedControl.subviews objectAtIndex:i] setTintColor:[UIColor colorWithRed:200/255.0 green:200/255.0 blue:200/255.0 alpha:1]];
    }
 
    // Sort segments from left to right
    NSArray *sortedViews = [betterSegmentedControl.subviews sortedArrayUsingFunction:compareViewsByOrigin context:NULL];
 
    // Change color of selected segment
    [[sortedViews objectAtIndex:betterSegmentedControl.selectedSegmentIndex] setTintColor:[UIColor colorWithRed:255/255.0 green:0/255.0 blue:0/255.0 alpha:1]];
 
    // Remove all original segments from the control
    for (id view in betterSegmentedControl.subviews) {
        [view removeFromSuperview];
    }
 
    // Append sorted and colored segments to the control
    for (id view in sortedViews) {
        [betterSegmentedControl addSubview:view];
    }

 

How-To iOS : Utilisation de Core Data avec iCloud

English Français

Disclaimer

Core Data avec iCloud ne semble pas vraiment mûr. Cet How-To devrait fonctionner, mais vous pourriez rencontrer quelques bizarreries (principalement des erreurs de synchronisation, ou des corruptions du journal de transactions). Vous pouvez jeter un œil au thread suivant (compte iOS Developer obligatoire) pour plus d'information. En attendant, je ne recommande pas d'utiliser cette fonctionnalité dans un environnement de production.

Fin du disclaimer

Une des nouveautés d'iOS 5.0 est iCloud, qui laisse la possibilité (entre autres) de synchroniser des données entre différents appareils sous iOS. Ces données peuvent être des fichiers, mais aussi des enregistrements d'une base Core Data. Les informations pour associer Core Data à iCloud sont assez rares et parcellaires, d'où cet How-to.

Lire la suite...

 

How-To iOS : Dupliquer les données entre deux versions iOS du Simulateur

English Français

À chaque mise à jour d'XCode, une nouvelle version d'iOS est fournie, remplaçant parfois une qui était déjà présente. Et dans ce cas, les paramètres et données utilisateurs sont réinitialisés. Voici comment reprendre les précédentes données et les appliquer à la nouvelle version.

Lire la suite...

 

How-To iOS : Afficher la photo d'un contact

English Français

Afficher la photo d'un contact provenant du carnet d'adresse est une chose relativement aisée au premier abord, mais qui malheureusement se comporte différemment en fonction de la version de l'OS. Voici les points à prendre en compte, et les limites associées.

Lire la suite...

 

Avis sur « Head First iPhone Development »

Dans ma lointaine jeunesse, je m'étais juré d'être millionnaire avant mes trente ans. L'échéance étant passée sans que la fortune ne pointe le bout de son billet, j'ai préféré m'accorder un défi plus raisonnable : être millionnaire avant mes quarante ans, ou au pire la Rolex avant d'être un sémillant quinquagénaire. Bref, tout ça pour dire qu'il me manque un gros paquet de centaines de milliers d'euros, et que pour les obtenir, il y a plus simple que de braquer une banque : faire l'application du siècle et la vendre sur l'AppStore. Or, deux problèmes se posent :

  • Je ne connais pas le langage Objective-C
  • J'ai besoin d'apprendre par la pratique guidée, la théorie ne me suffisant pas.

D'où mon investissement dans un livre dont je vais vous parler ci-après, nommé « Head First iPhone Development », aux éditions O'Reilly.

Lire la suite...

 

Fin du support de Java par Apple

Update (à la bourre) du 19/11/2010 : Apple a décidé de s'impliquer dans OpenJDK et continuera à fournir des mises à jour pour la version 6 du language. À partir de la version 7, les JRE/JDK seront fournis par Oracle (voir l'annonce). Ça laisse entrevoir un avenir du langage plus serein pour les développeurs utilisant Mac OS X.

Avec la mise à jour Java du 21 octobre, une précision a été apportée dans les releases notes de cette version :

As of the release of Java for Mac OS X 10.6 Update 3, the version of Java that is ported by Apple, and that ships with Mac OS X, is deprecated.

This means that the Apple-produced runtime will not be maintained at the same level, and may be removed from future versions of Mac OS X. The Java runtime shipping in Mac OS X 10.6 Snow Leopard, and Mac OS X 10.5 Leopard, will continue to be supported and maintained through the standard support cycles of those products.

Lire la suite...

 

Nouvelle version de NOCC disponible (1.6)

La version nouvelle de NOCC est maintenant disponible.

Je rappelle que NOCC est un webmail léger et libre (licence GPL-2) en PHP, compatible POP3, POP3S, IMAP, IMAPS, SMTP AUTH ainsi que les flux RSS pour le contenu de la boite mail, et pour lequel je fais partie de l'équipe de développement.

Lire la suite...

 

Widget Wiktionary dans « Nos favoris » Apple

Dans la famille « gonflette de chevilles », je demande la liste « Nos favoris » sur le site d'Apple.

Lire la suite...

 

Webmail NOCC et Wii

English Français

NOCC webmail / Wii

Comme vous pouvez le voir, le webmail NOCC fonctionne parfaitement avec le navigateur de la console Wii (cette console utilise le navigateur Opera). La seule chose non fonctionnelle est l'ajout de pièces jointes, le contrôle HTML correspondant étant désactivé par le navigateur.

 

XCode 3.0, des applications encore plus universelles

XCode 2.3 avait amené les applications dites « universelles » : leur exécutable contient le binaire compilé pour les architectures Intel (x86) et PowerPC (ppc). Il y a eu quelques changements avec XCode 3.0, qui est fourni avec la prochaine version de Mac OS X : Leopard (version 10.5).

Lire la suite...

 

- page 1 de 2