Zusammen mit Kollegen aus der Flutter-Community machen wir einen Podcast über Flutter. Die erste Folge wurde am 29. Januar 2019 ausgestrahlt. Seitdem laden wir jeden Monat Kollegen aus der Flutter-Welt und anderen IT-Bereichen ein: Wir diskutieren Nachrichten, Ereignisse, technische Nuancen, geben Ratschläge aus Kampferfahrungen - im Allgemeinen betrachten wir Flutter aus verschiedenen Blickwinkeln.
Wie und warum wir den Podcast machen, habe ich ausführlich auf vc.ru gesprochen . In diesem Artikel habe ich die interessantesten und beliebtesten Folgen des Flutter Dev Podcasts besprochen.
Ich kam von Android zu Flutter: Ich erfuhr von der neuen Technologie am Rande der Konferenz von Zviad Kardava, Developer Relations von Google Russland, der später der erste Gast unseres Podcasts wurde. Die Idee, ein Medium über Flutter zu schaffen, entstand, weil wir als eine der ersten im Land etwas in diesem Rahmen unternommen haben: Die Nische war frei.
Flutter ist eine plattformübergreifende Anwendungsentwicklungstechnologie für iOS, Android, Web und Desktop von Google.
Ich habe mit meinem Kollegen Artyom Zaitsev den Flutter Dev Podcast gestartet - wir arbeiten bei Surf zusammen . Zu dieser Zeit wussten wir praktisch nichts über Flutter, und man könnte sagen, wir sind mit dem Podcast aufgewachsen. Parallel zum Podcast wurde Flutter in Surf entwickelt. Wir haben jetzt eine ganze Flutter-Abteilung mit 13 Mitarbeitern . Die Jungs und ich unterhalten ein öffentliches SurfGear-Repository auf GitHub , in dem wir alle möglichen nützlichen Informationen für die Entwicklung auf Flutter veröffentlichen: eine Reihe von Bibliotheken, Standards und Tools.
Vielen Dank an Google und persönlich an Ekaterina Vinnichenko und Zviad Kardava für die Unterstützung unseres Podcasts und für die Einladung, die Folgen im Google-Blog zu überprüfen.
Flutter Dev Podcast-Veröffentlichungen: Frisch bis früh
"Eine ganze Plattform, um alle Arten von Menschen zu verdienen"
# 19 Yandex.Pro
Gennady Evstratov: "Das globale Ziel ist es, einen riesigen Frankenstein zu schaffen, in dem der Prozentsatz von Flutter wächst, wächst, wächst, und Sie können den Android-Code einfach mit einem kleinen Spatel nehmen, wegwerfen und nur eine Flutter-Anwendung verlassen."
Das Flutter-Team von Yandex ist Stammgast des Podcasts. In frühen Ausgaben sprachen sie über Yandex.Taxometer - dies wurde übrigens auch in unsere Bewertung aufgenommen. Jetzt wurde Yandex.Taxometer in Yandex.Pro wiedergeboren. Die iOS-Version ist rein in Flutter geschrieben, und die Android-Version ist ein Hybrid: Die reine Flutter-Version hat die Funktionalität der Android-Version noch nicht eingeholt und kann daher noch nicht verworfen werden.
Gäste von Yandex erzählen, warum und in welcher Form Flutter in die Projekte des Unternehmens eindringt: Das Framework wird bereits für einzelne Module in Yandex.Lavka, Yandex.Taxi, Yandex.Go verwendet. Sie sprechen darüber, was es derzeit verhindert, vollständig auf Flutter umzusteigen, welche Probleme bei der Arbeit mit Fish Redux aufgrund der Skalierung aufgetreten sind und was ein Entwickler durchlaufen muss, um Flutter in eine native Anwendung zu integrieren.
"Ich mache viele Dinge im Flutter-Team, aber mein Hauptanliegen ist, dass externe Entwickler gute Erfahrungen machen."
# 17 Flutter Day 2020
Chris Sells: „Sie können jederzeit nativen Code in Ihre Anwendung schreiben oder sogar Ihr eigenes Plugin erstellen. Wenn Sie Ihr eigenes Plugin schreiben und wir kein Plugin haben, teilen Sie es bitte der Welt mit. So wächst das Flutter-Ökosystem. "
Dies ist in vielerlei Hinsicht eine ungewöhnliche Episode: Zum ersten Mal haben wir einen Teil des Podcasts auf Englisch moderiert und zum ersten Mal eine Online-Sendung auf Youtube gemacht.
Chris Sells, ein Produktmanager von Google, besuchte den Flutter Dev Podcast: Gemeinsam mit dem Flutter-Team entwickelt er Flutter. Wir haben verschiedene Dinge besprochen: die Fähigkeit, gleichzeitig auf einer großen Anzahl von Geräten und Emulatoren zu debuggen, woher kam Dash - das Flatter-Symbol, welche Probleme der Flutter-Befehl im Remote-Arbeitsmodus hat.
Chris sprach darüber, wie die Null-Sicherheit implementiert wird und was die Anwendungsarchitektur am meisten beeinflusst (und dies ist keine Wahl der staatlichen Verwaltung). Sie werden herausfinden, ob Flutter über ein eigenes Jetpack verfügt, warum die Reflection-API aus den frühen Versionen von Dart entfernt wurde und ob sie wieder hinzugefügt wird und ob sie Datenwertobjekte unterstützt. Die Referenten diskutierten auch mit Chris über das Kompilieren von Flutter-Anwendungen für Arm-Prozessoren in neuen Apple-Geräten, wodurch die Veröffentlichung einer Alpha-Version von Flutter mit Unterstützung für das Erstellen von Anwendungen für Windows und Linux verhindert wird und ob Flutter dynamisch Code laden wird.
"Medien sind die Art menschlicher Aktivitäten, bei denen immer alles so schief geht, wie Sie es möchten."
# 16 Meduza
Boris Goryachev : „Ich bin auf den Widerstand gestoßen , den ich immer bei einheimischen Entwicklern habe. Wenn sie etwas über eine Cross-Plattform hören, geraten sie sofort in eine Pose, sie sagen, dass es scheiße ist, dass alles schlecht funktioniert, alles langsam ist und im Allgemeinen scheiße. Ihre Argumente sind ungefähr so:
- Was ist, wenn Sie dies, das, das zeigen müssen?
„Aber wir müssen es nicht zeigen.
- Nein, aber was ist, wenn Sie müssen?
- Sehr unwahrscheinlich.
- Nun, schlechte Leistung!
- Na ja, irgendwie nicht.
- Nein, gut, schlecht, auf native wird es schneller sein.
Die neue Meduza-App wurde von Grund auf in Flutter geschrieben. In Episode 16 des Flutter Dev Podcasts von CTO Meduza erklärt Boris Goryachev, warum Meduza es braucht. Wir beginnen von vorne: Wir diskutieren, warum das Konzept des Mobilfunks 2014 zum ersten Mal gescheitert ist. Wir sprechen über schwierige Beziehungen zu einheimischen Entwicklern, die erstaunliche Welt der Medienentwicklung, Spiele mit Schriftarten, die Belastung durch die Arbeit mit WebView und Backend Driven UI. Und Boris reagiert auch auf die Behauptungen von Artemy Lebedev.
Detaillierte Nacherzählung der Veröffentlichung des Flutter Dev Podcasts mit Boris Goryachev
"Anfangs wollte ich etwas Ähnliches wie VS Code machen, aber besser."
# 15 Flide - IDE auf Flutter
Andrey Lesnitskiy: „Ich habe ein Produkt für mich selbst gestartet, um meine Produktivität zu steigern. Wenn es meine Produktivität erhöht, kann es auch die Produktivität aller Entwickler im Flutter-Ökosystem steigern. "
Andrey Lesnitsky aus Minsk schreibt eine Entwicklungsumgebung in Flutter. Er wurde von Android Studio und VS Code inspiriert und versucht, das Beste daraus zu machen - möchte aber die IDE zu seiner eigenen machen. Warum hat er Flutter für das Projekt ausgewählt: Ist es eine Herausforderung oder eine besondere Idee? Wie wurde das Produkt konzipiert und wie ist es ausgegangen?
In der Folge erzählt Andrey, wie er auf diese Idee gekommen ist, vor welchen Hauptherausforderungen er stand und wie der Stand des Projekts heute ist.
„Ich habe es wirklich genossen, Taxifahrer zu sein. Wenn die Preise höher wären, würde ich "
# 11 Yandex.Taxi
Gennady Evstratov: "Der Sicherheitsdienst sagte: 'Reagiere einheimisch - nur durch ihre Leiche'."
Das Yandex.Taxi-Team erstellt auf Flutter ein "Softwarepaket für den Taxiservice" - die Yandex.Taxometer-Anwendung. In der Ausgabe erzählen sie, warum sie zuerst ein Projekt in React Native gesägt haben, dann aber zu Flutter gewechselt sind, warum Yandex-Mitarbeiter nachts Steuern erheben und aufgrund dessen die Anwendung auf Flutter zweieinhalb Mal schneller ist als auf Android. Und auch über die Hieroglyphen in der Fish Redux-Dokumentation, die Yandex Map Kit-Integration und das eigene Widget-Pack.
"CI / CD erledigt alles für Sie, auch wenn Sie nicht über Apple-Technologie verfügen."
# 9 CI / CD - Jenkins, Bitrise, Codemagic
Mikhail Tokarev: „Als wir mit dem Flutter-Team über CI / CD sprachen, sagten sie sehr deutlich:„ Wir wollen CI sehen, das sogar meine Großmutter verwenden kann “. Mit diesem Setup haben wir angefangen, Codemagic zu machen. "
Zusammen mit CTO Codemagic haben wir herausgefunden, warum wir CI / CD benötigen, an welchem Punkt klar wird, dass dies ohne CI / CD nicht möglich ist und mit welchen lokalen Builds es zu tun hat. Wir haben Jenkins, Bitrise und Codemagic in allen Parametern verglichen, die sie erreichen konnten: Funktionen, Einschränkungen, Stabilität, Anpassung, Preise. Wir haben herausgefunden, woher Codemagic stammt und warum es genau als CI / CD für Flutter und nicht für alles in einer Reihe positioniert ist, was der Unterschied zu anderen Werkzeugen ist und welche Entschädigung der Benutzer erhält, wenn die Baugruppe aufgrund eines Werkzeugfehlers herunterfällt.
"Funktioniert mit einem Bildschirm an allem"
# 7 Alles über die plattformübergreifende
Maxim Salnikov: „Die Einsätze aus unserem Prozess fallen einfach aus, wir brauchen sie einfach nicht. Dies ist eine gängige Webanwendung, die Sie bei Bedarf auf Ihrem Gerät installieren können. "
Maxim Biyanov: „Xamarin hat sich der maximalen Reife genähert. Für den Staat, in dem alle Hauptprobleme gelöst sind und eine umfassende Entwicklung begonnen hat. Es gibt Chips, die kaum wahrnehmbar sind. Der Fokus liegt jetzt auf nativem iOS. "
Alexander Fedorov: „React Native ist eine Zwischenlösung zwischen Native und Web. Der native ist schneller, das Web ist langsamer. Etwas dazwischen ist React Native. Das wahrscheinlich größte Plus ist, dass es in JS geschrieben ist. Es gibt viele JS-Entwickler, der Einstieg in die Entwicklung ist schnell. Die Reaktion ist auch nicht sehr kompliziert. "
Artyom Zaitsev:„Der Hauptunterschied zwischen Flutter und React oder Xamarin besteht darin, dass es einen eigenen Motor unter der Haube hat. Und er verwendet keine einheimischen Elemente, er zeichnet nur das gleiche. "
Roman Yatsyna: „Kotlin Native als Ganzes ist derselbe Kotlin, nur eingeschränkt. Heutzutage ist es sehr schwierig, eine Person zu finden, die sich bereit erklärt, in Java zu schreiben. Viele Menschen verlassen ihre Unternehmen sofort, weil es dort keinen Kotlin gibt. "
Alexander Efremenkov: „ Beginnen wir mit der Tatsache, dass dies C ++ ist. C ++ ist es nicht wert, erlernt zu werden, wenn Sie nicht untersuchen möchten, wie Speicher zugewiesen wird, wie er funktioniert, und versuchen möchten, sich mit der engen Arbeit mit Hardware zu befassen. "
React Native, Xamarin, PWA, QT, C ++, Kotlin Native, Flutter ... Plattformübergreifend ist ein ziemlich allgemeines Wort, hinter dem viele verschiedene Technologien stehen.
Warum eine Technologie, einen Umfang, eine Eintrittsschwelle, Vor- und Nachteile wählen? In dieser Ausgabe haben wir die Kriterien für die Auswahl von Technologien für Ihren Stack erörtert.
"Mobile Entwickler kamen zu Flutter, schauten asynchron / warten und waren entsetzt."
# 6 Asynchronität
Evgeniy Kot: "Um Streams zu verstehen, müssen Sie verstehen, wie Sanitär funktioniert."
Es gibt Async / Warten, Future API, Stream API, es gibt eine Compute-Methode, es gibt sogar RXDart. Wie man aus dieser Vielfalt versteht, was daraus verwendet werden soll und was nicht. Was tun mit all dieser Asynchronität, wenn Sie aus der Welt von iOS oder Android kommen? Warum Isolieren wie ein Kuchen von der Stange ist und wie Flutter asynchrone Operationen handhabt, wenn Dart Single-Threaded ist.
"Alle virtuellen Maschinen sehen wirklich gleich aus"
Hören Sie sich Episode 5 von Dart VM
Vyacheslav Egorov an: „Sie können mit dem Namen Dart VM beginnen - es ist ein wenig falsch. Es ist richtig, es Dart Runtime zu nennen, da es nicht immer eine virtuelle Maschine darstellt. Menschen, die sich eine virtuelle Maschine vorstellen, stellen sich vor, dass in einem Bytecode etwas ausgeführt wird. Es ist wahrscheinlich richtiger, es die Dart-Laufzeit zu nennen. "
Vyacheslav Egorov, Dart VM-Entwickler, erklärt, warum Flutter in Dart geschrieben ist, welche schwarze Magie Hot Reload verwendet und welche Funktionen Garbage Collector bietet. Über Kompilierung aus den 90ern, Hot Functions und Flutter-Web. Wie hängen Isolate in Dart mit Multithreading zusammen, in was eine Flutter-Anwendung in einem Release-Build kompiliert wird und was Flutter über Reverse Engineering verfügt.
Alle Flutter Dev Podcasts auf Soundcloud