{"$schema": "https://c3voc.de/schedule/schema.json", "generator": {"name": "pretalx", "version": "2024.2.1"}, "schedule": {"url": "https://papers.synesthesia.it/droidcon-2024/schedule/", "version": "0.24", "base_url": "https://papers.synesthesia.it", "conference": {"acronym": "droidcon-2024", "title": "droidcon Italy 2024", "start": "2024-11-29", "end": "2024-11-30", "daysCount": 2, "timeslot_duration": "00:05", "time_zone_name": "Europe/Rome", "colors": {"primary": "#0A2E59"}, "rooms": [{"name": "Left Stage", "guid": "1c2611a6-c4a9-5560-9198-3464c9e6796c", "description": null, "capacity": null}, {"name": "Right Stage", "guid": "ee458df0-3dee-55ea-bf3b-895b3beb1078", "description": null, "capacity": null}], "tracks": [{"name": "Android", "color": "#31B95E"}, {"name": "Flutter", "color": "#10CD5F"}], "days": [{"index": 1, "date": "2024-11-29", "day_start": "2024-11-29T04:00:00+01:00", "day_end": "2024-11-30T03:59:00+01:00", "rooms": {"Left Stage": [{"url": "https://papers.synesthesia.it/droidcon-2024/talk/GUTWJD/", "id": 352, "guid": "9e271704-2f99-59e9-952a-39a226900e93", "date": "2024-11-29T10:20:00+01:00", "start": "10:20", "logo": null, "duration": "00:40", "room": "Left Stage", "slug": "droidcon-2024-352-tidal-music-networktime-a-kotlin-multiplatform-experience", "title": "tidal-music/networktime: a Kotlin multiplatform experience", "subtitle": "", "track": "Android", "type": "Talk", "language": "en", "abstract": "Join me in navigating the highlights of my experience to learn about some of the particularities of developing and distributing an open-source Kotlin multiplatform library.", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"guid": "9c2e3f4d-529e-5de8-9897-6fc2a0f23d13", "id": 242, "code": "7TXKCD", "public_name": "Jorge Antonio Diaz-Benito Soriano", "avatar": "https://papers.synesthesia.it/media/avatars/me_2024_3gvhwxb.jpg", "biography": "I have over 10 years of professional experience with Android, not only with applications and libraries but also at the OS level, buildsystem (both Gradle and Ant) and metaprogramming.\r\n\r\nI also have deep open-source experience with contributions to high-impact projects such as androidx/media3, OkHttp and AssistedInject (now a functionality part of Dagger 2).\r\n\r\nFind me on LinkedIn: https://www.linkedin.com/in/jorge-android", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://papers.synesthesia.it/droidcon-2024/talk/HNYRNW/", "id": 296, "guid": "553328cf-44da-5c5d-92bc-e92a5860953d", "date": "2024-11-29T11:30:00+01:00", "start": "11:30", "logo": null, "duration": "00:40", "room": "Left Stage", "slug": "droidcon-2024-296-practical-patterns-for-kotlin-coroutines-in-production", "title": "Practical Patterns for Kotlin Coroutines in Production", "subtitle": "", "track": "Android", "type": "Talk", "language": "en", "abstract": "Unlock the full potential and extensive capabilities of Kotlin Coroutines with a focused exploration of their practical implementations across various real-world scenarios. This  comprehensive talk will guide you through essential best practices, demonstrate robust patterns for common asynchronous tasks, alongside comprehensive guidance on synchronizing and using flow in Android environment.", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"guid": "c191618d-7039-5af0-b73f-7afbe5e55e48", "id": 210, "code": "XFFXAP", "public_name": "Marcin Moska\u0142a", "avatar": "https://papers.synesthesia.it/media/avatars/8gJVTam7_400x400_IYqK34B.jpg", "biography": "Marcin Moskala is a highly experienced developer and Kotlin instructor as the founder of Kt. Academy, an official JetBrains partner specializing in Kotlin training, is known for his significant contributions to the Kotlin community. Moskala is the author of several widely recognized books, including \"Effective Kotlin,\" \"Kotlin Coroutines,\" \"Functional Kotlin,\" \"Advanced Kotlin,\" \"Kotlin Essentials,\" and \"Android Development with Kotlin.\"\r\n\r\nBeyond his literary achievements, Moskala is the author of the largest Medium publication dedicated to Kotlin. As a respected speaker, he has been invited to share his insights at numerous programming conferences, including events such as Droidcon and the prestigious Kotlin Conf, the premier conference dedicated to the Kotlin programming language.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://papers.synesthesia.it/droidcon-2024/talk/GTYVJV/", "id": 301, "guid": "5151d355-6333-556b-aa86-21a3f8fa19aa", "date": "2024-11-29T12:10:00+01:00", "start": "12:10", "logo": null, "duration": "00:40", "room": "Left Stage", "slug": "droidcon-2024-301-how-to-collect-application-metrics-if-it-needs-to-be-done-yesterday", "title": "How to collect application metrics if it needs to be done yesterday", "subtitle": "", "track": "Android", "type": "Talk", "language": "en", "abstract": "The value of application monitoring is indisputable, yet often we grapple with functioning applications that unveil performance issues over time. In environments where these bottlenecks negatively impact user experience, and with an expansive codebase to manage, finding quick and efficient solutions becomes a priority. \r\nSo the question is, how can we effectively identify and collect metrics of long-standing production applications without spending a year on them? \r\nIn this lightning session, we explore various strategies to handle these challenges swiftly and develop a guideline for developers seeking to maintain and improve their applications' performance and user experience.", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"guid": "b9fee628-193b-5df8-9e34-7de250ad5d08", "id": 211, "code": "EA7GNE", "public_name": "Alina Boshchenko", "avatar": "https://papers.synesthesia.it/media/avatars/pic_aWQeuwk.jpeg", "biography": "Alina is a software engineer and security champion at JetBrains. Her current focuses are high-load systems, more specifically new transaction management concepts for the embedded database, software development on Kotlin/Java, and network security. As a member of the Security Champions team, I ensure the robustness of systems by identifying and fixing security issues.\r\nI am a serial hackathonner and my interests also extend to mentorship, where I guide and support students through workshops and talks, equipping them with the necessary skills and knowledge to excel in their professional journeys.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://papers.synesthesia.it/droidcon-2024/talk/FD7QH8/", "id": 332, "guid": "b9cf3274-ce67-53c4-81f6-e6722f6f374a", "date": "2024-11-29T12:50:00+01:00", "start": "12:50", "logo": null, "duration": "00:40", "room": "Left Stage", "slug": "droidcon-2024-332-flow-like-a-pro", "title": "Flow like a pro", "subtitle": "", "track": "Android", "type": "Talk", "language": "en", "abstract": "Kotlin Flow is a powerful feature within the Kotlin Coroutines library. Let's discover its full potential. Dive deep into mastering this reactive powerhouse for asynchronous data streams. Explore transformation operations, understand the difference between cold and hot Flows, tackle backpressure, learn error handling, and discover effective flow management. \r\n\r\nElevate your Kotlin skills and build more resilient, efficient applications today.", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"guid": "7690d409-9dd9-55a2-8cb3-006d9fd5467a", "id": 230, "code": "RCGWZK", "public_name": "Bob Dahlberg", "avatar": "https://papers.synesthesia.it/media/avatars/bob_XpNIQUP.jpeg", "biography": "I have been a developer since I started my first company in high school. I've built large campaign frameworks, several video players and chats, streaming services, mobile apps, and microservices to support them. Since day one, I've been an asynchronous programmer and was used to working both reactive and functional before it became hip.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://papers.synesthesia.it/droidcon-2024/talk/DW3LFK/", "id": 315, "guid": "01819718-deb5-5e63-ab47-40a31decd701", "date": "2024-11-29T14:30:00+01:00", "start": "14:30", "logo": null, "duration": "00:45", "room": "Left Stage", "slug": "droidcon-2024-315-deep-dive-into-the-compose-compiler", "title": "Deep Dive into the Compose Compiler", "subtitle": "", "track": "Android", "type": "Talk", "language": "en", "abstract": "Have you ever wondered how the slot table is implemented in Compose? How are groups generated? What's the magic behind skipping, and how can you peek inside a slot table? This talk takes a deep dive into the Jetpack Compose compiler internals, with a special focus on answering these questions and exploring the implementation details of the slot table. We'll go beyond the basics, uncovering how the compiler is structured and tested. This knowledge will empower you to understand, contribute to, or even build your own tools on top of it. Whether you're a curious developer or aspiring plugin contributor, get ready to fully understand the Jetpack Compose Compiler.", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"guid": "286d0118-0e9f-5121-a4b6-510b748d5000", "id": 217, "code": "VCA8XK", "public_name": "Mohit Sarveiya", "avatar": "https://papers.synesthesia.it/media/avatars/Mohit_Sarveiya_RHsiJ9N.jpeg", "biography": "Mohit Sarveiya is a Google Developer Expert in Kotlin and Android. Prior to building Android apps, he was a Backend Engineer. He was an early adopter of Kotlin and absolutely loves the language. He has given many talks and workshops on Kotlin.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://papers.synesthesia.it/droidcon-2024/talk/WHBL37/", "id": 319, "guid": "bc6f3f47-3963-5ad2-b640-a88c3a13bbe0", "date": "2024-11-29T15:15:00+01:00", "start": "15:15", "logo": null, "duration": "00:45", "room": "Left Stage", "slug": "droidcon-2024-319-simplifying-sdks-development-with-koin", "title": "Simplifying SDKs development with Koin", "subtitle": "", "track": "Android", "type": "Talk", "language": "en", "abstract": "Most libraries lack built-in dependency injection, leading to messy code that's hard to develop and maintain. By using Koin Context Isolation in one of our libraries, we demonstrate how a library can have dependency injection without affecting the host app or relying on its injection framework. This provides flexibility in coding, simplifies testing, and makes using patterns like Factory and Singleton a breeze.\r\n\r\nBy the end of this session, you will:\r\n- Learn how to use context isolation in any library.\r\n- Improve your library's testability.\r\n- Learn how to use Koin annotations to remove boilerplate.\r\n- Explore the overheads when mixing different DI frameworks.\r\n- Understand how to maintain Kotlin Multiplatform (KMP) compatibility.\r\n\r\nWho Should Attend:\r\n- SDK developers of all levels.\r\n- Those curious about Koin.\r\n\r\nNo matter your experience level, join us and see how Koin can help you with your library development.", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"guid": "2fe9a7c0-cf0e-51dd-9dff-cd0a239a5b96", "id": 221, "code": "HJERGH", "public_name": "Pedro Santos", "avatar": "https://papers.synesthesia.it/media/avatars/146_1728122273_NR002__fvsQY2w.jpg", "biography": "Mercedes-Benz.io, KOIN community lead, Mobile Tech Lead\r\n\r\nMore then 14 years as Android Developer currently father of 2 kids and a dog \"Paco\".\r\n\r\nDid apps from E-Commerce (Bestsecret) to Fitness (Freeletics), Rent-a-car (SIXT). Currently working for Mercedes-Benz.io part of the Fuel and Pay team.\r\n\r\nKoin Community lead\r\n\r\nLove hiking, swimming and running and is a coffee addict :)", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://papers.synesthesia.it/droidcon-2024/talk/3AC3RY/", "id": 306, "guid": "07b44fb9-ce86-5b71-8da8-ed274aae7c37", "date": "2024-11-29T16:30:00+01:00", "start": "16:30", "logo": null, "duration": "00:40", "room": "Left Stage", "slug": "droidcon-2024-306-the-impact-of-micro-optimizations-on-large-scale-apps", "title": "The Impact of Micro-Optimizations on Large-Scale Apps", "subtitle": "", "track": "Android", "type": "Talk", "language": "en", "abstract": "In this talk, we will explore the importance of performance optimization in mobile app development and discuss common performance bottlenecks that can lead to issues such as ANRs and frame drops. We will then look into approaches to identify and address these issues. Attendees will learn best practices for optimizing UI rendering, data processing, memory management, as well as strategies for measuring the impact of micro-optimizations on app performance and perceived performance for users. The presentation will show (adapted) real-world examples of micro-optimizations, and their impact on a global userbase. By the end of this talk, attendees will have a solid understanding of how to identify and address performance issues in their own Android apps, leading to faster, more responsive and more engaging user experiences.", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"guid": "d5cbfd23-d541-5bc6-806b-cafcf56cfd29", "id": 214, "code": "EPAKKF", "public_name": "Damian Burke", "avatar": "https://papers.synesthesia.it/media/avatars/profile-photo_jPYpu91.jpg", "biography": "Software Engineer focusing on mobile engineering and technical leadership. Over 10 years of experience in mobile engineering, working in startups or on the world's largest applications.", "answers": []}], "links": [], "attachments": [], "answers": []}], "Right Stage": [{"url": "https://papers.synesthesia.it/droidcon-2024/talk/FZASWP/", "id": 342, "guid": "d1fb276a-2219-5fb6-86ba-5a8dda16d2ed", "date": "2024-11-29T09:30:00+01:00", "start": "09:30", "logo": null, "duration": "00:50", "room": "Right Stage", "slug": "droidcon-2024-342-building-the-chatgpt-app-from-scratch", "title": "Building the ChatGPT app from scratch", "subtitle": "", "track": "Android", "type": "Talk", "language": "en", "abstract": "As one of the first engineers on the OpenAI Android team, I played a crucial role in developing the ChatGPT app from the ground up using Jetpack Compose, unidirectional data flow, and other modern frameworks and principles. In this talk, I will discuss the process of building a high-scale application with these modern tools, emphasizing our commitment to standard tools over custom in-house frameworks.\r\n\r\nI will cover various aspects of our development journey, including the benefits and challenges of using Jetpack Compose at scale, our unidirectional data flow architecture, and the implementation of injection and data scopes. Attendees will gain insights into how they can leverage these tools to create scalable applications with a rich feature set and a large user base.\r\n\r\nThis session aims to provide practical knowledge for Android developers, showcasing a real-world example of building a widely-used app with modern technologies. While the topic may not be the most groundbreaking, it offers valuable and actionable insights for developers looking to enhance their app development practices. This talk is original and has not been presented elsewhere.", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"guid": "6d37592d-c617-5a14-b351-e0ef16dbcd90", "id": 235, "code": "DJKSSC", "public_name": "Anton Tananaev", "avatar": "https://papers.synesthesia.it/media/avatars/1161863_0qIjCwO.jpeg", "biography": "Experienced Android Engineer with a passion for developing innovative mobile applications. Currently enhancing AI-driven solutions at a leading AI company. Committed to delivering high-quality, user-friendly experiences through cutting-edge technology.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://papers.synesthesia.it/droidcon-2024/talk/RHHDJZ/", "id": 478, "guid": "8849248c-9de3-560b-ab1b-3a867ac9cf1c", "date": "2024-11-29T10:20:00+01:00", "start": "10:20", "logo": null, "duration": "00:40", "room": "Right Stage", "slug": "droidcon-2024-478-from-web-to-mobile-and-back-my-journey-through-the-evolution-of-app-development", "title": "From Web to Mobile and Back: My Journey Through the Evolution of App Development", "subtitle": "", "track": "Android", "type": "Talk", "language": "en", "abstract": "In the 90s, the web was the final frontier\u2014every business wanted a website. Fast-forward to the last decade, and the same enthusiasm shifted to mobile apps. At the beginning, it was a golden era for indie developers; the barrier to entry was low, innovation was high, and the possibilities seemed endless.\r\nHowever, as time passed, the once-open playgrounds of Google Play Store and Apple App Store became \u201cfenced gardens,\u201d increasingly restrictive in the name of privacy, security, and thinly disguised corporate greed.\r\n\r\nIn this talk, I will take you through my journey of moving from mobile app development back to the web. I'll share insights on how the evolving landscape of mobile development pushed me to reevaluate my approach and why I believe the web is reclaiming its relevance. By porting my Android apps to PWA websites using Rails, I've experienced firsthand the benefits of a more open and flexible platform. This session will explore the challenges and opportunities that come with this transition and offer practical advice for those considering making the leap from mobile back to the web or experimenting with an interesting hybrid.", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"guid": "d8610635-6df0-51e6-8a3c-4cf3315e7599", "id": 315, "code": "SJKYVG", "public_name": "Ivan Morgillo", "avatar": "https://papers.synesthesia.it/media/avatars/52483422584_27d80d417a_o_RkyJkWy.jpg", "biography": "Ivan started \u201cplaying\u201d with smartphones almost 15 years ago and never stopped. Android is his passion and his career, but things can evolve\u2026 just like the smartphone industry. Nowadays, Ivan works as a Software Engineer on Jewel Compose during the day while developing his own Rails apps in his free time. He is also co-host of Code with the Italians \ud83e\udd0c\ud83c\udf55", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://papers.synesthesia.it/droidcon-2024/talk/FPWBHP/", "id": 385, "guid": "de54d9a6-1ef3-5c1a-926d-9e7073fea968", "date": "2024-11-29T11:30:00+01:00", "start": "11:30", "logo": null, "duration": "00:40", "room": "Right Stage", "slug": "droidcon-2024-385-state-of-flutter-engine-and-tool", "title": "State of Flutter Engine and Tool", "subtitle": "", "track": "Flutter", "type": "Talk", "language": "en", "abstract": "Present the state of the Flutter Engine and Tool\r\nHighlight recent accomplishments\r\nHighlight recent challenges and what we're doing about them\r\nRoadmap", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"guid": "c6c33c4d-d17c-5aa5-8fe0-8123fb8181bf", "id": 261, "code": "MEYRJU", "public_name": "John McCutchan", "avatar": "https://papers.synesthesia.it/media/avatars/headshot_PU8chBB.png", "biography": "American born Canadian. Grew up in Kitchener-Waterloo, Ontario, Canada.\r\n\r\nReceived an M.Sc. in Computer Science from McMaster University\r\n\r\nLives in Berkeley, California\r\n\r\n\r\nLead of Flutter Hot Reload project \u2013 a live development environment for the Dart VM with state preserving hot reloading of source code, provides sub-second iteration times for Dart and Flutter (2016)\r\nLead of Dart VM\u2019s performance analysis tool suite: Observatory (2014)\r\nDefined a performant SIMD computation model for dynamically typed programming languages (2013)\r\nCreated a SIMD programming model for the Dart programming language and implemented it in the Dart Virtual Machine, providing 4x speed up to real world applications (2012)\r\nCreator of Move.Me which allowed independent developers to make software that uses PlayStation Move controllers (2011)\r\nContributed to Bullet physics engine (2008)\r\nInvented inotify, an efficient file system notification subsystem for the Linux kernel (2005)", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://papers.synesthesia.it/droidcon-2024/talk/YNN7GL/", "id": 294, "guid": "13cd6aef-f3c3-56c3-8d65-03fb002772db", "date": "2024-11-29T12:10:00+01:00", "start": "12:10", "logo": null, "duration": "00:40", "room": "Right Stage", "slug": "droidcon-2024-294-from-0-to-production-with-flutter-in-a-month", "title": "From 0 to production with Flutter in a month", "subtitle": "", "track": "Flutter", "type": "Talk", "language": "en", "abstract": "As a native Android Engineer with 7 years of experience, I had an idea to create an app on my own. I thought of creating an app for both platforms, but I knew I couldn't develop a good iOS app, natively, with restricted time and resources. I considered Kotlin Multiplatform. I did start writing that app in Android - natively, using Jetpack Compose but I've noticed some performance issues. I decided to switch immediately and Flutter was my first choice.\r\nIn this talk, I showcase how I went through the entire process of learning from 0 a new platform and toolkit, in order to create a mobile app, in less than a month, using Flutter. How easy is it to \"migrate\" your knowledge as a native developer into Flutter? How long does it take to \"convert\" features you know how to build in your platform, into a new one?\r\nFollow my adventure of learning a new tool that allowed me to create a brand new app from 0 in less than a month, using Flutter.", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"guid": "7c8b2540-fede-51ea-a224-f1dee31e1748", "id": 208, "code": "KAVVSW", "public_name": "Luca Nicoletti", "avatar": "https://papers.synesthesia.it/media/avatars/Android_15_Developer_Preview_1_01_00_00_00_NwLEMjC.jpeg", "biography": "Italian engineer with a passion for tech & everything related. I started my development career working on Android KitKat! I fell in love with the green droid & all of its ups and downs. Recently moved to Liverpool, I love moving, reading books (crime, fantasy, non-fiction) and coding! I have a passion for UX/UI and well designed applications.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://papers.synesthesia.it/droidcon-2024/talk/WUTPVS/", "id": 403, "guid": "68bfadeb-e99b-56bf-baab-42de63df875f", "date": "2024-11-29T12:50:00+01:00", "start": "12:50", "logo": null, "duration": "00:40", "room": "Right Stage", "slug": "droidcon-2024-403-modular-flutter-app-architecture-answering-the-what-when-and-how", "title": "Modular Flutter App Architecture: Answering the What, When and How", "subtitle": "", "track": "Flutter", "type": "Talk", "language": "en", "abstract": "As Flutter apps grow in complexity, adopting a modular architecture becomes a critical practice to manage codebases and enable efficient feature development. It brings better code organization, team independence for feature development and testing, and separation of concerns.\r\n\r\nFor Flutter applications, there are times to follow modular application architecture and times to avoid it. In this talk, we will explore what modular architecture means for Flutter, when to implement it in your apps and when not to, and how to structure your code into logical modules with concrete strategies and examples by dividing code into feature, layer, and core modules. Last but not least, you will learn best practices for module communication, state management across modules, and module-specific testing.", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"guid": "7b3704ba-93f2-58b9-87e9-e56f33187614", "id": 270, "code": "XLJ9VP", "public_name": "Muhammed Salih G\u00fcler", "avatar": "https://papers.synesthesia.it/media/avatars/53865533494_b544735293_k-gde-badge_hIR3cV7.png", "biography": "Salih is a Berlin based Senior Developer Advocate at AWS who is also a Google Developer Expert for Flutter and Dart. He likes sharing his knowledge with the people by mentoring aspiring developers, blogging and talking at conferences.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://papers.synesthesia.it/droidcon-2024/talk/QVGNEV/", "id": 416, "guid": "a80bc5c8-20fa-5075-9ba7-660159e3f858", "date": "2024-11-29T14:30:00+01:00", "start": "14:30", "logo": null, "duration": "00:45", "room": "Right Stage", "slug": "droidcon-2024-416-the-humans-among-us", "title": "The Humans Among Us", "subtitle": "", "track": "Flutter", "type": "Talk", "language": "en", "abstract": "In the fast-paced world of development & Developers, it's easy to get lost in code, deadlines, and tasks, forgetting the vital human element at the core of our work. \"The Human Among Us\" delves into the essential skills we need to connect with the people behind the screens. This talk is not just about improving workplace dynamics or indulging in casual conversation; it's a guided exploration into the human skills that enhance our professional lives.\r\n\r\nEvery developer, team lead, and executive interacts daily with a numerous of humans\u2014clients, coworkers, employees, and employers. Understanding and nurturing these human connections is crucial for reducing misunderstandings, seizing opportunities, and fostering a collaborative work environment. This session will highlight the importance of human skills like self-awareness, empathy, active listening, and effective communication.\r\n\r\nWe\u2019ll begin by discussing self-awareness and how knowing our strengths, weaknesses, and communication styles can improve our interactions. Then, we\u2019ll explore empathy, sharing personal experiences to create an environment of mutual understanding and respect. The talk will also cover practical tips for developers and leaders on integrating these skills into their daily routines.\r\n\r\nBy the end of this session, attendees will have a fresh perspective on their workplace interactions and be equipped with practical tools to build stronger, more effective relationships within their teams. Whether you're a coder striving for innovation or a leader guiding a tech team, \"The Human Among Us\" will remind you of the power of human connection in the digital age. Join us to learn how enhancing your human skills can transform not just your work, but your entire professional environment.", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"guid": "e5a114e7-f149-5b61-8c10-7a118974266a", "id": 278, "code": "77RZGC", "public_name": "Sattar Falahati", "avatar": "https://papers.synesthesia.it/media/avatars/IMG_3280_2_SV0w30W.JPG", "biography": "**Sattar** has been rocking the tech world for over a decade, starting as a versatile front-end and back-end developer before diving into mobile app development in 2014. Now, as a Technology Lead at Spindox, he blends a love for product development with top-notch engineering management skills to lead diverse tech teams to success.\r\n\r\nBut it\u2019s not all about code for Sattar. When he's not solving complex tech problems, you\u2019ll find him nurturing his garden or hiking in the mountains, preferring the serenity of nature over the beach any day. His passion for the outdoors keeps him grounded and brings a fresh perspective to his work.\r\n\r\nKnown for his positivity, strong communication, and proactive approach, Sattar excels in creating collaborative and adaptable teams. At DroidCon Milan, he's excited to share insights on the human element behind the code, helping developers and leaders alike harness their human skills to complement their technical expertise.\r\n\r\nJoin Sattar for a fun and insightful session that promises to inspire and equip you with the tools to enhance both your professional and personal life. Let\u2019s explore how the right mix of tech skills and human connection can transform your work environment!", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://papers.synesthesia.it/droidcon-2024/talk/PNQQTH/", "id": 351, "guid": "1d06610b-d5e3-56ff-b5bd-7cc534412c9f", "date": "2024-11-29T15:15:00+01:00", "start": "15:15", "logo": null, "duration": "00:45", "room": "Right Stage", "slug": "droidcon-2024-351-lumos-the-brighter-way-from-hackathon-to-production", "title": "Lumos!!\ud83d\udca1 The brighter way from Hackathon to production", "subtitle": "", "track": "Android", "type": "Talk", "language": "en", "abstract": "Transforming a winning idea from a hackathon into a production-ready solution. \r\nThis talk will explore the journey from prototype to implementation, presenting a real-world experience. \r\nWe will cover:\r\n- what makes a hackathon efficient\r\n- how to choose the project that will see the light in production and why it might not be the hackathon winner\r\n- the journey from hackathon MVP to to a fully-fledged production solution\r\n- why you should/should not take this approach to your company", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"guid": "fc4bb9b8-6a9a-5343-8b5d-b0827f89fa73", "id": 240, "code": "HVTG9K", "public_name": "Luca Rossi", "avatar": "https://papers.synesthesia.it/media/avatars/ADEVINTA-287_1HFv4kq.JPG", "biography": "Present: Senior Android Eng @Subito\r\nFuture: who knows?\r\nPast: Android, iOS, Windows Phone, Xamarin dev (those were the dark times)\r\n\r\nPassionate about funny shirts, socks and suits", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://papers.synesthesia.it/droidcon-2024/talk/CZXTQ8/", "id": 370, "guid": "574172a7-afc4-58fb-b9ad-0d997d0ceaa5", "date": "2024-11-29T16:30:00+01:00", "start": "16:30", "logo": null, "duration": "00:40", "room": "Right Stage", "slug": "droidcon-2024-370-working-with-passkit-making-physical-tickets-cards-digital", "title": "Working with PassKit: Making physical tickets & cards digital", "subtitle": "", "track": "Flutter", "type": "Talk", "language": "en", "abstract": "Passes are a digital representation of information that might otherwise be printed on small pieces of paper or plastic, like boarding passes, concert tickets and so on. In this presentation, I will showcase through practical examples and demonstrations how you can leverage PassKit to move those passes from the physical into the digital world.\r\n\r\nYou will learn the following things:\r\n- Creating and customizing passes: Learn how to design and structure different types of passes\r\n- Integrating PassKit with Flutter: Explore how to use PassKit with Flutter, enabling developers to easily add pass functionality to their cross-platform mobile applications.\r\n- Updating passes in real-time: Discover how to leverage the PassKit web service API to push updates to users' passes, keeping them informed and engaged.", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"guid": "6c19d5b8-b96f-5a63-8883-532dc7b2a7b4", "id": 47, "code": "ZWSENY", "public_name": "Jonas Uek\u00f6tter", "avatar": "https://papers.synesthesia.it/media/avatars/IMG_20231031_1007312842_U2vWSAf.jpg", "biography": "Jonas is a passionate mobile engineer and Google Developer Expert for Dart and Flutter. He also maintains various open source libraries, and one of them is a Flutter Favorite.\r\nNext to his work as an engineer, he also enjoys sharing knowledge through talks, blogs and as a guest in podcasts.\r\n\r\nAt the moment, he\u2019s working on the mobile apps for MediaMarktSaturn (aka MediaWorld in Italy), which is Europe\u2019s largest electronics retailer.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://papers.synesthesia.it/droidcon-2024/talk/H7EQVC/", "id": 465, "guid": "0c1190ba-4baa-5706-bf8e-d66bcccdc15d", "date": "2024-11-29T17:10:00+01:00", "start": "17:10", "logo": null, "duration": "00:50", "room": "Right Stage", "slug": "droidcon-2024-465-inside-kotlin-disassembling-features-into-bytecode", "title": "Inside Kotlin: Disassembling Features into Bytecode", "subtitle": "", "track": "Android", "type": "Talk", "language": "en", "abstract": "Kotlin is widely recognized for its robust safety features, expressive syntax, and the overall enjoyment it brings to developers. Beneath these attributes lies a sophisticated compilation process and a set of underlying JVM mechanisms that are fundamental to the language\u2019s operation. This talk offers an intermediate-level exploration of these processes, revealing the intricate workings that enable Kotlin's high-level features.\r\n\r\nBy examining how Kotlin's language constructs are translated into bytecode, we\u2019ll analyze the inner workings of the language. This exploration isn't just about understanding Kotlin's syntax \u2014 it's about gaining insight into the design principles and technicalities of the language.\r\n\r\n\r\nWe'll analyze the following features:\r\n- Extension functions\r\n- Nullity Checks & Safety Operators\r\n- Companion objects\r\n- Backing Fields\r\n- Reified generics & variances\r\n- Value classes\r\n- Function Contracts\r\n- Delegation\r\n- Tail recursion\r\n\r\nAttendees will learn how these compiler-level concepts influence the Kotlin development experience, enabling them to write more intentional and specific coding practices. By exploring the gap between Kotlin\u2019s abstractions and the JVM\u2019s execution, this talk will provide practical knowledge that enhances both development and debugging practices.", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"guid": "e6d32efa-41b9-5bdb-9b92-c193cd43e5ae", "id": 308, "code": "NDEQF9", "public_name": "Andrea Cioccarelli", "avatar": "https://papers.synesthesia.it/media/avatars/1000091645_g4UnSBG.jpg", "biography": "Android Developer, Software Engineer, MSc Student in Cybersecurity", "answers": []}], "links": [], "attachments": [], "answers": []}]}}, {"index": 2, "date": "2024-11-30", "day_start": "2024-11-30T04:00:00+01:00", "day_end": "2024-12-01T03:59:00+01:00", "rooms": {"Left Stage": [{"url": "https://papers.synesthesia.it/droidcon-2024/talk/9CFXGA/", "id": 358, "guid": "a82ac2eb-1d8a-5cec-bf7d-ea04ee804124", "date": "2024-11-30T10:20:00+01:00", "start": "10:20", "logo": null, "duration": "00:40", "room": "Left Stage", "slug": "droidcon-2024-358-how-i-hacked-your-app-and-more-bedtime-tales", "title": "How I hacked your app, and more bedtime tales", "subtitle": "", "track": "Android", "type": "Talk", "language": "en", "abstract": "Do you want to learn how to protect your mobile apps from hackers? Join this session, where secrets and tricks from mobile pentesting world will be shared to help developing *secure* mobile apps!\r\nA brief introduction on **OWASP Mobile Application Security Verification Standard** will be followed by the tales on how some popular apps were hacked during pentesting sessions, and how you can avoid the same mistakes to improve your app security, whatever is the technology and the framework you use.\r\n\r\n**Audience**: This talk is tailored for developers, both junior and experienced\r\n**Duration**: Approximately 25-30 minutes\r\n\r\n**What\u2019s innovative?**\r\nBring the pentesting approach to developers! Let them know who are their \u201cenemies\u201d that create tickets and how they can better approach mobile security to decrease the gap\r\n\r\n**What attendees will learn**\r\n1)\tmobile security standards\r\n2)\tpentesting way of thinking (zero trust, least privilege, \u2026)\r\n3)\tinteresting case stories.", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"guid": "e70098d3-6da9-5bf2-bb00-4f433488c5be", "id": 247, "code": "Y79AWM", "public_name": "Riccardo Poffo", "avatar": "https://papers.synesthesia.it/media/avatars/RP_sxr5zNv.jpg", "biography": "Riccardo started developing 20+ years ago and in his early career covered many positions in IT field, focusing then on web development between 2011 and 2016. Last 8 years have been spent in mobile penetration testing and security, joining in projects for Italian Government and enterprises such Generali, Unicredit, Telepass, and many more.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://papers.synesthesia.it/droidcon-2024/talk/SGFRE8/", "id": 335, "guid": "cb184121-58a0-59c4-92f6-1e59c4087af6", "date": "2024-11-30T11:30:00+01:00", "start": "11:30", "logo": null, "duration": "00:40", "room": "Left Stage", "slug": "droidcon-2024-335-glitz-and-glam-r-the-compose-edition", "title": "Glitz and glam\u2728r: the compose edition", "subtitle": "", "track": "Android", "type": "Talk", "language": "en", "abstract": "Android and its apps have come a long way in the past years when it comes to the UI. While a clean UI is the foundation of a good app, you can only provide your users the full experience by adding meaningful animations. Animations can make your app look more polished and fun; the biggest benefit though is that they can (and should) provide visual cues to the user about what the app is doing. In this talk, we will see how we can code some of the most common animation scenarios using the various Jetpack Compose Animation APIs.", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"guid": "a2e1bcc9-300d-540a-8904-e6ecbb636784", "id": 232, "code": "3PWMCJ", "public_name": "Eliza Camber", "avatar": "https://papers.synesthesia.it/media/avatars/PXL_20220403_152550238.PORTRAIT_pV0ISX7.jpg", "biography": "Eliza is a senior Android developer, and a Google developer expert (GDE) for conversational AI. She\u2019s been an Android engineer since 2013 and has been actively involved in the tech communities as a volunteer, organiser, lead, or speaker ever since. In her spare time, she loves travelling, reading, solving puzzles, and taking long walks with her dog.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://papers.synesthesia.it/droidcon-2024/talk/KKP3BV/", "id": 423, "guid": "8c7e4410-d740-5615-833e-0d50d33984fd", "date": "2024-11-30T12:10:00+01:00", "start": "12:10", "logo": null, "duration": "00:40", "room": "Left Stage", "slug": "droidcon-2024-423-exploring-android-accessibility-malware", "title": "Exploring Android Accessibility Malware", "subtitle": "", "track": "Android", "type": "Talk", "language": "en", "abstract": "Join us to explore two concerning techniques used by Android malware, focusing on the dangerous combination of credential stuffing attacks and Accessibility Service abuse. We'll demonstrate how cybercriminals can exploit these vulnerabilities to launch large-scale attacks on user accounts across multiple applications.\r\n\r\nOur talk will walk you through:\r\n\r\n1. The mechanics of credential stuffing and how it exploits common user behaviors.\r\n2. How malware can abuse Android's Accessibility Service to automate malicious actions.\r\n3. A step-by-step demonstration of a proof-of-concept that combines these techniques.\r\n4. Clever methods cybercriminals use to conceal their activities from users.\r\n5. The broader implications of these threats for mobile app security.\r\n\r\nWe'll delve into why these attacks are increasingly prevalent and how they can be executed with alarming ease. By understanding the attacker's perspective, we aim to highlight the critical need for robust security measures in mobile applications.\r\nHowever, implementing such security measures can be challenging for developers, often requiring significant time, expertise, and resources. This is where innovative solutions become crucial. Recognizing this gap in mobile app security, Appdome provides comprehensive protection against these threats through zero-code integration, allowing developers to secure their mobile apps effortlessly.", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"guid": "65f9ddf8-1bf6-58a9-b66d-6cc539bc8769", "id": 283, "code": "YVUJHW", "public_name": "Kostya Kishnevsky", "avatar": "https://papers.synesthesia.it/media/avatars/IMG_20230605_230956_6392_Q3LUtCE.png", "biography": "Software Engineer at Appdome for the past 2 years, developing Anti-Fraud and Geo-Compliance solutions for mobile security", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://papers.synesthesia.it/droidcon-2024/talk/DMDUK7/", "id": 409, "guid": "9c812a83-b5da-5cc4-8daa-28697595cb3d", "date": "2024-11-30T12:50:00+01:00", "start": "12:50", "logo": null, "duration": "00:40", "room": "Left Stage", "slug": "droidcon-2024-409-building-apps-for-all-exploring-jetpack-compose-accessibility-support", "title": "Building apps for all: Exploring Jetpack Compose Accessibility support", "subtitle": "", "track": "Android", "type": "Talk", "language": "en", "abstract": "Building accessible apps is crucial for several reasons. First, accessibility ensures inclusivity by enabling people with disabilities to interact with and benefit from our apps. This is not only a moral imperative but also a legal one, as many regions have laws and regulations mandating digital accessibility.\r\nFurthermore, accessible apps enhance usability for all users, improving overall user experience by promoting clear navigation, readable content, and intuitive interfaces. This leads to increased customer satisfaction and loyalty.\r\n\r\nThis speech aims to provide an exploration of Jetpack Compose accessibility support, highlighting its significance in modern app development with a focus on real use-case scenarios and the importance of synergy between designers, accessibility experts and developers. Moreover, the session will cover the strategies for testing accessibility in our apps including manual and automated testing framework.\r\n\r\nBy the end of the talk, you\u2019ll have a comprehensive understanding of Jetpack Compose accessibility capabilities, the importance of accessible design, and practical methods for testing and ensuring our apps are accessible to all users.\r\nThe speech is addressed to Android developers of any seniority, and it will last approximately 30 minutes.", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"guid": "8461a9b7-1af0-5a7c-ba12-b9e7c021b80a", "id": 274, "code": "HBUWJV", "public_name": "Luca Pollastri", "avatar": "https://papers.synesthesia.it/media/avatars/IMG_20230822_1327332_AZTm1Fx.jpg", "biography": "Android developer since Froyo. \r\nBorn and raised in Italy, Luca moved to London and begin his developer Journey with Full stack development, after a while he moved back to Italy and went back to the origin with Android development. Now is currently leading a team of  Android experienced developer in NTT DATA.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://papers.synesthesia.it/droidcon-2024/talk/HP9LMJ/", "id": 407, "guid": "2887e046-57e1-5d11-a3fc-dab696e0fbaf", "date": "2024-11-30T14:30:00+01:00", "start": "14:30", "logo": null, "duration": "00:45", "room": "Left Stage", "slug": "droidcon-2024-407-not-just-plain-text-rendering-markdown-in-compose", "title": "Not just plain text: rendering Markdown in Compose", "subtitle": "", "track": "Android", "type": "Talk", "language": "en", "abstract": "Compose offers powerful cross-platform UI development but lacks powerful, built-in rich text formatting capabilities. Compose 1.7 introduced support for reading HTML into AnnotatedStrings, but that is only enough for simple runs of formatted text. This leaves developers having to programmatically build more complex AnnotatedStrings, but that is not ideal and it\u2019s pretty much impossible to internationalise.\r\n\r\nIn the Jewel library we provide a new, powerful API to display Markdown, a common and versatile text format. Markdown is easily created, managed and translated, even allowing you to go beyond what\u2019s achievable with the basic HTML support in Android resources. In fact, Markdown goes beyond inline text styling and lets you express block-level formatting with facilities like blockquotes, tables, images, and more.\r\n\r\nThis talk will start by introducing the Jewel library and then cover all aspects of how we implemented the Jewel Markdown parser. I\u2019ll explain how Markdown is a superior solution compared to HTML for the majority of relevant use cases. We\u2019ll discuss the Markdown specs \u2014 or the lack thereof, the various proprietary extensions that exist, and how we\u2019re tackling this challenge. Then, we\u2019ll look at how the library parses the raw Markdown input and the process that transforms that into a set of Composables on screen. Lastly, the talk will showcase some limitations we\u2019ve run into with the text APIs in Compose, how we\u2019ve worked around some of those, and the impact this work is having on the larger Compose ecosystem.\r\n\r\nThis talk is aimed at developers who are familiar with Jetpack Compose and/or Compose Multiplatform, and are looking at a way to get rich text rendering, maybe to get rid of a few webviews, or in search of inspiration for their own server-driven UI framework. You\u2019ll not only leave the room with actionable information on those topics but, hopefully, some surprising Markdown facts you didn\u2019t know about!", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"guid": "819216b5-1675-5f8e-9079-bd9053354313", "id": 229, "code": "FAMF9L", "public_name": "Sebastiano Poggi", "avatar": "https://papers.synesthesia.it/media/avatars/face-moose_xvRhwzT.jpg", "biography": "\u201cIt depends\u201d \ud83e\udd37\u200d\u2642\ufe0f\r\n\r\nA software dev \ud83e\udd13 who has a serious thing for yellow, \ud83d\udc9b design \u2728, and emojis \ud83e\udd0c\r\n\r\nCo-host of Code with the Italians, UX Engineer on Android Studio at Google.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://papers.synesthesia.it/droidcon-2024/talk/FZGXZS/", "id": 359, "guid": "c9b68045-db02-55a0-beff-2a1fa937a2c5", "date": "2024-11-30T15:15:00+01:00", "start": "15:15", "logo": null, "duration": "00:45", "room": "Left Stage", "slug": "droidcon-2024-359-efficient-android-app-monitoring", "title": "Efficient Android app monitoring", "subtitle": "", "track": "Android", "type": "Talk", "language": "en", "abstract": "Monitoring is essential in the development of Android apps, but achieving efficient monitoring is the ultimate goal for every developer!\r\n\r\nIn this talk, we'll reveal some tips and strategies for implementing efficient monitoring using commonly used tools such as Firebase Crashlytics or Performance libraries, debug libraries like Chucker or log management platforms like Datadog. By unleashing the full potential of these tools, you'll learn how to proactively anticipate issues and react promptly and effectively when problems arise, by that enhancing your app performances and user experience.\r\n\r\nDiscover how monitoring extends far beyond a crash or a simple log \ud83d\ude80", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"guid": "c3a56f3f-384f-5b0f-9e63-ed456442aca4", "id": 250, "code": "QUM8AF", "public_name": "Julien Salvi", "avatar": "https://papers.synesthesia.it/media/avatars/Capture_decran_2023-01-04_a_17.39.59-gde-badge_2_lwYcODK.png", "biography": "Into the Android world for more than 10 years, Julien experienced California the startup way of life before coming back to France. He is currently Lead Android Engineer at Aircall where they are building the best phone system for modern businesses. Alongside Android, he has a great interest in backend development with Kotlin and AR/VR technology. In 2021, he became an Android GDE to continue his journey to always share and learn with the Android community.\r\nIn his spare time, he is a world traveler and a beer lover always looking for the best IPAs!", "answers": []}], "links": [], "attachments": [], "answers": []}], "Right Stage": [{"url": "https://papers.synesthesia.it/droidcon-2024/talk/87QANX/", "id": 454, "guid": "c330718f-96db-5903-a3ba-f76341e72bf8", "date": "2024-11-30T09:30:00+01:00", "start": "09:30", "logo": null, "duration": "00:50", "room": "Right Stage", "slug": "droidcon-2024-454-make-informed-sdk-decisions-with-google-play-insights-in-android-studio", "title": "Make informed SDK decisions with Google Play insights in Android Studio", "subtitle": "", "track": "Android", "type": "Talk", "language": "en", "abstract": "Public SDKs/libraries save you time by adding new functionality and service integrations to your apps. However, it can be difficult to know which SDKs are reliable and safe to use. These SDKs can introduce policy or security issues that can delay or completely prevent the release of your app in the Google Play Console. Google Play offers insights through the SDK Index and the SDK Console. Those insights are available directly in Android Studio so you can discover issues and address them while developing your app. In this talk we\u2019ll describe the different types of SDK insights available from Google Play and how you can find and act on them in Android Studio. \r\n\r\nAfter this presentation, you will know where to find SDK issue information from Google Play in Android Studio through lint checks and in the Project Structure Dialog. Addressing these issues during development will save you time when you submit your app to the Google Play Console.", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"guid": "8ade9eb5-77e5-549d-92d8-d30ba5025520", "id": 301, "code": "XFQJQN", "public_name": "Juan Sebastian Oviedo", "avatar": "https://papers.synesthesia.it/media/avatars/juanoviedo_OGZqBGM.png", "biography": "Juan Sebastian is a Product Manager in the Android Studio team. He is passionate about delivering great experiences that have a positive impact for Android app developers. Prior to Android, he was the Product Manager for Artifact Registry in Google Cloud and before that he was a PM on different teams at Microsoft.", "answers": []}, {"guid": "bad58614-325d-5043-8acd-2a8eb4a7288e", "id": 343, "code": "VSLXVX", "public_name": "Naheed Vora", "avatar": "https://papers.synesthesia.it/media/avatars/goog_backdrop_bw_BoEhpEx.jpg", "biography": "Naheed Vora is a Product Manager at Android Trust and Growth team. He is a product leader with 15+ years of experience driving innovation across diverse industries. He is passionate about building impactful products that prioritize user privacy, security, and seamless experiences.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://papers.synesthesia.it/droidcon-2024/talk/CUBBH7/", "id": 290, "guid": "23c1695c-6135-58c9-a9a8-5bbdb1529eb0", "date": "2024-11-30T10:20:00+01:00", "start": "10:20", "logo": null, "duration": "00:40", "room": "Right Stage", "slug": "droidcon-2024-290-crime-scene-investigitor", "title": "Crime Scene InvestiGITor", "subtitle": "", "track": "Android", "type": "Talk", "language": "en", "abstract": "THERE HAS BEEN A MURDER!\r\n...\r\n(Or whatever the code version of a murder is... like breaking unit tests, a bug maybe?... I dunno!)\r\n\r\nTogether, we will learn how to become a professional and revered investiGITor, who will be able to sniff out and solve any version control offence with the ease and panache of a seasoned detective!\r\n\r\nVersion control software is often a mysterious black-box that we HAVE TO interact with in order to successfully collaborate with others. But what if it doesn't need to be a confusing & complicated enigma?\r\n\r\nYou will learn to probe into the dark recesses of Git and understand its inner workings by learning how to carry out many tasks that you will undoubtedly need to perform at some point in your career.\r\n\r\nFor example:\r\n* Ever needed to safely remove a secret that you accidentally stored in the repository?\r\n* Ever had your app break, not know why, and then needed to quickly hunt down the exact commit where a bug was introduced?\r\n* Ever needed to travel back in time, through history, to stop a crime before it even happens...(sort of)?\r\n\r\n...All these things and a bunch more useful & interesting, lesser-known ways to become a masterful git detective and truly understand the most important tool in a developer's arsenal.\r\n\r\nSo come have a little fun with me in this talk, bring the bugs to justice, solve the case of the naughty commit & become a hero by defending the integrity of your codebase!", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"guid": "e40db51f-5a68-54bc-adbf-d9889866163b", "id": 205, "code": "Y8W9RE", "public_name": "Ben Kadel", "avatar": "https://papers.synesthesia.it/media/avatars/square_bk_smaller_6Ltp8fr.jpg", "biography": "Developer, Presenter/Teacher, Open source advocate, Ultimate frisbee player & Board game hoarder.\r\nI love the fact that I get to code for a living, but I am also incredibly passionate about sharing, collaborating and helping others on their dev journey!\r\nI also have a growing YouTube channel (youtube.com/benkadel), where I try to make entertaining & educational content about programming, the tech industry and specific tutorials to breakdown complex topics.\r\nI adore presenting, story-telling and just generally engaging with an audience. If I am able to make life, even just a little brighter for someone then I have succeeded!", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://papers.synesthesia.it/droidcon-2024/talk/7HFSCS/", "id": 498, "guid": "5234a305-9e85-50db-9f30-3fb5c67722f7", "date": "2024-11-30T11:30:00+01:00", "start": "11:30", "logo": null, "duration": "00:40", "room": "Right Stage", "slug": "droidcon-2024-498-android-15-s-desktop-windowing-a-developer-s-guide-to-building-desktop-level-apps", "title": "Android 15's Desktop Windowing: A Developer's Guide to building desktop-level apps", "subtitle": "", "track": "Android", "type": "Talk", "language": "en", "abstract": "The recent announcement of Desktop Windowing in Developer Preview for Android 15 has opened the window on amazing new possibilities on Android. This presentation will dive deep into the latest changes that Desktop Windowing brings and how it empowers developers to create enhanced experiences for large screen devices.\r\nWe'll explore the core concepts of Desktop Windowing, and guide developers into optimizing apps for this environment, focusing on adaptive layouts, state management, multi-instance support, and input methods. \r\nBy understanding these key aspects, developers can ensure their apps provide a seamless and productive experience on larger screens, capitalizing on the growing tablet market and future-proofing their applications for the evolving Android ecosystem.", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"guid": "9c0021cb-48ea-539a-aeea-8239d9d4fe31", "id": 330, "code": "HDLDSF", "public_name": "Roberto Orgiu", "avatar": "https://papers.synesthesia.it/media/avatars/PXL_20230309_080137601.PORTRAIT.MP2_dErmN1m.jpg", "biography": "Developer by day, full-time dad, many other things during the (little) spare time. I have been around Android for the past decade or so, and I still love it!", "answers": []}, {"guid": "16ccc682-86ff-53c2-b6d9-83587896984a", "id": 354, "code": "BLJZ3G", "public_name": "Francesco Romano", "avatar": "https://papers.synesthesia.it/media/avatars/FB_IMG_1542818010637_T8aIw5z.jpg", "biography": "Developer Relations Engineer, Android", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://papers.synesthesia.it/droidcon-2024/talk/NGZDVA/", "id": 355, "guid": "b26da677-f00b-59f1-8213-f20706d5ffb0", "date": "2024-11-30T12:10:00+01:00", "start": "12:10", "logo": null, "duration": "00:40", "room": "Right Stage", "slug": "droidcon-2024-355-mapping-the-future-implementing-google-maps-on-android-with-jetpack-compose", "title": "Mapping the Future: Implementing Google Maps on Android with Jetpack Compose", "subtitle": "", "track": "Android", "type": "Talk", "language": "en", "abstract": "Have you used Google Maps recently? Have you used it in the pre-Compose Era? \r\nJetpack Compose changed everything on the way Android UI elements work, and Maps were not an exception. \r\nIn this session, you'll learn how to:\r\n- Add GoogleMap to your app\r\n- Add Custom Markers\r\n- Play around with Clustering \r\n- Draw Lines and Polygons\r\n- Street View\r\nand much more.\r\n\r\nI'll show you a sample of our current implementation on the Volvo Cars App, and also talk a bit about learnings and difficulties we've faced while implementing this feature.", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"guid": "eb838471-5d8b-58ed-a612-99bc34bbc18a", "id": 244, "code": "LPU7A7", "public_name": "F\u00e1bio Pinho", "avatar": "https://papers.synesthesia.it/media/avatars/53248643185_d1baf8f9d2_o_OwE8T34.jpg", "biography": "Fabio has around 10 years of experience with Android, having worked in very different companies, from startups to multinationals. Currently working for Volvo Cars for the past 3 years. He's also the founder and organizer of droidcon Lisbon since 2019.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://papers.synesthesia.it/droidcon-2024/talk/7ZLCFU/", "id": 477, "guid": "70c1b42d-e00e-5f5f-b6ea-1e38e37c70c2", "date": "2024-11-30T12:50:00+01:00", "start": "12:50", "logo": null, "duration": "00:40", "room": "Right Stage", "slug": "droidcon-2024-477-all-together-under-my-umbrella-android-native-featuring-flutter-kmp", "title": "All together under my umbrella! Android Native featuring Flutter & KMP", "subtitle": "", "track": "Android", "type": "Talk", "language": "en", "abstract": "Hey, do you know that, even if you're still developing your apps with native code, your cross-platform colleagues are still your friends?\r\n \r\nIn the rapidly evolving landscape of mobile app development, cross-platform frameworks have become increasingly popular. Yet, for many developers, the allure of native performance and control remains undeniable. This talk explores how to seamlessly integrate Flutter and Kotlin Multiplatform into your existing native Android app, fostering a harmonious coexistence between cross-platform and native development paradigms. \r\n \r\nDiscover how to bridge the gap between cross-platform and native, creating a more inclusive and versatile mobile app ecosystem.", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"guid": "2344ed3b-4ce0-5905-91d7-5d15f1a00447", "id": 314, "code": "9DPDB7", "public_name": "Francesco Stranieri", "avatar": "https://papers.synesthesia.it/media/avatars/File_multimediali_Pu1nSZL.jpeg", "biography": "After many years as android developer for apps, games, AR, Android Wear, Android TV, Chromecast (CAF) and as developer advocate for mobile services, He's now Sr. Android Developer for Intesa Sanpaolo.\r\n\r\nYes, but ask him about video games.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://papers.synesthesia.it/droidcon-2024/talk/WSYKRY/", "id": 338, "guid": "7317a2f6-3a3d-559f-b710-2cbfc08b1fb2", "date": "2024-11-30T14:30:00+01:00", "start": "14:30", "logo": null, "duration": "00:45", "room": "Right Stage", "slug": "droidcon-2024-338-put-some-3d-sparkles-in-your-2d-app", "title": "Put some 3D sparkles in your 2D app", "subtitle": "", "track": "Android", "type": "Talk", "language": "en", "abstract": "Trigonometry, rototranslations, vectors, matrices... when thinking about 3D modeling and visualization most mobile apps developers start to get worried, but it doesn\u2019t need to be all that scary!\r\nIn this talk we\u2019ll see how any developer, even without any prior experience with the topic, can integrate some 3D model and environment into an Android app, blending it seamlessly with the existing UI. We\u2019ll do this thanks to the great Filament library from Google.\r\n\r\nAt the end of the talk the audience will learn:\r\n- how a 3D model is made\r\n- which formats are supported by Filament\r\n- the main components needed to properly display a 3D model into an app\r\n- how to harness the powerful Filament lightning system to add more realism to the scene\r\n- how to blend 3D components into a Compose-based UI\r\n- advanced 3D animations", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"guid": "b3b38745-d26e-57dd-bb76-78d20faf7dd3", "id": 234, "code": "RV9D99", "public_name": "Daniele Bonaldo", "avatar": "https://papers.synesthesia.it/media/avatars/DSC07265_F38Re9M.jpeg", "biography": "Daniele is an Android developer passionate about photography, wearable technologies and Internet of Things.\r\nFreelance developer, international conference speaker and Google Developer Expert, now he loves to work on everything related to the Android ecosystem, from Chromecast to Wear to smart mirrors and most recently software for the automotive sector.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://papers.synesthesia.it/droidcon-2024/talk/SFCGLD/", "id": 366, "guid": "4d839179-2d8d-5978-afe3-3666aa4bb228", "date": "2024-11-30T15:15:00+01:00", "start": "15:15", "logo": null, "duration": "00:45", "room": "Right Stage", "slug": "droidcon-2024-366-the-rollercoaster-of-releasing-an-android-ios-and-macos-app-with-kotlin-multiplatform", "title": "The rollercoaster of releasing an Android, iOS, and macOS app with Kotlin Multiplatform", "subtitle": "", "track": "Android", "type": "Talk", "language": "en", "abstract": "With the rise of Kotlin Multiplatform, the possibility of expanding to multiple platforms has increased, especially for Android Developers. It's easier than before to build for other platforms.\r\n\r\nBut how to release your app to multiple platforms?\r\n\r\nIn this talk, I will share all the things I've learned around distributing FeedFlow, an Android, iOS, and macOS app built with Kotlin Multiplatform, coming from an Android development background.\r\n\r\nWe will cover the deployment of the binary, automating everything with CI, crash reporting, logging, internationalization, and all you need to know to successfully distribute your KMP app.", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"guid": "842a0c68-d53e-5a79-8b1d-212b202b5dea", "id": 253, "code": "E8RKP9", "public_name": "Marco Gomiero", "avatar": "https://papers.synesthesia.it/media/avatars/profile-pic_ax68Y99.jpg", "biography": "Marco is an Android engineer, currently working at Airalo. He is a Google Developer Expert for Kotlin, he loves Kotlin and he has experience with native Android and native iOS development, as well as cross-platform development with Flutter and Kotlin Multiplatform.\r\n\r\nIn his spare time, he writes and maintains open-source code, he shares his dev experience by writing on his blog, speaking at confs and organizing events with the Google Developer Group Venezia and he plays basketball.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://papers.synesthesia.it/droidcon-2024/talk/T8VTDY/", "id": 326, "guid": "695eff92-5e44-5211-84d2-b944efb81bfb", "date": "2024-11-30T16:30:00+01:00", "start": "16:30", "logo": null, "duration": "00:40", "room": "Right Stage", "slug": "droidcon-2024-326-micro-feature-architecture-for-mobile-composing-viewmodels", "title": "Micro-Feature Architecture for Mobile: Composing ViewModels", "subtitle": "", "track": "Android", "type": "Talk", "language": "en", "abstract": "In early times of Android development we used to have big activities. All view and business logic were being written in activities. Then fragments were introduced so that activities started to become leaner. Then several architectural patterns have started to appear in the Android scene: MVP, MVVM, MVI, etc. While all these were happening, ViewModel like classes started to get bigger and bigger. They have become the new big activities. However, we haven't often considered splitting view models into manageable self-contained granular ones.\r\n\r\nViews are composable and they can be composed to build bigger views. What about introducing smaller ViewModels, namely UI models, and using them to build composable UI models/View Models?\r\n\r\nIn this talk, we will introduce the micro-feature architecture that leverages granular UI models. We'll demonstrate how this approach enables us to create leaner UI hosts by breaking down view models into smaller, self-contained logical UI models. Moreover, we'll explore the distinctions between a UI model and a Jetpack ViewModel.\r\n\r\nWe'll delve into the advantages offered by micro-feature architecture, particularly in terms of single responsibility, composability, reusability, and testability.\r\n\r\nBy the end of the talk, you'll have a comprehensive understanding of how adopting this architecture can significantly enhance your development process and empower you to build high-quality, scalable applications which has highly dynamic contextual screens.\r\n\r\nMicro-feature architecture is used in several screens of 2 big apps in production which are now being used by 10M+ users. We will be also sharing our learnings about using this approach in these apps.", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"guid": "8f73eb25-b705-50f7-9a69-19357322ec27", "id": 227, "code": "VYC3ZJ", "public_name": "Hakan Bagci", "avatar": "https://papers.synesthesia.it/media/avatars/hakan_photo_G7pXEhC.jpg", "biography": "Delivery Hero, Principal Android Engineer\r\n\r\nHakan Bagci is an Android Principal Engineer at Delivery Hero, a food delivery company. He started Android development in 2012 and has 17 years of software development experience. He got his PhD degree in Computer Engineering. After leaving academic path, he has become a passionate Mobile Engineer and published 10+ small sized indie mobile games to both Android and iOS platforms.", "answers": []}], "links": [], "attachments": [], "answers": []}, {"url": "https://papers.synesthesia.it/droidcon-2024/talk/TTL8Z7/", "id": 411, "guid": "fdb7268f-dec0-5372-a518-9a98ef899830", "date": "2024-11-30T17:10:00+01:00", "start": "17:10", "logo": null, "duration": "00:50", "room": "Right Stage", "slug": "droidcon-2024-411-mastering-mobile-app-sustainability-optimizing-resource-management-in-flutter", "title": "Mastering Mobile App Sustainability: Optimizing Resource Management in Flutter", "subtitle": "", "track": "Flutter", "type": "Talk", "language": "en", "abstract": "In today's mobile app landscape, end users demand top-notch quality and performance, making fluidity, battery consumption, and overall efficiency critical factors for success. This talk is tailored for Flutter developers of all levels and offers actionable tips and tricks to enhance app performance and battery usage. By emphasizing the importance of these aspects, developers can significantly improve user experience and satisfaction.\r\nDuring this 30-minute session, we will talk practical solutions to common performance bottlenecks. Topics covered include:\r\nefficient UI rendering\r\noptimized network requests and local cache\r\neffective use of background processes and multithreading\r\nstrategies for reducing battery drain\r\nThis speech aims to equip developers with the knowledge and tools necessary to create efficient Apps. We will explore best practices for daily development activities to ensure a more sustainable and reduced carbon footprint.\r\nWhether you're a seasoned developer or just starting out, you will gain valuable insights and techniques that can be immediately applied to your projects.", "description": null, "recording_license": "", "do_not_record": false, "persons": [{"guid": "9c161aae-340c-5a9b-bfe8-6e75e78f630b", "id": 275, "code": "QZU9LT", "public_name": "Matteo Bruzzone", "avatar": "https://papers.synesthesia.it/media/avatars/WhatsApp_Image_2024-07-30_at_10.46.59_nCN4a2L.jpeg", "biography": "Born and raised in Italy, Matteo starts develop android app during IT degrees and begins working on that in NTT DATA back in 2020. After a couple of year became both Flutter and Android dev and now is currently senior developer.", "answers": []}], "links": [], "attachments": [], "answers": []}]}}]}}}