Appdevcon 2020 in a nutshell

augustus 9th, 2021

Appdevcon has already come to an end. But you might have missed some of our great seminars and guest speakers, so we have made a shortlist in which we will summarize the past seminars. Thus, allowing you to pick and choose which seminar you want to revisit.

Your first AOSP contribution

Andrea Falcone

Have you ever wanted to fix a bug in AOSP but found it daunting? Have you wanted to search the code in AOSP but found it difficult? Then, we’ll dig into the tools like Repo and Gerrit that the Android team uses every day. So get ready to be a contributor to the Android Open-Source Platform!

To learn more, click here

Architecture challenges in big teams

Mohammed Abdullatif

In this talk, Mohammed will share his experience working on Spotify’s iOS application, some architecture challenges he faced, and the team’s approach to overcoming some of these challenges.

To learn more, click here

Efficient Android UI testing

Alex Zhukovich

Mobile apps are growing. They become more complex and require more testing. It means that it is time to integrate automated tests into your project efficiently because they should be fast and stable.

This talk covers the following topics:
– DSL (Domain Specific Language) in UI Testing
– Efficient combination of different types of UI tests
– Best practices for creating test suit for Android application
– Popular mistakes in UI Testing

To learn more, click here

Practical mobile app attacks by example

Abraham Aranguren

A significant amount of confusion exists about possible damage when
vulnerabilities are found in mobile apps. This talk aims to solve this problem by providing
broad coverage of Android and iOS app vulnerabilities identified over multiple years of
penetration testing. The purpose is to offer a comprehensive repertoire of security
anti-patterns that penetration testers can look for and mobile app developers can watch
out for to avoid.

To learn more, click here

Designing a design system

Shai Mishali

Synchronizing design teams with engineering teams is a huge challenge. As teams scale, new growing pains start around properly aligning colours and other design details between teams in a uniform way.

This talk will cover the story on how Gett solved this problem using existing tooling they had (Zeplin, CI Systems) as well as a custom automation solution they named Prism, allowing them to generate design-specific code for different developer platforms based on their design team’s style guide and design system.

To learn more, click here

Building powerful Android apps with AWS Amplify

Cesar Izquiderdo Tello

Parkmobile is the leading provider of parking solutions in The Netherlands. It operates in 11 countries, and our apps are used by more than nine million customers worldwide. During the last years, Parkmobile started the process to become a cloud-native company using Amazon Web Services infrastructure. This new scenario opens to the Android team new possibilities like benefit from GraphQL API’s which could improve the user experience and performance of our apps. AWS Amplify SDK for Android is a development SDK to support Android app development. In the recent AWS re: Invent event, AWS announced new SDK Amplify capabilities, like the Datastore feature, which enhances offline app features. In this talk, Cesar will walk through the integration of AWS Amplify in Android apps. He will describe the SDK primary features, together with the SDK ups and downs.

To learn more, click here

Goodbye code review, Hello pair programming

Ryosuke Hiramatsu & Shizuna Ito

Code review is an excellent method to maintain high code quality. However, some concerns are introduced when this method is used too often. For example, many members would request their code reviews from their lead engineers, giving their lead engineers more work.

Besides, it takes a lot of effort to communicate with the reviewer, and code reviews are often returned with many corrections, which is sometimes time-consuming. The solution to this problem is pair programming. In this session, Ryosuke & Shizuna will explain pair programming and share how they use it with TDD in their daily development.

To learn more, click here

An introduction to property-based testing

Vincent Pradeilles

When you write unit tests for your projects, there’s a fair chance that you do so by following the classical « Given-When-Then » paradigm, in which you set some input data, execute the code you’re testing, and finally assert that its outcome is indeed the one you expected.

While this approach is perfectly sound, it does suffer one downside: your program will only be tested on the static input data defined in your tests, and there is no real guarantee that this data does cover all edge cases. This can be especially problematic for SDK developers, who, by definition, have a tough time anticipating all the different situations in which their code will be used.

To improve on this issue, another approach exists, and it is called property-based testing. The idea behind it is straightforward: you write your tests by defining properties that must always be true for your program. For example, « an array reversed twice is always equal to itself.» The testing framework will then generate random input values and test whether the property holds or not. And, as you can imagine, this approach is extremely good at narrowing down on overlooked edge cases.

To learn more, click here

Developing skills & actions for voice assistants

Piet van Dongen

Personal assistants haven’t been exclusive to the Miranda Priestlys and Don Drapers of this world for a long time now. Everyone that owns a smartphone can get one for free. And for a very reasonable price, you can get one, two, three assistants for your house, office, wrist, car. That’s awesome! At least, if you can get them to do what you actually want.

And who takes care of that? Us, of course! The designers and developers of the so-called skills and actions that enable assistants to be actually useful. Because connecting your client’s IoT device or service to an assistant is a piece of cake, really. We’ve done it a few times now and would love to tell you how you can do that, too!

To learn more, click here

Snapshot testing, testing the UI and beyond

Georgios Sotiropoulos   

In this talk, Georgios will explain Snapshot Testing and how it helps us develop and test the UI fast and present a complete strategy for avoiding visual regression bugs in all extreme UI cases. He will also explore how this actually changed the team’s workflow when developing the UI, paving the way to the “perfect pull-request” and how Snapshot Testing can be more than a visual regression testing tool.

To learn more, click here

Outside-in TDD on Android

Jovche Mitrejchevski

TDD is a skill. It takes 5 mins to learn it but a lifetime to master. The only way to master a skill is by practising it. In this talk, we’ll see why developers hesitate to try TDD. Then, you’ll learn how Outside-In TDD works, how you can take advantage of it, and why this TDD style is a great match for Android development. Finally, you’ll learn how you can apply it to your daily job immediately.

To learn more, click here

Imperative is dead, long live declarative

Marco Gomiero

Talk. Explore the declarative (what to accomplish) style of building UI compared with the imperative (how to accomplish) one.

To learn more, click here

Porting an iOS app to macOS using Mac Catalyst

Jan Kaltoun

In this talk, Jan describes his experience porting an existing iOS/iPadOS UIKit app to macOS using Mac Catalyst. Over the course of the 45 minutes, he’ll show how he ported the app, what issues he faced and how he solved them. Everything is demonstrated on examples from the actual app. By the end of the talk, you should have a basic understanding of what it takes to port an app to macOS using Mac Catalyst.

To learn more, click here