This past Wednesday, I had the incredible opportunity to attend Facebook’s F8 developers conference in San Francisco along with about 1,700 other developers, designers and marketers.
A lot has happened since the last F8 conference in 2011:
- Facebook became a publicly traded company
- Facebook acquired several companies including WhatsApp, Parse, Oculus VR and Instagram
- Facebook celebrated their 10th year as an organization
This year the conference had a strong focus on apps, so there was a lot of material highly relevant to iOS developers. In this article, I’ll give you a recap of everything you need to know!
We’ll take a look at the Parse and Facebook announcements relevant to iOS developers, I’ll discuss the most interesting session I attended, and conclude with my thoughts on the overall experience of the conference.
Let’s dive right in!
Parse Announcements
The first set of announcements relate to Facebook’s back-end-as-a-service: Parse.
Parse is very near and dear to my heart. I built my very first app on Parse nearly two and a half years ago, and since then I’ve used their tools and services in various other apps I’ve worked on.
Their team is incredibly smart, and it’s clear they care about the developers using their product as they are constantly releasing new products and continually updating their existing set of apps.
It broke my heart when Facebook acquired Parse in 2013 because I thought Facebook intended to dismantle Parse and absorb their workforce and technologies. However, F8 showed Parse to be stronger than ever with Parse CEO Ilya Sukhar sharing the stage with Mark Zuckerberg himself.
Let’s take a look at four major announcements from Parse: AppLinks, Using Parse Offline, Free Tier Level, and Growth Analytics.
Note: If you are new to Parse, you might want to check out our Parse Tutorial to learn the basics first.
AppLinks
One of Parse’s most exciting announcements is their new open-source offering AppLinks. This lets developers deep link content between apps and quickly return to the user’s originating app.
This concept isn’t necessarily new; it’s been around for some time on both iOS and Android. To deep link in iOS, an app must register for a particular URL scheme such as youtube://
and then pass data to the target app using an instance of NSURL
.
However, this requires that both apps understand and agree upon the structure of the data in the URL, and that both apps implement URL routers. Furthermore, this doesn’t work cross-platform, and doesn’t have a central registry; App Links solves this problem.
Some organizations like Urx and DeepLink have already made forays into deep linking; some have even questioned why Parse would release this with WWDC just a few weeks away, as this quote from Twitter shows:
Announcing App Links a month before WWDC seems about as savvy as buying a new iPhone in August.- Rene Ritchie (@reneritchie) April 30, 2014
In any case, AppLinks looks like an awesome tool that I look forward to playing around with. To learn more about AppLinks, check out the official AppLinks site.
Using Parse Offline
In addition to AppLinks, Parse announced the addition of local storage to their SDK. Basically this allows you to choose to “pin” some of your objects to a local datastore, so that you can access them anytime (even if you lose an internet connection). Here’s an example snippet provided by Parse:
// Pin ParseQuery results List<ParseObject> objects = query.find(); // Online ParseQuery results ParseObject.pinAllInBackground(objects); // Query the Local Datastore ParseQuery<ParseObject> query = ParseQuery.get("Feed") .fromLocalDatastore() .whereEquals("starred", true) .findInBackground(new FindCallback() { public void done(List<ParseObject> objects, ParseException e) { // Update UI } }); |
Unfortunately this functionality is only available in the Android SDK at the moment (horrors!), but Parse assures us that it will be available for iOS very soon.
My biggest issue with Parse has always been their lack of support for local data storage. To their credit, Parse provides an amazing service that lets developers focus on their apps instead of spending time and effort building the backend to support their apps.
However, once you’ve released your minimum viable product and you’re ready to provide a richer experience to your users, adding offline support with Parse becomes difficult. Your choices are limited to relying on web caching, which is spotty at best, or writing your own sync engine, neither of which are terribly attractive.
I haven’t been able to find any implementation details for Local Data on either iOS or Android. I’m assuming it’s built on top of SQLite, but at this point I can’t be certain.
To learn more about Parse local storage, check out the official announcement.
Free Tier Level
Parse is also expanding their free tier level, offering up to 30 API requests per second, 20GB file storage, 1 million push notifications a month, and full access to Parse Analytics.
I guess being acquired by Facebook is beneficial for everyone! :]
To learn more about the Free Tier Level, check out Parse’s plans page.
Growth Analytics
Growth Analytics is the newest addition to Parse’s already robust analytics package. This allows you to measure active user, installations, retention data, and more with easy-to-read graphs. It looks like this feature is automatically turned on and might not even require the latest SDK.
Maintaining your user base is a tricky problem for app developers, so I’m glad to see that Parse is giving developers more power to monitor their own apps. It’s beginning to feel like you could ditch other analytics tools like Flurry if you’re already using Parse in your app.
To learn more about Growth Analytics and Parse Analytics in general, check out the Parse Analytics page.
Facebook Announcements
Parse wasn’t the only group with groundbreaking announcements at F8 — Facebook had their share of news for us as well.
In this section, I’ll highlight three key announcements: API versioning, Facebook Login updates, the Audience Network, and FbStart.
API Versioning
Mark Zuckerburg started his keynote with a promise to developers that Facebook is dedicated to providing a highly performant and stable platform to power apps across the world.
On top of that, he also gave some assurances to developers who are fearful of becoming too dependent on Facebook’s platform.
Facebook will now begin versioning their APIs; this means that the app you build against the Facebook API today won’t break when Facebook launches new tools or features. They also guarantee two years of support and maintenance for all of their APIs.
If that weren’t enough, Facebook is now promising to fix any critical bugs in their APIs within 48 hours.
I hope that Facebook can follow through on these lofty goals, because I would love to integrate Facebook into more of my apps without the constant fear that each Facebook update will render my apps useless.
To learn more about API versioning, check out Facebook’s official documentation on the subject.
Facebook Login Updates
Zuckerberg admitted that users tend to fear the “Login with Facebook” button; they want more control over access permissions to ensure their personal data is kept safe. To this end, Facebook is introducing two important updates to Facebook Login.
First, the mechanism by which users give apps permission to access their personal data is changing. Previously, apps would ask for permission, in a step-by-step fashion, to use different Facebook features such as posting on your behalf or accessing your friends list.
Facebook’s modified scheme now displays a more detailed list of features the app would like to access, along with giving users the ability to toggle access to those features on and off as they please.
Second, Facebook announced a brand new feature called Anonymous Login. Instead of giving the app access to your Facebook account on login, you can now log into an app anonymously using Facebook.
This is a huge improvement over requiring Facebook, Twitter, or an email address to login and start using an app. Now you can log into an app anonymously and give it a whirl before you make the decision to surrender access to all of your data. Kudos, Facebook!
To learn more about the Facebook Login updates, check out Facebook’s announcement post.
Audience Network
Facebook is both celebrated and condemned for serving as an ad platform.
It’s a familiar scenario: each time you log in, your poor news feed ends up spattered with ads all over the place. Facebook admits that irrelevant ads create a poor user experience, so they’ve been working on some advanced tools to help make viewing ads a bit more pleasant.
At F8 they announced a new SDK called the Audience Network that allows you to integrate highly tailored ads into your apps. The goal is to allow advertisers to target people with highly customized interests, such as “Movie Lovers with iPhones”. The result is two-fold: more clicks for advertisers and a better user experience for consumers.
You can either use the Audience Network as a publisher (integrating the SDK into your apps to earn money), or as an advertiser (placing ads inside other apps).
I really hope Audience Networks lives up to its promise, because I haven’t yet found a way to make money with my own movie app, and this feature might be just the magic my app needs!
To gain a little more insight into the Facebook ad network, I attended a session that discussed increasing user engagement with your app by creating ads on Facebook that have deep links to content within your app.
It turns out it’s quite a simple process: you add the Facebook Ads SDK to your app, set up an ad campaign with specific content targeted to a group of Facebook users, and (hopefully!) drive users to your app. You can even target the subset of Facebook users that have installed your app. This is a huge opportunity for developers who want to increase user retention!
To learn more about the Audience Network or apply to join its beta, visit the official Facebook page.
FbStart
FbStart is a new program to help small startups grow their businesses. You can apply to access to tons of free tools and services, such as Parse Credit, an Adobe Creative Cloud subscription, customer service and prototyping tools, and more.
There are two tracks to the program: a bootstrap track (for those just starting out) and an accelerate track (for those trying to scale their apps to the next level).
It appears the program hasn’t launched yet, but if this sounds like something that’s interesting you can sign up to get notified when it launches here.
Making Paper
My favorite session of F8 featured a few of the team members from Facebook’s latest app, Paper.
Part of the session focused on the team’s struggles with performance issues resulting from the sheer amount of data being dynamically updated and displayed on the screen while still supporting beautiful and complex animations.
Their first step to address these issues was to offload some work to a background thread, which is usually the first thing developers do when they hit UI performance issues.
However, the Paper team took it a step further and used background threads for something I didn’t even think was possible: assembling and drawing the UI.
Most seasoned iOS developers know that Core Animation and UIKit are considered “hands off” when working on background threads. The Paper team created what I term a “virtual UIKit” that assembles and draws the interface in the background to use as the content to CALayer
.
It’s a simple solution, in theory, but I imagine it’s several thousand lines of code that took a talented team of engineers some time to make it work correctly.
An open source solution to the above issue is apparently in the works, and that’s on top of all the other open source tools that came out of Paper, including Pop, Tweaks, and Origami.
You can join the Facebook group of the Paper engineering team just as I did, where you can ask questions about their tools and processes and see what other goodies they’re working on.
Overall Experience
It was obvious that Facebook put a lot of effort into organizing this year’s F8 conference. There were a ton of amazing displays including an Oculus VR experience and a huge centerpiece with dimensional projections, shown below:
Facebook even created an F8 app so attendees could get some basic information on the conference and build their own session schedule. Once you created your personal schedule, the app would send you a push notification reminder when a session was about to begin.
The conference lanyard had some sort of embedded RFID to scan people into rooms; I’m assuming this was for the purpose of getting feedback from attendees.
All in all, F8 used technology in some really cool ways.
I have to send out a huge thanks to Ashley Smith who pieced a lot of the conference together!
Closing Thoughts
From the keynote to the swag bag, from Diplo to meeting the Paper team, I had a blast at this year’s F8.
I’m really excited about the commitments Facebook has made to the developer community, especially the overarching focus on mobile integration. Thankfully, Parse is continuing to innovate and grow, and it doesn’t look like they’ll be slowing down anytime soon.
The next F8 conference will take place March 25th, 2015 in San Francisco. I’d definitely recommend that anyone who is considering working with any part of Facebook in their apps should make it a point to attend.
I now have a new tools I need to play around with, new people I can call friends…and a lot of sleep to catch up on. :] I hope you enjoyed this recap, and I hope to see you at the next F8!
What Every iOS Developer Needs to Know about Facebook’s F8 Developer Conference is a post from: Ray Wenderlich
The post What Every iOS Developer Needs to Know about Facebook’s F8 Developer Conference appeared first on Ray Wenderlich.