Carro 100% est une application iPhone qui permet aux propriétaires de voitures d’évaluer les conditions de leurs véhicules de façon simple et rapide. Des recommendations de manutention sont suggérées directement par les fabricants.
Cette application a été réalisée pour le compte du syndicat des fabricants d’équipements et de pièces pour automobiles du Brésil.
« Archives en ligne » est la première application de géolocalisation proposant un voyage dans l’histoire du cinéma amateur haut-normand.
– Vous vous situez en Haute-Normandie, l’application vous propose de vous géolocaliser et vous fait une proposition parmi les 5 archives les plus proches de vous. Vous appuyez sur un point d’intérêt, vous accédez à sa fiche descriptive et vous lancez la vidéo.
– Si vous n’êtes pas sur le territoire haut-normand, l’application vous propose de visualiser à distance toutes les archives amateurs localisées sur la région.
Vous pouvez également choisir de suivre votre propre itinéraire à partir de la carte de la Haute-Normandie mais également passer en mode réalité augmentée. Ce principe vise à positionner son téléphone devant soi afin qu’il situe, grâce à son GPS et sa caméra, l’archive face à vous. Ainsi, si vous vous déplacez avec votre téléphone, celui-ci actualise en temps réel les archives qui vous entourent.
]]>« Archives en ligne » est la première application de géolocalisation proposant un voyage dans l’histoire du cinéma amateur haut-normand.
– Vous vous situez en Haute-Normandie, l’application vous propose de vous géolocaliser et vous fait une proposition parmi les 5 archives les plus proches de vous. Vous appuyez sur un point d’intérêt, vous accédez à sa fiche descriptive et vous lancez la vidéo.
– Si vous n’êtes pas sur le territoire haut-normand, l’application vous propose de visualiser à distance toutes les archives amateurs localisées sur la région.
Vous pouvez également choisir de suivre votre propre itinéraire à partir de la carte de la Haute-Normandie mais également passer en mode réalité augmentée. Ce principe vise à positionner son téléphone devant soi afin qu’il situe, grâce à son GPS et sa caméra, l’archive face à vous. Ainsi, si vous vous déplacez avec votre téléphone, celui-ci actualise en temps réel les archives qui vous entourent.
]]>Le but de cette application iPad est de réaliser une vidéo de Harlem Shake puis de pouvoir partager cette vidéo sur Facebook et You Tube.
L’utilisateur entre un certain nombre d’informations qui sont stockées sur l’iPad. Une fois le salon terminé, les données des différents iPads sont envoyées sur un serveur afin de les rassembler. Un rapport de ces différentes informations est ensuite généré et envoyé au client Chevrolet.
]]>
po [self.view recursiveDescription]
Et on obtient la description de toutes les UIView de l’arborescence de la vue concernée :
(lldb) po [self.view recursiveDescription] (id) $3 = 0x0bbc87b0 <UIView: 0xb988f00; frame = (0 0; 320 460); autoresize = RM+BM; layer = <CALayer: 0xb988f60>> | <UIImageView: 0xb988f90; frame = (0 -12; 320 460); autoresize = RM+BM; userInteractionEnabled = NO; layer = <CALayer: 0xb988ff0>> | <UIButton: 0xb981370; frame = (20 355; 44 55); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0xb981430>> | | <UIImageView: 0xb984800; frame = (0 0; 44 55); clipsToBounds = YES; opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0xb984860>> | | <UIButtonLabel: 0xb9832e0; frame = (0 0; 0 0); clipsToBounds = YES; hidden = YES; opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0xb983380>> | <UIButton: 0xb9865a0; frame = (77 355; 50 54); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0xb986660>> | | <UIImageView: 0xb984980; frame = (0 0; 50 54); clipsToBounds = YES; opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0xb9849e0>> | | <UIButtonLabel: 0xb988440; frame = (0 0; 0 0); clipsToBounds = YES; hidden = YES; opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0xb9884e0>> | <UIButton: 0xb983ce0; frame = (238 332; 54 78); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0xb983da0>> | | <UIImageView: 0xb97b580; frame = (0 0; 54 78); clipsToBounds = YES; opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0xb97b5e0>> | | <UIButtonLabel: 0xb985b80; frame = (0 0; 0 0); clipsToBounds = YES; hidden = YES; opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0xb985c20>> | <UIButton: 0xb97c2a0; frame = (9 245; 109 82); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0xb97c360>> | | <UIImageView: 0xb97f630; frame = (0 0; 109 82); clipsToBounds = YES; opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0xb97f690>> | | <UIButtonLabel: 0xb97e120; frame = (0 0; 0 0); clipsToBounds = YES; hidden = YES; opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0xb97e1c0>> | <UIButton: 0xb97eb20; frame = (147 359; 40 50); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0xb97ebe0>> | | <UIImageView: 0xb97f7b0; frame = (0 0; 40 50); clipsToBounds = YES; opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0xb97f810>> | | <UIButtonLabel: 0xb980950; frame = (0 0; 0 0); clipsToBounds = YES; hidden = YES; opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0xb9809f0>> | <UIImageView: 0xb989910; frame = (0 0; 320 47); autoresize = RM+BM; userInteractionEnabled = NO; layer = <CALayer: 0xb989970>> | <UIImageView: 0xb98b1a0; frame = (0 428; 320 32); autoresize = RM+BM; userInteractionEnabled = NO; layer = <CALayer: 0xb98ab80>> | <UIButton: 0xb979710; frame = (9 245; 109 82); hidden = YES; opaque = NO; autoresize = RM+BM; layer = <CALayer: 0xb974d70>> | | <UIImageView: 0xb97cdb0; frame = (0 0; 109 82); clipsToBounds = YES; opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0xb97ce10>> | | <UIButtonLabel: 0xb97bfa0; frame = (0 0; 0 0); clipsToBounds = YES; hidden = YES; opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0xb97c040>> | <UIButton: 0xb975950; frame = (100 265; 89 61); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0xb975a60>> | | <UIImageView: 0xb97cf30; frame = (0 0; 89 61); clipsToBounds = YES; opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0xb97cf90>> | | <UIButtonLabel: 0xb978950; frame = (0 0; 0 0); clipsToBounds = YES; hidden = YES; opaque = NO; userInteractionEnabled = NO; layer = <CALayer: 0xb978a40>>
]]>
Un historique permet de sauvegarder et d’accéder à une période antérieure. Il est possible de prendre des photos (présentation, tableaux) pour chaque discipline.
Cette application est destinée aux étudiants brésiliens, elle est donc uniquement disponible en portugais.
]]>Cette application permet de visualiser une série de PDF et de pouvoir leur ajouter des annotations : dessins, lignes, images, textes, photos…
Il est possible de sauvegarder le PDF une fois modifié et de l’envoyer par e-mail.
]]>UITabBarItem *item0 = [self.tabBar.items objectAtIndex:0]; UITabBarItem *item1 = [self.tabBar.items objectAtIndex:1]; ... item0.title = @"Disciplinas"; item1.title = @"Notas"; ... [item0 setFinishedSelectedImage:[UIImage imageNamed:@"disciplinas-active"] withFinishedUnselectedImage:[UIImage imageNamed:@"disciplinas-inactive"]]; [item1 setFinishedSelectedImage:[UIImage imageNamed:@"notas-active"] withFinishedUnselectedImage:[UIImage imageNamed:@"notas-inactive"]]; ...
Pour changer l’apparence du texte apparaissant sous l’icône, par exemple sa police et sa couleur, on peut utiliser UIAppearance. Attention, cela affectera toutes les UITabBar de l’application :
[[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: [UIColor colorWithRed:247./255. green:228./255. blue:211./255. alpha:1.], UITextAttributeTextColor, [UIFont fontWithName:@"MyFontName" size:11.0], UITextAttributeFont, nil] forState:UIControlStateNormal]; [[UITabBarItem appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: [UIColor colorWithRed:67./255. green:33./255. blue:5./255. alpha:1.], UITextAttributeTextColor, [UIFont fontWithName:@"MyFontName" size:11.0], UITextAttributeFont, nil] forState:UIControlStateSelected];
Voilà le résultat obtenu :
Attention, pour l’état sélectionné il faut bien utiliser UIControlStateSelected. Si vous utilisez UIControlStateHighlighted, l’erreur suivante apparaitra dans la console :
button text attributes only respected for UIControlStateNormal, UIControlStateHighlighted and UIControlStateDisabled. state = 1 is interpreted as UIControlStateHighlighted.
On note qu’un effet de brillance est toujours présent sur le UITabBarItem sélectionné.
Afin de personnaliser cet « indicateur de sélection », on peut utiliser la méthode
[[UITabBar appearance] setSelectionIndicatorImage:indicatorImage]; // En revanche si l'on souhaite se passer de cet indicateur, il n'est pas // possible d'utiliser nil avec la précédente méthode [[UITabBar appearance] setSelectionIndicatorImage:nil]; // ne fonctionne pas ! // En revanche, on peut utiliser une image transparente, cela fonctionne ! [[UITabBar appearance] setSelectionIndicatorImage:[UIImage imageNamed:@"transparent.png"]];
Ci-dessous le résultat sans l’effet de surbrillance sur le UITabBarItem sélectionné :
]]>Cette application présente en 3D temps-réel une station de bus expérimentale située Gare de Lyon et dessinée par Marc Aurel. Cette application comporte :
Osmose est une application 3D multi-plateforme réalisée avec Unity 3D :