Image for post
Image for post

As a Staff Engineer at OpenClassrooms, our iOS app crash rate is a topic I care a lot about. I am proud to see it going down, and frustrated when it doesn’t. About 2 years ago, we released an offline mode for the OpenClassrooms app, allowing our students to download our courses to then be able to watch and read them without having an internet connection. A great feature, they loved it! A complex one too, our crash rate took a serious hit… It wasn’t disastrous from a business perspective or anything like that, but sure it was from mine. …


Image for post
Image for post

Unit testing is all about testing individual units of code in an isolated context. It relies on mocking and injecting their dependencies. It’s quite simple given the right code architecture (see Single Responsibility and Dependency Inversion principles for more), however it can become slightly harder when the dependencies are third-party frameworks. This is especially true in Swift where many of them are static, final or have instantiation restrictions. They are unfriendly to unit testing because they can’t easily be injected nor mocked. …


As a tech oriented company building its own digital platforms, we at OpenClassrooms need to carefully make choices when it comes to building an app. When we built our iOS app, we decided early on that every visual component would be named semantically. I very much hope that you want to learn more about semantic naming because I brought a special guest who knows better than anyone else what it’s like to be named semantically.

Image for post
Image for post
A button, our special guest

Don’t be shy, talk to him. I assure you he’s a nice component, one of our first and most loyal! …


As a tech oriented company building its own digital platforms, we at OpenClassrooms need to carefully make choices when it comes to building a new app. Architecture choice for example, is critical. For years, the website has been developed using the Clean Architecture with great success. So when we decided to make an iOS app, we naturally started its implementation using the same practices as its web brother and notably went for the Clean Architecture.

Let’s talk VIPER

Actually, we won’t! VIPER is a proven working implementation of the Clean Architecture on iOS and we were well aware of it, but we decided to implement our own version of the Clean Architecture, which by the way, doesn’t have any fancy name. …

About

Cyril Le Pottier

Staff iOS developer at OpenClassrooms

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store