Facebook mobile pour smartphone 2015

 

Facebook a l’application native plus téléchargé de tous les temps. Il a peut-être aussi le site mobile le plus visité de tous les temps avec près de 350 millions d’utilisateurs et de plus en plus de téléphones dotés des smartphones les plus intelligents. Il est disponible partout. La société a commencé à travailler sur des solutions mobiles en 2006 et depuis lors, ont grandi avec le temps …

Comment Facebook Mobile a été conçu pour fonctionner partout

Facebook mobile est fondée sur la technologie du navigateur. En tant que directeur de l’ingénierie de Facebook Dave Fetterman dit dans le compte rendu ci-dessous, le navigateur est ce que Facebook est bon, comment il est arrivé au point où elle est à présent et comment il va parcourir pour l’avenir de la téléphonie mobile. Nous touchons à l’avenir de demain, mais assurez-vous de lire la présentation de Fetterman à la conférence des développeurs f8 de Facebook ci-dessous car il en informe ce que nous allons explorer demain matin. Vraiment, comment concevoir Facebook pour toutes les plates-formes et périphériques ?

Ce qui est ci-dessous est une transcription directe avec des photos de la présentation de f8 de Fetterman. A peu de choses à noter:

Facebook mobile a sa colonne vertébrale dans son site Web mobile. Tout ce qui est construit dans les applications natives provient effectivement du Web mobile. Pensez à la façon dont PhoneGap enroule un site Web basé sur un navigateur et qui est de savoir comment Facebook a abordé le problème. Et puis certains.

HTML5 est l’avenir. La quatrième page pénètre dans la façon dont l’ensemble de cette histoire est à la tête de Facebook mobile un précipice de changement avec HTML5 et le soi-disant projet Spartan.

A noter également que Fetterman parle vite et jure de temps en temps. Il est l’ingénieur Facebook classique: genre de jeune, jolie sarrasins et suprêmement confiant. La transcription est aussi fidèle à ses mots réels que possible.

L’évolution des normes mobiles via des cinq dernières années

Nous avons pris une approche extrême à base de HTML à cela. Donc, nous allons aller dans la façon dont nous faisons de sorte que vous pouvez apprendre HTML5 est le moyen de sortir de beaucoup de ces problèmes.

Parce que, il n’a pas vraiment toujours de cette façon pour nous. Nous avons eu les mêmes problèmes mobile que vous les gars ont. Nous suivons le même écosystème mobile que vous les gars sont les suivantes à développer pour vos utilisateurs.

Donc, nous avons les mêmes problèmes de développement cross plate-forme que vous avez et nous espérons que vous pouvez en apprendre un peu de nous. Ainsi, nous avons appris à traiter de ces questions avec ce que nous appelons « FaceWeb » et l’apprentissage d’une nouvelle occasion de sortir de ce qui est en train d’émerger comme nous parlons appelés HTML5.

Ainsi, en 2006, la construction d’une présence mobile signifiait que vous aviez un pont WAP qui a été basé sur une application HTML avec SMS et tout cela. Mais, comme vous le savez tous, mobiles fondamentalement changé en 2007. Qu’est-il arrivé ensuite?

[Foule] – L’iPhone.

L’iPhone! Grande. Quoi d’autre est arrivé en 2007, peut-être dévoiler dans la salle que vous êtes assis dans ce moment?

[Foule] – La plate-forme.

Oui, l’API Facebook mobile. Donc, ce qui a changé pour nous est que nous avons dû développer une deuxième expérience utilisateur pour l’iPhone. Un ordinateur dans votre poche qui ne aspiré. Ainsi, il pourrait avoir Javascript, CSS et un très riche modèle d’interaction. En outre, il était Facebook pour BlackBerry, Facebook pour Windows Phone, Nokia, Samsung, pour tout le monde maintenant disponibles via l’API Facebook.

Que diriez-vous de 2008? Quelle était la grande chose qui est arrivé en 2008?

[Foule] – Hummm … Android?

Je vais faire semblant que je entendu l’iPhone App Store. Qu’est-ce que la plupart des développeurs ne réalisent pas est que la première version de l’iPhone, vous pouvez construire des sites Web, mais l’App Store n’a pas été disponible plus tard. Ainsi, en 2008, l’App Store nous permet de construire Facebook pour iPhone. Le phare, l’avant-garde, la meilleure justification de Facebook. Basé sur l’API, de la même façon que vous les gars sont la création d’applications de l’API maintenant.

En 2009, ce qui a changé en 2009?

[Foule] Hummm … Android?
Android, oui. Je vais faire semblant que je entendu Android. Android est le nouveau joueur en 2009 et a commencé à vraiment décoller. Alors, tout d’un coup nous avons tous de ces utilisateurs sur tous ces appareils à l’aide de Facebook mobile dans le grand arc en ciel de belles expériences différentes à travers Android, iPhone, Windows, le Web. Ce fut un grand du point de vue de l’utilisateur. Qu’est-ce suce? L’environnement pour mes développeurs, essentiellement. Vous avez les mauvais jours. Vous disposez de quatre plates-formes différentes pour construire quelque chose essentiellement. Vous voulez construire pour tous ces groupes? Vous allez avoir à construire la ventouse quatre fois. Ensuite, il ya toutes les fonctionnalités – groupes, tarifs, le nouveau profil. Toutes ces choses et la matrice ont vraiment mal. Donc, nous devons construire des choses quatre fois ce qui signifie que le code devient lent. Le code se fait vieux. Il existe différentes versions de la parité et les choses ne fonctionnent pas ensemble, ce qui fait qu’il est extrêmement difficile pour une entreprise de déménagement rapide comme Facebook.

Page suivante: Fetterman décrit comment concilier Facebook M.Sites et tactile

Comment ne pas écrire la même fonctionnalité quatre fois

Alors, comment pouvons-nous résoudre ce problème? Si nous avons un coup à la résolution de ce problème de construction choses quatre fois … si vous voulez construire une fois, le Web est probablement votre meilleur coup. Donc, retour dans la journée, nous avons dit que nous avons deux sites, non? Nous avons touch.facebook.com et nous avons m.facebook.com. Différents racines de docket complets et qui ont décidé de ce que l’on allait être, où vous allez aller en fonction de votre téléphone? Eh bien, il n’a pas été si compliqué que ça. Si vous étiez un téléphone Webkit, vous fondamentalement redirigé vers contact, si vous ne l’avez pas, vous avez M. Si vous aviez CSS, bon, on pourrait jeter que là, pas de frais, pas de problème. Donc, avoir eu cette proposition et redirection sorte d’approche sur le Web.

Cela ne résout pas vraiment le problème de tout le monde et ayant une expérience optimisée pour leur téléphone. Même des choses comme les images en ligne à l’intérieur de l’écran, à travers CSS et versions, qui est vraiment problématique lorsque vous que ceux à ma droite sont sauvés, ceux à ma gauche sont damnés. Telle est la façon dont il va travailler. Donc, si nous avions une chance d’unifier ces deux groupes et de construire quelque chose une fois pour le Web mobile, nous avons eu à résoudre ce problème.
Alors, que devons-nous faire? WebKit ne suffisait pas, nous avons dû avoir un meilleur niveau de granularité. Quelle est la différence entre un site web mobile Javascript à partir d’un site Web mobile non le Javascript ? Vraiment, Javascript est là pour permettre à certains types d’affichage et certain type d’interaction, principalement AJAX. Mais, quand vous pensez à la commande — ce qui est des groupes? Quel est le fil de nouvelles? Quel est le message? Ce sont un peu la même chose et ils ne pas vraiment être écrit deux fois. Donc, retour dans la journée, il fallait utiliser des solutions inefficaces comme Netbiscuits qui étaient opaques. Vous pourriez faire un peu de post-traitement de XSL, mais vous ne pouvez pas poster processus votre chemin à une bonne Javascript, il ne fonctionne pas. Avec Webkit vous avez commencé à obtenir des poly-remplissages et modernisateur et tout ce grand truc. Mais, vous avez réellement besoin d’une façon d’écrire votre code une seule fois.

Amélioration progressive

Voici ce que nous avons fait facebook mobile.

La pierre angulaire de cette détecte que votre téléphone va être capable de faire. Capacités, alors vous pouvez commencer à la bonne expérience. Les gars, vous entendu parler de WURFL du tout? De fichiers sans fil Universal Resource? Ceci est l’un des projets là-bas que vous essayez de mapper un utilisateur à un ensemble de fonctionnalités de l’agent utilisateur. Vous savez, ce qui est la taille de votre écran? Quel est votre JS? Peut-on faire des cookies? Ce sont tous des problèmes épineux, pernicieuses qui doivent être résolus. Et l’utilisation d’agent, que vous avez peut dire, ne pas faire le travail. Donc, vous avez besoin d’une base de données ouverte pour les fabricants et les citoyens concernés à être en mesure de vous dire ce qui est en place. Nous avons parrainé ce projet et ce projet continue d’évoluer comme un site de données open source.

Donc, une fois que vous avez ces capacités vous avez réellement à comprendre ce qu’il faut faire avec ces. Un bouton sur Facebook est pas tout comme il est HTML ou ce bloc de Javascript ou quelque chose. Qu’est-ce que vous voulez pour la page d’accueil est d’avoir vos compositeurs rendent un bouton qui fait quelque chose. Alors, vous les gars dire ce que nous voulons vraiment est un bouton. Vous les gars à comprendre intérieurement ce qui doit être rendu. Si il est un téléphone bas de gamme peut-être il est juste vers le haut sous forme de poste. Si elle est un téléphone milieu de gamme avec CSS, peut-être vous pouvez superposer sur CSS il. Mais si elle est un téléphone haut de gamme que vous voulez vraiment une expérience de style AJAX. Ainsi, cette technique a été lancée par quelqu’un comme Yahoo plan. Donc, au lieu de dire au plus haut niveau que cela va être un bon site et cela va être un site de bas de gamme, chaque composant à l’intérieur que le balisage déclaratif qui rend l’affichage décider ce qu’il est capable de faire. Et ils composent ensemble pour former l’expérience idéale pour ce téléphone. Cette technique est appelée amélioration progressive.
Donc, cette réalité nous est arrivé au point où nous avons pu écrire une fois et exécuter n’importe où sur le Web. Et, vous le savez, le Web semble faisable. Vous pouvez le faire sur vos navigateurs de bureau déjà. Mobile arrivé à un point où vous pouvez réellement le faire en utilisant un système de ce genre. Mais, vous les gars êtes probablement ennuyé sur l’audition sur le Web, malgré le fait qu’un utilisateur d’iPhone et utilisateur d’Android, celui qui, peut aller utiliser un site web mobile compétence parce qu’ils ont tous de bons navigateurs, tout le monde veut une caractéristique de l’iPhone.

Ainsi, nous avons pu éliminer sur nos quatre piles et arriver au point où nous avons eu trois et ce qui est grand. Mais, bien sûr, tout le monde veut et fonctionnalité de l’iPhone. Ils veulent que leur truc ressemble et iPhone, pour fonctionner comme un iPhone, de se sentir comme un iPhone, tout cela. Ainsi, nous pourrions écrire en Objective-C, que nous avions à faire, ou nous pourrions penser à ce sujet. Bon, alors, que dire de la fil de nouvelles Facebook est vraiment iPhone-y? Vous avez le haut, vous avez la tête fixe, vous avez à rendre directement à partir du cache, tout ce grand truc. Mais vraiment, si vous regardez le contenu de la publication, qui ressemble beaucoup comme un fil de nouvelles m.site. Il n’y a pas vraiment beaucoup qui est différent, il n’y a rien de spécial à propos de tout pile particulier. Donc, cela signifie que vous devez écrire trois fois pour faire exactement la même merde.

Plus fou que vous ne pouvez l’imaginer Guys
Donc, si nous mettons le navigateur réelle à l’intérieur de l’application? Telle est l’idée folle. La façon dont nous l’avons fait était encore plus fou que vous les gars pourriez imaginer. Ainsi, il ya quelques téléphones, ce navigateur va être en mesure de travailler pour tous ces téléphones? Eh bien, trois d’entre eux ont de très bonnes implémentations de WebKit. Donc, nous avons pensé que, si nous mettons un site permis de Webkit intérieur de l’application et tout droit jusqu’à faire que le travail de chose? Juste, l’oublier, nous allons comprendre comment faire pour que les choses fonctionnent.

Donc, cela est en fait assez fou. Ceci est non seulement construit Javascript qui fonctionne sur le client et utilise l’arrière comme un portail de données. Nous sommes en fait vers le haut injectons le site à l’intérieur de ces applications. Pas tout à fait aussi simple que d’obtenir un affichage Web de l’interface utilisateur ou que ce soit. Vous devez avoir une certaine interactivité entre ce point de vue Web et le conteneur, mais si nous pouvions tout droit jusqu’à utiliser le site? Il est à peu près la même chose, non? Donc, ce que nous avons fait et il est un peu fou.
Donc, je tiens à vous dire que nous avons appris de cette situation. Bien sûr, en unifiant le site dans les conteneurs de contenu est difficile et quelque chose que nous aurions à surmonter mais, en pariant sur le navigateur est juste genre de chose que nous faisons à Facebook. Il est ce que nous sommes bons et il est l’occasion ultime de se déplacer rapidement et nous faisons le pari difficile sur le Web parce que ce qui nous est arrivé ici (f8) aujourd’hui. Donc, nous voulons essentiellement à mettre le navigateur à l’intérieur du Facebook pour iPhone.

 

Alors, qu’est-ce biche obtenir nous? Cela signifie que vous pouvez expédier tous les jours. Vous ne devez pas attendre une approbation app store, qui aspire, et vous ne devez pas attendre que chaque utilisateur de télécharger cette version sur le binaire qui doit être livré plus dans leur téléphone. Ça craint. Vous pouvez expédier chaque jour. Vous pouvez rompre tous les jours, mais vous pouvez expédier chaque jour.
Vous pouvez expédier dans un langage trop facile. Votre équipe de développement Web, vous et votre équipe iPhone Android équipe ne doivent pas être séparés. Ils sont tous les mêmes, ils sont tous de résoudre le même problème. Et vous pouvez expédier une fois au lieu d’avoir à expédier quatre fois.

Alors, comment cela fonctionne? Projet FaceWeb est une extension de cette idée d’amélioration progressive. Ainsi, au lieu du téléphone en disant que je suis rendu pour un navigateur WebKit, nous envoyons un agent qui dit que vous allez être rendu pour une vue WebKit WebKit de l’interface utilisateur à l’intérieur de l’application iPhone. Donc, ce que vous avez à faire est de détecter, de style un code Web pour faire ce travail, construire un pont entre les choses que vous voulez écrire à interagir nativement avec l’Objective-C, par exemple dans Javascript, puis construire des pages HTML pour Facebok dans l’iPhone. Donc, vous construisez beaucoup plus petite bouillie native au lieu d’avoir à construire encore et encore.

La réponse: Wrap Facebook mobile à l’intérieur de l’App maternelle
Alors, comment cela fonctionne techniquement? Essentiellement, l’utilisateur clique sur l’icône de fil de nouvelles sur leur iPhone. Si cette chose est activée pour cette technologie de FaceWeb, il ne sera pas correspondre à un contrôleur Web natif, il place la carte à un point de fin sur notre serveur qui dit littéralement sert m.facebook.com/home.php. Il ne peut pas simplement bloquer cette chose là-dedans. Il ne peut pas simplement avoir la vue Web. Vous avez en fait de savoir comment il va être en interaction avec l’Objective-C. Donc, vous devez renvoyer un squelette JS qui spécifie la «couche des appels d’extraction de plate-forme » nécessaire pour cette image. Ensuite, vous faites un autre voyage et chargez le home.php et le Javascript.

Il est un peu plus de travail et qui fait affecter certaines choses. Mais, ce que cela signifie est que nous pouvons écrire un site m.facebook.com de base et utiliser le Javascript pour le faire fonctionner sur de grands téléphones et utiliser cette couche d’abstraction pour interpréter Javascript cas échéant de faire des choses comme, disons indigènes ouvrir l’appareil pour quelque chose comme l’application iPhone.
Donc, ce genre de choses doivent traverser ce pont? Choses évidentes comme les capteurs et les données. Si vous souhaitez obtenir votre GPS, votre accéléromètre ou l’orientation serrure ou partie de ces choses, certains sont disponibles en HTML5, mais beaucoup d’entre eux ne sont pas. Donc, vous devez être en mesure de faire certaines de ces répondre aux questions des capteurs-esque. Selon l’écran et l’agressivité que vous voulez être, vous devez être en mesure de rendre les choses ressemblent iPhone. Regardez comme Android. Et, vous ne pouvez pas faire ces choses juste avec le navigateur. Vous pourriez en théorie faire avec JS mais de regarder exactement la même que vous allez avoir à utiliser un appel natif. Et en plus, il ya des éléments à Facebook pour iPhone que nous ne voulons pas vraiment de passer à HTML. Par exemple, le débit de l’appareil. Vous ouvrez la caméra, vous prenez une photo, vous le mettez dans votre album ou vous sélectionnez quelque chose à partir de votre galerie et de la légende et de la télécharger. Cela fait beaucoup à faire dans un navigateur, mais il est facile à faire en natif. Donc, si vous voulez plongée profonde dans tous les flux natifs existants, qui est un pont que nous allons avoir à traverser ainsi.
PhoneGap a déjà résolu ce premier problème en fait assez bien sur même plus que l’iPhone. Les problèmes courants que vous exécuterez dans si vous faites cela est; un – objection, il ne semble pas d’origine. La deuxième est qu’il ne va pas se sentir natif et troisième est qu’il est pas assez rapide. Voici ce que nous avons trouvé pour chacune de ces choses.

Le mandat initial était, hé, les gars, vous voulez faire cette chose en HTML, bien, je ne veux pas être en mesure de faire la différence entre Objective-C rendu fil de nouvelles et rendu HTML de nouvelles RSS. Ce fait ne pas finir par être un gros problème en termes de visuels. Le Web et l’application fait fonctionner assez bien ensemble. Lorsque nous avons livré ce pour les utilisateurs n’y avait pas de plainte, sauf pour celui que je pensais était assez drôle.

Il y avait une «app» iPad pour Facebook qui est sympa pour Facebook, il tout simplement enveloppé la m.site. Certains utilisateurs ont déclaré, hé, Facebook est la copie de l’application qui enveloppe son m.site dans le cadre de son Facebook pour iPhone application. Qui nous étions parce que nous étions réellement utilisons seulement notre m.site et qui était super. Donc, le fait qu’il ne semble pas d’origine, nous ne disposons pas vraiment un gros problème avec celui-là.
Pourtant, il ya certaines choses que vous avez à regarder dehors pour. Position fixe et débordement défilement étaient évidemment un gros problème. Android 2.1 et au-dessous, aucune chance. (Android) 2.2, il commence à travailler et iOS 5, Dieu merci, a promis de mettre en œuvre tout ce genre de choses. Alors, vous les gars êtes dans une meilleure position maintenant pour commencer dans cette voie que vous avez été il ya 10 mois. Regradients CSS sont un problème, les images sont un problème et [il ya un couple de plus de pièges].

Défilement facebook mobile

Un autre problème est qu’il ne se sent pas natif et presque toujours ce moyen de défilement. Il ne veut pas vraiment dire, hey, je veux glisser supprimer. Voilà comme, pfft, qui se soucie? Presque toujours il va être quelque chose sur l’interactivité et le défilement. Quelque chose que le code natif fait vraiment bien en utilisant le GPU et comme canalisant toute cette merde, mais il ya quelque chose qui vraiment difficile de faire en HTML. Alors, quand les gens disent qu’il ne se sent pas natif, ils vont parler de défilement.

Parfois, vous ne devez mettre en œuvre défilement. iScroll fonctionne assez bien, Hewitt travaille sur une bibliothèque qui est très bonne. Donc, vous avez de genre de reporter à une bonne bibliothèque de défilement JS. Et, assurez-vous que vous faites des choses comme redimensionner vos images car était une fois la responsabilité de la GPU est maintenant de la responsabilité du navigateur. Et, il ya toutes ces petites choses qui ne sont pas documentés, comme le clavier se présenter et ne pas fermer sur Android et iPhone. Il ya juste un tas de petites choses que l’on cuit dans le système qui sont se fixe.

La question de la vitesse facebook mobile
Le dernier et ceci est la mauvaise réel est qu’il est tout simplement pas assez rapide. Si vous voyez un ralentissement de votre application Facebook pour iPhone, cela signifie que nous travaillons avec juste la façon de faire un travail d’application basée sur HTML pour Facebook pour iPhone et il a été très difficile.

Ainsi, une tactique est évidemment pré-cache l’enfer hors de cette chose. Si vous rendez un fil de nouvelles, et va commencer à obtenir le contenu de toutes ces histoires parce que quand l’utilisateur appuie sur que vous voulez avoir le contenu prêt pour eux. Le cache de votre point de vue sur le Web. Si cela ne fonctionne pas, la meilleure chose que vous pouvez faire est de simplement tromper vos utilisateurs. Au moins ont un contenu semble être prêt. Remplissez le squelette rendu et ensuite mettre en cache que le contenu et puis en dessous, aller chercher votre nouveau contenu. Au moins les utilisateurs auront le sentiment qu’il ya quelque chose là-bas parce que est généralement ce que leur réponse initiale est. Un écran blanc est tout simplement pas le couper.

Donc, pièges à PERF signifie que vous allez utiliser beaucoup de JS. Vous n’êtes plus seulement chargez des données, vous chargez balisage pré-rendu, qui est beaucoup plus cher. Et des choses comme cache HTTP et le cache de l’application, ils disent qu’ils travaillent dans des vues IU Web, mais souvent ils ne le font pas. Donc, vous devez être très prudent au sujet des promesses qui sont faites ici.
Adopter l’approche Partout dans facebook mobile

Mais, cela a fonctionné assez bien que nous l’avons dit, nous allons mettre l’application Android sur ce train parti trop. Donc, nous étions réellement en mesure d’écrire quelque chose comme les nouvelles m.site alimentation une fois. Chaque fois que vous modifiez une histoire de flux de nouvelles ou d’ajouter une histoire de flux de nouvelles ou d’ajouter des commentaires et Aimer ou autre, qui va apparaître sur m.site bas de gamme, m.site haut de gamme, Facebook pour iPhone et Facebook pour Android le lendemain, ou chaque fois que nous poussons, qui est en fait assez impressionnant.
Donc, nous avons fait faire. Maintenant, nous avons des éléments de l’expérience Facebook, le navigateur en cours d’exécution à l’intérieur de tout. En particulier, la substance la plus volatile, les trucs qui repose moins sur un certain type d’affichage, le truc qui va être évolue et change tellement, comme le fil de nouvelles ou votre profil chronologie, nous faisons ce droit en HTML. Voilà où la prestation maximale est.

Comment HTML5 est le leader Facebook mobile dans une nouvelle direction

Comment elle a évolué: En route vers HTML5

Alors, quelle est l’histoire ? Donc, pour iOS 3.4 et 3.5 nous avons réellement fait cela. Votre flux de nouvelles et votre profil alimentation sont effectivement proviennent de la m.site. Donc, cela signifie que si les changements de m.site et ajoute une fonctionnalité, vous les gars obtenir. Si la m.site est cassé, il casse tout. Il ya positifs et négatifs là. Pour être lancé dans iOS 4.0, les demandes, les notifications et la recherche, ce contenu list-style qui ne nécessite pas un accès natif très spécifique, qui va être basé sur FaceWeb ainsi. Android 1.6 et 1.7 suivent le même costume. Les commentaires et la conception ont été assez grande, mais les bugs ont été assez merdique si. Parce que quand vous la version de votre Javascript et les choses vont mal, vous liez votre avenir sur le Web réel fonctionne parfaitement tout le temps qui est quelque chose que nous allons évidemment rapide sur très souvent.
Ainsi, la mission est d’opérer à partir d’une base de code et s’adapter à tous les navigateurs dans le monde. Cela sonne comme quelque chose que Facebook serait dire, cela est en fait une partie du drapeau de bataille HTML5.

HTML5 est probablement la manière que nous aurions dû le faire. Ceci est la façon dont nous arrivons à le faire maintenant parce que HTML5 a tellement changé sous nos pieds. La première tentative de création d’une application hybride, il y avait certaines choses en HTML5 qui ne sont pas encore prêts et nous avons dit l’oublier, nous allons continuer à avancer. La première tentative de reporter certaines choses à rendu natif et manipulation natif qui vraiment pourrait être mieux assurée par quelque chose comme le HTML5 et à la technologie dans le navigateur – l’accès de l’appareil, de bons cadres indigènes et l’application et le code d’affichage.

Ce qui a changé entre hier et aujourd’hui que nous pouvons tirer profit et que vous les gars pouvez, qui vont être commençons dans cette voie hybride, pourrait être en mesure de profiter de dans le court terme?

Device Access

Ainsi, l’accès au dispositif. Des choses simples comme faire les choses qui sont protégés à l’intérieur de l’appareil. Géo-localisation, la connectivité réseau, évidemment très grande pour la mise en cache, des choses comme votre appareil photo et vos contacts, ce qui a changé? Eh bien, la géo-localisation a effectivement été assez bonne pour un certain temps. Cela pourrait certainement être HTML5 et qui est ce que nous utilisons intérieur m.facebook.com Lieux base et offres choses. La connectivité réseau est en train d’émerger et qui est arrivé à un point où vous pouvez compter sur les nouveaux navigateurs à le faire via HTML5. Caméra et contacts, car ce sont donc très différentes, beaucoup de ces choses sont encore précisées. Mais, si vous voulez regarder une liste générale et commencer par demander au système pour une réponse et obtenir une réponse en arrière, PhoneGap.com a fait beaucoup de ce genre de choses et ils ont pu à cette poly-remplissage à faire beaucoup de ce travail. Donc, ce problème est le plus facile, mais il est le plus long vers se résoudre, surtout depuis que nous avons commencé à travailler sur cette application hybride.

Il ya certains cadres de développement qui sont indigènes. Être en mesure de gérer votre histoire, ça fait bizarre. Parce que votre histoire dans une pile native est très différent d’un historique du navigateur. Les navigateurs sont très idiosyncrasique sur la façon dont ils traitent l’histoire et il est un modèle très différent. La gestion de l’historique, de stockage côté client est évidemment le grand et le filetage. Avec filetage, si vous les gars se sont développées dans iOS, vous savez, il ya certaines choses que vous devez respecter. Cela est vrai en Javascript ainsi. Donc, vous avez besoin d’un bon moyen de comprendre comment obtenir d’autres threads pour faire votre travail et le faire d’une manière multi-plateforme.
HTML5 est en train de normes pour faire tout cela disparaissent ainsi. Gestion de l’Histoire, il est de bonnes choses en HTML5 venir. IndexDB et stockage côté client devient beaucoup mieux ainsi. Des choses comme WebWorkers, si nous l’avons fait ces choses à nouveau, nous serions en mesure de le faire en HTML5.

Une application peut être construit maintenant aide de la technologie Web?

Enfin, je pense que la chose importante est, pourriez-vous construire votre bâtiment de l’application vers le haut les technologies du Web? Les technologies Web réels qu’ils utilisent, que vous utilisez. Défilement, rafraîchissement, des trucs rapide, ce sont des choses que nous avons dû reporter à un gestionnaire natif de façon maladroite. Mais, le défilement, merci à Apple et iOS 5 pour promet qu’ils vont faire le défilement, la position de débordement fixe défilement, ce pourrait être le problème du passé. Têtes de position fixe et bon défilement est une caractéristique de ce que les gens en sont venus à considérer comme une application native, mais il est un problème qui peut être résolu par de bonnes JS maintenant grâce à ces nouveaux cadres.

Je pense que la livraison la plus importante est que les moteurs de rendu JS sont tout simplement devenues tellement mieux dans la dernière année et demie. V8 et Nitro ont montré que vous pouvez créer des applications JS, client-side à part entière au lieu d’utiliser Objective-C ou Java Android et ils courent, et les utilisateurs les aimerez. Des choses comme Netflix ont fait cette très productive déjà.

Ainsi, l’émergence et l’investissement des grands fabricants de navigateurs qui font vraiment, vraiment bonnes choses JS, qui est finalement payante. Et si vous les gars commencent tout juste dans cette voie, vous serez surpris de voir à quel point beaucoup de succès, je pense que vous pourriez vraiment avoir.

Bouger les choses, casser des choses, arranger les choses rapides

Donc, nous avons suivi ce qui était disponible pour nous le long de la route pour nous depuis 2006 dans Facebook mobile. Si le meilleur que nous pouvons faire est XHTML, très bien. Si nous avons un très bon navigateur qui utilise JS et CSS bien. Si nous pouvons construire et application iPhone et une application Android, ce qui est grand. Mais, ce qui change sous nos pieds maintenant est en fait l’émergence de la présente norme et les navigateurs HTML5 qui mettent en œuvre ces normes. Surtout autour de l’accès de l’appareil et la capacité d’écrire des applications entièrement en Javascript. Nous avons vu beaucoup d’avantages à écrire quelque chose en HTML. Tous nos développeurs sont bons à HTML. Seuls quelques-uns d’entre eux sont vraiment bons à Objective-C et Android. Nous sommes en mesure de rendre nos développeurs Web la même chose que nos développeurs côté client, à certains égards.

Etre capable d’écrire une fois aujourd’hui et expédier demain? Voilà quelque chose que Facebook est vraiment bon et que nous aimons faire et qui est au centre du pouvoir se déplacer rapidement. Aller vite a une troisième clause implicite – aller vite, casser des choses, et de fixer les choses rapidement. Cela est très difficile à faire si vous avez déjà envoyé votre binaire à Apple ou Android et ils doivent télécharger une autre version de lui.

Lien pour telecharger facebook mobile sur android : google store