Maxime Epain

iOS Developer

About me

I'm an iOS developer based in Berlin.

I like to build beautiful and efficient UI components as well as clean and reliable architectures.

I use open source tools in my daily work and I enjoy contributing back to the community. In the following portfolio you will find several projects I've worked on.


Mapstr lets you keep track of all your favorite places around the world, tag them, and share them with who you want! To remember your best spots (restaurants, bars, museums…), your friends recommendations, and to plan your next trip.


ClusterKit is an elegant and efficient clustering controller for maps. Its flexible architecture make it very customizable, you can use your own algorithm and even your own map provider.


  • Native supports of MapKit, GoogleMaps and Mapbox.
  • Comes with 2 clustering algorithms, a Grid Based Algorithm and a Non Hierarchical Distance Based Algorithm.
  • Annotations are stored in a QuadTree for efficient region queries.
  • Cluster center can be switched to Centroid, Nearest Centroid, Bottom.
  • Handles pin selection as well as drag and dropping.
  • Written in Objective-C with full Swift interop support.


Inspired by Segmentio & HMSegmentedPager, MXSegmentedControl is an easy to integrate and very customizable control. It dynamically computes the segments width to fit or fill its content, it can also track a UIScrollView content offset to change segment.


MXParallaxBackground is a background class for UIScrolView. It allows you to add multiple parallax backgrounds with different intensity and direction.


MXParallaxHeader is a nice header class for UIScrollView.

In addition, This project includes 2 other classes: MXScrollView is a UIScrollView subclass with the ability to hook the vertical scroll from its subviews, this can be used to add a parallax header to complex view hierachy. Moreover, MXScrollViewController allows you to add a MXParallaxHeader to any kind of UIViewController.


A simple and very customizable paging controller with a parallax header. The view is basically a horizontal swipeable tab view with a stretchable header.

MXSegmentedPager combines 3 different projects:


An Objective-C interface for Discogs API v2.0 (a RESTful API to Discogs data).

The library handles the authentication process as well as retreiving data like releases, masters, artists and labels. By using Discogs API, your application can also manage User Collections and Wantlists.


POLocalizedString is a gettext translations framework in substitution of Apple translations system.


  • Supports mo and po format.
  • Supports plurals forms.
  • Supports multiple Bundles.

Web service Kit

A collection of tools to quickly build a mobile web service client.

The kit is composed of 3 main projects:

  • max-ws: Mobile API for XML Web Services. WSDL to IOS Objective-C and Android Java Code Generator based on JAX-WS.
  • PicoKit: A light Web service client framework targeting iOS platform.
  • NanoKit: A light Web service client framework targeting Android platform.