Android Tools Android Design Android Architecture Android Software Development Developing Android Apps Kotlin Kotlin Coroutines Kotlin/Native DevOps Skills DevOpsCulture
Nicola Corti is a Google Developer Expert for Kotlin. He has been working with the language since before version 1.0 and he is the maintainer of several open-source libraries and tools.
He's currently working as Android Infrastructure Engineer at Spotify in Stockholm, Sweden.
Furthermore, he is an active member of the developer community.
His involvement goes from speaking at international conferences about Mobile development to leading communities across Europe (GDG Pisa, KUG Hamburg, GDG Sthlm Android).
In his free time, he also loves baking, photography, and running.
Rolling-out a feature is a fine art.
Users are becoming more and more demanding. A single crash could entice them away from your app (and land a shameful 1-star review).
In this context, the possibility of remote controlling your app is a key tool. First, it can protect you against crashes and incidents. Moreover, it can help you experiment on the user experience to fit your users’ tastes.
At Spotify, feature rollout and experimentation are at the foundation of our development. We deliver daily more than a thousand feature flags on a variety of different apps (Android, iOS, and more).
To achieve this, we built an in-house solution to support our experimentation needs. Throughout the years we collected a series of learnings, success stories and pitfalls. In this talk, I will share some of them. Afterwards, you will be able to set the stage for a flawless rollout.
If you're developing mobile apps, you probably know what's one of your most important KPI: Store Rating.
In such an environment, speed is key. You want to be able to iterate fast and ship beautiful apps to your users frequently. But with growing mobile teams, this is becoming more and more challenging.
The Mobile DevOps imposes a prospective shift to the "classical" DevOps perspective. Tools and processes should be adapted to the mobile release flow. You need to have tools to monitor your application, rollout a feature safely, and react to incident and 1-star reviews.
Mobile DevOps engineers to the rescue. They play a fundamental role in adapting your development flow to deliver mobile apps to your end-users.
In this talk, I will share my experience as a Mobile DevOps engineer, some of my preferred tools, and some of the lessons learned while building mobile infrastructures.
When writing networking code, you want to make sure the code between the client and server implementation is consistent. After spending hours defining the APIs with your backend engineers, you’ll probably need to spend even more time implementing those details over to your code (and guess what… your backend engineers will be doing the same!). This process is boring, time consuming, and prone to errors.
Wouldn’t it be cool if this process were automated? If you could have classes and interfaces that mirror your API definition? And if they were automatically tested and ready to use out of the box?
It can be done! At Yelp, we define our APIs using Swagger Specs and we successfully automated the generation of our networking code for both servers and clients (iOS & Android). On Android, we generate Kotlin Data Classes and Retrofit APIs that mirror our spec files and are ready to use for all engineers. In this talk, we will explore how we set up our code generation pipeline and how you can start doing it, too.
We're going to deep dive inside some of the Kotlin's keyword implementation: inline, infix, operator and tailrec.
You probably already used those keywords before, but do you know all the features and edge cases? This session will be a showcase of those those Kotlin keywords with a live coding.
We're going to see usage examples and potential pitfalls when using those language features.
É giunto il momento di scoprire come funzionano alcune delle keywork di Kotlin:
inline, infix, operator e tailrec.
Forse ti sarà già capitato di utilizzare queste keyword in passato, ma sei sicuro di conoscerne a fondo tutti i dettagli? Durante questa sessione scopriremo che queste keyword nascondono tante features nascoste che non tutti conoscono.
La sessione sarà un live coding dove verranno mostrati pattern di utilizzo comuni ed errori frequenti relativi a queste features di Kotlin.
How about learning a new programming language?
We're going to learn Kotlin, from the ground up! During this live coding session we're going to learn the basis of this popular programming language.
Kotlin is not just Android. With Kotlin you can actually develop software for every platform that has a JVM and not only!
During this session we're going to discover some of the unique features of Kotlin and what is makes it a great alternative to Java.
Quale modo migliore di affrontare la quarantena se non quello di imparare un nuovo linguaggio di programmazione?
Impareremo assieme le basi di Kotlin partendo da zero tramite una sessione di Live Coding.
Kotlin non e' solo Android! Tramite Kotlin e' possibile sviluppare su qualsiasi piattaforma che abbia una JVM e non solo!
Durante questo talk scopriremo alcune delle features che rendono Kotlin un linguaggio molto amato dagli sviluppatori e che che lo rendono un degno rivale di Java.
Have you ever thought about the amount of code, material and support you received from the open source community? A lot of open source projects helps us in our daily work and it would be really hard to live without.
Have you though about contributing to the open source community?
Open source is not just pushing code on Github. Everyone of us can provide his contribution and help someone else. If you haven't done it yet, now it's really time to start giving back to the community.
In this talk I'm going to share my experience in the mobile open source community.
Ti sei mai fermato un attimo a pensare alla quantità di materiale, supporto, librerie e codice che hai ricevuto dalla comunità open-source? Molti di questi progetti sono alla base del nostro lavoro/studio quotidiano.
Hai mai pensato di contribuire al mondo open-source?
Fare open source non significa solamente pubblicare codice su Github. Ognuno di noi può da un contributo che può aiutare qualcun altro. Se ancora non hai iniziato, é giunto il momento di rendere il favore alla comunità open-source.
In questo talk condividerò la mia esperienza nel mondo dell'open source e come ha contribuito a cambiare la mia vita.
Do you exactly know what's your app doing when you deliver it to your users? Are you 100% sure? Would you bet on this? You're probably confident with the code you wrote and you know what is doing.
But what about the code that others wrote?
We pull dependencies from the online repositories every day. Our applications strongly rely on external libraries that are hosted on public Maven repositories. What if one of those library contains some malicious code? Imagine a library that starts harvesting your user data without you knowing it.
In this talk we will see how to monitor and protect your application from malicious dependency on the web that might end up in your final compiled App.
As a library user, you probably know that versions don't always tell the truth. Have you ever experienced a broken build after doing a minor bump of a library?
As a library author, maintaining a clean API is a challenge. There is always the risk that a breaking change sneaks in by accident.
Wouldn't it be nice to get notified if you're accidentally breaking your users' code? A tool to inspect the binary API of your Kotlin/Java code can help you exactly with that. In this talk, we will see some of those tools and how that simplifies the life of library & SDK developers.
This session is for a 20/25 minutes talk.
What's the first thing you should do when starting a new project...? Setup a good CI system!
With Github Actions you can do it in a couple of seconds. You can easily setup a workflow to build your project, test it on different machines, and deploy the results.
In this talk we're going to see how you can setup a simple Github Action for your repository and start enjoying it right after.
Quale é la prima cosa che dovresti fare dopo che hai creato un nuovo progetto...? Configurare un sistema di Continuous Integration (CI)!
Con Github Actions puoi farlo in una manciata di secondi. Puoi facilmente creare un workflow per compilare il tuo progetto, testarlo su svariate macchine e pubblicare il risultato.
In questo talk vedremo come é semplice configurare una Github Action per il tuo repository e iniziare ad utilizzarla da subito.