In this article you will learn how to setup an HTTPS server with Vapor. The principal motivations for HTTPS are authentication of the accessed website, and protection of the privacy and integrity of the exchanged data while in transit. It protects against man-in-the-middle attacks, and the bidirectional encryption of communications between a client and server protects the communications against eavesdropping and tampering.

HTTPS is a secure protocol


The next section will assume that you already configure a server with Vapor 4.0. In this example, Vapor is linked to a MongoDB database.

Frameit is a powerful tool to publish elegant screenshots on the Apple Store or Google Play. I often face problems to create a screenshot without title section. This article presents a trick to bypass this issue.

Create keyword and title

This is the classical way to use Fastlane Frameit. This case it will produce keyword at top and title below. I set the keyword in red and the title in blue to understand easily.

In this story we will learn how to install Vapor 4.0 in the OVH Public Cloud. Vapor is a server-side Swift web framework. OVH is a French cloud computing company.

We will set up the following configuration :

  • Ubuntu 20.04
  • Vapor 4.0
  • Swift 5.2.5
  • MongoDB
  • Vapor 4.0 on Ubuntu 20.04 required a swift version >= 5.2.4

Create the Virtual Machine

Create an account on OVHCloud, then go to your Public Cloud section and create a new instance.

  1. Select a OVH sandbox.
  2. Select Ubuntu 20.04
  3. Create ssh key.
  4. Choose your billing period.
  5. Connect to you Virtual machine with ssh.

This article focuses on how to build CRUD operations on VAPOR 4 with a MongoDB database. You will get source code to build a simple Vapor test project.

I am new to Vapor 4 and MongoDB. I come from iOS development, iOS and Vapor share the same programming language : Swift. For me, it’s easier to create a mobile application and backend server with the same programming language. I don’t have to learn a new programming language.

I also start to develop an application in Kotlin language. Kotlin is similar to Swift. …

Testing the integration of Google Play Billing system in your Android application is important. As an iOS developper, I know that this feature can be tricky to test. What I really like on Android development is that we can test the Google Play Billing system on emulator. Before setting it up, there are some pitfalls to avoid. You can find several documentation about the prerequisites, but not much about how to configure your simulator (Virtual Device).


  • Add the billing permission in the Android.manifest (in your source code)
<uses-permission android:name="" />
  • Upload a release on your Google Play Console. …

ARKit extends the application use cases. In a recent one, we leverage the power of a cutting-edge technology provided by ARKit3. The human motion capture. The goal of this development is to detect good/bad posture at work. We will mainly focus on the angle between the back and the thighs.

Motion capture on iOS
Motion capture on iOS
Motion capture on iOS

Posture at work

There are several studies about it, and we will start from this BBC article. It’s the this study that convince me the most.

Do not take this article as a state of art about posture at work. From what I found, there are some articles that says that the best…

In this story, we will discuss the workflow from taking picture, to the persistence of picture on the file system.

As a developer we sometime have to produce pictures and export them. After in the workflow, we import them… and we lose the orientation.

When you loose the orientation.

Each section will be a use case. The use case list match the main device orientation state that corresponds to how the user handles the device (iPad, or iPhone).

It’s important to make the difference between :

When you create an application, you have to choose the minimum deployment target. By selecting this option, you will directly split the Apple device owners in 2 categories : The one who can install your app, and the one who cannot.

iOS deployment target

Which iOS version should I support ?

From this article, we can roughly say that :

  • 50% of the devices are running on the last iOS version.
  • 90% of the devices are running on the 2 last iOS versions.
  • 10% of the devices are running on previous versions.

This figures are a good start to decide the deployment target from a market point of view.


In a recent use case, I have implemented an original use case that leverages the power of iOS ARKit. In this use case, we use the iPhone to find the 3d box that will best fit a cloud of 3D points. The idea is to minimize the 3D volume. This article will focus on the first part, where we implement the algorithm that compute the 2D MBR (Miminum Boxing Rectangle). In the following picture the representation of the 2D MBR is the green rectangle.

The final 3D MBR that fits the green dot cloud points.

1- Minimal Convex Hull

This is a common problem that is studied since the 70’s. I implement the Andrew’s monotone…

Sur l’AppStore, une multitude de jeux font chaque jour leur apparition. Ces applications sont basées sur les moteurs 3D. Le framework ARKit a le vent en poupe. Il est disponible depuis 2017, et il est fortement dépendant de SceneKit. ARKit permet le développement d’applications de réalité augmenté sur iOS. Il est donc important de bien comprendre SceneKit avant d’utiliser ARKit.

Il est tentant de démarrer avec cette approche :

Je vais faire quelques tutos, et rapidement je saurais maîtriser SceneKit

Mais très vite, on se retrouve confronté à des manipulations de repère 3D, et on passe plusieurs heures à s’arracher…

Emmanuel Orvain

French iOS / Android experimented developper from Toulouse in south of France.

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