Imagine for a moment that we live in a world where only one mobile platform exists. Where you write your code once, where business people never change their minds… Now wake up. As a company that develops Android and iOS apps, we got the most success using native whenever possible. However, it’s a stake in our engineer’s heart that every feature is implemented multiple times. This can lead to slower development, divergence between platforms and less maintainability. In this talk we will present approaches that we use to share code between iOS and Android. These solutions proved viable in more than 10 apps used by more than 7 million users. We will go through:
Core animation is very powerful, yet building visuals with it seems like a hard thing to do. That is mainly due to its complexity and lack of modern resources available. However, there is a good reason to embrace this framework - it is one of the rare ways to make performant animations for Apple devices and there are tools coming to ease up the implementation. In this talk you will learn what is Core Animation and what opportunities it offers. We will learn it with real life use cases. As well presenter will show how to experiment and how to accomplish what designer could ask for.
Our apps run on the most personal devices people have, it’s our responsibility as engineers to make sure the apps we ship don’t do them any harm, by respecting their right to privacy. In this talk, I’m going to present some key aspects and techniques of building secure and private apps on Apple’s platforms.
Learn how to architect an entire app – from UI, through user / data flows and transactions down to data storage and delivery – in independent, interchangeable layers. With layers that can be freely combined as needed, with no or minimal disruption to the rest of app. Just like an onion. You will learn that MVC is excellent, if employed properly. You will learn how to use Coordinators without delegates and with truly minimal UIKit extensions. Learn about an approach suitable for iOS teams of one and teams of 1000 developers. For 5 screen apps and for 200+ UIViewController behemots.
Protocol-oriented programming is strongly recommended in the Swift community, and Apple has given a lot of guidance on how to use it in your everyday code. However, there has not been a lot of attention on when it is not appropriate, and what to do in that case. We will explore this idea, and show that there is a completely straightforward and mechanical way to translate any protocol into a concrete datatype. Once you do this you can still write your code much like you would with protocols, but all of the complexity inherit in protocols go away. Even more amazing, a new type of composition appears that is difficult to see when dealing with only protocols. We will also demo a real life, open source library that was originally written in the protocol-oriented way, but after running into many problems with the protocols, it was rewritten entirely in this witness-oriented way. The outcome was really surprising, and really powerful.
After all of 2018 spent as alpha and beta, WorkManager graduated in 2019 to its first stable release and it is now the recommended solution for scheduling and executing deferrable background tasks in Android. In this talk we’ll quickly look into which use cases are a good fit for WorkManager, and which are better handled by different tools/APIs. Then we will jump into the API itself covering the different options available, from the simple Worker class to the newer CoroutineWorker. All this with an eye on how you can (and should) test your Workers and how you can implement some of the few missing features that are not yet covered by WorkManager out of the box. With this talk you’ll learn:
Update your browser to view this website correctly. Update my browser now