Category Archives: Informations

Paris, Lyon et Marseille, BeMyApp devient national !

Parce que l’émulation booste la créativité et que la compétition créé le challenge, BeMyApp s’ouvre au reste du monde… Bon ok,  je m’enflamme un peu là, juste Lyon et Marseille.

Le prochain BeMyApp va donc se dérouler sur 3 villes en simultané – me demandez pas comment cela sera géré techniquement parce que juste en parler me donne des boutons….

L’événement se déroulera le Week-End du 4 au 6 février chez Incube Inside (Incubateur de l’ESCP, Paris 11ème).

Pas mal de Cocoaheads sont venus aux précédents Week-Ends (certains viennent même à chaque fois, n’est-ce pas Ceroce ? :) ). Le principe reste le même : réunir apporteurs d’idées, développeurs et designers afin de créer des applications iPhone et iPad en 48 heures. Voici une petite vidéo explicative pour ceux qui connaissent pas :

Autre nouveauté : 300 beta-testeurs seront sélectionnés pour tester à distance les applications développées et élire “l’application du public”. Là, je suis plus rassuré, c’est M. Guillaume Cerquant qui va mettre ça en place… en plus de son rôle de “professeur”.

Bon c’est le moment ou je fais mon marketing !
L’appli du Jury et l’appli du public gagnent mieux que de l’argent : la quasi-assurance que leur appli sera dans le top 10 de l’apstore.
En effet, on a bien bossé côté sponsors pour offrir aux 2 gagnants une campagne sur AppVip, une campagne appgratuites et une levée de fonds communautaire sur kisskissbankbank. De plus, nous sommes toujours partenaires avec iPhon.fr qui garantit une bonne exposition.
Cerise sur le gâteau, BuzzeBizz va offrir des coques iPhone à tous les participants.

Si vous voulez vous inscrire, c’est sur le site de BeMyApp

A bientôt !

John Karp (un des organisateurs de BeMyApp)

Prochain Cocoaheads à Bordeaux

Après le succès de notre premier rendez-vous, nous avons le plaisir de vous annoncer le renouvellement de cet événement jeudi 9 décembre 2010 pour une seconde session.

Niveau lieu pas de changement, toujours à Ingésup, même si cette fois nous essayerons d’avoir une salle plus grande !

Le programme des présentations sera annoncé prochainement dès que celui-ci sera fixé !

Rejoindre l’événement Facebook

Cocoaheads Bordeaux : les détails de la première session

Comme annoncé dans notre précédent post, la première session des Cocoaheads à Bordeaux aura lieu Jeudi 4 novembre 2010 à 18h dans les locaux de l’école Ingésup à Bordeaux, 88 Quai des Chartrons, 33000 Bordeaux.

Voici les sujets de cette première session :

Présentation des Cocoaheads, du fonctionnement et discussion sur l’organisation des prochaines sessions.

Déploiement add-hoc et beta-test d’applications iOS, par Ludovic Ollagnier.

UITableView : utilisation et customisation, par Boris Charpentier.

Pour vous tenir au courant, n’hésitez pas à nous suivre sur Twitter ou à rejoindre l’événement Facebook.

Prochain BeMyApp WeekEnd du 15 au 17 octobre

Lors de la dernière session de CocoaHeads, Cyril, Renaud, Laurent et Pierre ont présenté leur feedback sur le dernier BeMyApp WeekEnd et annoncé que les inscriptions pour cette competition de dev intensif étaient ouvertes. Pour vous inscrire, cliquez ici.

La première présentation était celle de Cyril qui a fait le bilan sur le dernier weekend organisé : une petite centaine de participants, 7 applications développées en 48 heures. Sur les 7 équipes nées pendant le weekend, 5 continuent de travailler ensemble pour terminer ou améliorer leur application. Voici une vidéo qui retranscrit l’ambiance du weekend :

La deuxième présentation était celle de Renaud qui a participé au développement d’une application iPhone pour apprendre l’hiragana, un alphabet japonais. Vous pouvez lire son témoignage directement sur son blog.

Ensuite, Laurent, consultant en accessibilité dans les transports publics, et Pierre, développeur, ont présenté l’application iDact qui propose des plans de métro, gares ou aéroports avec un design et une ergonomie dédiée aux malvoyants.

Pour avoir plus d’information au sujet du week-end et des participants, vous pouvez consulter le site de BeMyApple blog ou directement la page d’inscription.


CocoaHeads à Bordeaux : C’est parti !

Depuis quelques temps, l’organisation des CocoaHeads en région semble devenir une réelle nécessité.

C’est pourquoi j’ai le plaisir de vous annoncer la création d’un second groupe de CocoaHeads français, dans la ville de Bordeaux.

Pour notre première réunion, l’événement aura lieu Jeudi 4 Novembre 2010, à 18h, dans la salle 1 de l’école d’informatique Ingésup au 89 Quai des Chartrons, 33 000 Bordeaux.

Ce premier événement sera également l’occasion de définir le jour et la semaine du mois pour nous réunir de manière régulière.

Suivre l’événement sur Facebook

Edit: Attention, l’évenement initialement prévu Jeudi 28 Octobre est repoussé au Jeudi 4 Novembre pour des raisons d’organisation. Merci de prendre en compte ce changement!

Il fait trop chaud pour… se répéter

Pour ceux qui continuent de coder pour iOS dans la torpeur estivale qui a saisi le pays, une petite astuce, permise par le SDK 4, qui pourrait vous économiser quelques gouttes de sueur.

On adore tous le mot-clé @synthesize qui nous évite déjà d’avoir à tartiner des accesseurs sans intérêt. Malheureusement, pour créer une propriété simple, jusqu’à présent il fallait encore définir séparément le stockage (variable d’instance ou ivar pour les intimes et les Scandinaves) et la propriété elle-même, avec le mot-clé @property :

@interface MaClasse: NSObject {
    NSString *truc;
}
@property(retain) NSString *truc;
@end

@implementation MaClasse
@synthesize truc;
@end

Or, dans la documentation des Declared Properties, on trouve la phrase suivante :

For the modern runtimes (see Runtime Versions and Platforms in Objective-C Runtime Programming Guide), instance variables are synthesized as needed.

Et si on suit la référence indiquée on arrive à :

iPhone applications and 64-bit programs on Mac OS X v10.5 and later use the modern version of the runtime.

Tout est donc OK, on devrait pouvoir profiter de cette fonctionnalité dans les projets iPhone !

Toujours à l’affut de l’économie de lignes de code, quand j’avais lu cette documentation je m’étais précipité sur le projet iPhone le plus proche, avais enlevé une définition d’ivar théoriquement inutile et tenté de compiler le code ainsi allégé :

@interface MaClasse: NSObject {
}
@property(retain) NSString *truc;
@end

@implementation MaClasse
@synthesize truc;
@end

Hélas, quelle déception ! Le compilateur ne semblait pas avoir lu le texte sus-cité et s’entêtait à exiger la définition redondante.
Comme d’habitude Google détenait la clé du mystère : si le code incriminé était rejeté, c’est parce que je compilais pour le simulateur ! Quel rapport me direz-vous ? Eh bien comme vous le savez sans doute, le simulateur iPhone est une application OS X 32 bits… qui ne bénéficie donc pas du fameux modern runtime. Effectivement, le code sans ivar se compilait sans problème dès que je choisissais “Device” comme cible.

Je n’étais bien entendu pas le premier à découvrir ce déplorable état de fait (difficile d’abandonner le simulateur pour économiser quelques lignes par classe !), et la conclusion généralement admise était qu’il perdurerait longtemps, Apple ayant choisi de ne pas rendre le modern runtime accessible aux applications OS X 32 bits, et compiler le simulateur en 64 bits étant exclu pour des raisons évidentes.

C’était sans compter… je ne sais quoi au juste, l’ingéniosité d’un développeur Apple ? Un caprice de Steve ? Toujours est-il que, sans tambour ni trompette (ce n’est même pas mentionné dans les release notes, et le bug radar n’est pas fermé !), le simulateur fourni avec le SDK 4, tout en restant une application 32 bits, utilise le modern runtime – et le compilateur associé est naturellement au courant.

Tout ça (oui, ça fait beaucoup de texte pour parler d’économies de lignes de code !) pour dire que dès aujourd’hui, si vous développez pour iOS (quelle que soit la deployment target, du moment que vous compilez avec le SDK 4), vous pouvez tirer parti de l’instance variable synthesis et omettre ces définitions décidément pas DRY.

Pour finir, à ceux qui n’auront de cesse que la dernière source de duplication stérile de code soit éliminée, et continuent de déplorer qu’il faille encore enfoncer le clou de chaque @property par un @synthesize, sachez qu’il existe un espoir : le compilateur LLVM serait capable d’inférer ces déclarations @synthesize, en l’absence bien sûr d’accesseurs explicites (plus de détails ici). Il semble qu’une petite limitation ternisse encore ce tableau presque idyllique, mais le nirvanā de la propriété en une ligne est plus que jamais à portée de main !

Carte de visite

Chaque mois, vous êtes un peu plus nombreux à venir à CocoaHeads. Et chaque mois, vous repartez de CocoaHeads avec des nouvelles idées d’appli plein la tête, aussi heureux et déchainés qu’après une keynote présentant un nouveau iDevice.

Alors, nous nous sommes dit : une telle armée de VRP, on ne peut pas la laisser comme ça, sans outil.

Certains d’entre vous les ont déjà vues lors des précédentes sessions de CocoaHeads ou ont eu la chance d’en recevoir quelques unes lors de la WWDC.

Pour les autres, voici en non-avant première exclusive les fameuses cartes de visite CocoaHeads.

CocoaHeads-Paris_carte_de_visite.png

Voici donc votre outil le plus efficace pour aller prêcher la bonne parole et ramener les brebis égarées dans les pâturages du code propre qui compile sans warning. Vous n’avez plus aucune excuse de ne pas parler de CocoaHeads à vos collègues et amis.

Spécifications techniques :

  • 54 mm par 90mm
  • Revêtement plastique avec traitement spécial pour diminuer les tâches de doigts
  • Autonomie de la batterie en hausse de +30% – Maintenant jusqu’à 1 an
  • Retina Display
  • Calcul automatique de la date de la prochaine session CocoaHeads

N’hésitez pas à emporter quelques cartes lors de la prochaine session CocoaHeads pour les partager autour de vous.

Au fait, j’allais oublier : Oui, je sais, ce code a un warning à la compilation : “NDA” redefined. Mais pour une fois, c’est justifié de laisser un warning !

Trouver la date du prochain CocoaHeads

Chaque mois, quelques jours après la session de CocoaHeads, nous commençons l’organisation de la session suivante. La rumeur que certaines sessions aient été annoncées la veille au soir ou même 12 heures avant est juste ça : une rumeur, au mieux une une légende urbaine. La saugrenuité (si si, c’est un vrai mot, j’ai vérifié) de telles affirmations devrait vous suffire à ne pas y apporter de crédit. Mais enfin, voilà, pour éviter tout débat inutile, je vous le dis : c’est (presque) pas vrai.

Revenons à nos moutons : chaque mois, donc, je me pose la même question : à quelle date est la prochaine session de CocoaHeads ? Autrement dit, quand tombe le 2ème jeudi du mois ?

En bon développeur flemmard qui optimise ses ressources, j’ai décidé d’écrire un bout de code pour automatiser cette recherche.

Le cahier des charges est simple : CocoaHeads Paris a lieu chaque 2ème jeudi du mois, à 19h. Trouver à quelle date a lieu la prochaine session.

Voici ma solution :

NSDate				*dateOfNextMeeting = nil;
NSDateComponents	*components;

components = [[NSCalendar currentCalendar] components:NSYearCalendarUnit | NSMonthCalendarUnit
                                             fromDate:[NSDate date]];

while (nil == dateOfNextMeeting
		|| NSOrderedDescending != [dateOfNextMeeting compare:[NSDate date]])
{
	[components setWeekdayOrdinal:2];	// CocoaHeads a lieu chaque 2ème
	[components setWeekday:5];			// jeudi du mois
	[components setHour:19];            // à 19h

dateOfNextMeeting = [[NSCalendar currentCalendar] dateFromComponents:components];
	[components setMonth:[components month] + 1];
}

NSLog(@"Next CocoaHeads is: %@", [dateOfNextMeeting description]);
}

Plus sympa que de lancer iCal à la main. Quoique, même là, j’aurai bien vu ceci :

tell iCal to activate

Je l’avoue, cela m’a pris plus de temps à écrire ce bout de code que ce qu’il ne m’en fera jamais gagner. Mais le vrai intérêt n’était pas là.

Avec les calculs de date, je suis convaincu qu’il existe autant de solution que de développeurs. Donc, pour palier l’absence de sessions en juillet et en août, votre devoir de vacances sera d’écrire votre propre solution à ce problème et la partager dans les commentaires.

Si vous avez des questions ou critiques sur ce bout de code, surtout n’hésitez pas.

Ramassage des copies fin août.

On se réveille, là bas au fond, près du radiateur caché derrière ton écran, et on lance Xcode. Oui oui, toi !

Un ArtGame enfin disponible sur iPad !

Eh oui, c’est bien vrai : depuis quelques dizaines d’heures, si vous tapez «artgame» dans la zone de recherche de votre AppStore favori, vous aurez une réponse dans la catégorie iPad : Number32, dont je relatais la genèse ici la semaine dernière.

Afin que ce billet ne soit pas une simple page de publicité, je partage avec vous quelques infos sur cette première expérience de soumission (j’aime pas trop ce mot, c’est peut-être parce qu’il est trop approprié…) sur l’AppStore. Rien qui dépaysera les routards de l’AppStore, mais ça pourrait en intéresser d’autres :

  • Une semaine en «Waiting for review», moins de 2 jours en «In review» : ça confirme les délais que j’avais pu lire ici ou là ;
  • D’après Google Analytics, 2 (brèves) visites venant de Californie sur la page du jeu (il y a un lien dans l’«About Box») le jour de la revue ;
  • 219 téléchargements dans les premières 24 heures, alors que je n’avais encore fait aucune communication sur la disponibilité de l’app ! Pas de quoi tomber à la renverse certes, mais ça donne une petite idée du nombre de gens qui téléchargent vraiment tout ce qui passe… Allez, je ne résiste pas au plaisir de vous livrer le détail par pays :
    139 États-Unis
    20 France
    16 Canada
    11 Royaume-Uni
    11 Allemagne
    10 Espagne
    5 Italie
    2 Suède
    1 Arabie Saoudite
    1 Pays-Bas
    1 Suisse
    1 Bulgarie
    1 Argentine

    Qui confirme que le marché US est de loin le plus gros.

  • Les premières «étoiles» sont également tombées assez vite, sur le store US :

    Oups ! Forcément, les gens qui téléchargent tout ne peuvent pas tout apprécier… :)
    Pas encore de «review» détaillée en revanche.

  • Pour le suivi des «ventes», j’ai testé la toute nouvelle application d’Apple «iTunes Connect Mobile» : pas très convaincant et pas mal de messages d’erreur, bof. En revanche le site http://appfigures.com m’a fait une bonne impression : il collecte tout seul les rapports d’Apple (dommage qu’il faille lui confier ses identifiants Apple pour ça ; sinon on peut aussi lui fournir les fichiers en mode manuel), récolte les «ratings» et les «reviews» dans tous les stores et fait plein de jolis graphiques. Autre fonctionnalité plaisante : on peut inscrire d’autres personnes (clients, partenaires…) qui recevront (pour les applications sélectionnées) les rapports. Le tout pour un prix qui semble modique (5$/mois pour les deux premières apps).
  • Pendant que j’écrivais ceci, les chiffres du deuxième jour sont tombés :
    52 États-Unis
    27 Japon
    17 France
    9 Canada
    9 Australie
    8 Espagne
    7 Allemagne
    7 Royaume-Uni
    3 Suisse
    3 Taiwan
    2 Italie
    2 Chine
    2 Émirats Arabes Unis
    2 Russie
    2 Thaïlande
    1 Inde
    1 Norvège
    1 Hong-Kong
    1 Singapour
    1 Philippines
    1 Grèce

    Les Américains se sont calmés (les mauvaises étoiles n’ont pas dû aider…) mais les Japonais se sont réveillés. Mais seulement deux Chinois, ça fait peu non ?

Je vous laisse sur une vidéo du jeu, et un bon gros bouton à cliquer si vous ne savez pas encore à quoi sert votre iPad — j’ai pas encore dit que c’était gratuit ?