Vom Android-Entwickler zu DevOps

Wir setzen eine Reihe von Artikeln über diejenigen fort, die Projekte mit ihren eigenen Händen machen. Mit Stepan Goncharov haben wir darüber gesprochen, wie wir die Richtung der beruflichen Tätigkeit organisch ändern und gleichzeitig unsere Fähigkeiten vom Android-Entwickler zum DevOps ändern können. Sie fragten nach dem Veröffentlichungszyklus und den Prozessen bei Grab , einem Unternehmen, in dem 40 Mitarbeiter nur für Android entwickeln. Sie sprachen darüber, wo sie Ideen für Spiele bekommen könnten , fragten Stepan Archetype und kOptional nach OpenSource-Projekten.



Über den Gast : Stepan Goncharov ( stepango ) entwickelt seit 2008 Anwendungen und Spiele für Android, seit undenklichen Zeiten, als das Android SDK nicht herauskam. Während seiner Karriere war er als QS-Manager, Manager, Vermarkter, Blogger, Analyst, Berater und viele andere tätig. Er war an der Entwicklung unbekannter Anwendungen und Anwendungen mit Millionen von Benutzern auf der ganzen Welt beteiligt. Derzeit arbeitet er bei Grab, nutzt Kotlin und Rx ausgiebig und widmet OSS mehr Zeit.

Hier ist die Textdecodierung des Run Loop- Podcasts. Moderatoren: Ilya Tsarev, Alexey Milyaev und Roman Busygin.

Ilya: Sag mir, woran Grab direkt beteiligt ist und welche Rolle du spielst. Schreibst du nur Code oder etwas mehr?

Stepan: Anfangs ist Grab ein Versteckdienst. Sie können ein Taxi bestellen, sie werden zu Ihnen kommen, Sie abholen und Sie nehmen. In letzter Zeit erhält das Unternehmen jedoch zunehmend Zugang zu zusätzlichen Dienstleistungen wie der Lieferung von Lebensmitteln und seinem Zahlungssystem. Als ich zu Grab kam, leitete ich das Entwicklungsteam für Treiberanwendungen. Dann wechselte er zur Passagieranwendung. Eines meiner letzten Projekte war eine vollständige Neugestaltung der Passagieranwendung . Jetzt mache ich mehr DevOps - CI einrichten, Build-Zeit optimieren und all das.

Devops


Alexei: Stepan, und wenn es kein Geheimnis ist, warum hast du dich entschieden, zu DevOps und CI zu wechseln? Ich höre oft eine Geschichte, wenn mobile Entwickler auf die Plattform kommen, begeistert sind, unglaubliche Höhen erreichen und sich dann plötzlich für unproduktive Aufgaben entscheiden.

Stepan: Tatsächlich hat sich alles organisch herausgestellt, würde ich sagen. Während ich die Anwendung neu entwarf, hatten wir eine Notfallmigration zu GitLab, da CircleCI-Instanzen unser Projekt nicht mehr erstellen konnten. Es stellte sich als zu groß heraus und verbrauchte viel Speicher, aber es gab keine geeigneten CI-Instanzen. Irgendwie blieb ich einige Wochen lang stecken und versuchte, unsere Prozesse und im Allgemeinen alles, was mit CI zu GitLab zu tun hatte, zu migrieren. Nach dem Ende des Projekts bildeten wir ein neues Plattformteam. Während ich 3 Wochen im Urlaub war, wurden alle anderen Aufgaben übernommen. Als ich zurückkam, sagten sie mir: " Das war's, Sie optimieren die Build-Geschwindigkeit und das CI."

Unterschiedliche Rollen und Aktivitäten


Ilya: Wir haben auch Vögel - nicht solche, die Mikrofone geloopt haben, aber immer noch am Ende haben sie Sie darüber informiert, dass Sie als Manager, Vermarkter, Blogger und Analyst die Qualitätssicherung besucht haben - im Allgemeinen habe ich viele verschiedene Aktivitäten durchlaufen . Bitte teilen Sie uns genauer mit, wie Sie in all diese Rollen eingetreten sind, wie lange Sie schon in diesen Rollen waren, was Ihnen in den einzelnen Rollen vielleicht nicht gefallen hat. Vielleicht würden Sie jetzt gerne zu Bloggern zurückkehren?

Stepan: Im Prinzip hat es sich in jeder dieser Rollen irgendwie organisch herausgestellt, dass es reibungslos von einem zum anderen fließt. Alles begann damit, dass ich mich vor der Veröffentlichung des ersten Geräts auf Android für die Android-Entwicklung interessierte. Ich war an der Idee selbst interessiert - einem Betriebssystem in Java - irgendwie ungewöhnlich. Während ich an der Universität studierte, reduzierte ich nach und nach alles auf Android, anstatt Laborarbeit in C oder anderen langweiligen Universitätsproblemen zu leisten. Der Lehrer war nicht dagegen, er war auch daran interessiert, etwas Neues zu lernen, und ich schrieb Android-Anwendungen.

Als ich meinen Abschluss machte, hatte ich bereits einige Erfahrungen. Ich schrieb meine erste Bewerbung, veröffentlichte sie für den Markt und damit begann meine Leidenschaft für das Marketing . Ich hatte meine eigene Bewerbung und musste sie irgendwie bewerben. Ich fing an, ein bisschen herumzuspielen und Blogs zu schreiben.

2010 fand ich die Arbeit eines Android-Entwicklers, dann war es fast unmöglich - es gab keinen Markt, niemand wusste etwas über Android. Ich bin in ein Outsourcing-Unternehmen eingestiegen und musste ein Team mit nur sechs Monaten Erfahrung und zwei veröffentlichten Bewerbungen einstellen .

Also ging ich vom Marketing und Bloggen zurück zur Entwicklung. Dann absolvierte er die Magistratur, zog nach St. Petersburg - auch um auszulagern. Dort begann ich mich mit automatisierten Tests zu beschäftigen, und es stellte sich heraus, dass ich die Richtung von Robotium im Unternehmen entwickelte und der Qualitätssicherung das Schreiben automatisierter Tests beibrachte, bis ich nach Singapur ging , wo ich mein Team erneut für eines der Startups in Singapur rekrutierte. Danach begann er sich in der Android-Entwicklung weiterzuentwickeln. Jetzt bin ich zu Grab gekommen - zuerst zu Managern, dann zu DevOps.

Roman: Stepan, bitte sag mir, vermisst du diese Zeit, wenn sich deine Aufgaben dramatisch genug geändert haben? Grob gesagt trinkst du jeden Tag DevOps - und das war's?

Stepan: Eigentlich noch nicht. Ich habe kürzlich ein großes Projekt abgeschlossen, und im Prinzip gibt es noch genügend Aufgaben. Sie mögen natürlich gleich aussehen - das heißt, das Ziel ist eines, aber was ich tue, sind viele, viele verschiedene Dinge , einschließlich zum Beispiel Speicherprofilierung, Arbeit mit CI. Jetzt schaue ich mir Amazon Analytics auf S3 an. Das ist mir bisher alles neu . Ich glaube nicht, dass ich mich noch lange mit CI und der Optimierung der Montagezeit beschäftigen werde. Höchstwahrscheinlich werde ich zum Beispiel im nächsten Quartal zu etwas anderem wechseln.

Roman: Zum Beispiel habe ich ungefähr 2-2,5 Jahre lang einen Übergangszyklus von einer Richtung in eine andere . Ich begann mit dem Testen, wechselte dann zum Lasttest und wurde dann Entwickler. Wie oft wechseln Sie Interessen und Arbeitsbereiche?

Stepan: Irgendwo in der Region von 1,5-2 Jahren. Aber vor kurzem stellte sich heraus, für sechs Monate.

Die Spiele


Alexei: Was würdest du am liebsten machen? Idealerweise möchten Sie vielleicht die Entwicklung verlassen und nichts mit Ihren Händen berühren? Oder möchten Sie sich im Gegenteil mit einigen tiefen einheimischen Dingen befassen? Was möchten Sie konkret am meisten?

Stepan: Das ist eine gute Frage! Ich habe mich eigentlich nicht entschieden. Ich interessiere mich immer noch für einige Dinge . Eines der interessantesten für mich, an das ich nicht gelangen konnte, ist die Entwicklung von Spielen. Während meines Studiums an der Universität schrieb ich gern alle Arten von Spielen. Ich hatte Projekte auf Flash. Meine zweite Android-Anwendung war ebenfalls ein Spiel. Ich habe sogar einen Monat in einer Spielefirma gearbeitet, aber irgendwie hat es bei mir nicht funktioniert.

Im Prinzip würde ich gerne das Spieldesign ausprobieren , aber das ist immer noch schwierig. Je länger ich Zeit verbringe und mich in Android entwickle, desto schwieriger wird dieser Übergang, wenn überhaupt.

Ilya: Styopa, wenn wir das Thema Spiele angesprochen haben, ist die Frage: Worum ging es in deinem ersten Spiel?

Stepan: Es war 2010, also war es ziemlich einfach. Es war ein logisches Rätsel mit Lasern und Spiegeln, die gedreht werden mussten, damit die Laser das Ziel trafen. Leider wurde dieses Spiel damals auf Rechnung meines Arbeitgebers gehostet. Dieser Account wurde schon lange gelöscht und das Spiel ist nicht da. Aber ich mochte sie wirklich. Es wurde komplett in Android View geschrieben, was ich natürlich bedauere, aber die Erfahrung war ausgezeichnet.

Ilya: Nehmen Sie sich jetzt die Zeit, um Spiele zu entwickeln?

Stepan: Nein. Es ist jetzt absolut keine Zeit für Spiele. Neben der Tatsache, dass ich in der Firma arbeite, organisiere ich auch Kotlin-Meetings in Singapur und spreche auf Konferenzen. Das heißt, die Freizeit ist voll. Vielleicht werde ich eines Tages darauf zurückkommen. Kürzlich habe ich Google VR gekauft, um Unity zu testen, wenn Zeit ist, aber bisher war dies nicht möglich.

Roman: Und sag mir bitte, woher hast du Ideen für Spiele? Wie sind sie auf dich gekommen?

Stepan: Ideen für Spiele kommen normalerweise von technischen Innovationen. Normalerweise habe ich einige technologische Demos gesehen, oder zum Beispiel gab es 2008-2010 eine Mode für physische Motoren. Sie sehen eine coole Technologie oder einen neuen modischen Shader, und die Ideen selbst erscheinen basierend auf dem, was Sie sehen.

Roman: Hat dein Hobby, Spiele zu machen, damit zu tun, dass du selbst ein Spieler bist - du hast in der PlayStation, in Switch, auf dem PC geschnitten - gibt es einen Zusammenhang?

Stepan: Ja, ich denke schon. Als Kind hatte ich Sega, dann PC, ich habe viel Zeit damit verbracht, Spiele zu spielen. Jetzt habe ich sowohl PlayStation als auch Switch, aber jetzt verbringe ich viel weniger Zeit mit Spielen . Ich muss es nicht einmal spielen.

Roman: Und an welche Spiele erinnerst du dich am meisten? Oder welches Spielgenre magst du am liebsten? Zum Beispiel bevorzuge ich Schützen oder eine Art Survivor-Horror.

Stepan: Ich habe irgendwie nicht mit Schützen trainiert. Ich habe als Kind Counter-Strike gespielt, aber das war nicht der Fall. Eines meiner Lieblingsspiele ist Space Rangers-2 , und der erste Teil ist natürlich auch episch. Dann von unvergesslich war es Freelancer .

Alex: Freiberufler ist ein Spiel? Das ist ein Lebensstil!

Stepan: Eigentlich ist dies ein Weltraumsimulator, grob gesagt, sehr nahe an den Space Rangers, aber aus Sicht eines Dritten. The Witcher, Arcanum und Fallout sind so.

Ilya: Es scheint mir, dass die Entwicklung von Spielen der Traum der meisten Programmierer ist . Wie es mir immer schien, gehen die Leute im Allgemeinen nur zur Entwicklung, um Spiele zu machen. Das ist super cool! Mein erstes iOS-Projekt - es war übrigens auch ein Spiel. Was denkst du darüber?

Alexei: Ich habe gehört, dass für viele Menschen der Weg zum Programmieren wirklich damit beginnt, dass sie eine Art Spiel machen wollen, sie spielen gerne Spiele, sie wollen verstehen, wie es geht. Aus irgendeinem Grund hatte ich das nicht. Ich war mehr daran interessiert, wie Programme funktionieren - was passiert, wenn Sie in Windows auf Windows klicken. Aber irgendwann wurde mir klar, dass ich keine Ahnung hatte, wie man Spiele macht. Ich verstehe, wie es möglich ist, diese oder jene Anwendung auf einem Mobiltelefon, dieses oder jenes Programm auf einem PC zu schreiben - ich habe mir nicht vorgestellt, wie man Spiele macht. Irgendwie wurde ich so auf einen YouTube-Kanal gesetzt. Dort schrieb ein Typ in Java und Canvas sein Spielzeug von Grund auf neu - ein Klon eines RPG-Spiels mit einer ähnlichen Mischung aus Diablo und Final Fantasy. Das ist wirklich sehr interessant. Ich würde jedem raten, einfach zu versuchen, in seiner Freizeit damit zu spielen , um zu verstehen, wie es allgemein geschrieben ist und wie es funktioniert. Es war eine sehr coole Erfahrung. Dann bin ich irgendwie in die gleichen Lektionen eingetreten, in denen der Typ ein einfaches Spiel über Unity gesehen hat. Es ist sehr interessant, Ansätze zu vergleichen, wenn Sie mit dem Schreiben Ihrer Engine beginnen und wenn Sie bereits etwas wie Unity bereit haben und es irgendwie anpassen, um Ihre eigenen zu erstellen. Ich würde sehr empfehlen, so etwas zu versuchen, da es jedoch sehr interessant ist.

Roman: Ich habe eine ähnliche Erfahrung. Ich liebe es zu spielen, aber ich bin kein begeisterter Spieler, aber gleichzeitig war ich hauptsächlich daran interessiert zu verstehen, wie Programme gemacht werden. Dann komme ich zu dem Schluss, dass ich versuchen möchte, was ich mag, was ich mag, es mit meinen eigenen Händen zu tun. Aber in Bezug auf Spiele beginnt alles mit einer Idee . Ich warte auf eine Idee, die in jeder Freizeit umgesetzt werden kann, oder um meine Zeit zu klären und dieses Spiel zu machen.

Stepan: In Bezug auf Ideen war eine der letzten, die mir in den Sinn kamen, die automatische Erstellung von Karten . Nun kann man sagen, dass dies ein Trend ist, und einige Spiele nutzen die Erzeugung riesiger Welten, um sie echten sehr ähnlich zu machen.

Es gibt eine ganze Klasse von Algorithmen, mit denen Sie Gelände erzeugen können. Die Landschaft kann so gebaut werden, dass es Berge und Meere gibt. Wenn einer Person die Draufsicht auf Google Maps und die generierte Landschaft angezeigt wird, können sie im Prinzip nur wenige unterscheiden. Dies ist sehr interessant, da Sie Inhalte für das Spiel selbst erstellen können, ohne über große Ressourcen zu verfügen, da dies einer der schwierigsten Teile ist. Zumindest denke ich das.

Arbeitstag


Alexei: Stepan, wie ist dein Arbeitstag normalerweise? Du bist aufgewacht, ins Büro gekommen oder nicht - was machst du, wie geht es dir?

Roman: Ich bin immer noch daran interessiert, was passiert, bevor Sie ins Büro kommen. Vielleicht haben Sie einige Lieblingskaffeehäuser oder Ihre Lieblingstraditionen: Gehen Sie zum Beispiel gerne im öffentlichen Garten vor dem Büro spazieren? Was beginnt dein Tag wirklich?

Stepan: Vor kurzem beginnt mein Tag mit 50 Liegestützen.

Alexey: Respekt!

Stepan: Irgendwann wurde mir klar, dass ich mehr Zeit für körperliche Aktivität aufwenden muss , und jetzt versuche ich mich dazu zu zwingen, dies in meiner Freizeit zu tun. Im Prinzip nichts Besonderes.

Da das Hauptgeschäft des Unternehmens darin besteht, sich zu verstecken, dh ein Taxi zu bestellen, bezahlt das Unternehmen für mich ein Taxi. Deshalb bestelle ich morgens nach dem Frühstück als erstes ein Taxi und gehe zur Arbeit.

Ich arbeite in einem ziemlich anständigen Büro mit tollem Blick auf die Bucht. Wie wahrscheinlich die meisten von uns ist das erste natürlich eine Tasse Kaffee . Meistens gehen wir einfach mit Kollegen in den Keller desselben Gebäudes, gehen in eines der Kaffeehäuser, trinken Kaffee und besprechen Neuigkeiten und Pläne . Es ist besonders interessant, wenn in dieser Nacht, dem Tag in den USA, etwas passiert: Es wurde etwas Neues veröffentlicht, einige interessante Neuigkeiten, ein neuer Rahmen. Wir besprechen das alles und können danach anfangen zu arbeiten.

Dann ist alles ungefähr gleich wie bei allen anderen: Sie gehen nach Jira und schauen sich Tickets an. In den letzten Wochen war ich auf Abruf. Dies ist ein solcher Entwickler, auf den alle Produktionsprobleme fallen, und Sie müssen ihn irgendwie lösen, delegieren oder sagen - dies ist kein Problem und vergessen Sie es.

Da das Team sehr groß ist ( mehr als 40 Personen arbeiten bereits an der Passagieranwendung - dies sind verschiedene Teams, die für verschiedene Bereiche verantwortlich sind), ist es manchmal ziemlich schwierig, die richtige Person zu finden, die dieses Problem lösen muss. Wir haben eine solche Rotation - jede Woche beschäftigt sich einer der Entwickler mit Produktionsproblemen . Insbesondere bereite ich diese Woche eine Veröffentlichung vor. Dies ist eine Problembehebung beim Testen und finde wieder die richtigen Leute, um dies am schnellsten zu lösen.

Roman: 40 Leute sind nur Android, oder ist es das gesamte Team, das die mobile Anwendung erstellt?

Stepan: Dies ist nur Android.

Roman: Wow! Als ich hörte, wie viele mobile Entwickler es in Uber gibt, fühlte ich mich unwohl. Ihr Team bestätigt diesen Trend. Sie haben erwähnt, dass Sie grob gesagt wegen Fehlerberichten im Dienst waren. Sag mir, wie läuft dein Release-Zyklus?

Anwendungsfreigabezyklus


Stepan: Im Prinzip denke ich, dass dies ein mehr oder weniger gewöhnlicher Prozess ist, an den sich große Anwendungen halten wollen. Wir haben einen Zug mit fester Freigabe . Dies ist momentan die Woche. Das heißt, jede Woche am Dienstag haben wir eine Veröffentlichung. Für diese Woche wird ein Release-Ingenieur ausgewählt. Zu Beginn der Woche sollten alle Funktionen, die in das Release fallen, bereit sein.

Wenn eine Funktion nicht bereit ist, werfen sie sie weg, schließen sie mit einer Flagge - tun Sie alles, um zu verhindern, dass sie sich zurückbildet. Sobald dieser Build, in dem alle Funktionen bereit sind, an die Qualitätssicherung übergeben wird, beginnt der Release-Engineering-Prozess. Das heißt, offene Fehler müssen so schnell wie möglich behoben werden , sie haben die höchste Priorität. Selbst wenn der Entwickler an der nächsten Funktion arbeitet, die in der nächsten Version veröffentlicht wird, aber es gibt einen Fehler oder ein Problem, das er am besten kennt und das er am wenigsten Zeit hat, um es zu lösen, wird es ihm gegeben.

Das passiert bei uns bis Freitag. Am Freitag versuchen wir, die Regression zu beenden , alle Regressionsfehler zu schließen und das Wochenende mit ruhiger Seele zu verbringen. Wenn plötzlich etwas passiert ist, können Sie es am Montag schnell beheben und bereits am Montagabend oder Dienstagmorgen leise veröffentlichen und ausrollen - zuerst 10%, dann mehr, mehr, mehr. Seit einer Woche versuchen wir, fast hundert zu erreichen und die nächste Version zu veröffentlichen.

Tests und Updates


Roman: Schnell komponieren und auslegen - aber was ist mit dem Testprozess? Spezielle Personentester, die prüfen, wann sie es tun?

Stepan: Es gibt viele Tester, sie sind pünktlich. Ich weiß nicht, wie viele von ihnen sicher sind. Der Grund ist, dass die meisten Teams nicht in Singapur sind. Ich kann mich nicht erinnern, wie viele Büros wir haben, aber es gibt mindestens 5 weitere Büros, in denen neben der Qualitätssicherung auch Entwicklungsteams arbeiten. Während der Entwicklung von Funktionen debuggen diese Teams zusammen mit der Qualitätssicherung diese Funktionen selbst und testen sie. Zu Beginn des Veröffentlichungszyklus sollten Funktionen keine offenen Fehler aufweisen . Die Regression erfolgt wie folgt: Eine, möglicherweise zwei Qualitätssicherungen aller Teams fallen auf, und sie führen die Regression entsprechend ihren Merkmalen durch. Gerade diese Woche, während nach Fehlern gesucht wird, werden Regressionen behoben.

Ilya: Es stellt sich heraus, dass Sie einen wöchentlichen Aktualisierungszyklus haben und Benutzer Zeit haben, in einer solchen Zeit zu aktualisieren? Zum Beispiel waren wir mit einer Situation konfrontiert, in der iOS-Benutzer Zeit zum Aktualisieren haben und Android - nicht wirklich. Unsere Versionen unterschieden sich direkt für mehrere Wochen.

Alexei: Ja, es scheint mir auch, dass die Woche irgendwie schnell spürbar ist.

Stepan: Ja, das ist es. Eine Woche ist ziemlich schnell, aber wir haben nicht das Ziel, dass alle Benutzer ein Update durchführen . Wir haben von einem zweiwöchigen Release-Zyklus auf einen wöchentlichen umgestellt, um die Belastung der Qualitätssicherung während der Regression zu verringern, da sich innerhalb von zwei Wochen eine große Anzahl von Funktionen angesammelt hat. 40 Menschen können Geschäfte machen! Dann, am Ende der zweiten Woche, bekamen wir ziemlich schwerwiegende Fehler, die aufgrund der Einführung dieser Funktionen aufgetreten waren, und es war ziemlich schwierig, sie zu beheben. Es stellt sich heraus, dass wir wöchentlich eine Panne hatten und diese Testlast gleichmäßiger verteilten.

Ilya: Wie viel Prozent Ihrer Benutzer verwenden die neueste Version?

Stepan: Es hängt davon ab, über welchen Zeitraum wir sprechen.

Ilya: Im Moment.

Stepan: Sie können die neueste Version nur verwenden, wenn Sie eine Woche lang in diesen Nachladeplan eingestiegen sind. Das heißt, das 100% ige Nachladen erfolgt entweder am Freitag oder am Montag, da bereits am Dienstag eine neue Version herauskommt. Es kommt schon auf viel Glück an. Wir haben jedoch nicht das Ziel, dass Benutzer immer auf der neuesten Version sitzen. Das einzige, woran wir noch denken müssen, ist die minimal unterstützte Version. Wir zwingen Benutzer regelmäßig zu einer erzwungenen Aktualisierung, wenn mindestens 90% der Benutzer die unterstützte Mindestversion haben, die ungefähr 3-4 Monate beträgt.

Organisation der Teamarbeit


Alexey: Styopa, ich habe so eine Frage. Sie sagen, 40 Leute machen Android - richtig? Ist es richtig, dass 40 Entwickler etwas tun?

Stepan: Ja.

Alexei: Es gibt einen solchen Moment, dass mit der Zunahme der Anzahl der Mitarbeiter, insbesondere in einem Bereich des Unternehmens, insbesondere in der Android-Entwicklung, die Kommunikationskosten exponentiell steigen . Alle Geschäftsprozesse sind bestrebt, dieses Phänomen zu lösen. Und wie ist das in dir gelöst? Wie ist die Organisationsstruktur dieser Maschine mit 40 Entwicklern?

Stepan: Eigentlich ist unsere Lösung ganz einfach. Diese 40 Entwickler machen nicht dasselbe und müssen im Wesentlichen nicht stark miteinander kommunizieren. Es stellt sich heraus, dass Teams in verschiedenen Ländern unterschiedliche Funktionen haben. Grundsätzlich müssen Sie nicht mit anderen Teams kommunizieren. Sie kommunizieren hauptsächlich mit Ihrem Manager. Infolgedessen sind die Kommunikationskosten nicht so hoch, da das Team aus 5 bis 6 Personen besteht . Es gibt Teams von 1-2: Zum Beispiel ist nur ein neuer Geschäftsbereich aufgetaucht, es gibt einen Entwickler und er hat nur einen technischen Leiter, der für alles verantwortlich ist, einschließlich Backend, iOS und andere Dinge.

, , , .

OpenSource- Archetype kOptional


: . , OpenSource -. , OpenSource, .. , , — Archetype kOptional . Was ist das?

: kOptional . , Optional . - Null, . . , Java8 .

, . , , — , , . , -.

Archetype — . - , 90 Seconds . - : , , , . , : , — .

, - . . . , , : " ". Warum nicht?

— , - , . , 90 Seconds , NDA . , , 90 Seconds: , - , - .

, - , 90 Seconds. , , , , . , , , Rx. , , Kotlin, legacy.

, , , … .

: , OpenSource- . , , , , , . , !

. AppsConf . , , ?

AppsConf


: , AppsConf. , , : « ». , , , .

, , . , , . , , , , .

. , , . , . — , .

, . , , -, , -, , .

, . , , , . Mobius, . .

-, , , - , , - WorkManager, .

, Kotlin , , , - .

: , ?

: , . -, , , , . , , , .

, , — , , , subscribe. - , , . .

: , - OpenSource , ?

: . production-ready, , , GitHub.

:
, ! , , , AppsConf 8–9 .

AppsConf , , , .

Source: https://habr.com/ru/post/de423297/


All Articles