際際滷shows by User: fabio_collini / http://www.slideshare.net/images/logo.gif 際際滷shows by User: fabio_collini / Thu, 11 Nov 2021 09:36:24 GMT 際際滷Share feed for 際際滷shows by User: fabio_collini Architectures in the compose world /slideshow/architectures-in-the-compose-world/250631130 architecturesinthecomposeworld-211111093626
Compose is stable, it's time to integrate it into our apps! But it can be harder than expected and there are some questions to answer. Can the same architecture of a View-based app be reused or should we change it? Should the Compose code be aware of the architecture at all? And should the non UI code be changed to start using Compose? What can be replaced with a Composable, only the layouts or also something else? Probably the best answer to all these questions is it depends, in this talk well see some reasons and how to leverage Compose and the other tools to create a good architecture. Compose is more than just a UI framework and it can seem appealing to use it in a big portion of an app, a good architecture can be useful to limit this portion and use it only when necessary.]]>

Compose is stable, it's time to integrate it into our apps! But it can be harder than expected and there are some questions to answer. Can the same architecture of a View-based app be reused or should we change it? Should the Compose code be aware of the architecture at all? And should the non UI code be changed to start using Compose? What can be replaced with a Composable, only the layouts or also something else? Probably the best answer to all these questions is it depends, in this talk well see some reasons and how to leverage Compose and the other tools to create a good architecture. Compose is more than just a UI framework and it can seem appealing to use it in a big portion of an app, a good architecture can be useful to limit this portion and use it only when necessary.]]>
Thu, 11 Nov 2021 09:36:24 GMT /slideshow/architectures-in-the-compose-world/250631130 fabio_collini@slideshare.net(fabio_collini) Architectures in the compose world fabio_collini Compose is stable, it's time to integrate it into our apps! But it can be harder than expected and there are some questions to answer. Can the same architecture of a View-based app be reused or should we change it? Should the Compose code be aware of the architecture at all? And should the non UI code be changed to start using Compose? What can be replaced with a Composable, only the layouts or also something else? Probably the best answer to all these questions is it depends, in this talk well see some reasons and how to leverage Compose and the other tools to create a good architecture. Compose is more than just a UI framework and it can seem appealing to use it in a big portion of an app, a good architecture can be useful to limit this portion and use it only when necessary. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/architecturesinthecomposeworld-211111093626-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> Compose is stable, it&#39;s time to integrate it into our apps! But it can be harder than expected and there are some questions to answer. Can the same architecture of a View-based app be reused or should we change it? Should the Compose code be aware of the architecture at all? And should the non UI code be changed to start using Compose? What can be replaced with a Composable, only the layouts or also something else? Probably the best answer to all these questions is it depends, in this talk well see some reasons and how to leverage Compose and the other tools to create a good architecture. Compose is more than just a UI framework and it can seem appealing to use it in a big portion of an app, a good architecture can be useful to limit this portion and use it only when necessary.
Architectures in the compose world from Fabio Collini
]]>
335 0 https://cdn.slidesharecdn.com/ss_thumbnails/architecturesinthecomposeworld-211111093626-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
Using hilt in a modularized project /slideshow/using-hilt-in-a-modularized-project/238808593 usinghiltinamodularizedproject-201009074701
Modularizing a project is never easy, a lot of files to move and the dependencies between them is not always what we expect. Then the Dagger configuration used in a single module project often doesn't scale well to a multi module project. Hilt is opinionated about the configuration to use (we don't need to argue anymore about using component dependencies or subcomponents!) and this configuration works perfectly even in a multi module project. In this talk we'll see first an introduction to Hilt and a comparison with Dagger to understand why it's easier to configure. Then we'll see how to leverage it in a multi module project (both in a standard layered architecture and in a Clean Architecture that uses the Dependency Inversion) to improve build speed and code testability. Spoiler alert: using sample apps that include a single feature in the app helps a lot!]]>

Modularizing a project is never easy, a lot of files to move and the dependencies between them is not always what we expect. Then the Dagger configuration used in a single module project often doesn't scale well to a multi module project. Hilt is opinionated about the configuration to use (we don't need to argue anymore about using component dependencies or subcomponents!) and this configuration works perfectly even in a multi module project. In this talk we'll see first an introduction to Hilt and a comparison with Dagger to understand why it's easier to configure. Then we'll see how to leverage it in a multi module project (both in a standard layered architecture and in a Clean Architecture that uses the Dependency Inversion) to improve build speed and code testability. Spoiler alert: using sample apps that include a single feature in the app helps a lot!]]>
Fri, 09 Oct 2020 07:47:00 GMT /slideshow/using-hilt-in-a-modularized-project/238808593 fabio_collini@slideshare.net(fabio_collini) Using hilt in a modularized project fabio_collini Modularizing a project is never easy, a lot of files to move and the dependencies between them is not always what we expect. Then the Dagger configuration used in a single module project often doesn't scale well to a multi module project. Hilt is opinionated about the configuration to use (we don't need to argue anymore about using component dependencies or subcomponents!) and this configuration works perfectly even in a multi module project. In this talk we'll see first an introduction to Hilt and a comparison with Dagger to understand why it's easier to configure. Then we'll see how to leverage it in a multi module project (both in a standard layered architecture and in a Clean Architecture that uses the Dependency Inversion) to improve build speed and code testability. Spoiler alert: using sample apps that include a single feature in the app helps a lot! <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/usinghiltinamodularizedproject-201009074701-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> Modularizing a project is never easy, a lot of files to move and the dependencies between them is not always what we expect. Then the Dagger configuration used in a single module project often doesn&#39;t scale well to a multi module project. Hilt is opinionated about the configuration to use (we don&#39;t need to argue anymore about using component dependencies or subcomponents!) and this configuration works perfectly even in a multi module project. In this talk we&#39;ll see first an introduction to Hilt and a comparison with Dagger to understand why it&#39;s easier to configure. Then we&#39;ll see how to leverage it in a multi module project (both in a standard layered architecture and in a Clean Architecture that uses the Dependency Inversion) to improve build speed and code testability. Spoiler alert: using sample apps that include a single feature in the app helps a lot!
Using hilt in a modularized project from Fabio Collini
]]>
1177 0 https://cdn.slidesharecdn.com/ss_thumbnails/usinghiltinamodularizedproject-201009074701-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
Managing parallelism using coroutines /slideshow/managing-parallelism-using-coroutines/232357918 managingparallelismusingcoroutines-200421100247
Using Kotlin coroutines its really easy to execute a task in a background thread and update the UI based on the result. Just enter the coroutine world using the launch method and then change thread using withContext. Its even simpler if the task is an http call (thanks to coroutines support in retrofit) or a database query (thanks to Room). The final code is the same wed use to execute synchronous code. But coroutines are more than just a tool to switch thread, we can use them to execute tasks in parallel. The code is still really easy to read but sometimes it can be difficult to write: we need to pay attention to many aspects (like nested scopes, exceptions and dispatchers). In this talk well see how to leverage the coroutines library to manage parallelism, from the basic concepts to some advanced example.]]>

Using Kotlin coroutines its really easy to execute a task in a background thread and update the UI based on the result. Just enter the coroutine world using the launch method and then change thread using withContext. Its even simpler if the task is an http call (thanks to coroutines support in retrofit) or a database query (thanks to Room). The final code is the same wed use to execute synchronous code. But coroutines are more than just a tool to switch thread, we can use them to execute tasks in parallel. The code is still really easy to read but sometimes it can be difficult to write: we need to pay attention to many aspects (like nested scopes, exceptions and dispatchers). In this talk well see how to leverage the coroutines library to manage parallelism, from the basic concepts to some advanced example.]]>
Tue, 21 Apr 2020 10:02:47 GMT /slideshow/managing-parallelism-using-coroutines/232357918 fabio_collini@slideshare.net(fabio_collini) Managing parallelism using coroutines fabio_collini Using Kotlin coroutines its really easy to execute a task in a background thread and update the UI based on the result. Just enter the coroutine world using the launch method and then change thread using withContext. Its even simpler if the task is an http call (thanks to coroutines support in retrofit) or a database query (thanks to Room). The final code is the same wed use to execute synchronous code. But coroutines are more than just a tool to switch thread, we can use them to execute tasks in parallel. The code is still really easy to read but sometimes it can be difficult to write: we need to pay attention to many aspects (like nested scopes, exceptions and dispatchers). In this talk well see how to leverage the coroutines library to manage parallelism, from the basic concepts to some advanced example. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/managingparallelismusingcoroutines-200421100247-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> Using Kotlin coroutines its really easy to execute a task in a background thread and update the UI based on the result. Just enter the coroutine world using the launch method and then change thread using withContext. Its even simpler if the task is an http call (thanks to coroutines support in retrofit) or a database query (thanks to Room). The final code is the same wed use to execute synchronous code. But coroutines are more than just a tool to switch thread, we can use them to execute tasks in parallel. The code is still really easy to read but sometimes it can be difficult to write: we need to pay attention to many aspects (like nested scopes, exceptions and dispatchers). In this talk well see how to leverage the coroutines library to manage parallelism, from the basic concepts to some advanced example.
Managing parallelism using coroutines from Fabio Collini
]]>
347 0 https://cdn.slidesharecdn.com/ss_thumbnails/managingparallelismusingcoroutines-200421100247-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
Kotlin Delegates in practice - Kotlin community conf /slideshow/kotlin-delegates-in-practice-kotlin-community-conf/200280513 kotlindelegatesinpractice-kotlincommunityconf-191202082741
The lazy delegate is probably the most famous Kotlin delegate, its easy to use and can be really useful. However delegation is a concept that can be used in many other ways in Kotlin. A delegate can be declared at two levels: * a delegated property allows changing the way the property is managed * an interface can be implemented delegating the methods to another object In this talk well see many practical examples to show how to leverage standard delegates and how to create new ones to improve the quality of our code and to avoid duplication.]]>

The lazy delegate is probably the most famous Kotlin delegate, its easy to use and can be really useful. However delegation is a concept that can be used in many other ways in Kotlin. A delegate can be declared at two levels: * a delegated property allows changing the way the property is managed * an interface can be implemented delegating the methods to another object In this talk well see many practical examples to show how to leverage standard delegates and how to create new ones to improve the quality of our code and to avoid duplication.]]>
Mon, 02 Dec 2019 08:27:41 GMT /slideshow/kotlin-delegates-in-practice-kotlin-community-conf/200280513 fabio_collini@slideshare.net(fabio_collini) Kotlin Delegates in practice - Kotlin community conf fabio_collini The lazy delegate is probably the most famous Kotlin delegate, its easy to use and can be really useful. However delegation is a concept that can be used in many other ways in Kotlin. A delegate can be declared at two levels: * a delegated property allows changing the way the property is managed * an interface can be implemented delegating the methods to another object In this talk well see many practical examples to show how to leverage standard delegates and how to create new ones to improve the quality of our code and to avoid duplication. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/kotlindelegatesinpractice-kotlincommunityconf-191202082741-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> The lazy delegate is probably the most famous Kotlin delegate, its easy to use and can be really useful. However delegation is a concept that can be used in many other ways in Kotlin. A delegate can be declared at two levels: * a delegated property allows changing the way the property is managed * an interface can be implemented delegating the methods to another object In this talk well see many practical examples to show how to leverage standard delegates and how to create new ones to improve the quality of our code and to avoid duplication.
Kotlin Delegates in practice - Kotlin community conf from Fabio Collini
]]>
139 1 https://cdn.slidesharecdn.com/ss_thumbnails/kotlindelegatesinpractice-kotlincommunityconf-191202082741-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
Kotlin delegates in practice - Kotlin Everywhere Stockholm /slideshow/kotlin-delegates-in-practice-kotlin-everywhere-stockholm/194677952 kotlindelegatesinpractice-kotlineverywherestockholm-191118072542
The lazy delegate is probably the most famous Kotlin delegate, its easy to use and can be really useful. However delegation is a concept that can be used in many other ways in Kotlin. A delegate can be declared at two levels: * a delegated property allows changing the way the property is managed * an interface can be implemented delegating the methods to another object In this talk well see many practical examples to show how to leverage standard delegates and how to create new ones to improve the quality of our code and to avoid duplication.]]>

The lazy delegate is probably the most famous Kotlin delegate, its easy to use and can be really useful. However delegation is a concept that can be used in many other ways in Kotlin. A delegate can be declared at two levels: * a delegated property allows changing the way the property is managed * an interface can be implemented delegating the methods to another object In this talk well see many practical examples to show how to leverage standard delegates and how to create new ones to improve the quality of our code and to avoid duplication.]]>
Mon, 18 Nov 2019 07:25:42 GMT /slideshow/kotlin-delegates-in-practice-kotlin-everywhere-stockholm/194677952 fabio_collini@slideshare.net(fabio_collini) Kotlin delegates in practice - Kotlin Everywhere Stockholm fabio_collini The lazy delegate is probably the most famous Kotlin delegate, its easy to use and can be really useful. However delegation is a concept that can be used in many other ways in Kotlin. A delegate can be declared at two levels: * a delegated property allows changing the way the property is managed * an interface can be implemented delegating the methods to another object In this talk well see many practical examples to show how to leverage standard delegates and how to create new ones to improve the quality of our code and to avoid duplication. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/kotlindelegatesinpractice-kotlineverywherestockholm-191118072542-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> The lazy delegate is probably the most famous Kotlin delegate, its easy to use and can be really useful. However delegation is a concept that can be used in many other ways in Kotlin. A delegate can be declared at two levels: * a delegated property allows changing the way the property is managed * an interface can be implemented delegating the methods to another object In this talk well see many practical examples to show how to leverage standard delegates and how to create new ones to improve the quality of our code and to avoid duplication.
Kotlin delegates in practice - Kotlin Everywhere Stockholm from Fabio Collini
]]>
517 0 https://cdn.slidesharecdn.com/ss_thumbnails/kotlindelegatesinpractice-kotlineverywherestockholm-191118072542-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
Using Dagger in a Clean Architecture project /slideshow/using-dagger-in-a-clean-architecture-project/176344670 usingdaggerinacleanarchitectureproject-190926135001
Clean Architecture and app modularization are often used together to achieve a better code structure and a faster build time. But how can we use Dagger in an app structured in that way? Can we use subcomponents (with or without Dagger Android) or are component dependencies enough? In this talk well see how to leverage Dagger to organize the dependencies in a multi-module project with particular attention to testing and decoupling. The examples will be both in a standard layered architecture and in a Clean Architecture where the Dependency Inversion increases the overall structure but can complicate the Dagger code.]]>

Clean Architecture and app modularization are often used together to achieve a better code structure and a faster build time. But how can we use Dagger in an app structured in that way? Can we use subcomponents (with or without Dagger Android) or are component dependencies enough? In this talk well see how to leverage Dagger to organize the dependencies in a multi-module project with particular attention to testing and decoupling. The examples will be both in a standard layered architecture and in a Clean Architecture where the Dependency Inversion increases the overall structure but can complicate the Dagger code.]]>
Thu, 26 Sep 2019 13:50:01 GMT /slideshow/using-dagger-in-a-clean-architecture-project/176344670 fabio_collini@slideshare.net(fabio_collini) Using Dagger in a Clean Architecture project fabio_collini Clean Architecture and app modularization are often used together to achieve a better code structure and a faster build time. But how can we use Dagger in an app structured in that way? Can we use subcomponents (with or without Dagger Android) or are component dependencies enough? In this talk well see how to leverage Dagger to organize the dependencies in a multi-module project with particular attention to testing and decoupling. The examples will be both in a standard layered architecture and in a Clean Architecture where the Dependency Inversion increases the overall structure but can complicate the Dagger code. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/usingdaggerinacleanarchitectureproject-190926135001-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> Clean Architecture and app modularization are often used together to achieve a better code structure and a faster build time. But how can we use Dagger in an app structured in that way? Can we use subcomponents (with or without Dagger Android) or are component dependencies enough? In this talk well see how to leverage Dagger to organize the dependencies in a multi-module project with particular attention to testing and decoupling. The examples will be both in a standard layered architecture and in a Clean Architecture where the Dependency Inversion increases the overall structure but can complicate the Dagger code.
Using Dagger in a Clean Architecture project from Fabio Collini
]]>
1742 1 https://cdn.slidesharecdn.com/ss_thumbnails/usingdaggerinacleanarchitectureproject-190926135001-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
Solid principles in practice the clean architecture - Droidcon Italy /fabio_collini/solid-principles-in-practice-the-clean-architecture-droidcon-italy solidprinciplesinpracticethecleanarchitecture-droidconitaly-190406100801
The Clean Architecture has been formalized by Robert C. Martin in 2012, it's quite new even if it's based on the SOLID principles (presented for the first time in early 2000). The biggest benefit that we get using this architecture is the code testability, indeed it separates the application code from the code connected to external factor (that usually is more difficult to test). In this talk we'll see a practical example of how to apply the SOLID principle, in particular, the dependency inversion.]]>

The Clean Architecture has been formalized by Robert C. Martin in 2012, it's quite new even if it's based on the SOLID principles (presented for the first time in early 2000). The biggest benefit that we get using this architecture is the code testability, indeed it separates the application code from the code connected to external factor (that usually is more difficult to test). In this talk we'll see a practical example of how to apply the SOLID principle, in particular, the dependency inversion.]]>
Sat, 06 Apr 2019 10:08:01 GMT /fabio_collini/solid-principles-in-practice-the-clean-architecture-droidcon-italy fabio_collini@slideshare.net(fabio_collini) Solid principles in practice the clean architecture - Droidcon Italy fabio_collini The Clean Architecture has been formalized by Robert C. Martin in 2012, it's quite new even if it's based on the SOLID principles (presented for the first time in early 2000). The biggest benefit that we get using this architecture is the code testability, indeed it separates the application code from the code connected to external factor (that usually is more difficult to test). In this talk we'll see a practical example of how to apply the SOLID principle, in particular, the dependency inversion. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/solidprinciplesinpracticethecleanarchitecture-droidconitaly-190406100801-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> The Clean Architecture has been formalized by Robert C. Martin in 2012, it&#39;s quite new even if it&#39;s based on the SOLID principles (presented for the first time in early 2000). The biggest benefit that we get using this architecture is the code testability, indeed it separates the application code from the code connected to external factor (that usually is more difficult to test). In this talk we&#39;ll see a practical example of how to apply the SOLID principle, in particular, the dependency inversion.
Solid principles in practice the clean architecture - Droidcon Italy from Fabio Collini
]]>
973 2 https://cdn.slidesharecdn.com/ss_thumbnails/solidprinciplesinpracticethecleanarchitecture-droidconitaly-190406100801-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
SOLID principles in practice: the Clean Architecture - Devfest Emila Romagna /slideshow/solid-principles-in-practice-the-clean-architecture-devfest-emila-romagna/124769540 solidprinciplesinpracticethecleanarchitecture-devfestemilaromagna-181203111906
The Clean Architecture has been formalized by Robert C. Martin in 2012, it's quite new even if it's based on the SOLID principles (presented for the first time in early 2000). The biggest benefit that we get using this architecture is the code testability, indeed it separates the application code from the code connected to external factor (that usually is more difficult to test). In this talk we'll see a practical example of how to apply the SOLID principle, in particular, the dependency inversion.]]>

The Clean Architecture has been formalized by Robert C. Martin in 2012, it's quite new even if it's based on the SOLID principles (presented for the first time in early 2000). The biggest benefit that we get using this architecture is the code testability, indeed it separates the application code from the code connected to external factor (that usually is more difficult to test). In this talk we'll see a practical example of how to apply the SOLID principle, in particular, the dependency inversion.]]>
Mon, 03 Dec 2018 11:19:06 GMT /slideshow/solid-principles-in-practice-the-clean-architecture-devfest-emila-romagna/124769540 fabio_collini@slideshare.net(fabio_collini) SOLID principles in practice: the Clean Architecture - Devfest Emila Romagna fabio_collini The Clean Architecture has been formalized by Robert C. Martin in 2012, it's quite new even if it's based on the SOLID principles (presented for the first time in early 2000). The biggest benefit that we get using this architecture is the code testability, indeed it separates the application code from the code connected to external factor (that usually is more difficult to test). In this talk we'll see a practical example of how to apply the SOLID principle, in particular, the dependency inversion. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/solidprinciplesinpracticethecleanarchitecture-devfestemilaromagna-181203111906-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> The Clean Architecture has been formalized by Robert C. Martin in 2012, it&#39;s quite new even if it&#39;s based on the SOLID principles (presented for the first time in early 2000). The biggest benefit that we get using this architecture is the code testability, indeed it separates the application code from the code connected to external factor (that usually is more difficult to test). In this talk we&#39;ll see a practical example of how to apply the SOLID principle, in particular, the dependency inversion.
SOLID principles in practice: the Clean Architecture - Devfest Emila Romagna from Fabio Collini
]]>
550 3 https://cdn.slidesharecdn.com/ss_thumbnails/solidprinciplesinpracticethecleanarchitecture-devfestemilaromagna-181203111906-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
SOLID principles in practice: the Clean Architecture /slideshow/solid-principles-in-practice-the-clean-architecture/117632367 solidprinciplesinpracticethecleanarchitecture-181001173235
The Clean Architecture has been formalized by Robert C. Martin in 2012, it's quite new even if it's based on the SOLID principles (presented for the first time in early 2000). The biggest benefit that we get using this architecture is the code testability, indeed it separates the application code from the code connected to external factor (that usually is more difficult to test). In this talk we'll see a practical example of how to apply the SOLID principle, in particular, the dependency inversion. ]]>

The Clean Architecture has been formalized by Robert C. Martin in 2012, it's quite new even if it's based on the SOLID principles (presented for the first time in early 2000). The biggest benefit that we get using this architecture is the code testability, indeed it separates the application code from the code connected to external factor (that usually is more difficult to test). In this talk we'll see a practical example of how to apply the SOLID principle, in particular, the dependency inversion. ]]>
Mon, 01 Oct 2018 17:32:35 GMT /slideshow/solid-principles-in-practice-the-clean-architecture/117632367 fabio_collini@slideshare.net(fabio_collini) SOLID principles in practice: the Clean Architecture fabio_collini The Clean Architecture has been formalized by Robert C. Martin in 2012, it's quite new even if it's based on the SOLID principles (presented for the first time in early 2000). The biggest benefit that we get using this architecture is the code testability, indeed it separates the application code from the code connected to external factor (that usually is more difficult to test). In this talk we'll see a practical example of how to apply the SOLID principle, in particular, the dependency inversion. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/solidprinciplesinpracticethecleanarchitecture-181001173235-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> The Clean Architecture has been formalized by Robert C. Martin in 2012, it&#39;s quite new even if it&#39;s based on the SOLID principles (presented for the first time in early 2000). The biggest benefit that we get using this architecture is the code testability, indeed it separates the application code from the code connected to external factor (that usually is more difficult to test). In this talk we&#39;ll see a practical example of how to apply the SOLID principle, in particular, the dependency inversion.
SOLID principles in practice: the Clean Architecture from Fabio Collini
]]>
1596 2 https://cdn.slidesharecdn.com/ss_thumbnails/solidprinciplesinpracticethecleanarchitecture-181001173235-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
From Java to Kotlin beyond alt+shift+cmd+k - Kotlin Community Conf Milan /slideshow/from-java-to-kotlin-beyond-altshiftcmdk-kotlin-community-conf-milan/102579002 fromjavatokotlinbeyondaltshiftcmdkkotlincommunityconfmilano-180618071145
Kotlin is a first-class language for Android development since Google I/O 2017. And its here to stay! Thanks to Android Studio its really easy to introduce Kotlin in an existing project, the configuration is trivial and then we can convert Java classes to Kotlin using a Alt+Shift+Cmd+K. But the new syntax is the just beginning, using Kotlin we can improve our code making it more readable and simpler to write. In this talk well see how to use some Kotlin features (for example data classes, collections, coroutines and delegates) to simplify Android development comparing the code with the equivalent modern Java code. Its not fair to compare Kotlin code with plain Java 6 code so the Java examples will use lambdas and some external libraries like RxJava and AutoValue.]]>

Kotlin is a first-class language for Android development since Google I/O 2017. And its here to stay! Thanks to Android Studio its really easy to introduce Kotlin in an existing project, the configuration is trivial and then we can convert Java classes to Kotlin using a Alt+Shift+Cmd+K. But the new syntax is the just beginning, using Kotlin we can improve our code making it more readable and simpler to write. In this talk well see how to use some Kotlin features (for example data classes, collections, coroutines and delegates) to simplify Android development comparing the code with the equivalent modern Java code. Its not fair to compare Kotlin code with plain Java 6 code so the Java examples will use lambdas and some external libraries like RxJava and AutoValue.]]>
Mon, 18 Jun 2018 07:11:45 GMT /slideshow/from-java-to-kotlin-beyond-altshiftcmdk-kotlin-community-conf-milan/102579002 fabio_collini@slideshare.net(fabio_collini) From Java to Kotlin beyond alt+shift+cmd+k - Kotlin Community Conf Milan fabio_collini Kotlin is a first-class language for Android development since Google I/O 2017. And its here to stay! Thanks to Android Studio its really easy to introduce Kotlin in an existing project, the configuration is trivial and then we can convert Java classes to Kotlin using a Alt+Shift+Cmd+K. But the new syntax is the just beginning, using Kotlin we can improve our code making it more readable and simpler to write. In this talk well see how to use some Kotlin features (for example data classes, collections, coroutines and delegates) to simplify Android development comparing the code with the equivalent modern Java code. Its not fair to compare Kotlin code with plain Java 6 code so the Java examples will use lambdas and some external libraries like RxJava and AutoValue. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/fromjavatokotlinbeyondaltshiftcmdkkotlincommunityconfmilano-180618071145-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> Kotlin is a first-class language for Android development since Google I/O 2017. And its here to stay! Thanks to Android Studio its really easy to introduce Kotlin in an existing project, the configuration is trivial and then we can convert Java classes to Kotlin using a Alt+Shift+Cmd+K. But the new syntax is the just beginning, using Kotlin we can improve our code making it more readable and simpler to write. In this talk well see how to use some Kotlin features (for example data classes, collections, coroutines and delegates) to simplify Android development comparing the code with the equivalent modern Java code. Its not fair to compare Kotlin code with plain Java 6 code so the Java examples will use lambdas and some external libraries like RxJava and AutoValue.
From Java to Kotlin beyond alt+shift+cmd+k - Kotlin Community Conf Milan from Fabio Collini
]]>
475 6 https://cdn.slidesharecdn.com/ss_thumbnails/fromjavatokotlinbeyondaltshiftcmdkkotlincommunityconfmilano-180618071145-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
Async code on kotlin: rx java or/and coroutines - Kotlin Night Turin /slideshow/async-code-on-kotlin-rx-java-orand-coroutines-kotlin-night-turin/101938733 asynccodeonkotlin-rxjavaorandcoroutines-kotlinnightturin-180611174106
Its never easy to write async code but luckily there are many libraries to manage asynchronicity without adding too much complexity. In the last years RxJava and the other ReactiveX libraries have been very popular but lately there is a new way to manage async code in Kotlin: the coroutines. In this talk well pros and cons of there two approaches and how to leverage them to simplify asynchronous code on Android. Do they solve the same problem? Can we use them together? Which one can be used to write functional code? How can we use them effectively in Android development? Spoiler alert: They are both great! In this talk well see how to solve common problems using RxJava or Coroutines, starting from basic concepts (for example the Retrofit support and how to cancel a task) to some more advanced (like threading, error management and how to combine multiple tasks). All example of the talk are available on this repository: https://github.com/fabioCollini/RxJavaVsCoroutines ]]>

Its never easy to write async code but luckily there are many libraries to manage asynchronicity without adding too much complexity. In the last years RxJava and the other ReactiveX libraries have been very popular but lately there is a new way to manage async code in Kotlin: the coroutines. In this talk well pros and cons of there two approaches and how to leverage them to simplify asynchronous code on Android. Do they solve the same problem? Can we use them together? Which one can be used to write functional code? How can we use them effectively in Android development? Spoiler alert: They are both great! In this talk well see how to solve common problems using RxJava or Coroutines, starting from basic concepts (for example the Retrofit support and how to cancel a task) to some more advanced (like threading, error management and how to combine multiple tasks). All example of the talk are available on this repository: https://github.com/fabioCollini/RxJavaVsCoroutines ]]>
Mon, 11 Jun 2018 17:41:06 GMT /slideshow/async-code-on-kotlin-rx-java-orand-coroutines-kotlin-night-turin/101938733 fabio_collini@slideshare.net(fabio_collini) Async code on kotlin: rx java or/and coroutines - Kotlin Night Turin fabio_collini Its never easy to write async code but luckily there are many libraries to manage asynchronicity without adding too much complexity. In the last years RxJava and the other ReactiveX libraries have been very popular but lately there is a new way to manage async code in Kotlin: the coroutines. In this talk well pros and cons of there two approaches and how to leverage them to simplify asynchronous code on Android. Do they solve the same problem? Can we use them together? Which one can be used to write functional code? How can we use them effectively in Android development? Spoiler alert: They are both great! In this talk well see how to solve common problems using RxJava or Coroutines, starting from basic concepts (for example the Retrofit support and how to cancel a task) to some more advanced (like threading, error management and how to combine multiple tasks). All example of the talk are available on this repository: https://github.com/fabioCollini/RxJavaVsCoroutines <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/asynccodeonkotlin-rxjavaorandcoroutines-kotlinnightturin-180611174106-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> Its never easy to write async code but luckily there are many libraries to manage asynchronicity without adding too much complexity. In the last years RxJava and the other ReactiveX libraries have been very popular but lately there is a new way to manage async code in Kotlin: the coroutines. In this talk well pros and cons of there two approaches and how to leverage them to simplify asynchronous code on Android. Do they solve the same problem? Can we use them together? Which one can be used to write functional code? How can we use them effectively in Android development? Spoiler alert: They are both great! In this talk well see how to solve common problems using RxJava or Coroutines, starting from basic concepts (for example the Retrofit support and how to cancel a task) to some more advanced (like threading, error management and how to combine multiple tasks). All example of the talk are available on this repository: https://github.com/fabioCollini/RxJavaVsCoroutines
Async code on kotlin: rx java or/and coroutines - Kotlin Night Turin from Fabio Collini
]]>
913 3 https://cdn.slidesharecdn.com/ss_thumbnails/asynccodeonkotlin-rxjavaorandcoroutines-kotlinnightturin-180611174106-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
Recap Google I/O 2018 /slideshow/recap-google-io-2018/97834258 reportgoogleio-180521075158
My recap of Google I/O 2018]]>

My recap of Google I/O 2018]]>
Mon, 21 May 2018 07:51:58 GMT /slideshow/recap-google-io-2018/97834258 fabio_collini@slideshare.net(fabio_collini) Recap Google I/O 2018 fabio_collini My recap of Google I/O 2018 <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/reportgoogleio-180521075158-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> My recap of Google I/O 2018
Recap Google I/O 2018 from Fabio Collini
]]>
103 3 https://cdn.slidesharecdn.com/ss_thumbnails/reportgoogleio-180521075158-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
From java to kotlin beyond alt+shift+cmd+k - Droidcon italy /slideshow/from-java-to-kotlin-beyond-altshiftcmdk-droidcon-italy/94483302 fromjavatokotlinbeyondaltshiftcmdkdroidconit-180420154059
Kotlin is a first-class language for Android development since Google I/O 2017. And its here to stay! Thanks to Android Studio its really easy to introduce Kotlin in an existing project, the configuration is trivial and then we can convert Java classes to Kotlin using a Alt+Shift+Cmd+K. But the new syntax is the just beginning, using Kotlin we can improve our code making it more readable and simpler to write. In this talk well see how to use some Kotlin features (for example data classes, collections, coroutines and delegates) to simplify Android development comparing the code with the equivalent modern Java code. Its not fair to compare Kotlin code with plain Java 6 code so the Java examples will use lambdas and some external libraries like RxJava and AutoValue.]]>

Kotlin is a first-class language for Android development since Google I/O 2017. And its here to stay! Thanks to Android Studio its really easy to introduce Kotlin in an existing project, the configuration is trivial and then we can convert Java classes to Kotlin using a Alt+Shift+Cmd+K. But the new syntax is the just beginning, using Kotlin we can improve our code making it more readable and simpler to write. In this talk well see how to use some Kotlin features (for example data classes, collections, coroutines and delegates) to simplify Android development comparing the code with the equivalent modern Java code. Its not fair to compare Kotlin code with plain Java 6 code so the Java examples will use lambdas and some external libraries like RxJava and AutoValue.]]>
Fri, 20 Apr 2018 15:40:59 GMT /slideshow/from-java-to-kotlin-beyond-altshiftcmdk-droidcon-italy/94483302 fabio_collini@slideshare.net(fabio_collini) From java to kotlin beyond alt+shift+cmd+k - Droidcon italy fabio_collini Kotlin is a first-class language for Android development since Google I/O 2017. And its here to stay! Thanks to Android Studio its really easy to introduce Kotlin in an existing project, the configuration is trivial and then we can convert Java classes to Kotlin using a Alt+Shift+Cmd+K. But the new syntax is the just beginning, using Kotlin we can improve our code making it more readable and simpler to write. In this talk well see how to use some Kotlin features (for example data classes, collections, coroutines and delegates) to simplify Android development comparing the code with the equivalent modern Java code. Its not fair to compare Kotlin code with plain Java 6 code so the Java examples will use lambdas and some external libraries like RxJava and AutoValue. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/fromjavatokotlinbeyondaltshiftcmdkdroidconit-180420154059-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> Kotlin is a first-class language for Android development since Google I/O 2017. And its here to stay! Thanks to Android Studio its really easy to introduce Kotlin in an existing project, the configuration is trivial and then we can convert Java classes to Kotlin using a Alt+Shift+Cmd+K. But the new syntax is the just beginning, using Kotlin we can improve our code making it more readable and simpler to write. In this talk well see how to use some Kotlin features (for example data classes, collections, coroutines and delegates) to simplify Android development comparing the code with the equivalent modern Java code. Its not fair to compare Kotlin code with plain Java 6 code so the Java examples will use lambdas and some external libraries like RxJava and AutoValue.
From java to kotlin beyond alt+shift+cmd+k - Droidcon italy from Fabio Collini
]]>
783 8 https://cdn.slidesharecdn.com/ss_thumbnails/fromjavatokotlinbeyondaltshiftcmdkdroidconit-180420154059-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
From java to kotlin beyond alt+shift+cmd+k /slideshow/from-java-to-kotlin-beyond-altshiftcmdk/90258701 fromjavatokotlinbeyondaltshiftcmdk-180310161517
Kotlin is a first-class language for Android development since Google I/O 2017. And its here to stay! Thanks to Android Studio its really easy to introduce Kotlin in an existing project, the configuration is trivial and then we can convert Java classes to Kotlin using a Alt+Shift+Cmd+K. But the new syntax is the just beginning, using Kotlin we can improve our code making it more readable and simpler to write. In this talk well see how to use some Kotlin features (for example data classes, collections, coroutines and delegates) to simplify Android development comparing the code with the equivalent modern Java code. Its not fair to compare Kotlin code with plain Java 6 code so the Java examples will use lambdas and some external libraries like RxJava and AutoValue.]]>

Kotlin is a first-class language for Android development since Google I/O 2017. And its here to stay! Thanks to Android Studio its really easy to introduce Kotlin in an existing project, the configuration is trivial and then we can convert Java classes to Kotlin using a Alt+Shift+Cmd+K. But the new syntax is the just beginning, using Kotlin we can improve our code making it more readable and simpler to write. In this talk well see how to use some Kotlin features (for example data classes, collections, coroutines and delegates) to simplify Android development comparing the code with the equivalent modern Java code. Its not fair to compare Kotlin code with plain Java 6 code so the Java examples will use lambdas and some external libraries like RxJava and AutoValue.]]>
Sat, 10 Mar 2018 16:15:17 GMT /slideshow/from-java-to-kotlin-beyond-altshiftcmdk/90258701 fabio_collini@slideshare.net(fabio_collini) From java to kotlin beyond alt+shift+cmd+k fabio_collini Kotlin is a first-class language for Android development since Google I/O 2017. And its here to stay! Thanks to Android Studio its really easy to introduce Kotlin in an existing project, the configuration is trivial and then we can convert Java classes to Kotlin using a Alt+Shift+Cmd+K. But the new syntax is the just beginning, using Kotlin we can improve our code making it more readable and simpler to write. In this talk well see how to use some Kotlin features (for example data classes, collections, coroutines and delegates) to simplify Android development comparing the code with the equivalent modern Java code. Its not fair to compare Kotlin code with plain Java 6 code so the Java examples will use lambdas and some external libraries like RxJava and AutoValue. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/fromjavatokotlinbeyondaltshiftcmdk-180310161517-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> Kotlin is a first-class language for Android development since Google I/O 2017. And its here to stay! Thanks to Android Studio its really easy to introduce Kotlin in an existing project, the configuration is trivial and then we can convert Java classes to Kotlin using a Alt+Shift+Cmd+K. But the new syntax is the just beginning, using Kotlin we can improve our code making it more readable and simpler to write. In this talk well see how to use some Kotlin features (for example data classes, collections, coroutines and delegates) to simplify Android development comparing the code with the equivalent modern Java code. Its not fair to compare Kotlin code with plain Java 6 code so the Java examples will use lambdas and some external libraries like RxJava and AutoValue.
From java to kotlin beyond alt+shift+cmd+k from Fabio Collini
]]>
375 5 https://cdn.slidesharecdn.com/ss_thumbnails/fromjavatokotlinbeyondaltshiftcmdk-180310161517-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
Testing Android apps based on Dagger and RxJava Droidcon UK /slideshow/testing-android-apps-based-on-dagger-and-rxjava-droidcon-uk/81281861 testingdaggerrxjavadroidconuknewthemeexport2-171027120732
Writing reliable tests is not easy for many reasons, especially when asynchronous code is involved. Some libraries can be used to create a testable architecture (for example Dagger and RxJava) and to simplify testing (Mockito, AssertJ and DaggerMock). In this talk you'll learn how to write JVM and Espresso tests with particular attention on how to replace real objects with mocks and how to test asynchronous RxJava code. In this talk, you will also explore: how to take advantage of Mockito and other libraries to write good JVM and Espresso tests in both Java and Kotlin how to use DaggerMock (an open source library available on github to avoid boilerplate code in tests how to test asynchronous RxJava code using a JVM test]]>

Writing reliable tests is not easy for many reasons, especially when asynchronous code is involved. Some libraries can be used to create a testable architecture (for example Dagger and RxJava) and to simplify testing (Mockito, AssertJ and DaggerMock). In this talk you'll learn how to write JVM and Espresso tests with particular attention on how to replace real objects with mocks and how to test asynchronous RxJava code. In this talk, you will also explore: how to take advantage of Mockito and other libraries to write good JVM and Espresso tests in both Java and Kotlin how to use DaggerMock (an open source library available on github to avoid boilerplate code in tests how to test asynchronous RxJava code using a JVM test]]>
Fri, 27 Oct 2017 12:07:32 GMT /slideshow/testing-android-apps-based-on-dagger-and-rxjava-droidcon-uk/81281861 fabio_collini@slideshare.net(fabio_collini) Testing Android apps based on Dagger and RxJava Droidcon UK fabio_collini Writing reliable tests is not easy for many reasons, especially when asynchronous code is involved. Some libraries can be used to create a testable architecture (for example Dagger and RxJava) and to simplify testing (Mockito, AssertJ and DaggerMock). In this talk you'll learn how to write JVM and Espresso tests with particular attention on how to replace real objects with mocks and how to test asynchronous RxJava code. In this talk, you will also explore: how to take advantage of Mockito and other libraries to write good JVM and Espresso tests in both Java and Kotlin how to use DaggerMock (an open source library available on github to avoid boilerplate code in tests how to test asynchronous RxJava code using a JVM test <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/testingdaggerrxjavadroidconuknewthemeexport2-171027120732-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> Writing reliable tests is not easy for many reasons, especially when asynchronous code is involved. Some libraries can be used to create a testable architecture (for example Dagger and RxJava) and to simplify testing (Mockito, AssertJ and DaggerMock). In this talk you&#39;ll learn how to write JVM and Espresso tests with particular attention on how to replace real objects with mocks and how to test asynchronous RxJava code. In this talk, you will also explore: how to take advantage of Mockito and other libraries to write good JVM and Espresso tests in both Java and Kotlin how to use DaggerMock (an open source library available on github to avoid boilerplate code in tests how to test asynchronous RxJava code using a JVM test
Testing Android apps based on Dagger and RxJava Droidcon UK from Fabio Collini
]]>
1418 6 https://cdn.slidesharecdn.com/ss_thumbnails/testingdaggerrxjavadroidconuknewthemeexport2-171027120732-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
Intro to Retrofit 2 and RxJava2 /slideshow/intro-to-retrofit-2-and-rxjava2/76100648 introtoretrofit2rxjava2export-170518165805
Introduction to Retrofit 2 and RxJava2]]>

Introduction to Retrofit 2 and RxJava2]]>
Thu, 18 May 2017 16:58:04 GMT /slideshow/intro-to-retrofit-2-and-rxjava2/76100648 fabio_collini@slideshare.net(fabio_collini) Intro to Retrofit 2 and RxJava2 fabio_collini Introduction to Retrofit 2 and RxJava2 <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/introtoretrofit2rxjava2export-170518165805-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> Introduction to Retrofit 2 and RxJava2
Intro to Retrofit 2 and RxJava2 from Fabio Collini
]]>
3123 4 https://cdn.slidesharecdn.com/ss_thumbnails/introtoretrofit2rxjava2export-170518165805-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
Testing Android apps based on Dagger and RxJava /fabio_collini/testing-android-apps-based-on-dagger-and-rxjava testingdaggerrxjavaexport-170407134317
In this talk, you will learn: how to take advantage of Mockito and other libraries to write good JVM and Espresso tests how to use DaggerMock (an open source library available on github https://github.com/fabioCollini/DaggerMock) to avoid boilerplate code in tests how to test asynchronous RxJava code using a JVM test Writing reliable tests is not easy for many reasons, especially when asynchronous code is involved. Some libraries can be used to create a testable architecture (for example Dagger and RxJava) and to simplify testing (Mockito, AssertJ and DaggerMock). In this talk well see how to write JVM and Espresso tests with particular attention on how to replace real objects with mocks and how to test asynchronous RxJava code.]]>

In this talk, you will learn: how to take advantage of Mockito and other libraries to write good JVM and Espresso tests how to use DaggerMock (an open source library available on github https://github.com/fabioCollini/DaggerMock) to avoid boilerplate code in tests how to test asynchronous RxJava code using a JVM test Writing reliable tests is not easy for many reasons, especially when asynchronous code is involved. Some libraries can be used to create a testable architecture (for example Dagger and RxJava) and to simplify testing (Mockito, AssertJ and DaggerMock). In this talk well see how to write JVM and Espresso tests with particular attention on how to replace real objects with mocks and how to test asynchronous RxJava code.]]>
Fri, 07 Apr 2017 13:43:17 GMT /fabio_collini/testing-android-apps-based-on-dagger-and-rxjava fabio_collini@slideshare.net(fabio_collini) Testing Android apps based on Dagger and RxJava fabio_collini In this talk, you will learn: how to take advantage of Mockito and other libraries to write good JVM and Espresso tests how to use DaggerMock (an open source library available on github https://github.com/fabioCollini/DaggerMock) to avoid boilerplate code in tests how to test asynchronous RxJava code using a JVM test Writing reliable tests is not easy for many reasons, especially when asynchronous code is involved. Some libraries can be used to create a testable architecture (for example Dagger and RxJava) and to simplify testing (Mockito, AssertJ and DaggerMock). In this talk well see how to write JVM and Espresso tests with particular attention on how to replace real objects with mocks and how to test asynchronous RxJava code. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/testingdaggerrxjavaexport-170407134317-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> In this talk, you will learn: how to take advantage of Mockito and other libraries to write good JVM and Espresso tests how to use DaggerMock (an open source library available on github https://github.com/fabioCollini/DaggerMock) to avoid boilerplate code in tests how to test asynchronous RxJava code using a JVM test Writing reliable tests is not easy for many reasons, especially when asynchronous code is involved. Some libraries can be used to create a testable architecture (for example Dagger and RxJava) and to simplify testing (Mockito, AssertJ and DaggerMock). In this talk well see how to write JVM and Espresso tests with particular attention on how to replace real objects with mocks and how to test asynchronous RxJava code.
Testing Android apps based on Dagger and RxJava from Fabio Collini
]]>
1536 8 https://cdn.slidesharecdn.com/ss_thumbnails/testingdaggerrxjavaexport-170407134317-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
Android Data Binding in action using MVVM pattern - droidconUK /slideshow/android-data-binding-in-action-using-mvvm-pattern-droidconuk/67775418 databindinginactionukexport-161028084020
The Data Binding framework was one of Googles announcements at I/O 2015, its a big change in the code organization of an Android app. Some developers are sceptical about this framework but, if used in the right way, its very powerful and it allows to remove a lot of redundant boilerplate code from activities and fragments. In this talk well start from the Data Binding basic concepts and then well see how to use it to improve the architecture of a typical Android application applying the Model View ViewModel pattern. Using this pattern you need to write less code to create an app that can be easily tested using JVM and instrumentation tests.]]>

The Data Binding framework was one of Googles announcements at I/O 2015, its a big change in the code organization of an Android app. Some developers are sceptical about this framework but, if used in the right way, its very powerful and it allows to remove a lot of redundant boilerplate code from activities and fragments. In this talk well start from the Data Binding basic concepts and then well see how to use it to improve the architecture of a typical Android application applying the Model View ViewModel pattern. Using this pattern you need to write less code to create an app that can be easily tested using JVM and instrumentation tests.]]>
Fri, 28 Oct 2016 08:40:19 GMT /slideshow/android-data-binding-in-action-using-mvvm-pattern-droidconuk/67775418 fabio_collini@slideshare.net(fabio_collini) Android Data Binding in action using MVVM pattern - droidconUK fabio_collini The Data Binding framework was one of Googles announcements at I/O 2015, its a big change in the code organization of an Android app. Some developers are sceptical about this framework but, if used in the right way, its very powerful and it allows to remove a lot of redundant boilerplate code from activities and fragments. In this talk well start from the Data Binding basic concepts and then well see how to use it to improve the architecture of a typical Android application applying the Model View ViewModel pattern. Using this pattern you need to write less code to create an app that can be easily tested using JVM and instrumentation tests. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/databindinginactionukexport-161028084020-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> The Data Binding framework was one of Googles announcements at I/O 2015, its a big change in the code organization of an Android app. Some developers are sceptical about this framework but, if used in the right way, its very powerful and it allows to remove a lot of redundant boilerplate code from activities and fragments. In this talk well start from the Data Binding basic concepts and then well see how to use it to improve the architecture of a typical Android application applying the Model View ViewModel pattern. Using this pattern you need to write less code to create an app that can be easily tested using JVM and instrumentation tests.
Android Data Binding in action using MVVM pattern - droidconUK from Fabio Collini
]]>
4302 8 https://cdn.slidesharecdn.com/ss_thumbnails/databindinginactionukexport-161028084020-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
Data Binding in Action using MVVM pattern /slideshow/data-binding-in-action-using-mvvm-pattern/60665670 databindinginactionslideshare-160408155544
The Data Binding framework was one of Googles announcements at I/O 2015, its a big change in the code organization of an Android app. Some developers are sceptical about this framework but, if used in the right way, its very powerful and it allows to remove a lot of redundant boilerplate code from activities and fragments. In this talk well start from the Data Binding basic concepts and then well see how to use it to improve the architecture of a typical Android application applying the Model View ViewModel pattern. Using this pattern you need to write less code to create an app that can be easily tested using JVM and instrumentation tests.]]>

The Data Binding framework was one of Googles announcements at I/O 2015, its a big change in the code organization of an Android app. Some developers are sceptical about this framework but, if used in the right way, its very powerful and it allows to remove a lot of redundant boilerplate code from activities and fragments. In this talk well start from the Data Binding basic concepts and then well see how to use it to improve the architecture of a typical Android application applying the Model View ViewModel pattern. Using this pattern you need to write less code to create an app that can be easily tested using JVM and instrumentation tests.]]>
Fri, 08 Apr 2016 15:55:43 GMT /slideshow/data-binding-in-action-using-mvvm-pattern/60665670 fabio_collini@slideshare.net(fabio_collini) Data Binding in Action using MVVM pattern fabio_collini The Data Binding framework was one of Googles announcements at I/O 2015, its a big change in the code organization of an Android app. Some developers are sceptical about this framework but, if used in the right way, its very powerful and it allows to remove a lot of redundant boilerplate code from activities and fragments. In this talk well start from the Data Binding basic concepts and then well see how to use it to improve the architecture of a typical Android application applying the Model View ViewModel pattern. Using this pattern you need to write less code to create an app that can be easily tested using JVM and instrumentation tests. <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/databindinginactionslideshare-160408155544-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> The Data Binding framework was one of Googles announcements at I/O 2015, its a big change in the code organization of an Android app. Some developers are sceptical about this framework but, if used in the right way, its very powerful and it allows to remove a lot of redundant boilerplate code from activities and fragments. In this talk well start from the Data Binding basic concepts and then well see how to use it to improve the architecture of a typical Android application applying the Model View ViewModel pattern. Using this pattern you need to write less code to create an app that can be easily tested using JVM and instrumentation tests.
Data Binding in Action using MVVM pattern from Fabio Collini
]]>
5483 11 https://cdn.slidesharecdn.com/ss_thumbnails/databindinginactionslideshare-160408155544-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
Android Wear CodeLab - GDG Firenze /slideshow/android-wear-codelab-gdg-firenze/54811321 wearcodelab-151106074415-lva1-app6891
Android Wear CodeLab - GDG Firenze. https://github.com/fabioCollini/AndroidWearCodeLab]]>

Android Wear CodeLab - GDG Firenze. https://github.com/fabioCollini/AndroidWearCodeLab]]>
Fri, 06 Nov 2015 07:44:15 GMT /slideshow/android-wear-codelab-gdg-firenze/54811321 fabio_collini@slideshare.net(fabio_collini) Android Wear CodeLab - GDG Firenze fabio_collini Android Wear CodeLab - GDG Firenze. https://github.com/fabioCollini/AndroidWearCodeLab <img style="border:1px solid #C3E6D8;float:right;" alt="" src="https://cdn.slidesharecdn.com/ss_thumbnails/wearcodelab-151106074415-lva1-app6891-thumbnail.jpg?width=120&amp;height=120&amp;fit=bounds" /><br> Android Wear CodeLab - GDG Firenze. https://github.com/fabioCollini/AndroidWearCodeLab
Android Wear CodeLab - GDG Firenze from Fabio Collini
]]>
592 4 https://cdn.slidesharecdn.com/ss_thumbnails/wearcodelab-151106074415-lva1-app6891-thumbnail.jpg?width=120&height=120&fit=bounds presentation Black http://activitystrea.ms/schema/1.0/post http://activitystrea.ms/schema/1.0/posted 0
https://cdn.slidesharecdn.com/profile-photo-fabio_collini-48x48.jpg?cb=1636623269 Software Architect con esperienza su piattaforma J2EE e attualmente focalizzato principalmente in progetti di sviluppo di applicazioni Android. Coautore della seconda edizione di Android Programmazione Avanzata, founder e autore del blog codingjam.it, docente di corsi di sviluppo su piattaforma Android. www.codingjam.it https://cdn.slidesharecdn.com/ss_thumbnails/architecturesinthecomposeworld-211111093626-thumbnail.jpg?width=320&height=320&fit=bounds slideshow/architectures-in-the-compose-world/250631130 Architectures in the c... https://cdn.slidesharecdn.com/ss_thumbnails/usinghiltinamodularizedproject-201009074701-thumbnail.jpg?width=320&height=320&fit=bounds slideshow/using-hilt-in-a-modularized-project/238808593 Using hilt in a modula... https://cdn.slidesharecdn.com/ss_thumbnails/managingparallelismusingcoroutines-200421100247-thumbnail.jpg?width=320&height=320&fit=bounds slideshow/managing-parallelism-using-coroutines/232357918 Managing parallelism u...