J'ai pensé qu'il pourrait être utile à ceux qui ont récemment approché le développement d'applications pour l'iPhone d'Apple, comparer Adobe ActionScript - le langage utilisé dans Adobe Flash et Adobe Flex, plus fréquente chez les néo-programmeurs - et Objective-C la langue utilisé par Apple pour développer ses applications. Objective-C est en effet un langage orienté-objet dans le sens le plus pur, non pas que Actionscript n'est pas, mais Objective-C est certainement un plus, car il est une extension de la norme ANSI C et sa syntaxe est un mélange entre le C / C + + et Smalltalk, est un véritable OO (orienté objet).
Articles taggés avec 'iPhone'
De Actionscript à Objective-C
Apple iPhone SDK 3.0: incompatibilité première
Après avoir installé la version 3.0 du SDK pour l'iPhone d'Apple, manifestement pas encore parfaitement stable, j'ai immédiatement remarqué certains problèmes, à la fois dans la compilation du code est dans le XCode générale. Le plus important - que je signalés rapidement avec une «maison» d'Apple, les développeurs au centre - la création de boutons dans le code. Voici un extrait du code n'est pas compatible avec le SDK 3.0:
1 2 3 4 | [ [ UIButton buttonWithType : UIButtonTypeRoundedRect ] initWithFrame : CGRectMake ( 0 , 0 , 100 , 40 ) ] ; UIButton * myButton = [[UIButton buttonWithType: UIButtonTypeRoundedRect] initWithFrame: CGRectMake (0, 0, 100, 40)]; @ "Bottone" forState : UIControlStateNormal ] ; [MyButton setTitle: @ "Button" forState: UIControlStateNormal]; / / Autres paramètres myButton ] ; [Self.view addSubview: myButton]; |
En remplissant ce code avec le SDK 2.2.1 vous obtenez un bouton classique avec l'étiquette "Bouton". Avec la version 3.0 du SDK, le bouton est créé, mais l'étiquette disparaît. la situazione sembra migliorare, nel senso che la label viene resa apparentemente in modo corretto. Utilisation en tant que buttonWithType le type UIButtonTypeCustom la situation semble s'améliorer, en ce sens que l'étiquette est apparemment fait correctement. Il est encore étrange pour la panne soudaine du type UIButtonTypeRoundedRect . Je suis toujours en attente d'une réponse d'Apple ... Je viens de nouveautés; place!
Le premier: Disponible sur iTunes
Six jours et l'AppStore a approuvé la (ma) première application pour Apple iPhone!
iPhone: la balise de propriété très utile
Tous les objets qui dérivent de <a target="_blank" href="http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIView_Class/UIView/UIView.html#//apple_ref/occ/cl/UIView">UIView</a> héritent des propriétés utiles <a target="_blank" href="http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIView_Class/UIView/UIView.html#//apple_ref/doc/uid/TP40006816-CH3-SW25">tag</a> Cette propriété est un véritable utilisateur de données (une «place» que le développeur utilisé à des fins générales) de type <a target="_blank" href="http://developer.apple.com/iphone/library/documentation/Cocoa/Reference/Foundation/Miscellaneous/Foundation_DataTypes/Reference/reference.html#//apple_ref/doc/c_ref/NSInteger">NSInteger</a> Alors, où nous pouvons stocker uniquement des nombres.
Les usages auxquels ils peuvent faire bien sûr dépendre des circonstances, cependant, il est utile d'identifier un objet particulier de prendre une chose courante. Par exemple, imaginez que vous avez deux <a target="_blank" href="http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIAlertView_Class/UIAlertView/UIAlertView.html">UIAlertView</a> répondre à l'événement même:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | / / Première alerte [ [ UIAlertView alloc ] initWithTitle : @ "Primo" message : @ "Primo Alert" delegate : self cancelButtonTitle : @ "OK" otherButtonTitles : nil , nil ] ; UIAlertView * alert = [[UIAlertView alloc] initWithTitle: @ "Première" message: @ "First Alert" délégué: cancelButtonTitle auto: @ "OK" otherButtonTitles: néant, nil]; ; [Alerte] montrent; ; [Alerte de presse]; / / ... / / Alert deuxième [ [ UIAlertView alloc ] initWithTitle : @ "Secondo" message : @ "Secondo Alert" delegate : self cancelButtonTitle : @ "OK" otherButtonTitles : nil , nil ] ; UIAlertView * alert = [[UIAlertView alloc] initWithTitle: @ "deuxième" message: @ "Alerte Deuxième« délégué: cancelButtonTitle auto: @ "OK" otherButtonTitles: néant, nil]; ; [Alerte] montrent; ; [Alerte de presse]; / / Événement / / Modifier le bouton OK Cliccandi appellera cette fonction void ) alertView : ( UIAlertView * ) alertView clickedButtonAtIndex : ( NSInteger ) buttonIndex { - (Void) alertView: (UIAlertView *) clickedButtonAtIndex alertView: (NSInteger) {buttonIndex / / TODO } |
Remarque: Les exemples de code affiche le C + +. Ce n'est pas tout à fait exact, car, comme vous le savez, la langue est l'Objective-C. Cela est dû au fait que les plugins que j'utilise pour afficher le code source ne prend pas en charge l'Objective-C et C + + est celui qui lui meilleures approches.
Comment faire la distinction entre l'alerte de deux? Précisément à l'aide de la balise de propriété. Après la création du alert suffit d'entrer:
1 2 3 4 5 6 7 8 9 10 11 12 13 | / / Première alerte [ [ UIAlertView alloc ] initWithTitle : @ "Primo" message : @ "Primo Alert" delegate : self cancelButtonTitle : @ "OK" otherButtonTitles : nil , nil ] ; UIAlertView * alert = [[UIAlertView alloc] initWithTitle: @ "Première" message: @ "First Alert" délégué: cancelButtonTitle auto: @ "OK" otherButtonTitles: néant, nil]; 1 ] ; // imposto il tag di questo Alert ad 1 [REGLAGE alerte: 1]; / / Définit le tag de cette Alerte à 1 ; [Alerte] montrent; ; [Alerte de presse]; / / ... / / Alert deuxième [ [ UIAlertView alloc ] initWithTitle : @ "Secondo" message : @ "Secondo Alert" delegate : self cancelButtonTitle : @ "OK" otherButtonTitles : nil , nil ] ; UIAlertView * alert = [[UIAlertView alloc] initWithTitle: @ "deuxième" message: @ "Alerte Deuxième« délégué: cancelButtonTitle auto: @ "OK" otherButtonTitles: néant, nil]; 2 ] ; // imposto il tag di questo Alert ad 2 [REGLAGE Alerte: 2] / / Définit le tag de cette Alerte à 2 ; [Alerte] montrent; ; [Alerte de presse]; |
Maintenant modifier l'événement afin de comprendre ce qui alerte a été fermée:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | / / Événement / / Modifier le bouton OK Cliccandi appellera cette fonction void ) alertView : ( UIAlertView * ) alertView clickedButtonAtIndex : ( NSInteger ) buttonIndex { - (Void) alertView: (UIAlertView *) clickedButtonAtIndex alertView: (NSInteger) {buttonIndex alertView.tag ) { commutateurs (alertView.tag) { : cas 1: / / First Alert break; : cas 2: / / Selon alerte break; par défaut: break; } } |
Exact même technique peut être utilisée que si nous avons une série de <a target="_blank" href="http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIButton_Class/UIButton/UIButton.html">UIButton</a> l'exécution. Par exemple:
1 2 3 4 5 6 7 8 9 10 | unsigned int i = 0 ; i < 10 ; i ++ ) { for (unsigned int i = 0; i <10; i + +) { [ [ UIButton buttonWithType : UIButtonTypeCustom ] initWithFrame : CGRectMake ( i * 20 , i * 20 , 20 , 20 ) ] ; UIButton * myButton = [[UIButton buttonWithType: UIButtonTypeCustom] initWithFrame: CGRectMake (i * 20 *, 20, 20, 20)]; @ "But" forState : UIControlStateNormal ] ; [MyButton setTitle: @ "Mais" forState: UIControlStateNormal]; i ] ; // imposto il tag [REGLAGE MyButton: i]; / / Définit le tag / / L'événement même pour tous self action : @selector ( onTouchUpInside : ) forControlEvents : UIControlEventTouchUpInside ] ; [AddTarget MyButton: action d'auto: @ selector (onTouchUpInside :) forControlEvents: UIControlEventTouchUpInside]; mybutton ] ; [Self.view addSubview: myButton]; } |
(dove eseguiamo un casting <a target="_blank" href="http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIView_Class/UIView/UIView.html#//apple_ref/occ/cl/UIView">UIView</a> Dans le cas onTouchUpInside se remettre de la sender (où nous effectuons un casting <a target="_blank" href="http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIView_Class/UIView/UIView.html#//apple_ref/occ/cl/UIView">UIView</a> propriété <a target="_blank" href="http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIView_Class/UIView/UIView.html#//apple_ref/doc/uid/TP40006816-CH3-SW25">tag</a>
1 2 3 4 | void ) onTouchUpInside : ( id ) sender { - (Void) onTouchUpInside: (id) sender { ( ( UIView * ) sender ) .tag; unsigned int button_tag = ((* UIView) expéditeur) tag.; / / TODO } |
Salut téléphone
A partir d'aujourd'hui a inauguré une nouvelle section (catégorie à être corrigée) dédié au développement d'applications sur l'iPhone d'Apple! Je déclare maintenant que la plupart des articles qui seront la publication d'un "cut" en ligne avec l'esprit de ce blog, qui sera principalement pour les utilisateurs avancés. Cependant, comme je l'ai fait dans d'autres sujets, essayez d'être aussi clair que possible et, le cas échéant, mettre un peu de "concept de base« utile à un public plus large.
Aptana IDE mise à jour: 9 étapes
Il est disponible pour mettre à jour l' IDE Aptana , l'environnement de développement Web qui prend en charge Adobe AIR et l'iPhone d'Apple . Parmi les nouvelles améliorations dans la section PHP par la mise à jour du Code Assist fonctions sur les deux paramètres. Également amélioré la «couleur» du code. Ajout du support pour les cadres dernières Ajax, y compris prototype.js et jQuery . Également amélioré la manipulation de Javascript.

Pour la liste complète des nouvelles fonctionnalités , cliquez ici .
iPhone: Le WAP est mort?
Qui a eu la capacité et de la patience pour voir la dernière Keynote de Steve Jobs, qui présente le nouvel iPhone d'Apple, va sûrement trouver la dernière demande fascinante technologie multi-touch à Cupertino.
Fantasmes à "Minority Report" de l'autre (la réalité dépasse souvent l'imagination vraiment), ce qui m'a le plus frappé, même s'il est déjà présent dans de nombreux smart-phone sur le marché pendant un certain temps, est la possibilité de surfer sur l'Internet comme un PC à la maison. L'iPhone vient en concurrence directe avec les téléphones traditionnels et non avec le marché smart-phone aujourd'hui. Apple a présenté sa solution pour le mobile, à la suite de son guide en ligne classique: la simplicité - alors - la distribution de masse, comme cela s'est produit avec l'iPod.
Si le marché smart-phone aujourd'hui, ceux avec Windows Mobile à bord, par exemple, vous permettre de surfer sur Internet, cependant, sont perçues par le «marché de masse" comme un hybride entre un téléphone et un ordinateur portable. Je veux dire quelque chose de différent de la "téléphone" tous les jours. À ce jour, un téléphone est une «cellule» dans le sens que la navigation Web est relégué à quelques-uns - quelques-uns savent même pas que vous pouvez le faire - (étant donné la façon dont pas cher) avec des solutions très loin de celles d'un PC à la maison, la taille de afficher, pour la vitesse de la bande passante, en raison de la difficulté d'interaction avec le clavier ou la souris simulé, etc ...
Cependant, presque inaperçu, il me semble qu'il ya une petite révolution dans l'acte d'un intérêt considérable, au moins pour les développeurs Web
Être capable de naviguer sur un site de la «rue», sans changer la technologie utilisée est un énorme pas en avant. À ce jour, une réalité sur le Web sont à double - si ce n'est pas triple: normes WAP, Flash Lite (version pour Windows Mobile ou Symbian) et Internet. Rassembler et unifier les technologies de navigation est une réalisation importante, l'antichambre de la vraie distribution des navigaione via le mobile.
Le WAP, par exemple, comme cela a cherché à imiter le Web lui-même est complètement échoué. Cela me rappelle de la télévision numérique terrestre!
Le Net TV, par exemple, dans cette situation nouvelle peut trouver un terrain fertile pour s'épanouir plus encore que il ya quelques années. Il ya donc toutes les conditions préalables pour donner un nouvel élan à la seconde jeunesse de l'Internet. D'une part, de nouvelles formes d'agrégation de la communauté et l'autre la possibilité d'exploiter ces «expériences» ainsi que à la maison, même dans la "mobilité" totale.
100 000 000 IE7 installé! Safari pour Windows?
Alors que Microsoft, via son blog sur IE7, annonce joyeusement la "fabuleuse" chiffre de 100 millions d'installations d'IE7 dans les rumeurs début Janvier 2007, d'une éventuelle version de Safari (le célèbre navigateur, bien que maintenant obsolète - nativement - Mac) pour Windows.
Microsoft est quant à lui heureux de voir que IE7 est le second navigateur le plus utilisé après IE6.
Tout cela se passe quand il ya encore plusieurs endroits dans IE7, il est donc compréhensible de la confiance absolue de Microsoft dans son nouveau navigateur, dans la «vue», même la sortie de Vista (excusez le jeu de mots)!
Il est donc vraiment nécessaire de «porter» Safari sur Windows?
Mary Jo Foley, dans son blog, a essayé de demander à tous les utilisateurs . Votez aussi.
Pour l'instant les résultats sont les suivants:
De toute évidence, si ces "rumeurs" sont vraies, l'iPhone, dernière merveille d'Apple, pourrait être impliqué en quelque sorte.
Certes, le nouvel iPhone d'Apple est préférable d'utiliser Firefox ou Opera, Apple toujours que cela soit possible. Sur un Mac normale, selon l'utilisateur final, Safari pour quelque temps, il frappe, ce qui rend innavigabili certains sites.
Cependant, nous pouvons voir dans ces spéculations que la présentation du nouvel iPhone d'Apple a secoué quelque chose.







Derniers Commentaires
GM : Salut, désolé pour ressusciter un vieux post, mais j'espère que vous pouvez me donner un coup de main. Comment puis-je, avec cette méthode, ...
Giovambattista Fazioli : @ Fabio: un poste dans le passé! Je recommanderais d'utiliser les fonctions les plus pratiques d'onglets maintenant ...
Fabio : Bonjour, cherchant sur le web, j'ai trouvé cet article pour créer votre bande onglet javascript avec php et css, mais ...
Miriam : Que pensez-vous de Disqus? Je l'utilise et je l'aime.
Giovambattista Fazioli : @ Nik: Je suis heureux! Bonne chance alors!