Hi all,

Facebook organized the second edition of their Mobile Forum here in London last 
week (the first one was in SF, I think). It's an invite-only event with about 
50 attendees (mostly engineers) from large tech companies (Amazon, Microsoft, 
Skype, Facebook, SAP, etc) as well as some local startups.

The event is essentially a series of group discussions split into two sessions 
(morning and afternoon) with five parallel topics each. The topics ranged from 
technical bits of specific platforms to development tools and practices. Each 
session starts with a quick "problem statement" presentation for each topic, 
then the attendees split into smaller groups to discuss the topics they chose 
for about an hour, then everyone regroups for a discussion summary by each lead 
followed a Q&A session for each topic.

I've been invited to attend the event and lead one of the discussions. My topic 
was "Interaction between design and engineering teams". Below you'll find my 
personal highlights.

UI performance
--------------

Facebook Home required a lot of layout optimizations. Their UI is text-heavy 
and had too many views for each text element. They've simplified their view 
hierarchy by using a single view with rich Spannable text i.e. applied text 
formatting in a single view. Laying out Spannables is not cheap though. They've 
moved the text measurements (text layouts + spannables) off the main thread.

I've noticed our RSS panels are suffering from a similar issue (i.e. scrolling 
is not very smooth). We might have to come up with a similar solution.

Building rich/playful experiences
---------------------------------

Very interesting discussion around next-generation UI frameworks. Some members 
of the Paper team at Facebook were in the group. They seem to be moving towards 
are more game engine like approach to UI development. Instead of simply working 
with views and containers (the usual paradigm in traditional UI toolkits), they 
define a scene with objects and the underlying rules that govern the 
interaction with and between the objects.

It seems they are going to release part of this work as an open source iOS 
library. Probably worth having a look once it gets released.

A/B testing and data-driven development
---------------------------------------

Data-driven development is clear practice in the great majority of the mobile 
teams that attended the event. Some companies (Yammer, Facebook, Twitter) never 
release a new feature without A/B testing it for a few weeks first. Engagement 
is the main factor for deciding about what features should stick. The 
definition of 'engagement' varies from company to company, of course.

Yammer, for example, has a big stats/analytics team that is responsible for 
building their engagement indexes. Among other things, this team figures out 
correlations between specific user behaviours and engagement. It's not always 
obvious. For instance, they found out that if a user opens the app at specific 
time of the day, he/she is more likely to engage in certain app features.

There was discussion around how to lower the risk of shipping experiments and 
how to manage them in the builds. Hiding experiments behing build flags seems 
to be a common practice. The team works on the feature in the master branch 
throughout the whole process and flip the flag once they are ready for A/B 
testing. There was no clear answer as to when to remove the experiment's code 
from the repo. Some teams remove them while still in beta, which sounds a bit 
too risky to me.

Facebook, Twitter, Yammer, and others have a lot of infrastructure to run the 
A/B tests only for specific subgroups/demographics in their user base.

This whole A/B testing discussion got me curious about how we could do some of 
these things while still accounting for the stability and privacy issues that 
this kind of practice entails. Desktop Firefox has a bit more flexibility than 
us as they can change pretty much anything in the UI via addons. In Fennec, we 
might have to actually change UI code in the release in order to run 
experiments. We should probably do a brainstorming session around A/B tests in 
Fennec. 

Design tools and prototyping
----------------------------

There seems to be a 'trend' towards using Quartz Composer and Facebook's 
Origami to prototype UIs, transitions, animations, etc. The learning curve is 
steep for designers. Twitter, Facebook and a couple startups said they are 
using it with good results.

That's all! Let me know if you have any questions.

Cheers,

--lucasr
_______________________________________________
mobile-firefox-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/mobile-firefox-dev

Reply via email to