-
Notifications
You must be signed in to change notification settings - Fork 17
/
Copy pathfeed.rss
1364 lines (1364 loc) · 94.6 KB
/
feed.rss
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title>The Context #androiddev</title>
<description>Talks about Android development and related topics.</description>
<language>en</language>
<link>https://github.com/artem-zinnatullin/TheContext-Podcast</link>
<lastBuildDate>Sat, 28 Dec 2019 14:00:48 +0000</lastBuildDate>
<itunes:image href="https://raw.githubusercontent.com/artem-zinnatullin/TheContext-Podcast/master/logo.png"/>
<itunes:explicit>no</itunes:explicit>
<itunes:category text="Technology">
<itunes:category text="Software How-To"/>
</itunes:category>
<itunes:owner>
<itunes:name>Artem Zinnatullin</itunes:name>
<itunes:email>artem.zinnatullin@gmail.com</itunes:email>
</itunes:owner>
<itunes:author>Artem Zinnatullin, Hannes Dorfmann, Artur Dryomov</itunes:author>
<item>
<title>Episode 1: Architecture of modern Android apps</title>
<description>In this episode we have talked about software architecture on Android.</description>
<pubDate>Thu, 04 Feb 2016 20:04:07 +0000</pubDate>
<guid>https://github.com/artem-zinnatullin/TheContext-Podcast/releases/download/Episode_1/The.Context.episode.1.mp3</guid>
<enclosure url="https://artemzin.com/static/thecontext/episodes/The.Context.episode.1.mp3" length="83400224" type="audio/mpeg"/>
<itunes:duration>00:57:55</itunes:duration>
<content:encoded>
<![CDATA[
<p>In this episode we have talked about software architecture on Android.</p>
<p>We covered:</p>
<ul>
<li>MVC</li>
<li>MVVM</li>
<li>MVVMC</li>
<li>MVP</li>
<li><a href="https://facebook.github.io/flux/docs/overview.html">Flux</a></li>
<li><a href="http://cycle.js.org/">Cycle.js</a> (a.k.a. Model-View-Intent)</li>
</ul>
<p>Open Source projects from Hannes:</p>
<ul>
<li><a href="https://github.com/sockeqwe/mosby">Mosby</a></li>
<li><a href="https://github.com/sockeqwe/sqlbrite-dao">SQLBrite-DAO</a></li>
<li><a href="https://github.com/sockeqwe/fragmentargs">FragmentArgs</a></li>
<li><a href="https://github.com/sockeqwe/ParcelablePlease">ParcelablePlease</a></li>
</ul>
<p>Links:</p>
<ul>
<li><a href="https://github.com/google/auto/issues/268">AutoValue split into 2 jars issue</a></li>
<li><a href="https://google.github.io/dagger/testing.html">Dagger 2 document about testing</a></li>
<li><a href="https://github.com/rheinfabrik/android-mvvm-example">Clean MVVM example</a></li>
<li><a href="https://github.com/google/dagger/issues/298">Gradle's incremental build issue with annotation processing</a></li>
</ul>
<p><strong>Guests</strong></p>
<ul>
<li>Hannes Dorfmann: <a href="https://twitter.com/sockeqwe">Twitter</a>, <a href="https://github.com/sockeqwe">GitHub</a>, <a href="http://hannesdorfmann.com">blog</a></li>
</ul>
<p><strong>Hosts</strong></p>
<ul>
<li>Artem Zinnatullin: <a href="https://twitter.com/artem_zin">Twitter</a>, <a href="https://github.com/artem-zinnatullin">GitHub</a>, <a href="https://artemzin.com">blog</a></li>
</ul>
<p><strong>Discussion</strong></p>
<p><a href="https://github.com/artem-zinnatullin/TheContext-Podcast/issues/1">Give us your opinion on the episode</a>!</p>
]]>
</content:encoded>
</item>
<item>
<title>Episode 2: Testing</title>
<description>In this episode we have talked about testing in Android Development.</description>
<pubDate>Fri, 26 Feb 2016 06:25:07 +0000</pubDate>
<guid>https://github.com/artem-zinnatullin/TheContext-Podcast/releases/download/Episode_2/The.Context.episode.2.mp3</guid>
<enclosure url="https://artemzin.com/static/thecontext/episodes/The.Context.episode.2.mp3" length="146938181" type="audio/mpeg"/>
<itunes:duration>01:42:01</itunes:duration>
<content:encoded>
<![CDATA[
<p>In this episode we have talked about testing in Android Development.</p>
<p>In this episode we have talked about testing in Android Development. We have covered:</p>
<ul>
<li><a href="https://en.wikipedia.org/wiki/Unit_testing">Unit testing</a></li>
<li><a href="https://en.wikipedia.org/wiki/Integration_testing">Integration testing</a></li>
<li><a href="https://en.wikipedia.org/wiki/Functional_testing">Functional (UI) testing</a></li>
<li><a href="http://robolectric.org">Robolectric</a></li>
<li><a href="http://developer.android.com/tools/testing/testing_android.html#Instrumentation">Android Instrumentation API</a></li>
<li><a href="http://developer.android.com/tools/testing-support-library/index.html#UIAutomator">UI Automator</a></li>
<li><a href="http://developer.android.com/tools/testing-support-library/index.html#Espresso">Espresso</a></li>
<li><a href="https://github.com/RobotiumTech/robotium">Robotium</a></li>
<li><a href="http://appium.io">Appium</a></li>
<li><a href="http://junit.org">JUnit</a></li>
<li><a href="http://joel-costigliola.github.io/assertj/">AssertJ</a></li>
<li><a href="https://github.com/google/truth">Thruth</a></li>
<li><a href="https://github.com/spockframework/spock">Spock</a></li>
<li><a href="https://github.com/JetBrains/spek">Spek</a></li>
<li><a href="https://github.com/artem-zinnatullin/TheContext-Podcast/issues/15">Questions asked by listeners</a>.</li>
</ul>
<p>Open Source projects from Mike:</p>
<ul>
<li><a href="https://github.com/MichaelEvans/Aftermath">Aftermath</a></li>
<li><a href="https://github.com/MichaelEvans/ColorArt">ColorArt</a></li>
</ul>
<p>Links:</p>
<ul>
<li><a href="https://github.com/artem-zinnatullin/qualitymatters">#qualitymatters</a></li>
<li><a href="https://github.com/JakeWharton/u2020">U2020</a></li>
<li><a href="http://jakewharton.com/android-needs-a-simulator/">Android Needs A Simulator, Not An Emulator</a></li>
<li><a href="http://artemzin.com/blog/minsdk-without-flavors/">minSdkVersion for multiDex without flavors</a></li>
</ul>
<p><strong>Guests</strong></p>
<ul>
<li>Mike Evans: <a href="https://twitter.com/m_evans10">Twitter</a>, <a href="https://github.com/MichaelEvans">GitHub</a>, <a href="http://michaelevans.org">blog</a></li>
</ul>
<p><strong>Hosts</strong></p>
<ul>
<li>Artem Zinnatullin: <a href="https://twitter.com/artem_zin">Twitter</a>, <a href="https://github.com/artem-zinnatullin">GitHub</a>, <a href="https://artemzin.com">blog</a></li>
</ul>
<p><strong>Discussion</strong></p>
<p><a href="https://github.com/artem-zinnatullin/TheContext-Podcast/issues/17">Give us your opinion on the episode</a>!</p>
]]>
</content:encoded>
</item>
<item>
<title>Episode 3, Part 1: RxJava with its core developer David Karnok</title>
<description>In this part of the episode we have talked about RxJava.</description>
<pubDate>Wed, 09 Mar 2016 00:00:07 +0000</pubDate>
<guid>https://github.com/artem-zinnatullin/TheContext-Podcast/releases/download/Episode_3_Part_1/The.Context.episode.3.Part1.mp3</guid>
<enclosure url="https://artemzin.com/static/thecontext/episodes/The.Context.episode.3.part1.mp3" length="63658598" type="audio/mpeg"/>
<itunes:duration>00:44:12</itunes:duration>
<content:encoded>
<![CDATA[
<p>In this part of the episode we have talked about RxJava.</p>
<p>We have covered:</p>
<ul>
<li>Past of RxJava</li>
<li>Background of David Karnok and his earlier implementation of Reactive Extensions for JVM</li>
<li>Current state of the RxJava development</li>
<li>Reactive Streams specification</li>
<li>JDK 9 Flow API</li>
<li>RxJava v2 and Android compatibility</li>
</ul>
<p><strong>Guests</strong></p>
<ul>
<li>David Karnok: <a href="https://twitter.com/akarnokd">Twitter</a>, <a href="https://github.com/akarnokd">GitHub</a>, <a href="http://akarnokd.blogspot.com">blog</a></li>
</ul>
<p><strong>Hosts</strong></p>
<ul>
<li>Artem Zinnatullin: <a href="https://twitter.com/artem_zin">Twitter</a>, <a href="https://github.com/artem-zinnatullin">GitHub</a>, <a href="https://artemzin.com">blog</a></li>
</ul>
<p><strong>Discussion</strong></p>
<p><a href="https://github.com/artem-zinnatullin/TheContext-Podcast/issues/25">Give us your opinion on the episode</a>!</p>
]]>
</content:encoded>
</item>
<item>
<title>Episode 3, Part 2: RxJava with its core developer David Karnok</title>
<description>In the second part of the episode we continued the discussion about RxJava.</description>
<pubDate>Wed, 16 Mar 2016 20:52:07 +0000</pubDate>
<guid>https://github.com/artem-zinnatullin/TheContext-Podcast/releases/download/Episode_3_Part_2/The.Context.episode.3.Part2.mp3</guid>
<enclosure url="https://artemzin.com/static/thecontext/episodes/The.Context.episode.3.part2.mp3" length="54085821" type="audio/mpeg"/>
<itunes:duration>00:37:30</itunes:duration>
<content:encoded>
<![CDATA[
<p>In the second part of the episode we continued the discussion about RxJava.</p>
<p>More technical questions about RxJava. We have covered:</p>
<ul>
<li><code>Schedulers.computation()</code> in RxJava</li>
<li>Schedulers in RxJava</li>
<li><code>subscribeOn()</code> and <code>observeOn()</code></li>
<li>Testing code with RxJava</li>
<li>Extending the <code>Observable</code></li>
</ul>
<p><strong>Guests</strong></p>
<ul>
<li>David Karnok: <a href="https://twitter.com/akarnokd">Twitter</a>, <a href="https://github.com/akarnokd">GitHub</a>, <a href="http://akarnokd.blogspot.com">blog</a></li>
</ul>
<p><strong>Hosts</strong></p>
<ul>
<li>Artem Zinnatullin: <a href="https://twitter.com/artem_zin">Twitter</a>, <a href="https://github.com/artem-zinnatullin">GitHub</a>, <a href="https://artemzin.com">blog</a></li>
</ul>
<p><strong>Discussion</strong></p>
<p><a href="https://github.com/artem-zinnatullin/TheContext-Podcast/issues/25">Give us your opinion on the episode</a>!</p>
]]>
</content:encoded>
</item>
<item>
<title>Episode 4: Indie Development</title>
<description>In this episode we have talked about Indie Development.</description>
<pubDate>Sun, 01 May 2016 05:44:07 +0000</pubDate>
<guid>https://github.com/artem-zinnatullin/TheContext-Podcast/releases/download/Episode_4/The.Context.episode.4.mp3</guid>
<enclosure url="https://artemzin.com/static/thecontext/episodes/The.Context.episode.4.mp3" length="97552116" type="audio/mpeg"/>
<itunes:duration>01:07:44</itunes:duration>
<content:encoded>
<![CDATA[
<p>In this episode we have talked about Indie Development.</p>
<p>We have covered:</p>
<ul>
<li>How to get started in Indie development</li>
<li>Project management as single developer</li>
<li>Testing and Continuous Integration</li>
<li>How does an Indie developer decides which libraries or technologies to use?</li>
<li>Designing without being a designer</li>
<li>Play Store, in app purchases and subscriptions</li>
</ul>
<p>Apps published by Chris Lacy on <a href="https://play.google.com/store/apps/developer?id=Chris+Lacy">Google Play Store</a>:</p>
<ul>
<li><a href="https://play.google.com/store/apps/details?id=com.actionlauncher.playstore">Action Launcher 3</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.chrislacy.actionlauncher.pro">Action Launcher 2</a></li>
<li><a href="https://play.google.com/store/apps/details?id=com.tweetlanes.android">Tweet Lanes</a></li>
</ul>
<p>Links:</p>
<ul>
<li><a href="http://theblerg.net/">the blerg</a>: Chris Lacy's podcast</li>
<li><a href="http://theblerg.net/post/2015/08/05/ive-sold-link-bubble-tappath-and-all-related-assets">Chris blog post about selling Link Bubble</a></li>
<li><a href="https://github.com/brave/browser-android">Link Bubble</a> has been open sourced</li>
</ul>
<p><strong>Guests</strong></p>
<ul>
<li>Chris Lacy: <a href="https://twitter.com/chrismlacy">Twitter</a></li>
</ul>
<p><strong>Hosts</strong></p>
<ul>
<li>Artem Zinnatullin: <a href="https://twitter.com/artem_zin">Twitter</a>, <a href="https://github.com/artem-zinnatullin">GitHub</a>, <a href="https://artemzin.com">blog</a></li>
<li>Hannes Dorfmann: <a href="https://twitter.com/sockeqwe">Twitter</a>, <a href="https://github.com/sockeqwe">GitHub</a>, <a href="http://hannesdorfmann.com">blog</a></li>
</ul>
<p><strong>Discussion</strong></p>
<p><a href="https://github.com/artem-zinnatullin/TheContext-Podcast/issues/36">Give us your opinion on the episode</a>!</p>
]]>
</content:encoded>
</item>
<item>
<title>Episode 5: Android TV </title>
<description>In episode 5 we talked to Joe Birch about Android TV.</description>
<pubDate>Fri, 01 Jul 2016 19:06:00 +0000</pubDate>
<guid>https://github.com/artem-zinnatullin/TheContext-Podcast/releases/download/Episode_5/The.Context.episode.5.mp3</guid>
<enclosure url="https://artemzin.com/static/thecontext/episodes/The.Context.episode.5.mp3" length="47396669" type="audio/mpeg"/>
<itunes:duration>00:49:22</itunes:duration>
<content:encoded>
<![CDATA[
<p>In episode 5 we talked to Joe Birch about Android TV.</p>
<p>We have covered:</p>
<ul>
<li>What is Android TV</li>
<li>Leanback Library</li>
<li>MVP Pattern to share code between Phone and Android TV App</li>
<li>Android TV Recommendation System</li>
<li>What's new in Android Nougat for Android TV</li>
</ul>
<p>Links:</p>
<ul>
<li><a href="https://medium.com/exploring-android/introducing-bourbon-dribbble-android-mvp-and-a-common-code-module-1d332a4028b5">Bourbon</a>: Dribbble, Android, MVP and a Common-Code Module</li>
<li><a href="https://medium.com/exploring-android/vineyard-creating-an-android-tv-vine-app-e1480708b0a3">Vineyard</a>: Creating an Android TV Vine App</li>
<li><a href="https://medium.com/@hitherejoe/android-tv-chill-3ba9c413daef">Android TV & Chill</a>: A concept for what it would be like ordering fast-food on Android TV</li>
<li><a href="https://medium.com/@hitherejoe/code-life-d25d9178e4da">Code != Life</a>: On finding the balance between side-projects and headspace</li>
<li><a href="https://medium.com/exploring-android/designing-for-android-tv-9fecd5cd0c8c">Designing for Android TV</a></li>
<li><a href="https://youtu.be/TxAbht2DkyU">Picture in Picture on Android TV</a></li>
<li><a href="https://play.google.com/store/apps/details?id=net.froemling.bombsquad">BombSquad</a>: A funny game Hannes has mentioned</li>
<li><a href="https://play.google.com/store/apps/details?id=net.froemling.bsremote">BombSquad Remote</a>: Use your phone as a controller for BombSquad</li>
<li><a href="https://youtu.be/qv-e1sV3gos">Bring your Android app to Android TV in minutes</a>: Google I/O 2016</li>
</ul>
<p><strong>Guests</strong></p>
<ul>
<li>Joe Birch: <a href="https://twitter.com/hitherejoe">Twitter</a>, <a href="https://github.com/hitherejoe">GitHub</a>, <a href="https://joebirch.co">blog</a></li>
</ul>
<p><strong>Hosts</strong></p>
<ul>
<li>Artem Zinnatullin: <a href="https://twitter.com/artem_zin">Twitter</a>, <a href="https://github.com/artem-zinnatullin">GitHub</a>, <a href="https://artemzin.com">blog</a></li>
<li>Hannes Dorfmann: <a href="https://twitter.com/sockeqwe">Twitter</a>, <a href="https://github.com/sockeqwe">GitHub</a>, <a href="http://hannesdorfmann.com">blog</a></li>
</ul>
<p><strong>Discussion</strong></p>
<p><a href="https://github.com/artem-zinnatullin/TheContext-Podcast/issues/45">Give us your opinion on the episode</a>!</p>
]]>
</content:encoded>
</item>
<item>
<title>Episode 6, Part 1: Continuous Integration (CI) & Continuous Delivery (CD)</title>
<description>In this episode we have talked about Continious Integration (CI) and Continuous Delivery (CD). Fernando Cejas gives us some insights how Soundcloud do CI and CD.</description>
<pubDate>Mon, 22 Aug 2016 07:00:00 +0000</pubDate>
<guid>https://artemzin.com/static/thecontext/episodes/The.Context.episode.6.part1.mp3</guid>
<enclosure url="https://artemzin.com/static/thecontext/episodes/The.Context.episode.6.part1.mp3" length="62473519" type="audio/mpeg"/>
<itunes:duration>00:43:14</itunes:duration>
<content:encoded>
<![CDATA[
<p>In this episode we have talked about Continious Integration (CI) and Continuous Delivery (CD). Fernando Cejas gives us some insights how Soundcloud do CI and CD.</p>
<p>We have covered:</p>
<ul>
<li>Continuous Integration</li>
<li>Continuous Delivery</li>
<li>Pair Programming</li>
<li>Release Train</li>
<li>Soundcloud's CI & CD Pipeline</li>
<li>Testing</li>
</ul>
<p>Links:</p>
<ul>
<li><a href="https://speakerdeck.com/android10/it-is-about-philosophy-culture-of-a-good-programmer-second-edition">Slides from Fernando's talk at MobileOptimized'2016 </a></li>
<li><a href="https://github.com/android10/Android-CleanArchitecture">Fernando's Clean Architecture</a> sample on github</li>
</ul>
<p><strong>Guests</strong></p>
<ul>
<li>Fernando Cejas: <a href="https://twitter.com/fernando_cejas">Twitter</a>, <a href="https://github.com/android10">GitHub</a>, <a href="http://fernandocejas.com">blog</a></li>
</ul>
<p><strong>Hosts</strong></p>
<ul>
<li>Artem Zinnatullin: <a href="https://twitter.com/artem_zin">Twitter</a>, <a href="https://github.com/artem-zinnatullin">GitHub</a>, <a href="https://artemzin.com">blog</a></li>
<li>Hannes Dorfmann: <a href="https://twitter.com/sockeqwe">Twitter</a>, <a href="https://github.com/sockeqwe">GitHub</a>, <a href="http://hannesdorfmann.com">blog</a></li>
</ul>
<p><strong>Discussion</strong></p>
<p><a href="https://github.com/artem-zinnatullin/TheContext-Podcast/issues/49">Give us your opinion on the episode</a>!</p>
]]>
</content:encoded>
</item>
<item>
<title>Episode 6, Part 2: Continuous Integration (CI) & Continuous Delivery (CD)</title>
<description>In this episode we have talked about Continious Integration (CI) and Continuous Delivery (CD). Fernando Cejas gives us some insights how Soundcloud do CI and CD.</description>
<pubDate>Wed, 31 Aug 2016 07:45:00 +0000</pubDate>
<guid>https://artemzin.com/static/thecontext/episodes/The.Context.episode.6.part2.mp3</guid>
<enclosure url="https://artemzin.com/static/thecontext/episodes/The.Context.episode.6.part2.mp3" length="66043032" type="audio/mpeg"/>
<itunes:duration>00:45:55</itunes:duration>
<content:encoded>
<![CDATA[
<p>In this episode we have talked about Continious Integration (CI) and Continuous Delivery (CD). Fernando Cejas gives us some insights how Soundcloud do CI and CD.</p>
<p>We have covered:</p>
<ul>
<li>UI Tests</li>
<li>Continuous Integration</li>
<li>Continuous Delivery</li>
<li>Soundcloud's CI & CD Pipeline</li>
<li>Testing in general</li>
<li>EVERYTHING & LIFE</li>
</ul>
<p>Links:</p>
<ul>
<li><a href="https://speakerdeck.com/android10/it-is-about-philosophy-culture-of-a-good-programmer-second-edition">Slides from Fernando's talk at MobileOptimized'2016 </a></li>
<li><a href="https://github.com/android10/Android-CleanArchitecture">Fernando's Clean Architecture</a> sample on github</li>
<li><a href="http://hannesdorfmann.com/android/from-prefabricated-house-to-lego-house">From Prefab House to Lego House</a> - Blog post about depending on a shared library</li>
</ul>
<p><strong>Guests</strong></p>
<ul>
<li>Fernando Cejas: <a href="https://twitter.com/fernando_cejas">Twitter</a>, <a href="https://github.com/android10">GitHub</a>, <a href="http://fernandocejas.com">blog</a></li>
</ul>
<p><strong>Hosts</strong></p>
<ul>
<li>Artem Zinnatullin: <a href="https://twitter.com/artem_zin">Twitter</a>, <a href="https://github.com/artem-zinnatullin">GitHub</a>, <a href="https://artemzin.com">blog</a></li>
<li>Hannes Dorfmann: <a href="https://twitter.com/sockeqwe">Twitter</a>, <a href="https://github.com/sockeqwe">GitHub</a>, <a href="http://hannesdorfmann.com">blog</a></li>
</ul>
<p><strong>Discussion</strong></p>
<p><a href="https://github.com/artem-zinnatullin/TheContext-Podcast/issues/49">Give us your opinion on the episode</a>!</p>
]]>
</content:encoded>
</item>
<item>
<title>Episode 7: React Native with Felipe Lima from Airbnb</title>
<description>In this episode we have talked with Felipe Lima about React Native, a cross platform solution to build native mobile apps using JavaScript and React, and how React Native is used at Airbnb.</description>
<pubDate>Fri, 02 Dec 2016 17:00:00 +0000</pubDate>
<guid>https://artemzin.com/static/thecontext/episodes/The.Context.episode.7.mp3</guid>
<enclosure url="https://artemzin.com/static/thecontext/episodes/The.Context.episode.7.mp3" length="75883752" type="audio/mpeg"/>
<itunes:duration>00:52:41</itunes:duration>
<content:encoded>
<![CDATA[
<p>In this episode we have talked with Felipe Lima about React Native, a cross platform solution to build native mobile apps using JavaScript and React, and how React Native is used at Airbnb.</p>
<p>In this episode we have talked with Felipe Lima about React Native, a cross platform solution to build native mobile apps using JavaScript and React, and how React Native is used at Airbnb. We have covered:</p>
<ul>
<li>Advantages and Disadvantages of React Native</li>
<li>React Native build tools, IDE and debugging</li>
<li>How to write your own custom component</li>
<li>Lifecycle, state restoration and process death in React Native apps</li>
<li>Integration and interaction with android system services</li>
<li>Sharing code with iOS</li>
<li>Usage for React Native in Airbnb's android and iOS app</li>
</ul>
<p>Links:</p>
<ul>
<li><a href="https://facebook.github.io/react-native/">React Native website</a></li>
<li><a href="https://medium.com/@felipecsl/thoughts-on-react-native-from-an-android-engineers-perspective-ea2bea5aa078#.k31212quk">Thoughts on React Native by Felipe</a> sample on github</li>
<li><a href="https://www.youtube.com/watch?v=npwa3ZmG9VQ">ReactiveConf 2016 (YouTube)</a> - Bridging the Gap: How to use React Native in existing large native code bases by Airbnb engineer Leland Richardson.</li>
</ul>
<p><strong>Guests</strong></p>
<ul>
<li>Felipe Lima: <a href="https://twitter.com/felipecsl">Twitter</a>, <a href="https://github.com/felipecsl">GitHub</a>, <a href="https://medium.com/@felipecsl">blog</a></li>
</ul>
<p><strong>Hosts</strong></p>
<ul>
<li>Artem Zinnatullin: <a href="https://twitter.com/artem_zin">Twitter</a>, <a href="https://github.com/artem-zinnatullin">GitHub</a>, <a href="https://artemzin.com">blog</a></li>
<li>Hannes Dorfmann: <a href="https://twitter.com/sockeqwe">Twitter</a>, <a href="https://github.com/sockeqwe">GitHub</a>, <a href="http://hannesdorfmann.com">blog</a></li>
</ul>
<p><strong>Discussion</strong></p>
<p><a href="https://github.com/artem-zinnatullin/TheContext-Podcast/issues/55">Give us your opinion on the episode</a>!</p>
]]>
</content:encoded>
</item>
<item>
<title>Episode 8: Damn Functional Programming with Paco Estevez</title>
<description>In this episode we have talked with Paco Estevez about Functional Programming and how he applies Functional Programming in his android apps.</description>
<pubDate>Thu, 02 Mar 2017 14:30:00 +0000</pubDate>
<guid>https://artemzin.com/static/thecontext/episodes/The.Context.episode.8.mp3</guid>
<enclosure url="https://artemzin.com/static/thecontext/episodes/The.Context.episode.8.mp3" length="66218024" type="audio/mpeg"/>
<itunes:duration>01:08:56</itunes:duration>
<content:encoded>
<![CDATA[
<p>In this episode we have talked with Paco Estevez about Functional Programming and how he applies Functional Programming in his android apps.</p>
<p>In this episode we have talked with Paco Estevez about Functional Programming and how he applies Functional Programming in his android apps. We have covered:</p>
<ul>
<li>Concepts of Functional Programming</li>
<li>Monads, Pure Functions, Immutability, Tuples, Union Types</li>
<li>Pattern Matching</li>
<li>Error Handling</li>
<li>Functional Reactive Programming with RxJava</li>
<li>Restoring state in Android apps</li>
</ul>
<p>Links:</p>
<p>Talks, books and websites about Functional Programming:</p>
<ul>
<li><a href="http://www.braveclojure.com">Clojure for the Brave and True</a></li>
<li><a href="http://learnyouahaskell.com">Learn You a Haskell for Great Good</a></li>
<li><a href="https://fsharpforfunandprofit.com">F# for fun and profit</a></li>
<li><a href="https://speakerdeck.com/pakoito/about-memory-management-in-fully-reactive-apps">Talk by Paco about Memory Management in Fully Reactive Apps</a></li>
</ul>
<p>Some of Paco's open source libraries:</p>
<ul>
<li><a href="https://github.com/pakoito/Komprehensions">Komprehensions</a></li>
<li><a href="https://github.com/pakoito/RxSealedUnions2">RxSealedUnions</a></li>
<li><a href="https://github.com/pakoito/RxTuples2">RxTuples</a></li>
</ul>
<p><strong>Guests</strong></p>
<ul>
<li>Paco Estevez: <a href="https://twitter.com/pacoworks">Twitter</a>, <a href="https://github.com/pacoworks">GitHub</a>, <a href="https://www.pacoworks.com">blog</a></li>
</ul>
<p><strong>Hosts</strong></p>
<ul>
<li>Artem Zinnatullin: <a href="https://twitter.com/artem_zin">Twitter</a>, <a href="https://github.com/artem-zinnatullin">GitHub</a>, <a href="https://artemzin.com">blog</a></li>
<li>Hannes Dorfmann: <a href="https://twitter.com/sockeqwe">Twitter</a>, <a href="https://github.com/sockeqwe">GitHub</a>, <a href="http://hannesdorfmann.com">blog</a></li>
</ul>
<p><strong>Discussion</strong></p>
<p><a href="https://github.com/artem-zinnatullin/TheContext-Podcast/issues/57">Give us your opinion on the episode</a>!</p>
]]>
</content:encoded>
</item>
<item>
<title>Episode 9, Part 1: Kotlin Gradle plugin, compilers and build systems with Alexey Tsvetkov</title>
<description>In this episode we have talked to Alexey Tsvetkov from Jetbrains about Kotlin Gradle plugin, compilers and build systems.</description>
<pubDate>Tue, 11 Apr 2017 08:30:00 +0000</pubDate>
<guid>https://artemzin.com/static/thecontext/episodes/The.Context.episode.9.part1.mp3</guid>
<enclosure url="https://artemzin.com/static/thecontext/episodes/The.Context.episode.9.part1.mp3" length="65819851" type="audio/mpeg"/>
<itunes:duration>00:45:42</itunes:duration>
<content:encoded>
<![CDATA[
<p>In this episode we have talked to Alexey Tsvetkov from Jetbrains about Kotlin Gradle plugin, compilers and build systems.</p>
<p><strong>Important note for Pocket Casts app users:</strong>
Unfortunately Pocket Casts android app has a problem with downloading our episodes (to listen to them offline).
It seems that while downloading their android app is using a old http client which doesn't support latest TLS cipher standards we use on server side to host our episodes.</p>
<p>Nevertheless, <strong>streaming our episodes (instead of downloading) works</strong> in Pocket Casts android app.</p>
<p>See this tutorial: <a href="http://support.pocketcasts.com/article/streaming-episodes/">Pocket Casts: Streaming</a></p>
<p>In this episode we have talked with Alexey Tsvetkov who works at the Kotlin team at jetbrains on Kotlin's gradle plugin, compilers and build systems in general.</p>
<p>In the first part (of two parts) we have covered:</p>
<ul>
<li>Gradle Build System and its build phases</li>
<li>Kotlin Gradle plugin</li>
<li>Compiling mixed Kotlin and Java projects</li>
<li>Incremental compilation</li>
<li>How a compiler works</li>
<li>Compiler Frontends and Backends</li>
</ul>
<p>Links:</p>
<ul>
<li><a href="https://kotlinlang.org">Kotlin programming language</a></li>
<li><a href="https://docs.gradle.org/current/userguide/build_lifecycle.html">Gradle: The Build Lifecycle</a></li>
<li><a href="https://blog.jetbrains.com/kotlin/2017/04/kotlinnative-tech-preview-kotlin-without-a-vm/">Kotlin native</a></li>
<li><a href="https://github.com/JetBrains/intellij-community/tree/master/jps">JPS: IntelliJ IDEA's internal build system</a></li>
<li><a href="https://kotlinlang.org/docs/tutorials/koans.html">Kotlin Koans</a></li>
</ul>
<p><strong>Guests</strong></p>
<ul>
<li>Alexey Tsvetkov: <a href="https://twitter.com/tsvtkv">Twitter</a></li>
</ul>
<p><strong>Hosts</strong></p>
<ul>
<li>Artem Zinnatullin: <a href="https://twitter.com/artem_zin">Twitter</a>, <a href="https://github.com/artem-zinnatullin">GitHub</a>, <a href="https://artemzin.com">blog</a></li>
<li>Hannes Dorfmann: <a href="https://twitter.com/sockeqwe">Twitter</a>, <a href="https://github.com/sockeqwe">GitHub</a>, <a href="http://hannesdorfmann.com">blog</a></li>
</ul>
<p><strong>Discussion</strong></p>
<p><a href="https://github.com/artem-zinnatullin/TheContext-Podcast/issues/62">Give us your opinion on the episode</a>!</p>
]]>
</content:encoded>
</item>
<item>
<title>Episode 9, Part 2: Kotlin Gradle plugin, compilers and build systems with Alexey Tsvetkov</title>
<description>In the second part of episode 9 we have talked about build systems for android development: Gradle, Buck and Bazel</description>
<pubDate>Fri, 14 Apr 2017 08:30:00 +0000</pubDate>
<guid>https://artemzin.com/static/thecontext/episodes/The.Context.episode.9.part2.mp3</guid>
<enclosure url="https://artemzin.com/static/thecontext/episodes/The.Context.episode.9.part2.mp3" length="61642020" type="audio/mpeg"/>
<itunes:duration>01:04:12</itunes:duration>
<content:encoded>
<![CDATA[
<p>In the second part of episode 9 we have talked about build systems for android development: Gradle, Buck and Bazel</p>
<p><strong>Important note for Pocket Casts app users:</strong>
Thanks to the great support of Pocket Casts team we were able to fix the "download episodes issue" (see show nodes of episode 9, part 1).</p>
<p>We have continued our discussion with Alexey Tsvetkov. In the second part we have talked about build systems for android development.</p>
<p>We have talked about:</p>
<ul>
<li><a href="https://gradle.org">Gradle</a></li>
<li><a href="https://buckbuild.com">Buck</a></li>
<li><a href="https://bazel.build">Bazel</a></li>
</ul>
<p>Links:</p>
<ul>
<li><a href="https://github.com/uber/okbuck">OkBuck</a></li>
<li><a href="http://fragmentedpodcast.com/episodes/68/">Fragmented Podcast, Episode 68: Talking Buck with Uber engineer Gautam Korlam</a></li>
</ul>
<p><strong>Guests</strong></p>
<ul>
<li>Alexey Tsvetkov: <a href="https://twitter.com/tsvtkv">Twitter</a></li>
</ul>
<p><strong>Hosts</strong></p>
<ul>
<li>Artem Zinnatullin: <a href="https://twitter.com/artem_zin">Twitter</a>, <a href="https://github.com/artem-zinnatullin">GitHub</a>, <a href="https://artemzin.com">blog</a></li>
<li>Hannes Dorfmann: <a href="https://twitter.com/sockeqwe">Twitter</a>, <a href="https://github.com/sockeqwe">GitHub</a>, <a href="http://hannesdorfmann.com">blog</a></li>
</ul>
<p><strong>Discussion</strong></p>
<p><a href="https://github.com/artem-zinnatullin/TheContext-Podcast/issues/62">Give us your opinion on the episode</a>!</p>
]]>
</content:encoded>
</item>
<item>
<title>Episode 10: Kotlin Language Design Nitpicking with Dmitry Jemerov from JetBrains</title>
<description>We've talked to Dmitry Jemerov from Kotlin team at JetBrains about some language design decisions made in Kotlin</description>
<pubDate>Mon, 08 May 2017 15:30:00 +0000</pubDate>
<guid>https://artemzin.com/static/thecontext/episodes/The.Context.episode.10.mp3</guid>
<enclosure url="https://artemzin.com/static/thecontext/episodes/The.Context.episode.10.mp3" length="108132883" type="audio/mpeg"/>
<itunes:duration>01:15:04</itunes:duration>
<content:encoded>
<![CDATA[
<p>We've talked to Dmitry Jemerov from Kotlin team at JetBrains about some language design decisions made in Kotlin</p>
<p>We know about sound volume level issue <a href="https://github.com/artem-zinnatullin/TheContext-Podcast/issues/67">#67</a> and tried our best to maximize it in this episode, but Artem used his crappy headphones mic instead of professional one and we couldn't achieve what we wanted, sorry about that, we'll try our best in next episode.</p>
<p>We've talked to Dmitry Jemerov aka @yole from Kotlin team at JetBrains about some language design decisions made in Kotlin:</p>
<ul>
<li>Package visibility in Kotlin</li>
<li>Java static equivalent in Kotlin</li>
<li>Companion objects</li>
<li>Static extension functions</li>
<li>Classes are final by default but fields are public</li>
<li>Unchecked exceptions</li>
<li>Generics</li>
<li>Base types: Any, Unit, Nothing</li>
<li>Traits</li>
<li>Delegates</li>
<li>Data classes</li>
<li>Upcoming features</li>
</ul>
<p>Links:</p>
<ul>
<li><a href="https://www.manning.com/books/kotlin-in-action">Book: Kotlin in Action written by Dmitry Jemerov and Svetlana Isakova</a></li>
<li><a href="http://kotlinlang.org/">Official Kotlin website with photo of lighthouse on Kotlin island</a></li>
</ul>
<p><strong>Guests</strong></p>
<ul>
<li>Dmitry Jemerov: <a href="https://twitter.com/intelliyole">Twitter</a></li>
</ul>
<p><strong>Hosts</strong></p>
<ul>
<li>Artem Zinnatullin: <a href="https://twitter.com/artem_zin">Twitter</a>, <a href="https://github.com/artem-zinnatullin">GitHub</a>, <a href="https://artemzin.com">blog</a></li>
<li>Hannes Dorfmann: <a href="https://twitter.com/sockeqwe">Twitter</a>, <a href="https://github.com/sockeqwe">GitHub</a>, <a href="http://hannesdorfmann.com">blog</a></li>
</ul>
<p><strong>Discussion</strong></p>
<p><a href="https://github.com/artem-zinnatullin/TheContext-Podcast/issues/68">Give us your opinion on the episode</a>!</p>
]]>
</content:encoded>
</item>
<item>
<title>Episode 11: Migration to RxJava 2 with Artur Dryomov from Juno</title>
<description>We've talked to Artur about Juno's way to migrate their Android Riders App from RxJava 1 to RxJava 2.</description>
<pubDate>Mon, 15 May 2017 09:30:00 +0000</pubDate>
<guid>https://artemzin.com/static/thecontext/episodes/The.Context.episode.11.mp3</guid>
<enclosure url="https://artemzin.com/static/thecontext/episodes/The.Context.episode.11.mp3" length="50658006" type="audio/mpeg"/>
<itunes:duration>00:52:46</itunes:duration>
<content:encoded>
<![CDATA[
<p>We've talked to Artur about Juno's way to migrate their Android Riders App from RxJava 1 to RxJava 2.</p>
<p>We have covered:</p>
<ul>
<li>Migration strategy at Juno</li>
<li>What's different in RxJava 2.0?</li>
<li>Null values in RxJava 2</li>
<li>Flowable or Observable?</li>
<li>Other Rx Types: Single, Maybe and Completable</li>
<li>RxJava 2 interop library</li>
<li>RxJava 2: Default UncaughtExceptionHandler logs exceptions silently in jvm unit tests</li>
<li>RxJava 3</li>
</ul>
<p>Links:</p>
<ul>
<li><a href="https://github.com/gojuno/engineering/blob/master/specs/rxjava-2-migration.md">Juno's Android Rider Team RxJava 2 Migration Specification</a></li>
<li><a href="https://github.com/ReactiveX/RxKotlin">RxKotlin</a></li>
<li><a href="https://github.com/akarnokd/RxJava2Interop">RxJava 2 interop library</a></li>
<li><a href="https://github.com/ReactiveX/RxJava/wiki/What%27s-different-in-2.0">What's different in RxJava 2.0</a></li>
<li><a href="https://github.com/ReactiveX/RxJava/wiki/What%27s-different-in-2.0#which-type-to-use">RxJava 2: Which type to use</a></li>
<li><a href="https://github.com/ReactiveX/RxJava/issues/5234">RxJava 2: Uncaught errors fail silently in junit tests</a></li>
<li><a href="https://github.com/ReactiveX/RxJava/issues/4644#issuecomment-256684743">RxJava 2: Discussion about null values</a></li>
<li><a href="https://github.com/ReactiveX/RxKotlin/issues/103">RxJava 2 Kotlin SAM issue combineLatest()/etc</a></li>
<li><a href="https://github.com/reactive-streams/reactive-streams-jvm/issues/204">Reactive Streams specification: null value</a></li>
<li><a href="https://github.com/ReactiveX/RxJava/issues/4564">Why RxJava 3: Split the library into two or adding types for symmetry</a></li>
<li><a href="https://github.com/akarnokd/RxJava3-preview">RxJava 3 Preview</a></li>
</ul>
<p><strong>Guests</strong></p>
<ul>
<li>Artur Dryomov: <a href="https://twitter.com/arturdryomov">Twitter</a>, <a href="https://github.com/ming13">GitHub</a>, <a href="https://arturdryomov.online">blog</a></li>
</ul>
<p><strong>Hosts</strong></p>
<ul>
<li>Hannes Dorfmann: <a href="https://twitter.com/sockeqwe">Twitter</a>, <a href="https://github.com/sockeqwe">GitHub</a>, <a href="http://hannesdorfmann.com">blog</a></li>
</ul>
<p><strong>Discussion</strong></p>
<p><a href="https://github.com/artem-zinnatullin/TheContext-Podcast/issues/71">Give us your opinion on the episode</a>!</p>
]]>
</content:encoded>
</item>
<item>
<title>Episode 12: Instant Apps with Lukas Olsen and Christian Bahl</title>
<description>Hannes chatted with his coworkes Lukas and Christian about Instant Apps.</description>
<pubDate>Wed, 24 May 2017 09:30:00 +0000</pubDate>
<guid>https://artemzin.com/static/thecontext/episodes/The.Context.episode.12.mp3</guid>
<enclosure url="https://artemzin.com/static/thecontext/episodes/The.Context.episode.12.mp3" length="30566084" type="audio/mpeg"/>
<itunes:duration>00:31:47</itunes:duration>
<content:encoded>
<![CDATA[
<p>Hannes chatted with his coworkes Lukas and Christian about Instant Apps.</p>
<p>We apologize for the bad sound quality and low sound volume.</p>
<p>Hannes chatted with his coworkes Lukas and Christian about Instant Apps. Unfortunately, Artem wasn't able to join us for this episode. We have covered:</p>
<ul>
<li>How Instant Apps work</li>
<li>Limitations</li>
<li>Accelerated Mobile Pages (AMP)</li>
<li>Gradle Plugins: com.android.instantapp and com.android.feature</li>
<li>Sharing code between regular App and Instant App</li>
<li>User Experience with Instant Apps</li>
<li>Instant App Early Access Preview Program</li>
<li>Our personal Google I/O 2017 highlights:
<ul>
<li><a href="https://youtu.be/fPzxfeDJDzY">Life is Great and Everything Will Be Ok, Kotlin is Here</a></li>
<li><a href="https://youtu.be/FrteWKKVyzI?list=PLOU2XLYxmsIKC8eODk_RNCWv3fBcLvMMy">Architecture Components</a></li>
<li><a href="https://youtu.be/7ll-rkLCtyk?list=PLOU2XLYxmsIKC8eODk_RNCWv3fBcLvMMy">Speeding Up Your Android Gradle Builds</a></li>
<li><a href="https://youtu.be/oispNrpGnIY?list=PLOU2XLYxmsIKC8eODk_RNCWv3fBcLvMMy">Introduction to Android Instant Apps</a></li>
</ul>
</li>
</ul>
<p>Links:</p>
<ul>
<li><a href="https://developer.android.com/topic/instant-apps/index.html">Instant Apps Documentation</a></li>
<li><a href="https://www.ampproject.org">Accelerated Mobile Pages (AMP)</a></li>
<li><a href="https://www.youtube.com/playlist?list=PLOU2XLYxmsIKC8eODk_RNCWv3fBcLvMMy">Google I/O 2017 Video Playlist</a></li>
</ul>
<p><strong>Guests</strong></p>
<ul>
<li>Christian Bahl: <a href="https://twitter.com/christian_bahl">Twitter</a></li>
<li>Lukas Olsen</li>
</ul>
<p><strong>Hosts</strong></p>
<ul>
<li>Hannes Dorfmann: <a href="https://twitter.com/sockeqwe">Twitter</a>, <a href="https://github.com/sockeqwe">GitHub</a>, <a href="http://hannesdorfmann.com">blog</a></li>
</ul>
<p><strong>Discussion</strong></p>
<p><a href="https://github.com/artem-zinnatullin/TheContext-Podcast/issues/71">Give us your opinion on the episode</a>!</p>
]]>
</content:encoded>
</item>
<item>
<title>Episode 13: Conductor with Eric Kuck</title>
<description>In this episode we talked about Conductor with creator Eric Kuck.</description>
<pubDate>Fri, 04 Aug 2017 09:30:00 +0000</pubDate>
<guid>https://artemzin.com/static/thecontext/episodes/The.Context.episode.13.mp3</guid>
<enclosure url="https://artemzin.com/static/thecontext/episodes/The.Context.episode.13.mp3" length="61832318" type="audio/mpeg"/>
<itunes:duration>01:04:23</itunes:duration>
<content:encoded>
<![CDATA[
<p>In this episode we talked about Conductor with creator Eric Kuck.</p>
<p><strong>Announcement:</strong> We have a new Co-Host for our podcast: Welcome <a href="https://twitter.com/arturdryomov">Artur Dryomov</a>!</p>
<p>We think that we need at least two hosts on each episode to produce a high-quality content.
Unfortunately, podcast production is time-consuming but now there are three hosts, so we can ensure that at least two of us have time to produce a new episode regularly.</p>
<p>In this episode Artur and Hannes chatted with Eric Kuck about <a href="https://github.com/bluelinelabs/Conductor">Conductor</a>, a framework created by Eric as alternative to Fragments. We discussed:</p>
<ul>
<li>Motivation behind Conductor</li>
<li>Conductor components: Controller, Router, ChangeHandler and ControllerTransaction</li>
<li>How Conductor works behind the scenes</li>
<li>Single Activity Applications</li>
<li>Testing</li>
<li>The future of Conductor</li>
</ul>
<p>Links:</p>
<ul>
<li><a href="https://github.com/bluelinelabs/Conductor">Conductor on GitHub</a></li>
<li><a href="https://github.com/EricKuck/ConductorGlideDemo">Demo of Glide integration with Controller LifecycleListener</a></li>
</ul>
<p><strong>Guests</strong></p>
<ul>
<li>Eric Kuck: <a href="https://twitter.com/eric_kuck">Twitter</a>, <a href="https://github.com/EricKuck">GitHub</a></li>
</ul>
<p><strong>Hosts</strong></p>
<ul>
<li>Artur Dryomov: <a href="https://twitter.com/arturdryomov">Twitter</a>, <a href="https://github.com/ming13">GitHub</a>, <a href="https://arturdryomov.online">blog</a></li>
<li>Hannes Dorfmann: <a href="https://twitter.com/sockeqwe">Twitter</a>, <a href="https://github.com/sockeqwe">GitHub</a>, <a href="http://hannesdorfmann.com">blog</a></li>
</ul>
<p><strong>Discussion</strong></p>
<p><a href="https://github.com/artem-zinnatullin/TheContext-Podcast/issues/76">Give us your opinion on the episode</a>!</p>
]]>
</content:encoded>
</item>
<item>
<title>Episode 14: RxJava — the Present and Future with David Karnok (core maintainer)</title>
<description>In this episode we chatted with core maintainer David Karnok about the present and the future of RxJava.</description>
<pubDate>Thu, 05 Oct 2017 09:30:00 +0000</pubDate>
<guid>https://artemzin.com/static/thecontext/episodes/The.Context.episode.14.mp3</guid>
<enclosure url="https://artemzin.com/static/thecontext/episodes/The.Context.episode.14.mp3" length="77973101" type="audio/mpeg"/>
<itunes:duration>01:21:11</itunes:duration>
<content:encoded>
<![CDATA[
<p>In this episode we chatted with core maintainer David Karnok about the present and the future of RxJava.</p>
<p>In this episode Artem and Hannes chatted with David Karnok about present and future of <a href="https://github.com/ReactiveX/RxJava">RxJava</a>. We discussed:</p>
<ul>
<li><a href="https://github.com/akarnokd/RxJava3-preview">RxJava 3 Preview</a></li>
<li>Kaushik Gopal's blog post: <a href="https://blog.kaush.co/2017/06/21/rxjava1-rxjava2-migration-understanding-changes/">RxJava 1 -> RxJava 2 (Understanding the Changes)</a></li>
<li>Artem Zinnatullin's <a href="https://artemzin.com/blog/reply-to-kaushik-gopals-aricle-rxjava-1-rxjava-2-understanding-the-changes/">Reply to Kaushik Gopal's aricle: "RxJava 1 -> RxJava 2 (Understanding the Changes)"</a></li>
<li><a href="https://kotlinlang.org/docs/reference/coroutines.html">Kotlin Coroutines</a></li>
<li><a href="https://github.com/JakeWharton/Reagent/">Reagent</a>: Experiments for future reactive libraries by using Kotlin Coroutines by Jake Wharton</li>
<li><a href="http://akarnokd.blogspot.de/2017/09/rxjava-vs-kotlin-coroutines-quick-look.html">RxJava vs. Kotlin Coroutines, a quick look</a> by David Karnok</li>
<li><a href="http://akarnokd.blogspot.de/2017/09/rewriting-rxjava-with-kotlin-coroutines.html">Rewriting RxJava with Kotlin Coroutines?</a> by David Karnok</li>
<li><a href="http://akarnokd.blogspot.de/2017/09/interoperation-between-rxjava-and.html">Interoperation between RxJava and Kotlin Coroutines</a> by David Karnok</li>
</ul>
<p>Links:</p>
<ul>
<li><a href="https://github.com/artem-zinnatullin/TheContext-Podcast/blob/master/show_notes/Episode_3_Part_1.md">Episode 3 of The Context Podcast featuring David Karnok</a></li>
<li><a href="https://github.com/ReactiveX/RxJava/wiki/Backpressure">RxJava Documentation: Backpressure</a></li>
<li><a href="https://community.oracle.com/docs/DOC-1006738">Reactive Programming with JDK 9 Flow API</a></li>
<li><a href="http://slack.kotlinlang.org">Kotlin Slack</a></li>
</ul>
<p><strong>Guests</strong></p>
<ul>
<li>David Karnok: <a href="https://twitter.com/akarnokd">Twitter</a>, <a href="https://github.com/akarnokd">GitHub</a>, <a href="http://akarnokd.blogspot.com">blog</a></li>
</ul>
<p><strong>Hosts</strong></p>
<ul>
<li>Artem Zinnatullin: <a href="https://twitter.com/artem_zin">Twitter</a>, <a href="https://github.com/artem-zinnatullin">GitHub</a>, <a href="https://artemzin.com">blog</a></li>
<li>Hannes Dorfmann: <a href="https://twitter.com/sockeqwe">Twitter</a>, <a href="https://github.com/sockeqwe">GitHub</a>, <a href="http://hannesdorfmann.com">blog</a></li>
</ul>
<p><strong>Discussion</strong></p>
<p><a href="https://github.com/artem-zinnatullin/TheContext-Podcast/issues/76">Give us your opinion on the episode</a>!</p>
]]>
</content:encoded>
</item>
<item>
<title>Episode 15: 2017 in Retrospective</title>
<description>In this episode Artur and Hannes do a retrospective on 2017. They share their personal highlights, favorite talks, disapointments, learnings and much more.</description>
<pubDate>Sat, 20 Jan 2018 09:30:00 +0000</pubDate>
<guid>https://artemzin.com/static/thecontext/episodes/The.Context.episode.15.mp3</guid>
<enclosure url="https://artemzin.com/static/thecontext/episodes/The.Context.episode.15.mp3" length="63868600" type="audio/mpeg"/>
<itunes:duration>01:15:56</itunes:duration>
<content:encoded>
<![CDATA[
<p>In this episode Artur and Hannes do a retrospective on 2017. They share their personal highlights, favorite talks, disapointments, learnings and much more.</p>
<p><strong>Links</strong></p>
<p>Talks</p>
<ul>
<li><a href="https://www.youtube.com/watch?v=YxOTU9F_YX4">Two Stones, One Bird: Implementation Tradeoffs by Christina Lee - KotlinConf 2017</a></li>
<li><a href="https://www.youtube.com/watch?v=R425cc6XrvA">Testing Kotlin at Scale: Spek by Artem Zinnatullin - KotlinConf 2017</a></li>
<li><a href="https://www.youtube.com/watch?v=KjoMnsc2lPo">The Reactive Workflow Pattern</a> (Droidcon New York 2017) and <a href="https://www.youtube.com/watch?v=mvBVkU2mCF4">Update</a> (Droidcon San Francisco) by Ray Ryan</li>
<li><a href="https://github.com/JetBrains/kotlinconf-app">The Resurgence of SQL by Jake Wharton and Alec Strong - Droidcon New York City 2017</a></li>
<li><a href="https://www.youtube.com/watch?v=ksgmm8VolT4&t=840s">Embracing SQL Without Abstraction by Alec Strong - Droidcon New York City 2016</a></li>
<li><a href="http://uk.droidcon.com/skillscasts/10784-openyolo-authentication-made-easy-and-secure">OpenYOLO: Authentication made easy and secure by Iain McGinniss - Droidcon London 2017</a> and corresponding <a href="https://blog.agilebits.com/2017/10/26/integrate-1password-into-your-android-apps/">blog post</a></li>
</ul>
<p>Libraries</p>
<ul>
<li><a href="http://spekframework.org/">Spek</a></li>
<li><a href="https://developer.android.com/topic/libraries/architecture/room.html">Room</a></li>
<li><a href="https://github.com/airbnb/lottie-android">Lottie</a></li>
<li><a href="https://github.com/JakeWharton/Reagent">Reagent:</a> Experiments for future reactive libraries (by using coroutines).</li>
</ul>
<p>Programming Languages and Technologies</p>
<ul>
<li><a href="https://www.typescriptlang.org/">TypeScript</a></li>
<li><a href="https://www.dartlang.org/">Dart</a></li>
<li><a href="https://en.wikipedia.org/wiki/WebOS">WebOS</a></li>
</ul>
<p>Other Links</p>
<ul>
<li>Book recommendation: <a href="https://www.goodreads.com/book/show/28257707-the-subtle-art-of-not-giving-a-f-ck">The Subtle Art of Not Giving a F*ck: A Counterintuitive Approach to Living a Good Life</a></li>
<li>Christina Lee's tweet: <a href="https://twitter.com/RunChristinaRun/status/917187298546008065">"Does it matter to you if speakers have given their talk before?"</a></li>
<li><a href="https://github.com/JetBrains/kotlinconf-app">KotlinConf 2017 App</a></li>
<li><a href="http://flavienlaurent.com/blog/2014/01/31/spans">Spans, a Powerful Concept by Flavien Laurent</a></li>
<li><a href="https://developer.android.com/reference/android/support/v4/app/ActivityCompat.html#shouldShowRequestPermissionRationale">shouldShowRequestPermissionRationale()</a></li>
<li><a href="https://developer.android.com/reference/android/os/SharedMemory.html">SharedMemory</a></li>
<li>People to follow: <a href="https://twitter.com/clattner_llvm">Chris Lattner</a></li>
</ul>
<p><strong>Hosts</strong></p>
<ul>
<li>Artur Dryomov: <a href="https://twitter.com/arturdryomov">Twitter</a>, <a href="https://github.com/ming13">GitHub</a>, <a href="https://arturdryomov.online">blog</a></li>
<li>Hannes Dorfmann: <a href="https://twitter.com/sockeqwe">Twitter</a>, <a href="https://github.com/sockeqwe">GitHub</a>, <a href="http://hannesdorfmann.com">blog</a></li>
</ul>
<p><strong>Discussion</strong></p>
<p><a href="https://github.com/artem-zinnatullin/TheContext-Podcast/issues/83">Give us your opinion on the episode</a>!</p>
]]>
</content:encoded>
</item>
<item>
<title>Episode 16: Tools</title>
<description>In this episode Artem, Artur and Hannes discuss the tools they use for development.</description>
<pubDate>Wed, 07 Mar 2018 09:30:00 +0000</pubDate>
<guid>https://artemzin.com/static/thecontext/episodes/The.Context.episode.16.mp3</guid>
<enclosure url="https://artemzin.com/static/thecontext/episodes/The.Context.episode.16.mp3" length="53020028" type="audio/mpeg"/>
<itunes:duration>01:02:48</itunes:duration>
<content:encoded>
<![CDATA[
<p>In this episode Artem, Artur and Hannes discuss the tools they use for development.</p>
<p>Tools:</p>
<ul>
<li><a href="https://github.com/gojuno/mainframer">Mainframer</a></li>
<li><a href="https://github.com/gojuno/composer">Composer</a></li>
<li><a href="https://github.com/gojuno/swarmer">Swarmer</a></li>
<li><a href="http://ohmyz.sh">zsh</a></li>
<li><a href="https://github.com/AlDanial/cloc">cloc</a></li>
<li><a href="https://en.wikipedia.org/wiki/Ncdu">ncdu</a></li>
<li><a href="https://jonas.github.io/tig/">tig</a></li>
<li><a href="https://geoff.greer.fm/ag/">ag</a></li>
</ul>
<p>CI:</p>
<ul>
<li><a href="https://jenkins.io">Jenkins</a></li>
<li><a href="http://circleci.com">CircleCi</a></li>
<li><a href="https://drone.io">Drone</a></li>
</ul>
<p>Libraries:</p>
<ul>
<li><a href="http://spekframework.org/">Spek</a></li>
<li><a href="https://github.com/JakeWharton/RxReplayingShare">RxReplayingShare</a></li>
<li><a href="https://github.com/square/moshi">Moshi</a></li>
</ul>
<p><strong>Hosts</strong></p>
<ul>
<li>Artem Zinnatullin: <a href="https://twitter.com/artem_zin">Twitter</a>, <a href="https://github.com/artem-zinnatullin">GitHub</a>, <a href="https://artemzin.com">blog</a></li>
<li>Artur Dryomov: <a href="https://twitter.com/arturdryomov">Twitter</a>, <a href="https://github.com/ming13">GitHub</a>, <a href="https://arturdryomov.online">blog</a></li>
<li>Hannes Dorfmann: <a href="https://twitter.com/sockeqwe">Twitter</a>, <a href="https://github.com/sockeqwe">GitHub</a>, <a href="http://hannesdorfmann.com">blog</a></li>
</ul>
<p><strong>Discussion</strong></p>
<p><a href="https://github.com/artem-zinnatullin/TheContext-Podcast/issues/86">Give us your opinion on the episode</a>!</p>
]]>
</content:encoded>
</item>
<item>
<title>Episode 17: Switching Gears to C# and .NET</title>
<description>Artur chatted with Dmitry Savchenko about C#, .NET and everything in between.</description>
<pubDate>Sun, 01 Apr 2018 09:30:00 +0000</pubDate>
<guid>https://artemzin.com/static/thecontext/episodes/The.Context.episode.17.mp3</guid>
<enclosure url="https://artemzin.com/static/thecontext/episodes/The.Context.episode.17.mp3" length="48665265" type="audio/mpeg"/>
<itunes:duration>00:57:37</itunes:duration>
<content:encoded>
<![CDATA[
<p>Artur chatted with Dmitry Savchenko about C#, .NET and everything in between.</p>
<p>The reason is simple — we are changing our jobs as Android developers to be real enterprise professionals.
Prepare for next episodes about macOS AppKit, Linux kernel, Go microservices and Plan 9 vs. Inferno.
And maybe gardening at some point. Also — April Fools!</p>
<p>Seriously though — the episode is a great introduction into C# world. Just for erudition sake, you know.</p>
<p>Links:</p>
<p>C#</p>
<ul>
<li><a href="https://en.wikipedia.org/wiki/Anders_Hejlsberg">Anders Hejlsberg — Turbo Pascal, C# and TypeScript designer</a></li>
<li><a href="https://docs.microsoft.com/en-us/dotnet/csharp/whats-new/csharp-version-history">Versions history</a></li>
<li><a href="https://github.com/dotnet/csharplang/wiki/Nullable-Reference-Types-Preview">Nullable reference types preview</a></li>
<li><a href="https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/struct"><code>struct</code></a></li>
<li><a href="https://docs.microsoft.com/en-us/dotnet/csharp/async"><code>async</code> and <code>await</code></a></li>
<li><a href="https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/yield"><code>yield</code></a></li>
<li><a href="http://fsharp.org/">F#</a></li>
<li><a href="https://docs.microsoft.com/en-us/quantum/quantum-qr-intro">Q#</a></li>
</ul>
<p>.NET</p>
<ul>
<li><a href="https://en.wikipedia.org/wiki/.NET_Framework">.NET Framework</a></li>
<li><a href="https://docs.microsoft.com/en-us/dotnet/core/">.NET Core</a></li>
<li><a href="https://docs.microsoft.com/en-us/dotnet/standard/choosing-core-framework-server">.NET Framework vs. .NET Core</a></li>
</ul>
<p>Tools</p>
<ul>
<li><a href="https://www.jetbrains.com/resharper/">JetBrains ReSharper</a></li>
<li><a href="https://www.jetbrains.com/rider/">JetBrains Rider</a></li>
<li><a href="https://github.com/dotnet/roslyn">Roslyn — .NET Compiler Platform</a></li>
<li><a href="https://code.visualstudio.com/">Visual Studio Code</a></li>
<li><a href="https://docs.microsoft.com/en-us/visualstudio/msbuild/msbuild">MSBuild</a></li>
<li><a href="https://www.nuget.org/">NuGet</a></li>
<li><a href="https://www.visualstudio.com/tfs/">Team Foundation Server</a></li>
</ul>
<p><strong>Guests</strong></p>
<ul>
<li>Dmitry Savchenko: <a href="https://github.com/dsav">GitHub</a></li>
</ul>
<p><strong>Hosts</strong></p>
<ul>
<li>Artur Dryomov: <a href="https://twitter.com/arturdryomov">Twitter</a>, <a href="https://github.com/ming13">GitHub</a>, <a href="https://arturdryomov.online">blog</a></li>
</ul>
<p><strong>Discussion</strong></p>
<p><a href="https://github.com/artem-zinnatullin/TheContext-Podcast/issues/90">Give us your opinion on the episode</a>!</p>
]]>
</content:encoded>
</item>
<item>
<title>Episode 18, Part 1: Android Everywhere</title>
<description>In the first part of episode #18 Artur, Hannes und Artem discuss Android tablets, Chromebooks and Android Wear (Wear OS).</description>
<pubDate>Sat, 05 May 2018 09:30:00 +0000</pubDate>
<guid>https://artemzin.com/static/thecontext/episodes/The.Context.episode.18.part1.mp3</guid>
<enclosure url="https://artemzin.com/static/thecontext/episodes/The.Context.episode.18.part1.mp3" length="45465440" type="audio/mpeg"/>
<itunes:duration>00:53:49</itunes:duration>
<content:encoded>
<![CDATA[
<p>In the first part of episode #18 Artur, Hannes und Artem discuss Android tablets, Chromebooks and Android Wear (Wear OS).</p>
<p>Links:</p>
<ul>
<li><a href="https://www.youtube.com/watch?v=Ym1KkXPa9aA">Fireside Chat with Matias Duarte, VP of Design, Android</a>: Interesting interview with Matias Duarte about form factors like mobile, wearables, TV, Chromebooks and watch.</li>
</ul>
<p><strong>Hosts</strong></p>
<ul>
<li>Artem Zinnatullin: <a href="https://twitter.com/artem_zin">Twitter</a>, <a href="https://github.com/artem-zinnatullin">GitHub</a>, <a href="https://artemzin.com">blog</a></li>
<li>Artur Dryomov: <a href="https://twitter.com/arturdryomov">Twitter</a>, <a href="https://github.com/ming13">GitHub</a>, <a href="https://arturdryomov.online">blog</a></li>
<li>Hannes Dorfmann: <a href="https://twitter.com/sockeqwe">Twitter</a>, <a href="https://github.com/sockeqwe">GitHub</a>, <a href="http://hannesdorfmann.com">blog</a></li>
</ul>
<p><strong>Discussion</strong></p>
<p><a href="https://github.com/artem-zinnatullin/TheContext-Podcast/issues/92">Give us your opinion on the episode</a>!</p>
]]>
</content:encoded>
</item>
<item>
<title>Episode 18, Part 2: Android Everywhere</title>
<description>In the second part of episode #18 Artur, Hannes and Artem discuss Android TV, Chromecast and Android Auto.</description>
<pubDate>Mon, 07 May 2018 09:30:00 +0000</pubDate>
<guid>https://artemzin.com/static/thecontext/episodes/The.Context.episode.18.part2.mp3</guid>
<enclosure url="https://artemzin.com/static/thecontext/episodes/The.Context.episode.18.part2.mp3" length="52152856" type="audio/mpeg"/>
<itunes:duration>01:01:46</itunes:duration>
<content:encoded>
<![CDATA[
<p>In the second part of episode #18 Artur, Hannes and Artem discuss Android TV, Chromecast and Android Auto.</p>
<p>Links:</p>
<ul>
<li><a href="https://github.com/artem-zinnatullin/TheContext-Podcast/blob/master/show_notes/Episode_5.md">The Context Episode 5: Android TV with Joe Birch</a></li>
<li><a href="https://medium.com/exploring-android/android-tv-chill-3ba9c413daef">Android TV & Chill</a>: A concept for what it would be like ordering fast-food on Android TV by Joe Birch.</li>
<li><a href="https://www.reddit.com/r/Android/comments/7zf4tk/openauto_turns_a_raspberry_pi_into_an_android/">OpenAuto</a>: Turns a Raspberry Pi into an Android Auto device.</li>
<li><a href="https://www.amazon.com/dp/B074Y71ZKC">Artem's car system running Android</a></li>
</ul>
<p><strong>Hosts</strong></p>
<ul>
<li>Artem Zinnatullin: <a href="https://twitter.com/artem_zin">Twitter</a>, <a href="https://github.com/artem-zinnatullin">GitHub</a>, <a href="https://artemzin.com">blog</a></li>
<li>Artur Dryomov: <a href="https://twitter.com/arturdryomov">Twitter</a>, <a href="https://github.com/ming13">GitHub</a>, <a href="https://arturdryomov.online">blog</a></li>
<li>Hannes Dorfmann: <a href="https://twitter.com/sockeqwe">Twitter</a>, <a href="https://github.com/sockeqwe">GitHub</a>, <a href="http://hannesdorfmann.com">blog</a></li>
</ul>
<p><strong>Discussion</strong></p>
<p><a href="https://github.com/artem-zinnatullin/TheContext-Podcast/issues/92">Give us your opinion on the episode</a>!</p>
]]>
</content:encoded>
</item>
<item>
<title>Episode 19, Part 1: Model-View-Intent with Benoît Quenaudon from Square</title>
<description>We discussed the difference between MVP, MVVM and MVI, how to implement MVI, reusable components and how to test MVI based applications.</description>
<pubDate>Sun, 10 Jun 2018 09:30:00 +0000</pubDate>
<guid>https://artemzin.com/static/thecontext/episodes/The.Context.episode.19.part1.mp3</guid>
<enclosure url="https://artemzin.com/static/thecontext/episodes/The.Context.episode.19.part1.mp3" length="31423481" type="audio/mpeg"/>
<itunes:duration>00:37:06</itunes:duration>
<content:encoded>
<![CDATA[
<p>We discussed the difference between MVP, MVVM and MVI, how to implement MVI, reusable components and how to test MVI based applications.</p>
<p>Links:</p>
<ul>
<li><a href="https://cycle.js.org">Cycle.js</a></li>
<li><a href="https://github.com/oldergod/android-architecture">Android Blueprint: ToDo App using MVI by Benoît</a></li>
<li><a href="https://www.youtube.com/watch?v=PXBXcHQeDLE">droidcon NYC 2017 - Model-View-Intent for Android</a></li>
<li><a href="http://hannesdorfmann.com/android/mosby3-mvi-8">In-App Navigation with Coordinators</a></li>
<li><a href="https://www.youtube.com/watch?v=mvBVkU2mCF4">droidcon SF 2017 - The Reactive Workflow Pattern Update</a></li>
<li><a href="https://twitter.com/oldergod/status/999638960384233474">Benoît's Tweet</a>: "We see more and more "reactive" architectures on Android but I think you're doing it wrong if you have a <code>subscribe</code> in your presenter. Ideally, the presenter should be an ObservableTransformer."</li>
<li><a href="https://staltz.com/unidirectional-user-interface-architectures.html">Unidirectional User Interface Architectures</a></li>
</ul>
<p><strong>Guests</strong></p>
<ul>
<li>Benoît Quenaudon: <a href="https://twitter.com/oldergod">Twitter</a>, <a href="https://github.com/oldergod">GitHub</a>, <a href="https://benoitquenaudon.com">website</a></li>
</ul>
<p><strong>Hosts</strong></p>
<ul>
<li>Artur Dryomov: <a href="https://twitter.com/arturdryomov">Twitter</a>, <a href="https://github.com/ming13">GitHub</a>, <a href="https://arturdryomov.online">blog</a></li>
<li>Hannes Dorfmann: <a href="https://twitter.com/sockeqwe">Twitter</a>, <a href="https://github.com/sockeqwe">GitHub</a>, <a href="http://hannesdorfmann.com">blog</a></li>
</ul>
<p><strong>Discussion</strong></p>
<p><a href="https://github.com/artem-zinnatullin/TheContext-Podcast/issues/95">Give us your opinion on the episode</a>!</p>
]]>
</content:encoded>
</item>
<item>
<title>Episode 19, Part 2: Model-View-Intent with Benoît Quenaudon from Square</title>
<description>We discussed the difference between MVP, MVVM and MVI, how to implement MVI, reusable components and how to test MVI based applications.</description>
<pubDate>Sun, 10 Jun 2018 09:35:00 +0000</pubDate>
<guid>https://artemzin.com/static/thecontext/episodes/The.Context.episode.19.part2.mp3</guid>
<enclosure url="https://artemzin.com/static/thecontext/episodes/The.Context.episode.19.part2.mp3" length="41109583" type="audio/mpeg"/>
<itunes:duration>00:48:37</itunes:duration>
<content:encoded>
<![CDATA[
<p>We discussed the difference between MVP, MVVM and MVI, how to implement MVI, reusable components and how to test MVI based applications.</p>
<p>Links:</p>
<ul>
<li><a href="https://cycle.js.org">Cycle.js</a></li>
<li><a href="https://github.com/oldergod/android-architecture">Android Blueprint: ToDo App using MVI by Benoît</a></li>
<li><a href="https://www.youtube.com/watch?v=PXBXcHQeDLE">droidcon NYC 2017 - Model-View-Intent for Android</a></li>
<li><a href="http://hannesdorfmann.com/android/mosby3-mvi-8">In-App Navigation with Coordinators</a></li>
<li><a href="https://www.youtube.com/watch?v=mvBVkU2mCF4">droidcon SF 2017 - The Reactive Workflow Pattern Update</a></li>
<li><a href="https://twitter.com/oldergod/status/999638960384233474">Benoît's Tweet</a>: "We see more and more "reactive" architectures on Android but I think you're doing it wrong if you have a <code>subscribe</code> in your presenter. Ideally, the presenter should be an ObservableTransformer."</li>