-
Notifications
You must be signed in to change notification settings - Fork 2
Technologies utilisées
Pour l'élaboration de notre application, nous avons choisi Kotlin. Kotlin est un language de programmation créé par JetBrains et dédié au développement d'application android.
- Kotlin est un langage de programmation à typage statique. Cela signifie que le type de chaque variable et expression est connu au moment de la compilation. L’avantage du typage statique est que le compilateur peut valider les appels de méthodes et l’accès aux propriétés sur les objets lors de la compilation, et éviter ainsi de nombreux bugs anodins qui risqueraient autrement de se produire au moment de l’exécution.
- Ce language est de plus en plus populaire dans le monde de la programmation, nous trouvions donc intéressent de se pencher dessus.
- Kotlin est un language relativement nouveau (première version sortie en 2011). Il est uniquement conçu pour le développement d'application android et est donc totalement optimisé pour cette tâche.
- Kotlin est entièrement interopérable avec Java, on peut facilement accéder au code Java à partir de Kotlin et inversement.
- Kotlin est sécurisé. Il évite les exceptions NullPointerExceptions les plus redoutées et gênantes en prenant en charge la nullabilité dans le cadre de son système de types.
- Le langage de programmation Kotlin, y compris le compilateur, les bibliothèques et tous les outils, sont entièrement gratuits et open source.
Java est un language lourd et verbeux qui n'est pas spécialement conçu pour réaliser des applications mobiles.
Kotlin est lui conçu uniquement dans ce but et sa programmation est moins lourde et avec une plus grande simplicité syntaxique. Il est performant, stable et flexible.
De plus, Kotlin est concis. Cela réduit considérablement la quantité de code passe-partout que l'on peut écrire tout le temps dans d’autres langages orientés objets comme Java.
C'est aussi entre autre le language de programmation recommandée par Google pour du développement mobile.
Exemple d'application sous kotlin : Netflix, Trello, Twitter, Reddit..
Pour programmer, nous utilisons l'environnement de développement Android Studio car il est très complet, propose beaucoup d'outils facilitant le développement et est totalement dédié aux développements Android.
Etant également un éditeur de code Android très répandu, une multitude de documentations est trouvable sur internet et sur youtube, nous facilitant ainsi l'apprentissage de ce nouveau langage.
L'un des outils les plus pratiques sur Android Studio est l'aspect visuel des fichiers xml, en effet voici l'aperçu de ces fichiers dans Android Studio :

En déplaçant les différents composants de la page, des nouvelles contraintes vont apparaitre en direct dans le code de ces composants, ce qui est très pratique pour avoir une idée claire et rapide de l'aperçu global de la page.
| Attributs | Java | Kotlin | React |
|---|---|---|---|
| Performances | Hautes | Très Haute | Haute |
| Supporte Android3 | En partie | Complètement | Pas du tout |
| Qualité du code | Lourd | Optimisé | Optimisé |
| Sécurité des applications | Bonne | Excellente | Excellente |
| Ouverture vers le marché | Vieillissant | Technologie montante | Surtout orienté Web |
| Orienté Object | Peut le faire | Langage purement OO | Peut le faire |
| Meilleur cas d'utilisation | Application à modifier | Application Android Pure | Application + Interface Web |
Pour stocker nos données, nous avons décidé d'utiliser Firebase. Firebase est un ensemble de services d'hébergement pour n'importe quel type d'application. Pour ce qui nous intéresse ici, il propose l'hébergement en temps réel de base de données en NoSQL.
- Il propose des bases de données fiables et étendues. En effet Firebase travaille sous l’aile de Google, c’est pourquoi il fournit de puissantes bases de données pour le développement d’applications web et mobiles.
- Stocké dans le cloud donc facilement accessible partout.
- Les différents type de base de données dans Firebase rend son utilisation disponible à de multiple domaines que ce soit :
- Pour un stockage en temps réel grâce au Realtime Database,
- Pour un stockage plus classique mais tout aussi fonctionnel avec Firestore Database,
- Pour un stockage d'images avec les Storages
Tous ces différents type de base de données sont, bien évidemment, soumis à la sécurité fiable proposée par Firebase.