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

