diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 23a89bbb6ca829a47211d20c8b11960088ea4950..b617266ab6a61e3df316b4496b5649099b08a491 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -5,6 +5,7 @@
     <option name="linkedExternalProjectsSettings">
       <GradleProjectSettings>
         <option name="testRunner" value="PLATFORM" />
+        <option name="disableWrapperSourceDistributionNotification" value="true" />
         <option name="distributionType" value="DEFAULT_WRAPPED" />
         <option name="externalProjectPath" value="$PROJECT_DIR$" />
         <option name="gradleJvm" value="1.8" />
diff --git a/app/build.gradle b/app/build.gradle
index e54929db1dfb64705c6fd7dcee8da1e326aedc79..dacfffbdac50de8adb948c4e6689af532fa8a3f8 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -1,6 +1,7 @@
 plugins {
     id 'com.android.application'
     id 'kotlin-android'
+    id 'org.jetbrains.kotlin.plugin.serialization' version '1.3.72' // vérifier que votre version de kotlin est la même
 }
 
 android {
@@ -28,7 +29,7 @@ android {
         targetCompatibility JavaVersion.VERSION_1_8
     }
     kotlinOptions {
-        jvmTarget = '1.8'
+        jvmTarget = JavaVersion.VERSION_1_8.toString()
     }
 }
 
@@ -47,4 +48,26 @@ dependencies {
     androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
     androidTestImplementation 'androidx.test.ext:junit:1.1.1'
     androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
+    // AndroidX - KTX
+    implementation 'androidx.preference:preference-ktx:1.1.1'
+    implementation 'androidx.activity:activity-ktx:1.2.0-beta01'
+    implementation 'androidx.fragment:fragment-ktx:1.3.0-beta01'
+    implementation 'androidx.core:core-ktx:1.3.2'
+
+    // Retrofit
+    implementation 'com.squareup.retrofit2:retrofit:2.9.0'
+    implementation 'com.squareup.okhttp3:logging-interceptor:4.9.0'
+
+    // KotlinX Serialization
+    implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.0.1"
+    implementation 'com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:0.8.0'
+
+    // Coroutines
+    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.9"
+    implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.9"
+
+    // Lifecycle
+    implementation "androidx.lifecycle:lifecycle-extensions:2.2.0"
+    implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.2.0"
+    implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0"
 }
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 8f40618e6b0a9b18cace0f38ca53d55e9ec41c06..9e0e412e2919ca1228258d45c6b8fda38472dcc9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="com.clemhaowen.dm_td2">
-
+    <uses-permission android:name="android.permission.INTERNET" />
     <application
         android:allowBackup="true"
         android:icon="@mipmap/ic_launcher"
diff --git a/app/src/main/java/com/clemhaowen/dm_td2/network/Api.kt b/app/src/main/java/com/clemhaowen/dm_td2/network/Api.kt
new file mode 100644
index 0000000000000000000000000000000000000000..cfb6b24553d3a9abeafcb1c752e53e493115bfce
--- /dev/null
+++ b/app/src/main/java/com/clemhaowen/dm_td2/network/Api.kt
@@ -0,0 +1,47 @@
+package com.clemhaowen.dm_td2.network
+
+import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory
+import kotlinx.serialization.json.Json
+import okhttp3.MediaType.Companion.toMediaType
+import okhttp3.OkHttpClient
+import retrofit2.Retrofit
+
+object Api {
+    // constantes qui serviront à faire les requêtes
+    private const val BASE_URL = "https://android-tasks-api.herokuapp.com/api/"
+    private const val TOKEN = "eyJhbGciOiJIUzI1NiJ9.eyJ1c2VyX2lkIjoyOTAsImV4cCI6MTYzODg4NTIyMX0.NSGoVvI5U18v4xMHB-_SDFArkT-Exz8S-aXp1ptqNb4"
+
+    // on construit une instance de parseur de JSON:
+    private val jsonSerializer = Json {
+        ignoreUnknownKeys = true
+        coerceInputValues = true
+    }
+
+    // instance de convertisseur qui parse le JSON renvoyé par le serveur:
+    private val converterFactory =
+        jsonSerializer.asConverterFactory("application/json".toMediaType())
+
+    // client HTTP
+    private val okHttpClient by lazy {
+        OkHttpClient.Builder()
+            .addInterceptor { chain ->
+                // intercepteur qui ajoute le `header` d'authentification avec votre token:
+                val newRequest = chain.request().newBuilder()
+                    .addHeader("Authorization", "Bearer $TOKEN")
+                    .build()
+                chain.proceed(newRequest)
+            }
+            .build()
+    }
+
+    // permettra d'implémenter les services que nous allons créer:
+    private val retrofit = Retrofit.Builder()
+        .baseUrl(BASE_URL)
+        .client(okHttpClient)
+        .addConverterFactory(converterFactory)
+        .build()
+
+    val userService: UserService by lazy {
+        retrofit.create(UserService::class.java)
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/clemhaowen/dm_td2/network/UserInfo.kt b/app/src/main/java/com/clemhaowen/dm_td2/network/UserInfo.kt
new file mode 100644
index 0000000000000000000000000000000000000000..aa416ff46088ea288a31914e0a4120faa68d0886
--- /dev/null
+++ b/app/src/main/java/com/clemhaowen/dm_td2/network/UserInfo.kt
@@ -0,0 +1,14 @@
+package com.clemhaowen.dm_td2.network
+
+import kotlinx.serialization.SerialName
+import kotlinx.serialization.Serializable
+
+@Serializable
+data class UserInfo (
+    @SerialName("email")
+    val email: String,
+    @SerialName("firstname")
+    val firstName: String,
+    @SerialName("lastname")
+    val lastName: String
+)
\ No newline at end of file
diff --git a/app/src/main/java/com/clemhaowen/dm_td2/network/UserService.kt b/app/src/main/java/com/clemhaowen/dm_td2/network/UserService.kt
new file mode 100644
index 0000000000000000000000000000000000000000..df3803f8ca9eec7f0189d23a2426100e400c7e3a
--- /dev/null
+++ b/app/src/main/java/com/clemhaowen/dm_td2/network/UserService.kt
@@ -0,0 +1,9 @@
+package com.clemhaowen.dm_td2.network
+
+import retrofit2.Response
+import retrofit2.http.GET
+
+interface UserService {
+    @GET("users/info")
+    suspend fun getInfo(): Response<UserInfo>
+}
\ No newline at end of file