Start of main content

Schedule

  • The time in the program is for your time zone .

  1. November 1. ONLINE

    • Talk type: Talk

      How Not to Mess up with Live Activity

      Live Activity is an iOS functionality that offers a new experience of user interaction. The speaker will share his experience of integrating the functionality with the Yandex Go app: what to look out for, what challenges you will encounter, as well as what to do and what not to do when maintaining Live Activity.

    • Talk type: Talk

      How Can Compose Multiplatform for iOS Kill Flutter?

      Valentin will cover Compose Multiplatform for iOS and its advantages. We will dive into the architecture, find out the peculiarities of skia/impeller/skiko and learn how to prepare shared UI. 

      As a live example, the speaker will implement several screens of a real KMM application, where the iOS part is written on swiftUI, and demonstrate both the advantages and challenges of the new approach. We will also see why Flutter is required for shared UI on KMM.

    • Talk type: Talk

      Compiler Plugins: Modifying and Analysing Compose

      In the process of implementing Jetpack Compose in a large project, Askhar encountered many intricacies, and some of them were tackled with the help of Kotlin Compiler plugins.

      In the talk, the speaker will review the peculiarities of Compose Compiler, share examples of solutions to problems and how to get into plugin development.

    • Talk type: Talk

      Journey to the Center of the Composition

      As we continue our exploration of the inner structure of Compose Runtime, we'll talk about Compose – the key mechanism of the framework, without which Compose would not be Compose at all.

      We will discuss when and where Compose is created, what data structures are used for this purpose, and how exactly the changes made update the tree of Composable components.

    • Talk type: Talk

      SwiftUI Navigation

      Navigation is arguably one of the most complex parts of SwiftUI. The toolkit is now strongly limited and contains many problems, such as crashes and undefined behaviour.

      The speaker will review the nuances and internals of the current API, as well as the approach to working with it, including UIKit extensions for missing methods.

  2. November 2. ONLINE

    • Talk type: Conversation

      Opening Session. Day 2

      We'll talk about schedules, sessions and activities. Join us to find out what's on the air soon!

    • Talk type: Talk

      Full-Duplex Communication in Flutter

      Together with the speaker, we will dive into the world of real-time data exchange in Flutter, explore the power of web sockets, learn how to fetch live data from servers, and understand advanced server-client interactions.

      The talk will help you enhance your Flutter apps with bidirectional communication and stay ahead in the digital landscape.

    • Talk type: Talk

      Beyond Button Colouring. Computer Vision Techniques

      Everyone has heard about neural networks and what magic they can do. But what was before neural networks? How did developers make the machine "see"? We'll talk about approaches to performing tasks and discuss when neural networks are inferior to other approaches.

    • Talk type: Game

      Compose Quiz

      At the session, you will enjoy an exciting and informative quiz game with a series of questions from the hosts on the most important aspects of working with Jetpack Compose.

      The one who gives the most correct answers will get interesting prizes in addition to invaluable experience.

    • Talk type: Talk

      How to Make It Not Slow down, Please

      Eugene will tell us how to collect relevant metrics of app launch speed and responsiveness; what happens at all levels from the moment you click on the service icon to the first click in the app; what tactics to apply to speed up launch and responsiveness after launch; what optimisation opportunities are available in iOS and how effective they are – both old and implemented in the latest versions of the SDK.

    • Talk type: Talk

      Embedding Unity into a Mobile App. Pain and Crutches

      There is a 3D engine that works well on mobile devices, and there are native mobile applications. And it seems like you could combine them – like in the old Pen-Pineaple-Apple-Pen meme. But all this is not that obvious.

      During the talk, the speaker will share his practical experience of implementation.

    • Talk type: Talk

      Cracking and Protecting Android Applications

      A talk on cracking and protection techniques. We will try to attack the application first, and then immediately protect it. And then we'll attack the new protection, and so on circle-wise.

      First, we will talk about trivial things, such as viewing application data through traffic sniffers or bytecode sniffing. Then we'll get more complicated: we'll talk about changing application behaviour via Frida and protecting against it with C++. And finally, we'll try to crack C++.

    • Talk type: Talk

      The Amazing World Within .ipa

      The speaker will describe what's inside an .ipa file, go through the most common files inside and show what interesting things you can get out of them; how files can be modified without harming the application; what interesting things you can get out of an executable without running or using disassemblers; how you can compare two applications for similarity using Hopper + BinDiff, and how to make those binaries different.

      The speaker will explain why Apple knows what your user's name is on your computer when you build an application. He will also talk about how Apple uses static and dynamic .ipa analysis when reviewing apps for the store.

  3. November 9. ONLINE + OFFLINE

    • Talk type: Talk

      Hall 1

      SwiftData as a Replacement for CoreData. Deep Dive

      A deep dive into the details of the new SwiftData framework, comparison with CoreData, performance metrics and a plan for integration into the project. And at the end — a conclusion about the need to migrate to the new framework, possible ways to use it in versions before iOS 17.

    • Talk type: Talk

      Hall 2

      Instant Start: How VK Clips Handle Video Playback on Android

      At VK Clips, Dmitry and his team constantly optimize the feed, handling recommendations, storage and playback on the client. The speaker will discuss what helps them achieve an instant video start. We'll also consider the effective use of ExoPlayer, video integration into RecyclerView and potential pitfalls that may be encountered along the way.

    • Talk type: Talk

      Hall 3

      Killing Lottie? Bringing in Rive?

      The speaker will talk about Lottie: we will discuss its limitations and see how it works under the hood as well as how the rendering mechanism works in particular.

      We will also discuss a new tool from the creator of Lottie – Rive. Evgeniy will show how Rive solves problems that Lottie can't handle – as an example, we'll look at Rive's under-the-hood interactivity. In addition, we'll implement an interactive animated element with Rive and without coding.

    • Talk type: Talk

      Hall 1

      Is Swift Modern Concurrency Really That Necessary?

      Not in a hurry to switch to Swift Modern Concurrency or are already actively using it, but don't understand its pluses except for its nice syntax? Then it will be useful for you to learn what concept lies inside the new model of concurrency and what its pros and cons are.

    • Talk type: Talk

      Hall 2

      How to Stop Picking Up a Project and Start Working

      We've all read dozens of papers with how-to articles on speeding up the build of an Android project. But what to do when the tips have been applied, optimizations have been performed, the project has long passed 1000 modules and you have time to go to lunch during the cold build? Alyona will tell you how the Sberbank Online platform team managed to reduce the local build time by 3 times using a customized approach and a pinch of Gradle magic.

    • Talk type: Talk

      Hall 3

      A Recipe for Making a Cross-platform Mobile Video Editor

      We will learn:

      – How to combine several different multimedia products and technologies into one super app project.
      – How to bring together C++ and Kotlin Multiplatform.
      – How different memory management mechanisms (Swift, Objective-C, KMM, C++, C) co-exist.
      – How to design a presentation layer so that only the layout is on the platform.
      – What KMM features helped the team during development, and which ones did not.

      At the end of the talk, we'll find out what you should expect from using KMM, and what is "the recipe for making a cross-platform mobile application". 

    • Lunch break

      Lunch break is at different times for different participants. Please refer to the printed program for details.

    • Talk type: Talk

      Hall 1

      SwiftUI Navigation: Simple, Native and Declarative

      We'll discuss how to make simple, feature-rich declarative-style navigation without routers and coordinators, relying on SwiftUI technology standards. The final solution will have iOS 14 support and NavigationStack capabilities, and it will be free of SDK flaws and bugs.

    • Talk type: Talk

      Hall 2

      How We Developed a Design System on Jetpack Compose

      Nowadays, every modern mobile app needs a convenient design system.

      The speaker will tell us about the path his UI team went through when implementing the design system on Jetpack Compose. We will look at the difficulties they encountered while developing and conducting a design review, discuss ways to interact with Material, and pay special attention to the tools for implementing non-standard UI that performed the best.

    • Talk type: Talk

      Hall 3

      Code Review in Action

      The rapid growth of the team and the project led to the need to change many processes. Many problems were not solved: a large number of bugs, heterogeneity of the code base, lack of proper experience sharing between employees, and many others. A well-built code review process became an effective solution for these issues. Konstantin will talk about how they overcame toxicity and improved internal competition between engineers during the review, what stages they went through as a team, and how their process looks like today. Of course, it wasn't without extensive automation of routine. They have created a system that makes life easier for everyone involved in the process and allows for easy modifications. Konstantin will also talk about it in detail.

    • Lunch break

      Lunch break is at different times for different participants. Please refer to the printed program for details.

    • Talk type: Workshop

      Hall 3

      Designing Non-visual Interfaces: Basics, Meanings, Examples. Part 1

      An interactive workshop where we will design non-visual interfaces together.

      We will:

      • switch on TalkBack and VoiceOver and recall how to use them and why;
      • take an honest look at the digital interface and its representations: visual, auditory and even tactile;
      • analyse the key components of the interface and try to design solutions so that they are correctly presented to assistive technologies.
    • Talk type: Talk

      Hall 1

      BDUI 100%: Controlling Shimmers from the Backend

      The BDUI development team at Market developed their own language to describe shimmers, learnt how to parse it quickly and embedded it in the application and their backend. The speaker will tell us why they decided to develop their own language similar to Lisp and why the usual JSON or binary format didn't fit, as well as how they learnt to generate code for both platforms (iOS, Android) using Python and why they gave up the idea of using KMM.

    • Talk type: Talk

      Hall 2

      Swift Plugins: Accelerating Project Assembly

      The speaker will talk about Swift Plugins: what they are, how to use them, and how to create your own ones. Maxim will also demonstrate how the helpers like SwiftFormat, SwiftGen, Sourcery, Needle, Prefire can reduce assembly time from 1m 30s to 5s.

    • Talk type: Workshop

      Hall 3

      Designing Non-visual Interfaces: Basics, Meanings, Examples. Part 2

      An interactive workshop where we will design non-visual interfaces together.

      We will:

      • switch on TalkBack and VoiceOver and recall how to use them and why;
      • take an honest look at the digital interface and its representations: visual, auditory and even tactile;
      • analyse the key components of the interface and try to design solutions so that they are correctly presented to assistive technologies.
    • Talk type: Talk

      Hall 1

      All the Problems With Modular Project Work Solved. Do You Want the Same?

      Together with the speaker you will understand why multi-repo and multi-modularity is cool, look at the problems it creates and solve them immediately. Special emphasis is placed on synchronizing repository changes, getting rid of dependency hell, and controlling the consistency of a large project.

    • Networking and Afterparty

      To see old friends. To discuss current problems. To come up with new ideas. To debate and just chat. To relax at the afterparty at the end of the day.

  4. November 10. ONLINE + OFFLINE

    • Talk type: Talk

      Hall 1

      Adaptation of Interfaces for Aurora OS: From Components to Patterns

      During the talk we will learn what is the peculiarity of Aurora OS design system and how it differs from other design systems; how to use components correctly and what should be taken into account when designing interfaces for Aurora OS; what behavioural patterns are peculiar to this platform; how to port an application to Aurora OS so that it does not look alien, but at the same time retains its attractiveness for users.

    • Talk type: Talk

      Hall 1

      What State Hides in Compose

      Alexey will continue talking about how Jetpack Compose works under the hood. In particular, he will dive into what State truly means for Compose. He'll explain why it's far from being as simple as it appears at first glance, and why it's a crucial mechanism in the functioning of Compose as a whole.

    • Talk type: Talk

      Hall 2

      “Is It Working Fine for Us Now?” or What Is Observability of a Mobile App

      In the world of backend, APIs and databases, good monitoring has long been a matter of course. Daniel will share how Tinkoff approaches observability of the company's main mobile banking application with a daily audience of over 10 million customers. The speaker will also talk about what metrics are monitored and what practices have proven to be effective in this area.

    • Lunch break

      Lunch break is at different times for different participants. Please refer to the printed program for details.

    • Lunch break

      Lunch break is at different times for different participants. Please refer to the printed program for details.

    • Talk type: Talk

      Hall 1

      BDUI – a Pleasure or a Pain?

      During the talk we will learn about Cian's experience in Backend-Driven UI development. The speaker will tell us why they decided to create their own tool, review the main nuances of the implementation, and demonstrate how it works. We will talk about what difficulties may await when developing such a tool and discuss its area of application. 

    • Talk type: Talk

      Hall 1

      Life of an Indie on Google Play

      The speaker will talk about the complexities of indie development and the rules of Google Play.

      Indie is their own boss and, as in the TV series about gangsters, is responsible for everything. Indie specifics can't be described in two phrases, but you can learn useful from the recommendations.

      The times of an empty mobile app market are over, and budgets for developing serious apps are not affordable for ordinary indie developers. Vladimir will touch upon the topic of finding niches that big companies have not yet occupied or may not occupy due to economic reasons. There will also be some serious theory, without which indie development will be difficult.

    • Talk type: Talk

      Hall 2

      How to Reduce the Application Weight Quickly: Moving Images and Localization Strings to the Server

      We'll look at how we can reduce the application size, as well as conclude that one of the most important aspects in this process is getting rid of localization strings and xcasset catalogs. The speaker will explain how this can be done with minimal costs and without large-scale refactoring of the entire application.

    • Talk type: Technical interview

      Hall 3

      Cracking the Android Interview

      When applying for a job, we have to go through a job interview – but nobody knows what to expect from it. Dmitry will share his experience of interviews on both sides of the fence, give advice on how to prepare for a next interview stage, as well as explain what level of knowledge is required for each grade.