Faut-il passer à SwiftUI ?

iOS15 est sorti récemment et SwiftUI ne cesse de s'améliorer, aujourd'hui, nous allons essayer de vous convaincre qu'il est temps de passer à SwiftUI

Faut-il passer à SwiftUI ?
Photo by Maxwell Nelson / Unsplash

Déjà qu’est ce que SwiftUI ? 🤔

SwiftUI est un framework proposé par Apple pour permettre aux développeurs de concevoir des vues plus facilement pour les applications iOS, macOS et watchOS.

Chez Async, on est passé sur SwiftUI pour développer notre dernière application, et pour le moment.. aucun regret ! 🤩

Alors pour vous convaincre que vous devez faire la passerelle, voici 5 raisons pour lesquelles il est temps de passer à SwiftUI

5 raisons de passer à SwiftUI 🏁


1. (Presque) tout est plus simple avec SwiftUI 😎

Apple a tout donné avec SwiftUI pour faciliter la vie aux développeurs. Pour illustrer cette simplicité, voici une petit comparaison pour créer une vue Team qui affiche une liste en UIKit vs en SwiftUI

class TeamViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
    
    let teamMembers: [String] = ["Anthony", "Damien", "Killian"]
    
    let cellReuseIdentifier = "cell"
    
    @IBOutlet var tableView: UITableView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        self.tableView.register(UITableViewCell.self, forCellReuseIdentifier: cellReuseIdentifier)
        
        tableView.delegate = self
        tableView.dataSource = self
    }
    
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return self.compliments.count
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        
        let cell:UITableViewCell = self.tableView.dequeueReusableCell(withIdentifier: cellReuseIdentifier) as UITableViewCell!
        cell.textLabel?.text = self.compliments[indexPath.row]
        
        return cell
    }
}

Et maintenant.. la même chose en SwiftUI :

struct Team: View {
    let teamMembers: [String] = ["Anthony", "Damien", "Killian"]
    
    var body: some View {
        List(teamMembers, id: \.self) { teamMember in
            Text(teamMember)
        }
    }
}

Et voilà.. Plus simple, plus lisible, voilà un peu comment SwiftUI peut vous permettre de simplifier la création de vos vues 😎

2. SwiftUI fonctionne sur la plupart des téléphones 📲

Ceux qui ne se sont pas mis à SwiftUI, je vous vois 👀 ! Vous êtes beaucoup à avoir retardé votre début avec SwiftUI avec comme excuse "SwiftUI n'est pas disponible sur assez de téléphone"..

Hey bah maintenant.. c'est faux !

https://developer.apple.com/support/app-store/

Si on en suit ces statistiques disponibles sur le site d'Apple, on peut voir que la plupart des utilisateurs d’iOS sont maintenant sur iOS14, or SwiftUI fonctionne à partir de iOS13, alors la version n'est plus une excuse 😉

3. SwiftUI ressemble à Jetpack Compose 🤝

Jetpack Compose est l’équivalent de SwiftUI sur Android, une bibliothèque qui permet de faire de l’UI plus facilement

Les deux se ressemblent énormément et il est donc facile de réutiliser ce qui est fait avec SwiftUI sur Jetpack Compose et inversement.
D'ailleurs, pour l'application que nous avons fait en SwiftUI, nous avons décidé pour celle sur Android de partir sur Jetpack Compose, et on vous confirme, la ressemblance est grande !

Pour illustrer cette ressemblance, reprenons notre vue Team de tout à l'heure et comparons-la avec son équivalent en Jetpack Compose

struct TeamView: View {
    let teamMembers: [String] = ["Anthony", "Damien", "Killian"]
    
    var body: some View {
        List(teamMembers, id: \.self) { teamMember in
            Text(teamMember)
        }
    }
}
La vue Team avec SwiftUI
@Composable
fun TeamView() {
	val teamMembers: List<String> = listOf("Anthony", "Damien", "Killian")
    
    LazyColumn {
        teamMembers.forEach { teamMember -> 
			Text(teamMember)
    	}
    }
}
Son équivalent avec Jetpack Compose

4. Apple améliore SwiftUI à chaque version 📈

Une des peurs que certains développeurs avaient avec SwiftUI (et que je partageais aussi), c'était sur SwiftUI ne soit pas adopté par la communauté et que ça soit laissé de côté.

Je vous rassure, il n'en est RIEN !

Nous suivons chaque WWDC pour savoir notamment les évolutions sur SwiftUI et à chaque fois, nous ne sommes pas déçu, Apple fait beaucoup de travail pour l'améliorer

SwiftUI est déjà adopté par beaucoup de développeurs, et plus de nouvelles personnes s'y intéresseront, plus Apple poussera ce framework, alors allez.. venez 😏

5. Vous recruterez plus facilement des développeurs 👩‍💻

On s'en rend compte, les langages mobiles commencent à ressembler à certains langages web et inversement (les optionnels par exemple). SwiftUI et sa gestion des state peut faire penser à des framework Javascript comme ReactJS ou VueJS.

Alors si on se projette dans quelques années, avec SwiftUI et Jetpack Compose, le développement mobile sera plus accessible et certains développeurs web vont certainement s'y intéresser 😉

Il sera donc certainement plus facile de recruter des développeurs mobiles iOS si vos projets sont réalisés avec SwiftUI.

Alors bien sûr, tout n'est pas parfait avec SwiftUI et nous nous sommes confrontés à quelques soucis (on fera un article dessus prochainement), mais il est temps de commencer à s'y intéresser si vous ne voulez pas être en retard quand SwiftUI et Jetpack Compose seront à 100% au point et des standards pour iOS et Android.

Soutenez notre travail ❤️

🔥 Suivez nous sur Instagram, Facebook, LinkedIn ou abonnez-vous à notre newsletter en devenant membre de notre blog :)