Category Archives: Android

Reading – Kotlin for Android Developeprs

Just read the Kotlin book after listening to the Fragmented podcast with JetBrain engineer which mentioned in the previous post (Watching – Mouseless driven development).

I heard of the language several times, but didn’t have chance to look at it. This time, I made up mind to investigate more.

The Getting Started with Kotlin in 2 minutes is a good introductory video for understanding its syntax and behaviors. Kotlin works on JVM and its concept and syntax are mainly coming from Java, but also good parts of Scala or Groovy is incorporated and making it modern language.

Scala has powerful extension of type-safety and functional-programming, but it’s a little too complex. Groovy has concise syntax and good productivity on small programs, but it’s a little too loose to cause dynamic exceptions like NullPointerException. Kotlin seems going between the two, and if the balance is good, it may be worthwhile to dig in deeper.

How Facebook Tests Facebook on Android @ YouTube

GTAC 2013 Day 1 Closing Keynote: How Facebook Tests Facebook on Android

This session talks about the testing in Facebook. This kind of insights-talk from the actual engineers are pretty much useful. I don’t have much experience on the mobile development, but testing framework would be crutial factor for verifying on various devices. I didn’t know the Robolectric, and it seems interesting testing library. When I played around Ruboto, slow testing was a little tough.

At facebook,

  • Team is structured on features, rather than platforms like android or iOS for maintaining consistency.
  • Basic structure of git is “master” and “stable” branches. The master is the latest, and the stable is the one test-passing is confirmed.
  • Own building system called BUCK is used. It supports parallel and incremental building. If you want to encourage developer to use the system, it needs to be fast, ideally instant.
  • There’s no testing-specific department. It works on “some people are passionate about testing and some people are passionate about database” type of roles.
  • Roboelectric and UI Automator are used for android testing.