John O'Reilly
01/20/2024, 8:26 PMJohn O'Reilly
01/20/2024, 8:28 PMYour task is to summarize an abstract into one sentence.
Embrace the Interceptor pattern of software design to create cleaner abstractions, enable flexibility, and set yourself up for writing high quality tests. This versatile approach empowers engineers with unmatched control, adaptability, and seamless integration with dependency injection. Join me to explore how interfaces and protocols serve as the foundation for making code flexible, adaptable and composable. We'll talk about high level design playbooks as well as real-world examples you can start using today to leverage this software design pattern. Examples such as utilizing reflection-based Proxy Objects, employing "Fakes" in unit tests, wrapping 3rd party libraries and modifying network traffic. }
Response
The Interceptor pattern utilizes interfaces and protocols to create flexible, adaptable, and composable code, enabling high-quality testing through dependency injection and real-world examples.
Your task is to summarize an abstract into one sentence.
While the advent of Jetpack Compose's modern, declarative, Kotlin-based UI toolkit has made many aspects of UI development better, faster, and cleaner, there are still times when the platform components and composables may not precisely fit your needs.
However, Jetpack Compose has also made custom layouts better, faster, and cleaner with many ways of building and hyper-customizing maintainable and performant composables.
This talk will outline various ways to implement a custom layout in Jetpack Compose, give guidelines on when to use which solutions, and dive into some code examples. I will also share my experiences, approaches, and challenges with the custom layouts I have built on the job.}
Response
This talk will discuss techniques for building custom layouts in Jetpack Compose, providing guidelines and code examples.
Your task is to summarize an abstract into one sentence.
If you work on Android apps, you probably know that Google has a limit on how many ANRs your app can cause before they reduce the discoverability of your app. So whether you are focused on improving your end-user experience or improving your app's ranking in the app store, reducing the ANRs in your app is important. This session will cover the challenges of discovering and troubleshooting ANRs, and how you can more easily fix ANRs.}
Response
This session will cover how to discover and troubleshoot ANRs in Android apps.
Your task is to summarize an abstract into one sentence.
Looking to set your app apart from the rest on Google Play? For 88% of users, how much personal data they share depends on how much they trust a company. Show customers you safeguard their data and are transparent with your privacy practices by completing a new Independent Security Review and get a badge on your Google Play Data safety declaration. In this session, learn about the new App Defense Alliance (ADA) Mobile App Security Assessment (MASA), launched Fall 2022 and how it can drive your business:
- Learn about the MASA validation process
- Get tips on secure coding practices to speed your validation
- See how & why so many other top Android apps have been validated
Get the inside scoop from NowSecure experts who helped create the ADA MASA framework and who have conducted hundreds of MASA assessments.}
Response
Google Play's new App Defense Alliance (ADA) Mobile App Security Assessment (MASA) helps developers improve their app's security and data privacy practices.
Your task is to summarize an abstract into one sentence.
The promise of DevOps is to accelerate build times and enable faster software delivery. But that promise isn't always kept. Are you struggling to deliver all the committed roadmap items on time? Do you find yourself reworking the same logic because your feedback loop takes too long?
Join this session to learn why fast builds (both locally and in CI) are important for development teams, especially for mobile applications. We'll walk through the benefits of a mobile-specific CI/CD process. Then we'll introduce what top teams are doing and how you can get there through a walk, run, fly approach.
You'll walk away from this session with concrete steps to take your current CI/CD setup to the next level, allowing your team to deliver more features, faster.}
Response
This session will discuss the importance of fast builds for development teams, especially for mobile applications, and provide concrete steps to improve CI/CD setup for faster software delivery.
Your task is to summarize an abstract into one sentence.
When interacting with a mobile app that regularly crashes or freezes, 53% of users uninstalled the app, 37% stopped using it, and 28% looked for a replacement. Users are no longer forgiving mobile app mishaps and errors. Going beyond the basic metrics of understanding your user experience and diving deep into mobile performance is key to ensuring growth and positive user experiences. We will highlight which metrics and takeaways mobile teams should track to create a superior app experience that takes into account every user interaction. Find out why app insights, proactive issue detection, advanced debugging, and alert management capabilities should matter to you and the development of your mobile app.}
Response
Understanding mobile app performance metrics, such as insights, proactive issue detection, advanced debugging, and alert management, is essential for ensuring a superior user experience and app growth.
Your task is to summarize an abstract into one sentence.
Whether it's fraud, data exfiltration, IP theft, or tampering, Android developers have no shortage of threats to address and mitigate. In this talk, Jan Vidar Krey, the head of development for Promon, will unveil the company's latest research in mapping the state of affairs for real-world Android application security. Recently, the company reviewed how 100 of the most-used Android finance apps handled a typical malware attack โ 92% were susceptible.
Jan Vidar will then share the practical steps Android developers can take to protect their apps and reduce risk. }
Response
Promon's research found that 92% of the 100 most-used Android finance apps are vulnerable to malware attacks, and the company's head of development will share practical steps developers can take to protect their apps.
Your task is to summarize an abstract into one sentence.
Successful platform teams are often caretakers of the developer experience and productivity. Explore some of the ways that the Reddit platform team has evolved its tooling and processes over time, and how we turned a platform with multi-hour build times into a hive of modest efficiency. Hear about what worked, what challenges were faced, and learn how you can help your organization evolve successfully over time, no matter the scale.
Key Points:
What We Monitor & How We Measure
* Quantitative and Qualitative Measures
Approaches that improved our local build experience
* Better Code Organization
* Addressing the Pain of Context Switching
* Improved Build Times & Tools for Success
* Preventing Downstream Failures
Approaches that improved our CI build experience
* Improved Workflow Organization
* Faster Runtimes / Parallelism / Sharding
* Improved Stability & Interactivity
* Self-Serve Tooling & Awareness (Bots, so many bots)
Approaches that improved our test coverage and app quality
* Introducing a Full Testing Pyramid
* Observability and Enforcement of Code Coverage
}
Response
The Reddit platform team evolved its tooling and processes over time to improve the developer experience, productivity, and build efficiency.
Your task is to summarize an abstract into one sentence.
Are you looking to track and improve the performance of specific customer flows in your app? We were at Cash App and in this talk I'll walk through how we went about measuring, monitoring and improving the performance of one of Cash App's main screens! I'll discuss what metrics we tracked, how we set up alerting to ensure our product was healthy and how these checks set us up well for a future migration. Come join us to hear about what kind of instrumentation we considered and what made the final cut!}
Response
The talk will cover the process of measuring, monitoring, and improving the performance of a key screen in Cash App, including the metrics tracked, alerting setup, and instrumentation considered.
Your task is to summarize an abstract into one sentence.
Learn how you can use Compose Multiplatform to leverage familiar and well-established APIs from Jetpack Compose to build shared user interfaces for Android, iOS, and beyond โ in 100% Kotlin. In this talk, you'll learn about the current state of Compose Multiplatform, get a feel for the technology during live demos and live coding examples, and learn what's needed for you to start your own cross-platform mobile UI experiments!}
Response
Compose Multiplatform allows developers to create shared user interfaces for Android, iOS, and beyond using Jetpack Compose APIs written in Kotlin.
Your task is to summarize an abstract into one sentence.
The time to migrate away from Google Play Billing Library 4 (PBL4) is halfway done, and developers will need to switch to PBL5 or - assuming it's announced at I/O - PBL6. There are good reasons to migrate sooner, rather than later, though:
In this talk, you'll learn how the flexibility offered by BillingClient 5 enables new paywall configurations and functionality, with working examples for you to implement yourself. We'll also highlight the challenges we ran in while upgrading the RevenueCat library to support these changes, many of which are incredibly relevant if you're one of the hundreds of thousands of Android apps that still need to migrate away from PBL4 or even 3.
You'll leave the talk with a better understanding of real-world implementations of Billing Library 5, its benefits and its challenges, setting you up for a more successful migration down the road.
Depending on this year's I/O, we'll update this talk with examples and insights pulled from PBL6 as they become available}
Response
Developers using Google Play Billing Library 4 are halfway through the migration period and should consider upgrading to BillingClient 5 sooner than later to take advantage of new features and functionalities.
Your task is to summarize an abstract into one sentence.
In software development, mocking is a popular technique used to simulate dependencies and test behaviour without relying on external systems. However, as with any technique, there are pros and cons to using mocks.
In this talk, I'll discuss why using mocks may not be the best approach and why we should instead use fakes or in-memory implementations of well-defined interfaces. We will explore the drawbacks of mocks, including how they can lead to brittle tests, slow down development, and make it difficult to refactor code.
By contrast, we will see how using fakes or in-memory implementations can provide faster feedback, increase confidence in the code, and make it easier to maintain tests as the codebase evolves. We will look at some examples of how to implement these alternatives, and how to make them useful in different testing scenarios.}
Response
Mocking in software development is often disadvantageous compared to using fakes or in-memory implementations due to the resulting brittle tests, delayed development, and refactoring difficulties.
John O'Reilly
01/20/2024, 8:39 PMResponse
1. **Uncover the Resilience of the Android Community**: Explore real-world anecdotes and experiences from developers around the world, showcasing how they persevered through technical challenges, overcame the pandemic, and stayed connected as a community.
2. **Embrace the Interceptor Pattern**: Learn about the Interceptor pattern in software design to create cleaner abstractions, enable flexibility, and set yourself up for writing high-quality tests. Explore how interfaces and protocols serve as the foundation for making code flexible, adaptable, and composable.
3. **A Structured Learning Path for Kotlin Multiplatform (KMP)**: Discover a structured learning path for KMP beginners to help them get started on their journey. Learn about the importance of Clean Architecture in KMP, reactive UI and streams, multilingual developers, multiplatform teams and communication, and how art and multiplatform development are surprisingly related.
4. **Custom Layouts in Jetpack Compose**: Get an in-depth look at various ways to implement custom layouts in Jetpack Compose, including guidelines on when to use which solutions and real-world examples. Learn about utilizing reflection-based Proxy Objects, employing "Fakes" in unit tests, wrapping 3rd party libraries, and modifying network traffic.
5. **Reducing ANRs in Your App**: Understand the challenges of discovering and troubleshooting ANRs (Application Not Responding) in your Android app and discover practical steps to fix them more easily. Learn about the importance of fast builds for development teams and explore a walk, run, fly approach to take your CI/CD setup to the next level.
6. **Mobile App Performance and User Experience**: Highlight the importance of mobile performance and user experience and discuss metrics and takeaways that mobile teams should track to create a superior app experience. Learn about the benefits of app insights, proactive issue detection, advanced debugging, and alert management capabilities.
7. **Android Application Security: State of Affairs**: Unveiling the latest research in mapping the state of affairs for real-world Android application security. Learn about common threats and mitigation strategies, and get practical steps to protect your apps and reduce risk.
8. **Evolving Platform Tooling and Processes**: Explore how the Reddit platform team has evolved its tooling and processes over time to improve local build experience, CI build experience, and test coverage and app quality. Gain insights into the challenges faced and learn how to help your organization evolve successfully over time, regardless of scale.
9. **Measuring, Monitoring, and Improving App Performance**: Dive into how to track and improve the performance of specific customer flows in your app. Learn about the metrics to track, how to set up alerting to ensure a healthy product, and how these checks set you up for a successful future migration.
10. **Compose Multiplatform for UI Development**: Learn about the current state of Compose Multiplatform, get a feel for the technology during live demos and live coding examples, and discover what's needed to start your own cross-platform mobile UI experiments!
11. **Mocking vs. Fakes: A Better Approach to Testing**: Discuss the drawbacks of using mocks in testing and explore the benefits of using fakes or in-memory implementations of well-defined interfaces. Learn how to implement these alternatives and how to make them useful in different testing scenarios.
12. **Future of Jetpack Compose Text Field APIs**: Get a sneak peek at the future of Jetpack Compose Text field APIs and learn about the upcoming changes and improvements. See what's new since the San Francisco conference and discover the latest developments in this area.
13. **Optimizing App Size: Strategies and Techniques**: Address the challenges of app size reduction and explore tools and techniques to optimize app size throughout the development process. Learn about image compression, unused code and assets, modularizing app delivery, string usage and optimization, and analysis for monitoring app size.
14. **Android Studio Features for Efficient Development**: Discover some of the lesser-known features in Android Studio that can help you write, debug, and test Compose UI more efficiently. Explore layout validation, device mirroring, resizable emulator, layout inspector, compose preview, and compose tracing.
15. **Dagger as a Business Logic Driver**: Learn how to leverage Dagger's ability to fine-tune graph lifecycle and associations, and link graphs to each other in tree relationships to drive actual business logic and enforce separation of layers. Explore custom scopes, annotations, and subcomponents, and discover how to scale this approach at the app-level.
16. **Material You: Design System for Android, Web, and Desktop**: Explore the Material You design system and its integration with Jetpack Compose. Learn how to apply color, typography, and dimension standards across your applications to create aesthetically pleasing UIs that are easy to refactor and maintain. Understand the fundamental aspects of design that will empower developers to feel more confident about UI and enable better communication with designers.
17. **Shaders and AGSL for Stunning UIs**: Dive into the world of shaders and AGSL (Android Graphics Shading Language) and explore how to use them to create custom programmable shaders that can spruce up your Android apps and make your UIs pop! Learn shader basics, AGSL setup, and practical use-cases for shaders in action. Gain insights into using complex tech to push the boundaries of Android UIs.
18. **Compose Screen Architecture: Airbnb's Trio Framework**: Discover Trio, Airbnb's framework for Jetpack Compose screen architecture, which maintains navigation state within the ViewModel, co-locating navigation and business logic. Explore the challenges of Compose-based architecture and how Trio addresses them. Learn about type-safe navigation, navigation state in a ViewModel, communication between Compose-based screens, compile-time validation, testing screens, and developer tools created to support Trio workflows.
19. **Material 3 Design System with Material Components**: Learn how to use the Material 3 design system with the Material components in Android apps. Discuss the color system and typography in Material 3 and explore how to use Material 3 components in both the Android View system and Jetpack Compose. Understand the migration process from Material 2 to Material 3 and the pros and cons of using Material 3.
20. **Firebase Crashlytics Reporting in Android Studio**: Discover how to view Firebase Crashlytics reporting directly in Android Studio, making it easy to launch the class directly from one click and fix issues quickly. Explore features such as layout validation, device mirroring, resizable emulator, layout inspector, compose preview, and compose tracing. Learn how to use these tools to write, debug, and test Compose UI more efficiently.
John O'Reilly
01/20/2024, 9:59 PMyschimke
01/20/2024, 10:26 PMyschimke
01/20/2024, 10:27 PMJohn O'Reilly
01/20/2024, 10:35 PM