Mot-clé - ios

[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 ?

 

Présentation iBeacon CocoaHeads Toulouse

J'ai eu l'occasion de faire le 30 janvier 2014 une présentation aux CocoaHeads Toulouse sur la technologie iBeacon.

Les slides sont visibles ci-dessous, et téléchargeables sur la page de la présentation : Présentation iBeacon (cocoaheads toulouse)

 

Présentation aux CocoaHeads Toulouse de MovingRaspi

Participant régulièrement aux CocoaHeads Toulouse en tant que spectateur, j'ai franchi le pas le 14 mars pour y présenter MovingRaspi.

La session s'est bien passée, les spectateurs ont semblé intéressés (face au feu de la rampe, j'étais un peu trop tendu pour prendre la température de la salle :-) ), et j'ai pu échapper à l'effet démo qui avait fait une apparition surprise lors de ma précédente présentation de la bête entre collègues.

Les slides sont disponibles dans la suite du billet.

Lire la suite...

 

MovingRaspi - Partie 3 : Assemblage final

English Français

MovingRaspi est un projet que j'avais eu il y a quelques temps, et pour lequel j'ai décidé de me lancer. Il s'agit de motoriser un Raspberry Pi tout en le pilotant depuis un iPhone (ou iPad, ou iPod Touch). Cette troisième partie concerne l'assemblage final.

Redirige vers la page dédiée sur Projects @goddess-gate.com

Lire la suite...

 

MovingRaspi - Part 3 : Final assembly

English Français

MovingRaspi is a project I had some times ago, and I've just decided to start. Project's goal is to motorize a Raspberry Pi and control it with an iPhone (or iPad, or iPod Touch). This third part is about the final assembly.

Redirects to Projects @goddess-gate.com dedicated page

Lire la suite...

 

MovingRaspi - Partie 2 : Communication iPhone / Raspberry Pi

English Français

MovingRaspi est un projet que j'avais eu il y a quelques temps, et pour lequel j'ai décidé de me lancer. Il s'agit de motoriser un Raspberry Pi tout en le pilotant depuis un iPhone (ou iPad, ou iPod Touch). Cette deuxième partie concerne la communication entre l'iPhone et le Raspberry Pi.

Redirige vers la page dédiée sur Projects @goddess-gate.com

Lire la suite...

 

MovingRaspi - Part 2 : iPhone / Raspberry Pi communication

English Français

MovingRaspi is a project I had some times ago, and I've just decided to start. Project's goal is to motorize a Raspberry Pi and control it with an iPhone (or iPad, or iPod Touch). This second part is about the communication between the iPhone and the Raspberry Pi.

Redirects to Projects @goddess-gate.com dedicated page

Lire la suite...

 

MovingRaspi - Partie 1 : Étapes préliminaires

English Français

MovingRaspi est un projet que j'avais eu il y a quelques temps, et pour lequel j'ai décidé de me lancer. Il s'agit de motoriser un Raspberry Pi tout en le pilotant depuis un iPhone (ou iPad, ou iPod Touch). Cette première partie concerne les étapes préliminaires au démarrage du projet.

Redirige vers la page dédiée sur Projects @goddess-gate.com

Lire la suite...

 

MovingRaspi - Part 1 : First steps

English Français

MovingRaspi is a project I had some times ago, and that I've just decided to start. Project's goal is to motorize a Raspberry Pi and control it with an iPhone (or iPad, or iPod Touch). This first part is about the preliminary steps.

Redirects to Projects @goddess-gate.com dedicated page

Lire la suite...

 

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.

 

A new release of What to Who is available (1.5.1)

English Français

A new release of What to Who is now available on the AppStore.

What to Who is a tracking application of the borrowed and lent items.

What's new ?

  • Translation fixes

 

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.

 

A new release of Simple ROT13 Premium is available (1.2)

English Français

A new release of Simple ROT13 Premium is now available on the AppStore.

Simple ROT13 Premium is an utility allowing to cypher a text using ROT13 or L33T ROT13 algorithm, and much more.

What's new ?

  • iOS 6 compatibility.
  • iPhone 5 compatibility.

 

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.

 

A new release of Simple ROT13 is available (1.3)

English Français

A new release of Simple ROT13 is now available on the AppStore.

Simple ROT13 is an utility allowing to cypher a text using ROT13 or L33T ROT13 algorithm.

What's new ?

  • iOS 6 compatibility.
  • iPhone 5 compatibility.

 

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.

 

A new release of Simple ROT13 Free is available (1.1)

English Français

Simple ROT13 Free is now available on the AppStore.

Simple ROT13 Free is an utility allowing to cypher a text using ROT13 or L33T ROT13 algorithm.

What's new ?

  • iOS 6 compatibility.
  • iPhone 5 compatibility.

 

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.

 

A new release of What & Where is available (1.4)

English Français

A new release of What & Where is now available on the AppStore.

What and Where is an application allowing you to compare prices during your shopping sessions into physical stores.

What's new ?

  • iOS 6 compatibility.
  • iPhone 5 compatibility.
  • Interface redesign.

 

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];
    }

 

- page 1 de 2