image

SwiftUI : le développement natif d’app iOS désormais à la portée de tous ?

image
Équipe iOS
27 août 2019

Plus de la moitié des applications présentes dans le top 100 de l’AppStore est désormais écrite avec Swift. Senior VP Software Engineering chez Apple, Craig Federighi précise d’ailleurs que ce sont plus de 450 000 apps Swift qui sont désormais téléchargeables.

Parmi toutes les nouveautés présentées lors de la WWDC 2019 (Worldwide Developers Conference 2019), Dark mode, iPad OS, meilleures performances avec iOS 13, possibilité d’utiliser des clés USB, carte SD et disques durs externes sur les iPhones et iPad, Apple a également mis l’accent sur un nouveau framework baptisé SwiftUI.

Conçu dans la perspective de proposer une alternative encore plus simple, plus rapide et plus sûre en matière de développement natif d’application iOS, ce nouveau framework a la particularité d’être fondé sur une syntaxe déclarative qui facilite la construction d’interface utilisateur.

S'inscrire à la newsletter Ikomobi

Créer rapidement et simplement des interfaces utilisateurs à partir d’instructions déclaratives

Actuellement, qu’il s’agisse de créer une interface utilisateur sous forme de Storyboard ou bien en privilégiant l’écriture du code, on utilise le framework UIKit proposé par Apple.

Un Storyboard
Un composant générique codé en Swift avec UIKit
Le rendu du composant codé ci-dessus

Grâce à SwiftUI, on peut désormais créer cette même interface utilisateur directement à partir d’instructions déclaratives puis ajouter des paramètres qui vont permettre de personnaliser l’affichage à partir notamment des nouveaux effets et animations conçus par Apple.

SwiftUI est plus rapide à écrire et plus simple d’accès que ses prédecesseurs. En effet, Xcode 11 offre la possibilité de prévisualiser ce que donne l’application au fur et à mesure de l’écriture du code. Il permet d’une part de glisser / déposer des composants directement dans l’écran de prévisualisation puis d’utiliser l’inspecteur pour changer des paramètres à la manière des storyboards.

Au lieu de générer un fichier XML abscon, la nouvelle version d’Xcode génère directement le code. C’est un gain de temps énorme et d’une facilité déconcertante !

La célèbre maxime d’Apple « Everyone can code » (le code à la portée de tous en français) porte désormais tout son sens.

Une interface codée avec SwiftUI avec sa Preview en direct à côté

Swift UI : des premiers pas convaincants chez IKOMOBI

Au sein du pôle iOS d’IKOMOBI nous avons pris la décision de tester cette nouveauté dès le lendemain de sa parution, en nous exerçant tout d’abord avec les tutoriels proposés par la firme à la pomme.

De prime abord, cette nouvelle façon de coder nous est apparue plutôt pratique et surtout beaucoup plus rapide que précédemment. SwiftUI nous a semblé apporter une forte valeur ajoutée lorsqu’il s’est agit de réaliser des interfaces de belles factures (une page scrollable verticalement avec des éléments scrollables horizontalement par exemple).

Afin de poursuivre le test, nous nous sommes ensuite lancés dans la réécriture d’un projet déjà réalisé au sein du pôle iOS d’IKOMOBI. Les choses se sont alors avérées un peu plus complexes.

Des composants essentiels manquent encore à l’appel !

SwiftUI utilise des éléments graphiques qui diffèrent de ceux proposés par UIKit. Les deux librairies ne sont pas compatibles (par exemple, Kingfisher qui permet de récupérer une image depuis une adresse URL et de l’afficher dans une UIImageView).

De plus, SwiftUI omet de fournir certains composants pourtant essentiels lorsqu’il s’agit de réaliser une application. Citons par exemple : UICollectionView, UISearchBar, UIActivityIndicator, UIPageViewController L’un des tutoriels, indique d’ailleurs comment créer son PageViewController avec SwiftUI à partir d’un bridge avec UIKit.

L’absence d’UICollectionView se fait grandement ressentir. Simple avec UIKit, présenter une liste d’items sous forme d’une simple grille devient fastidieux avec SwiftUI. Il faut en effet passer par une ScrollView au sein de laquelle on insère un VStack (StackView verticale) dans lequel on vient placer des HStack (StackView horizontale) qui contiendront les items à afficher. Pour couronner le tout, ces derniers devront eux-mêmes être placés dans des Button afin de pouvoir recevoir un tap et gérer une action à effectuer.

Outre son caractère peu recommandable, cette façon de coder engendre de surcroît un risque majeur de fuite mémoire dans le cas d’un grand nombre d’items à charger.

Dans le cadre de la réalisation d’une application à l’UI complexe, nous émettons enfin un doute quant aux possibilités qu’offrent ce framework à séparer, la réalisation d’une navigation custom à base de containers pour gérer une NavigationBar custom d’un côté et le reste de l’application de l’autre.

Pour un certain temps encore, SwiftUI s’adressera avant tout à ceux qui s’initient au développement d’applications iOS

SwiftUI nous a convaincu par son potentiel en tant que framework à destination des développeurs débutants. A contrario, il nous est apparu encore incomplet étant entendu qu’il ne supporte qu’iOS 13. De plus, l’autocomplétion nous est parue capricieuse, ne nous proposant par moment aucune proposition d’attributs pour nos éléments graphiques, alors qu’il y en avait un grand nombre qui étaient applicables.

Actuellement en version bêta, SwiftUI sera sûrement amené à s’enrichir dans les prochains mois. Mais dans l’état actuel, il n’est pas assez viable pour être utilisé dans le cadre de la réalisation d’une application pour l’un de nos clients. De plus, il ne pourra sûrement pas l’être avant deux ans minimum, la version minimale le supportant étant iOS 13. Chez IKOMOBI nous proposons nécessairement le support d’au moins deux versions inférieures à la version actuelle d’iOS.

image
image
IKOMOBI
25 juin 2020
Développement application mobile

Click and collect : Ikomobi conçoit et réalise en un temps record, une application mobile pour l’enseigne de restauration Fée maison

Comme vous le savez, le click and collect (ou retrait sur point de vente) c’est ce nouveau parcours malin qui permet de passer commande depuis un site e-commerce, un e-shop dédié ou bien depuis une application mobile, puis de récupérer ses achats à un créneau horaire donné. L’intérêt suscité par ce nouveau service a été […]
image
image
Jason Dejaégère
25 juin 2020
Développement site web

L’intégration, une phase clé à ne pas négliger pour la bonne réalisation d’un site web RWD

Le processus de réalisation d’un site Internet RWD (Responsive Web Design) obéit à un enchaînement précis de procédures bien connu des professionnels du web. En synthèse, tout commence par la conception des écrans et se termine par la mise en ligne du projet. La procédure d’intégration est une étape moins connue. Elle assure pourtant la […]
image
image
Équipe iOS
23 juin 2020
Développement application mobile

Les 7 points clefs à retenir de la WWDC 2020

Compte tenu des contraintes imposées par la Covid-19, Apple a présenté sa très attendue conférence annuelle dans un format totalement inédit et 100% numérique. L’enseigne de Cupertino a notamment profité de cette nouvelle édition de la Worldwide Developers Conference pour présenter une série de nouveautés pour iOS 14 dont nous vous proposons ci-après une synthèse. […]
image
image
IKOMOBI
4 juin 2020
Développement application mobile . UX design

Ce que nous a enseigné la mise en pratique du neumorphisme en terme d’UX design et de développement lors de la réalisation d’une application mobile Android

La popularité croissante du neumorphisme nous a amené, chez IKOMOBI, à expérimenter son implémentation au sein d’une application Android et le proposer à nos clients. Voici le retour d’expérience de nos pôles d’experts UX Design et Android. Skeuomorphisme : dès l’origine, les UX designers cherchent à rendre l’expérience utilisateur plus intuitive Le Skeuomorphisme est une […]
image
image
Bérengère Noël
28 mai 2020
Développement application mobile . UX design

Marketing #1 Comment augmenter l’engagement de vos clients et de vos utilisateurs grâce aux mécanismes de gamification ?

Dans le domaine du web et des applications mobiles, la gamification, consiste à exploiter des mécanismes issus de l’univers du jeu dans d’autres domaines, comme des applications ou des sites internet. Elle vise à capter l’attention de l’utilisateur dans un processus de récompenses lui donnant envie de continuer et d’y revenir régulièrement. Le jeu et […]
image
image
IKOMOBI
26 mai 2020
Transformation digitale

Après le confinement : comment faire pour réussir sa transformation digitale ?

La mise en quarantaine d’une large partie de nos entreprises et services publics, bien que imprévisible, raisonne comme un coup de semonce pour chaque dirigeant, notamment vis à vis du niveau de “digitalisation” de son entreprise. Pour les entreprises à maturité digitale plutôt élevée, cette situation s’est transformée en stress test impromptu, impitoyable révélateur des dysfonctionnements […]
image
image
Bérengère Noël
5 mai 2020
UX design

Design #2 Quelles bonnes pratiques faut-il privilégier lors de la conception d’un formulaire en ligne ?

Le formulaire est bien souvent l’étape clé d’un parcours utilisateur : paiement en ligne, création de compte, prise de contact, etc. Un formulaire mal conçu génère de nombreux irritants et pénalise la qualité générale d’une expérience utilisateur. Par conséquent, il convient de maîtriser les bonnes pratiques correspondantes et concevoir des formulaires qui ne comportent aucun […]
image
image
Bérengère Noël
28 avril 2020
Développement application mobile . UX design

Design #1 En e-commerce, quelles bonnes pratiques faut-il adopter sur mobile pour proposer des fiches produits qui vont déclencher l’acte d’achat ?

Le mobile est définitivement devenu le point central de la relation client. Il répond aux besoins d’immédiateté des consommateurs. Ces derniers veulent être en mesure de vivre une expérience d’achat sans couture autrement dit sans frein ni obstacle, quelque soit le lieu ou le moment. Dans ce contexte, la fiche produit est l’élément central de […]
image
image
Équipe iOS
23 avril 2020
Développement application mobile

TechnIKO #2 Migration UIWebview vers WKWebview

UIWebview vs WKWebview UIWebview est un composant d’interface permettant d’afficher du contenu HTML directement dans une application. C’est un composant déjà ancien puisqu’il est apparu avec iOS 2. Il est fortement présent au sein de nos applications pour, par exemple, afficher le contenu des FAQ, des CGV, le tunnel de commande, la création de compte […]
image
image
Équipe Android
20 avril 2020
Développement application mobile

TechnIKO #1 Appeler une méthode Javascript dans une Webview via Kotlin

Le TechnIKO, c’est quoi ? Chez IKOMOBI, nos experts sont tous les jours confrontés à des problématiques nouvelles qui les amènent à concevoir des solutions innovantes pour nos clients. Grâce à TechnIKO nous allons vous faire découvrir les coulisses de ces différentes innovations, au travers notamment la diffusion des techniques et méthodes de développements chères […]
image
image
Florian Hureau
23 décembre 2019
Actualités

IKOMOBI News #6 : Spotify, Youtube Ads, 5G, voice, Dior, mèmes et autres actualités digitales

Chaque sprint (toutes les 2 semaines), retrouvez les infos UX design, transformation digitale, développement mobile, web et marketing mobile par IKOMOBI. « 圣诞老人到了! » D’où vient cette citation ? Scrollez au bas de l’article pour voir la source 😉 2019 Wrapped : Spotify donne un aperçu de l’usage des données personnelles pour les années à venir La fin […]
image
image
Florian Hureau
3 décembre 2019
Actualités

IKOMOBI News #5 : Tesla, Black Friday, TikTok et autres actualités digitales

Chaque sprint (toutes les 2 semaines), retrouvez les infos UX design, transformation digitale, développement mobile, web et marketing mobile par IKOMOBI. “La reconnaissance faciale va protéger les droits et intérêts légitimes des citoyens contre les escroqueries et les inscriptions frauduleuses.” D’où vient la citation de la semaine ? Scrollez au bas de l’article pour voir […]