En collaboration avec des collègues de la communauté Flutter, nous réalisons un podcast sur Flutter. Le premier épisode a été diffusé le 29 janvier 2019. Depuis lors, nous invitons chaque mois des collègues du monde Flutter et d'autres domaines informatiques: nous discutons des actualités, des événements, des nuances techniques, donnons des conseils sur l'expérience du combat - en général, nous regardons Flutter sous différents angles.
Comment et pourquoi nous faisons le podcast, j'ai parlé en détail sur vc.ru . Dans cet article, j'ai passé en revue les épisodes les plus intéressants et les plus populaires du podcast Flutter Dev.
Je suis arrivé à Flutter depuis Android: j'ai appris la nouvelle technologie en marge de la conférence par Zviad Kardava, Developer Relations de Google Russie, qui est devenu plus tard le premier invité de notre podcast. L'idée de créer un média sur Flutter est née parce que nous avons été l'un des premiers au pays à commencer à faire quelque chose sur ce cadre: le créneau était gratuit.
Flutter est une technologie de développement d'applications multiplateforme pour iOS, Android, Web et bureau de Google.
J'ai lancé Flutter Dev Podcast avec mon collègue Artyom Zaitsev - nous travaillons ensemble chez Surf . À cette époque, nous ne savions pratiquement rien de Flutter et, pourrait-on dire, nous avons grandi avec le podcast. En parallèle du podcast, Flutter a été développé en Surf. Nous avons maintenant tout un département Flutter avec 13 personnes . Les gars et moi maintenons un référentiel SurfGear public sur GitHub , où nous publions toutes sortes d'utilités pour développer sur Flutter: un ensemble de bibliothèques, de standards, d'outils.
Merci à Google et personnellement à Ekaterina Vinnichenko et Zviad Kardava d'avoir soutenu notre podcast et de m'avoir invité à revoir les épisodes sur le blog Google.
Sorties du podcast Flutter Dev: du plus récent au plus tôt
"Toute une plateforme pour créer toutes sortes de personnes"
# 19 Yandex.Pro
Gennady Evstratov: "L'objectif global est de créer un énorme Frankenstein, dans lequel le pourcentage de Flutter augmentera, grandira, grandira, et vous pouvez simplement prendre le code Android avec une petite spatule, le jeter et ne laisser qu'une application Flutter."
L'équipe Flutter de Yandex est régulièrement invitée au podcast. Dans les premiers numéros, ils ont parlé de Yandex.Taxometer - cela, d'ailleurs, est également entré dans notre examen. Maintenant, Yandex.Taxometer renaît en Yandex.Pro. La version iOS est écrite uniquement en Flutter, et la version Android est un hybride: la version purement Flutter n'a pas encore rattrapé les fonctionnalités de la version Android, elle ne peut donc pas encore être supprimée.
Les invités de Yandex expliquent pourquoi et sous quelle forme Flutter pénètre dans les projets de l'entreprise: le framework est déjà utilisé pour des modules individuels dans Yandex.Lavka, Yandex.Taxi, Yandex.Go. Ils parlent de ce qui empêche de passer entièrement à Flutter pour le moment, des problèmes révélés lors de l'utilisation de Fish Redux en raison de la mise à l'échelle et de ce qu'un développeur devra faire pour intégrer Flutter dans une application native.
"Je fais beaucoup de choses dans l'équipe Flutter, mais ma principale préoccupation est que les développeurs externes aient une bonne expérience."
# 17 Flutter Day 2020
Chris Sells: «Vous pouvez toujours écrire du code natif dans votre application ou même créer votre propre plugin. Si vous écrivez votre propre plugin et que nous n'en avons pas, partagez-le avec le monde entier. C'est ainsi que se développe l'écosystème Flutter. "
C'est un épisode inhabituel à bien des égards: pour la première fois, nous avons hébergé une partie du podcast en anglais et pour la première fois nous avons fait une diffusion en ligne sur Youtube.
Chris Sells, chef de produit de Google, est venu visiter le podcast Flutter Dev: avec l'équipe Flutter, il développe Flutter. Nous avons discuté de diverses choses: la possibilité de déboguer simultanément sur un grand nombre d'appareils et d'émulateurs, d'où vient Dash - le symbole Flutter, quels problèmes la commande Flutter a en mode de travail à distance.
Chris a parlé de la façon dont la sécurité Null sera implémentée et de ce qui affecte le plus l'architecture de l'application (et ce n'est pas un choix de gestion d'état). Vous découvrirez si Flutter aura son propre Jetpack, pourquoi l'API Reflection a été supprimée des premières versions de Dart et si elle sera rajoutée, si elle prendra en charge les objets de valeur de données. Les présentateurs ont également discuté avec Chris de la compilation des applications Flutter pour les processeurs Arm dans les nouveaux appareils Apple, ce qui empêche la publication d'une version alpha de Flutter avec prise en charge de la création d'applications pour Windows et Linux et si Flutter aura un chargement de code dynamique.
"Les médias sont le type d'activité humaine où tout va toujours mal comme vous le souhaitez."
# 16 Meduza
Boris Goryachev : «J'ai rencontré la résistance que je rencontre toujours avec les développeurs natifs. Quand ils entendent quelque chose à propos d'une multiplateforme, ils prennent immédiatement la pose, ils disent que ça craint, que tout fonctionne mal, que tout est lent et généralement nul. Leurs arguments sont quelque chose comme ceci:
- Et si vous avez besoin de montrer ceci, ceci, ceci?
«Mais nous n'aurons pas à le montrer.
- Non, mais si tu devais le faire?
- Très improbable.
- Eh bien, mauvaise performance!
- Eh bien, un peu comme pas.
- Non, bon, mauvais, en natif ça sera plus rapide.
La nouvelle application Meduza est écrite en Flutter à partir de zéro. Dans l'épisode 16 du podcast Flutter Dev par CTO Meduza, Boris Goryachev explique pourquoi Meduza en a besoin. Nous partons du début: nous discutons des raisons pour lesquelles le concept de mobile a échoué pour la première fois en 2014, nous parlons de relations difficiles avec les développeurs natifs, du monde incroyable du développement multimédia, des jeux avec des polices, des difficultés de travailler avec WebView et Backend Driven UI. Et Boris répond également aux affirmations d'Artemy Lebedev.
Récit détaillé du podcast Flutter Dev avec Boris Goryachev
"Au départ, je voulais faire quelque chose de similaire à VS Code, mais en mieux."
# 15 Flide - IDE sur Flutter
Andrey Lesnitskiy: «J'ai commencé un produit pour moi-même afin d'augmenter ma productivité. Si cela augmente ma productivité, cela peut également augmenter la productivité de tous les développeurs de l'écosystème Flutter. "
Andrey Lesnitsky de Minsk écrit un environnement de développement dans Flutter. Il s'est inspiré d'Android Studio et de VS Code, et essaie de tirer le meilleur parti d'entre eux - mais veut s'approprier l'IDE. Pourquoi a-t-il choisi Flutter pour le projet: est-ce un défi ou une idée spéciale? Comment le produit a-t-il été conçu et comment s'est-il déroulé?
Dans l'épisode, Andrey raconte comment il a eu cette idée, quels sont les principaux défis auxquels il a été confronté et l'état du projet aujourd'hui.
«J'ai vraiment aimé être chauffeur de taxi. Si les taux étaient plus élevés, je me recyclerais "
# 11 Yandex.Taxi
Gennady Evstratov: "Le service de sécurité a dit: 'Réagissez Native - uniquement à travers leur cadavre'."
L'équipe Yandex.Taxi crée un "progiciel pour le service de taxi" sur Flutter - l'application Yandex.Taxometer. Dans le numéro, ils expliquent pourquoi ils ont d'abord scié un projet dans React Native, puis sont passés à Flutter, pourquoi les employés de Yandex taxent la nuit et grâce à quoi l'application sur Flutter est rendue deux fois et demie plus rapide que sur Android. Et aussi sur les hiéroglyphes dans la documentation Fish redux, l'intégration Yandex Map Kit et son propre pack de widgets.
"CI / CD fera tout pour vous, même si vous ne disposez pas de la technologie Apple"
# 9 CI / CD - Jenkins, Bitrise, Codemagic
Mikhail Tokarev: «Quand nous avons parlé avec l'équipe Flutter de CI / CD, ils ont dit très clairement:« Nous voulons voir CI, que même ma grand-mère pourrait utiliser ». C'est avec cette configuration que nous avons commencé à créer Codemagic. "
En collaboration avec le CTO Codemagic, nous avons compris pourquoi nous avons besoin de CI / CD, à quel point il devient clair que nous ne pouvons pas nous en passer, et de quelles constructions locales sont chargées. Nous avons comparé Jenkins, Bitrise et Codemagic dans tous les paramètres qu'ils pouvaient atteindre: fonctionnalités, limitations, stabilité, personnalisation, prix. Nous avons découvert d'où venait Codemagic et pourquoi il se positionnait exactement comme un CI / CD pour Flutter, et pas pour tout ce qui suit, quelle est sa différence par rapport aux autres outils et quelle compensation est due à l'utilisateur si l'assemblage tombait en raison de la faute de l'outil.
"Fonctionne sur tout avec un écran"
# 7 Tout sur le multiplateforme
Maxim Salnikov: «Les enjeux de notre processus abandonnent tout simplement, nous n'en avons tout simplement pas besoin. Il s'agit d'une application Web courante que vous pouvez utiliser et installer sur votre appareil si vous le souhaitez. "
Maxim Biyanov: «Xamarin a approché la maturité maximale. À l'État lorsque tous les principaux problèmes ont été résolus et que le développement étendu a commencé. Il y a des puces qui sont subtiles. L'accent est désormais mis sur iOS natif. "
Alexander Fedorov: «React Native est une solution intermédiaire entre natif et web. Le natif est plus rapide, le Web est plus lent. Quelque chose entre les deux est React Native. Le plus gros avantage est probablement qu'il est écrit en JS. Il y a beaucoup de développeurs JS, l'entrée en développement est rapide. React n'est pas non plus très compliqué. "
Artyom Zaitsev:«La principale différence entre Flutter et React ou Xamarin est qu'il a son propre moteur sous le capot. Et il n'utilise pas d'éléments natifs, il dessine simplement la même chose. "
Roman Yatsyna: «Kotlin Native dans son ensemble est le même Kotlin, juste restreint. De nos jours, il est très difficile de trouver une personne qui accepterait d'écrire en Java. Beaucoup de gens quittent immédiatement leur entreprise parce que Kotlin n'est pas là. "
Alexander Efremenkov: «Commençons par le fait qu'il s'agit de C ++. Le C ++ ne vaut pas la peine d'être appris si vous ne voulez pas vous plonger dans l'allocation de la mémoire, comment cela fonctionne, et essayer de vous plonger dans le travail serré avec le matériel. "
React Native, Xamarin, PWA, QT, C ++, Kotlin Native, Flutter ... Cross-platform est un mot assez général, derrière lequel il existe de nombreuses technologies différentes.
Pourquoi prendre une technologie, une portée, un seuil d'entrée, des avantages et des inconvénients - dans ce numéro, nous avons discuté des critères de choix des technologies pour votre pile.
"Les développeurs mobiles sont venus à Flutter, ont regardé async / wait et ont été horrifiés."
# 6 Asynchronie
Evgeniy Kot: "Pour comprendre les flux, vous devez comprendre comment fonctionne la plomberie."
Il y a async / await, Future API, Stream API, il y a une méthode Compute, il y a même RXDart. Comment comprendre à partir de cette diversité ce qui devrait être utilisé et ce qui ne devrait pas l'être. Que faire de tout cela asynchrone si vous venez du monde iOS ou Android. Pourquoi isoler est comme une tarte du commerce, et comment Flutter gère les opérations asynchrones lorsque Dart est à thread unique.
"Toutes les machines virtuelles se ressemblent vraiment"
Écoutez l'épisode # 5 de Dart VM
Vyacheslav Egorov: «Vous pouvez commencer par le fait que le nom Dart VM est un peu faux. Il est correct de l'appeler Dart Runtime, car il ne représente pas toujours une machine virtuelle. Les gens qui imaginent une machine virtuelle, ils imaginent qu'à l'intérieur un certain bytecode est exécuté. Il est probablement plus correct de l'appeler le Dart Runtime. »
Vyacheslav Egorov, développeur de Dart VM, explique pourquoi Flutter est écrit en Dart, quelle magie noire utilise le rechargement à chaud, quelles sont les fonctionnalités du garbage collector. À propos de la compilation des années 90, des fonctions chaudes et du Flutter-web. Comment les isolats dans Dart sont-ils liés au multithreading, dans quoi une application Flutter est compilée dans une version de version et en quoi Flutter dispose d'une ingénierie inverse.
Tous les podcasts Flutter Dev sur Soundcloud