Build a custom player on top of AVFoundation
Jan 13, 2021, 7:00 PM
When building an iOS/tvOS application with video playback, the best player solution can be to build a custom one to match the exact application requirements. This article is a technical overview of fundamental points to build a custom...
UIKit rendering - Tracking a layout phase
Jan 3, 2021, 7:00 PM
On iOS, the layout of a view hierarchy is expressed dynamically using the Auto Layout constraint system. Thus a view hierarchy can adapt itself to all the possible device screens sold by Apple. Auto Layout takes care to translate all the...
UIKit rendering - CATransaction
Jan 3, 2021, 7:00 PM
On the previous post, we discovered a mysterious CATransaction.commit at the bottom of our interrupted layout phase stack. Let’s find out its role in the layout process.
UIKit rendering - The run loop
Jan 3, 2021, 7:00 PM
On the previous post, we discovered that the commit of the current implicit transaction is responsible of our initial interrupted layout phase. So we only have one question left: when does it take place?
Android, from LiveData to StateFlow
Dec 6, 2020, 7:00 PM
The following article will detail how we can replace the presentation layer’s livedatas with stateFlows and some caveats we encountered along the way. On the 30th of October, kotlinx.coroutines 1.4.0 was released, promoting StateFlow to...
Video playback on iOS & tvOS
Nov 26, 2020, 7:00 PM
When developping an application on iOS and/or tvOS, video playback can be a strategic or accessory component. There are different solutions available on iOS/tvOS, each of them with pros and cons, depending on project requirements. The...
Understanding Copy on Write
Oct 29, 2020, 8:00 PM
In a previous article we saw the difference between reference and value types in Swift. Let’s look at the memory management a bit closer!
Implementing fastlane in 50 lines of code
Oct 18, 2020, 8:00 PM
Fastlane is a tool used by almost every mobile developer. The main advantages are its simplicity, the time it saves us and the fact that it’s built on top of Ruby. But we tend to take this tool for granted. Today I want to present how...
Types of types
Oct 11, 2020, 8:00 PM
Let’s talk about types and memory!
Sep 8, 2020, 8:00 PM
Dependencies are at the core of programming. In iOS, we often use Cocoapods to manage dependencies in our projects. But if we are not careful, we can add a dependency that is not free to use, and expose our company to legal issues later....
Jun 8, 2020, 8:00 PM
As Covid-19 started to spread, we tried to find a way to help as developers, with the tools at our disposal. One idea was to use out of the box Visit Monitoring service proposed by Apple to match locations with infected people. The idea at...
Approaches to Type Erasure in Swift
Jun 2, 2020, 8:00 PM
Protocols bring a lot of power and flexibility to our code. Some might say that this is the most important feature of Swift, especially since Apple described it as “Protocol oriented programming language”. But every once in a while, things...
UIAlertController with Function Builders
Mar 9, 2020, 8:00 PM
I always found the UIAlertController API too verbose. You first have to create an instance of UIAlertController, then create multiple instances of UIAlertAction and finally add the actions to the controller.
An overview of reactive programming with Android
Oct 20, 2019, 8:00 PM
The Android platform is asynchronous by nature. And so are android apps. Information is flowing asynchronously through your app, from multiple sources. The system will trigger your broadcast receivers, forward intents, and recreate your UI...
How to make the best of protocol with associated types using type erasure
May 14, 2019, 8:00 PM
Protocols with associated type, first let’s see what Apple says about them:
Why you should use TDD to build your app
Feb 7, 2019, 7:00 PM
To better code requires to be rigorous and methodical in testing. But it’s not easy to pick a test methodology. You may also ask yourself whether to write tests before or after development. TDD is a response to this questions. Discover an...
How to leverage HTTP cache in iOS
Jan 21, 2019, 7:00 PM
One of the most difficult subject in programming is caching because there is no silver bullet to the problem and each solution comes with compromises.
Augment your Ruby back end with Elixir
Dec 20, 2018, 7:00 PM
Ruby is a wonderful language to develop back ends. However concurrency is not its strength. We present here our experience with Elixir, aiming at making up for this weakness, within our specifications tool Pericles.