Published inProAndroidDevSQLite: when Insert means DeleteModernizing some of SoundCloud’s Android app storage layers, I’ve been especially invested in databases, and have been migrating a lot of…Jun 30, 20201Jun 30, 20201
FloorPlan: Visualize database evolutionEasier peer reviews and documentation-as-codeJun 16, 2020Jun 16, 2020
Be a good client: request prioritizationWhen communicating to a backend, clients can expose information about their requests, to allow for the server to qualify and prioritize…Mar 23, 2020Mar 23, 2020
Be a good client: retriesWhen a request to a server fails, it is very tempting to issue another try to the same route. How often is this a good idea? Never.Mar 11, 20201Mar 11, 20201
Be a good client: jitterPeriodically triggered jobs are common in modern applications, but handling the computational load can get tricky. What can we do?Mar 4, 2020Mar 4, 2020
Media Projection and Audio CaptureHow does audio capturing works on Android 10 and how can we verify our apps react correctly when being targeted by that new API?Oct 30, 20191Oct 30, 20191
Native Code and Debug SymbolsAs more applications include native code, understanding how symbolication works to get actionable information from stackdumps is critical.Apr 23, 2019Apr 23, 2019
Your app and low-latency audio outputWhen building audio software, we must provide the best possible experience to users, and optimising latency is key for success.Jun 18, 20182Jun 18, 20182
Extending the Web with Android Instant AppsDuring I/O 2016, Google announced it was developing a new way to bridge the gap between the web and native apps, by making them as easy to…May 18, 2017May 18, 2017
Published inAndroid Dev BRContinuous Deployment no Android: como usar a Publishing API para automatizar seu releaseApesar de uma prática já bem estabelecida dos círculos de desenvolvimento de software, principalmente do lado back-end, a Entrega Contínua…May 10, 2016May 10, 2016