18 Maggio 2018

DroidCon IT, Turin, 19 & 20 April 2018: our report

On April 19, 20 we attended the Droidcon IT, the 5th edition of this Android-centric conferenced based in Turin.

The venue was Officine Grandi Riparazioni (OGR), a former trains repair workshop. This huge industrial building has now been converted to a space for big events, like conferences, concerts or exhibitions.

The conference format was inusual: there were three big stages, side to side, with no walls in the middle, so broadcasting the speakers wouldn’t have been feasible… that’s why the organizers resorted to Silent Arena, providing a set of headphones to each attendee. A simple switch from red to green to blue light, and the headphone changed channel to one of the three talks going on at the same time. We were a bit skeptical at the beginning, but the solution proved very effective and worked seamlessly, allowing people not to miss a word even while having a coffee break. Here’s a picture of how NOT to use the headphones:

Paving your Path to becoming a better Android Developer (keynote)

The first to get the ball rolling was Rebecca Franks from Johannesburg, South Africa.

Her inspirational talk about continuous improvement, learning and sharing was a great way to start the day with the right vibe!

Developing Media Streaming Android Apps the Easy Way with Fire App Builder

Mario Viviani showed us that Android apps aren’t just limited to mobile devices and presented Amazon framework to quickly develop stunning apps for Amazon Fire TV, that finally landed in Italy, too.

An Iot Cloud-Based Architecture for Anesthesia Monitoring

In her talk, Francesca explained the project she worked on during her PhD Biomedical Engineering.
Her team has developed a platform for continuous monitoring of sedated patients; this platform, based both on a local server, Android devices and cloud services, allows physicians to monitor the values and rates of anesthetic, painkiller and sedatives administered to patients, and accurately increase or decrease infusion as needed.
In addition to having a practical and immediate value, the patient data are then saved and available on the cloud platform Pryv, and go in time to enrich the project database.
A very interesting project, which shows the potential of Android in a context as delicate as surgery.

An introduction to Bluetooth mesh for Android developers

In the summer of 2017, a new flavor of Bluetooth technology was introduced: Bluetooth Mesh Networks.

Martin Woolley presented a roundup of the concepts that are the foundation of this technology, and offered possibile applications to cover entire buildings using Bluetooth meshes, that allowed communication between different devices over distances far longer than the standard Bluetooth.

Adding conversational features to your mobile app

Elaine and Jade showed us what does it means today working on “conversational interfaces”.

First of all, they underlined the current status of this set of technlogies: we are yet at the earlier stage, and even if things are evolving quite rapidly, we cannot say for sure that they are working as expected, at least not all the times.

They made us a practical examples; there put together a simple app that allows people to find infos about a conference (schedule, speakers and so on), using well-know technologies a Tensor Flow, Firebase and Dialog Flow.

A talk is not enough to learn a wide topic like this one, but in this session we learnt for sure a little bit about this new (and exiciting) technology.

Guide for the lazy developer

Maria put together a nice collection of advices for developers in search of the right library to include.

She remarked how to deal with external dependencies, how to decide when it’s good have a thirdy-part library in your project and how to choose the right one based on common health indicators (like how  many updates and contibutors, stabilty of the APIs and so on).
She also reminded us how to deal with licenses: we often ignore them, especially when using open-source code, but this can lead us into troubles.
A nice recap, we appreciated it.

Second day

Simplicity is Not Simple

David Hogue, UX Design Lead at Google, held the keynote for the second (and final) day of droidcon.

He shared with us his experience in aiming for the best design solutions. He gave tips on how to recognize unneeded complexity in a design, explained many good reasons why simplicity should be a goal (and when, on the contrary, too much simplicity could be a problem), and some techniques that can be helpful in making an application simpler, easier to use and – in the end – more successful.

The right amount of simplicity should minimize the effort for the users to reach their goal, while making them confident they are going to get the expected result. On the other hand, too much simplicity can be harmful when applied in the wrong context: e.g. the payment process should not be so fast and simple that users would miss important warnings about the product they are buying. Balancing is not an easy task, and David’s tips can be precious.

Multiplatform Kotlin Development

Native apps or cross-platform development? The newest answer to this dilemma is: neither! And both!

Kotlin/Native might not be mature enough for all environments yet, but it’s growing fast, and the opportunities it’s opening are very promising.

Marcin Moskała showed us the architecture of a multi-platform Kotlin project, that allows sharing code for multiple target platforms: web, Android, iOS. The choice is between a native, faster development targeting different platforms (Kotlin/Native, Kotlin/JS, Kotlin/JVM) and a faster execution with specific native libraries and solutions, using Kotlin/Native for all target environments.

Kotlin Tips & Tricks

Lorenzo Quiroli came to the rescue of all Kotlin beginners with a set of useful tips and tricks, including idiomatic constructs that we’d better learn.

He gave several interesting and helpful suggestions, like: did you know you can use @JvmField, @JvmStatic and their friends to improve the readability of a mixed codebase when introducing Kotlin in a Java environment? And what about Kotlin smart cast and why do var declarations break them? And what’s the difference between a field in a companion object and a top level const val? Have a look at his presentation for even more tips.

How to write Gradle plugins (in Kotlin)

Stefan May explained some of the magic behind Gradle and used Kotlin DSL to create a Gradle plugin.

Very interesting behind the scenes peek, useful to better understand what happens in the mysterious world of Gradle.

Inside Android KTX

Android KTX are a set of Kotlin extensions for Android app development.

Roberto Orgiu explained many of the available functions with clear examples, going in depth with some “behind the scenes” peeks about the main features of the language that made this possible.

Among the others: how to manage animations, edit preferences, destructuring colors in their components, and much more.

From Java to Kotlin beyond Alt+Shift+Cmd+K

The penultimate Kotlin-centered talk of the day came from Fabio Collini, Google Developer Expert from Florence.

Starting from the shortcuts all Kotlin neophytes (should) have learnt to love and use when they want to convert a Java class into an exquisite Kotlin file in IntelliJ Idea (Alt+Shift+Cmd+K or Alt+Shift+Ctrl+K, depending on your O.S.), Fabio showed us there is much more to Kotlin than just a few cosmetic syntax changes.

From data classes to collections, from companion objects to asynchronous code and delegates, the rabbit hole is very deep.

See for yourself: https://www.slideshare.net/fabio_collini/from-java-to-kotlin-beyond-altshiftcmdk-droidcon-italy

Better asynchronous programming with Kotlin Coroutines

Kotlin Coroutines are still quite new (they are still an experimental feature, in fact).

Erik Hellman introduced us to the power of this programming model, showing how they work in abstract and in practice.

A much more linear approach to managing the subtleties of asynchronous programming, without incurring in the dreaded callback hell: very interesting!

Pragmatic Testing

We all love testing, right?

Well, maybe we do not always love writing tests, but we sure love having them to save us from countless hours of debugging.

Zac Sweers had a lot of suggestions about ways to make our tests more useful, manageable and meaningful.

See you soon…

…for more Kotlin goodness at Milan Kotlin Community Conf!

Serendipità: viaggio alla scoperta del mondo incerto dello sviluppo software

Il racconto dell'esperienza di viaggio del collega Marco Testa nell'incerto mondo dei progetti software

Agile Venture Vimercate 2019

Il racconto della giornata di conferenza tenutasi a Vimercate.

Ogni nostro Sprint ha l'obiettivo di massimizzare il Valore per l'utente finale