Speaker

Raimon Ràfols

Raimon Ràfols

Head of Engineering - Protection

London, United Kingdom

Actions

With over 20 years of experience, Raimon currently leads the engineering strategy and execution for the Protection Platform at Lloyds Banking Group, enhancing engineering culture, fostering collaboration, and driving customer value. He is a frequent speaker at conferences, having notably chaired the Transforming Industries Summit at Mobile World Congress Shanghai. Beyond his professional commitments, he indulges in photography and hackathons participation, with over 40 international awards, including AngelHack Barcelona and Facebook World Hack. Additionally, he is the author of two books on Android development.

Area of Expertise

  • Information & Communications Technology

Topics

  • android
  • performance
  • open source

The bytecode gobbledygook

We know one of the main characteristics of Java is portability, and that usually means it is not as efficient as it should be. That might be the reason Java has never been associated with high performance, but nowadays there are a lot of Java powered devices in the world and lots of people are building applications for them.

Compilers that produce native machine code do a great optimization job because they know where the code is going to be executed. But because of the portability feature, the Java Compiler could not assume anything about where our program is going to run and leaves all the optimizations to be done by the JVM while loading or, even, running our code. This has been the case until Google introduced Jack and Jill compilers, but now that has already deprecated them in favour of Java 8 tooling and introducing the new D8 compiler, will this assumption still be true? Also, with the recent addition of Kotlin, there is another language that generates bytecode. How will it perform compared with plain Java code?

In this session, you will not only learn what to avoid when looking for critical performance, you’ll also get a bigger understanding of how the java compiler works and how small changes on the code effect the code executed by the Dalvik VM and ART runtimes. We will also see if it is worth to manually optimize the most critical part of our application bytecode and, at the end, to make your Android code slightly faster. #perfmatters

Updated & improved version of a talk I gave at 360|AnDev. I will show how java code gets translated into bytecode and then to real DEX/ART code and the impact it has on performance and also the differences between current java compilers, very briefly the improvements of the, already deprecated Jack & Jill compilers and the impact of the java 8 tooling and the new D8 compiler. Also, will go through the generated byte code to evaluate step by step what the compiler is doing and also analyze the differences between a machine compiled and manually optimized bytecode to see the improvements and if it’s worth it.

Link to the 360|AnDev talk:
https://academy.realm.io/posts/360-andev-2017-raimon-rafols-android-bytecode/

Art on custom views

Most of us have played with custom views on Android. Maybe to implement the lovely UI our designer team came up with - that we do not know how to implement it using the standard Android UI widget set - or just to build the fancy menu our application needs.

Android provides us a standard set of great components to build our UI, but sometimes we need additional horsepower. Custom views give us this additional power, but as you might have heard before, with great power comes great responsibility. At the end of the day, we will be fully responsible for the performance, efficiency & battery use of our custom view; there will be nobody else to blame. But, what about taking advantage of this additional power to build something different for our application? Something different that will definitely make it stand out from all the others?

In this session, we will see a slightly different use of custom views. We will cover the basic stuff & later on the session we will focus on building special animations and renderings going beyond, what can be called, standard implementations. Be aware though, that does not mean we always have to go further from the standards or to the same extreme as this session, as that might feel overwhelming and produce the opposite effect.

Rendered art on the web

Being creative does not actually understand about tools & frameworks. Using the right tool, though, will maximize the efficiency and simplify the execution time. Today, when talking about web development, we don’t precisely lack the tools or frameworks, but we tend to choose them by some specific team expertise or seniority or simply by market hype or even by using what can be considered the new kid in the block this last month. This flexibility though, is one of the great thing of being a web developer nowadays. The same goal can be achieved by different approaches or using different frameworks, tools or even combining several of them.

In this session, we will introduce the html5 canvas APIs to have clear understanding of what we can do with it. We will start by showing how to build some simple but real-time effects & animations, and then we will proceed to see how we can react to user interactions while taking performance into consideration. We will finish by drawing some more complex scenes and adding an artistic touch. At the end of the day, you will learn the basics of html5 canvas, see what you can do with it and be able to evaluate if using it can help you out.

html5 canvas will not solve all our creativity issues. It is not actually meant for all cases and it has an interesting learning curve if the developer does not have experience in computer graphics, but it will definitely help us out on some specific scenarios if used right. As somebody might said before “with great power comes great responsibility” ;)

Raimon Ràfols

Head of Engineering - Protection

London, United Kingdom

Actions

Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.

Jump to top