Facebook For Developers - 29th September 2016, Dubai

Hi there,

Here are couple of notes for the even I attended. We had a beautiful session starting from 9.50 am talking about how to monetize and distribute the facebook apps and some open source tools. Afterwards, there was a drill down into some technical topics explored in details in sort of a workshop.

Interesting Technologies:

  • Facebook Analytics for App - an free tool to track and analyze the behavior of the users within the facebook app.
    Opposed to cookie tracking / session tracking analytics to profile and analyze the user data - or guess his profile information based on connection, location and other parameters, facebook analytics will give you a very deep insights into use profile - based on the facebook profile - which will help you to clearly segment and understand your users.
  • FBStart (fbstart.com) - facebook campaign which targets to help the startups in 3 main areas:
    • tools - offering some tech tools for a certain limit value, which would help launch your startup
    • mentorship - help and consultation to build a succesful project
    • community - community of other enthusiasts and developers who joined fbstart initiative - sharing ideas and helping each other

Also today, I discovered that facebook has quite a huge number of open source projects. I have heard about several ones, however I had a more comprehensive overview about all other technologies that facebook open sourced:

  • Augmented Traffic Control
    • should be installed in between the network source and the target device
    • simulation of certain network conditions to determine the app usability and performance
  • Network Connection Class
  • GraphQL - this is where the data is stored - allows execution of very specific requests and returning very specific responses, which will lead to faster apps, less network consumption
    • Github has declared using GraphQL for some of their APIs.
    • New GraphQL alternatives have emerged afterwards in Ruby, Python, etc...
  • Redex - if you're building an android app, you should probably consider optimizing your apk through Redex, which will produce a better and more optimized version of the dex code.
  • FlowType / FBInfer - may help you to write some javascript, sort of code assist tool - which can warn you about potential memory leaks, declaration typos / misuse of variables.
  • Nuclide (nuclide.io) - can be installed on top of Atom to make React  / React Native development easier (code assist and syntax checks to the Atom editor)
  • Device Year Class
    • is an Android Library
    • analyzes an Android device's specifications and calculates which year the device would be considered "high end”
    • based on the devices "high end" year you can decide to optimize the CPU, memory or network consumption for a better and smoother experience of your app.
    • https://github.com/facebook/device-year-class
  • React
    • tool with which changed the way Web UI are generated and can be rendered
    • code is written in JavaScript
    • UI = Render(state), where state is UI values at specific point in time and render is a function, which manipulates the appearance of certain components based on the state
    • makes UI quite powerful and fast, as the rendering affects only specific component of the page where the change took place
  • React Native
    • tool with which you can produce native apps using javascript code
    • code is written in JavaScript
    • native code chunks can be used within the react native app to futher customise the "common code" part for a better and more native UX
    • https://facebook.github.io/react-native

You can find more information about facebook open source projects:

https://code.facebook.com/projects

Facts:

  • Android is the leading player in the emerging markets - if your app is targeting emerging markets, you'd better put some heavy focus on the android app development
  • People using iPhones tend to have better network connection conditions, which makes the app testing more straightforward:
    • Alternatively, android apps should be heavily tested under more severe conditions to offer optimal UX.
  • According to statistics, in 2015, 2 billion people cannot afford a 500 MB data packages - network consumption is still a challenge and should be considered carefully when building apps