Authorhitherejoe

Exploring the Google Play In-App Review API

E

When it comes to the Google Play store, app ratings and reviews are a pretty important marketing tool – they can have a huge influence on whether someone downloads our app, so ensuring that we do not miss out on good reviews is important. However, I’ve felt like there has always been a lot of friction in the review process – many apps seem to approach it differently, all of...

Follow Guidelines, not rules

F

Learning a new way of doing something is a very powerful tool – not only does it open our eyes to new perspectives, but it has the potential to improve on a previous approach we may have taken to solving a problem. The more we learn, the more perspectives we have in place to creating a solution. With this set of approaches that can then be used, we will generally pick the one that feels...

Exploring Android 11: Data Access Auditing

E

When building applications, user privacy is shifting more and more to the core of development values throughout the ecosystem. Aligned with this, Android 11 brings in a collection of changes to help improve the approaches to the privacy of user data in our apps. Amongst these changes are the introduction of the new Data Access Auditing API, used to help developers become more aware of user data...

Ask a question, don’t give the answer

A

When presented with a question, it’s natural for us to want to help – sometimes this can be in the form of providing a solution to the problem. Someone asks a question, we provide the answer and they have a solution that unblocks them. Whilst that solves a problem and clears their path for the short term, there can be a missed opportunity for long term development – providing...

Building an Exploding FAB Transition With Jetpack Compose

B

When interacting with apps on our devices, animations not only add delight to our experience but they also help to create a sense of connection between the destinations being animated. One of the animations on Android which I’ve always enjoyed is the exploding Floating Action Button animation. Here, the user clicks the FAB and it explodes to fill the whole screen, with the next screen being...

Exploring Hilt: Application Level Code Generation

E

In the last post we took a look into Hilt and how, at a high level, it can be used for Dependency Injection in Android projects. Now that we have seen how the API can be used, I want to start taking deeper dives into how things are working under the hood. In this post we’re going to dive into the @HiltAndroidApp annotation – looking at what it does when it comes to generated code and...

Exploring Dagger Hilt: An Introduction

E

When it comes to dependency injection on Android, we’ve seen over the past few years many different opinions, solutions and frustrations that have risen in the community – in this post we’re going to focus on Dependency Injection solutions and not Service Locators. To begin with we have Dagger – when I say this I mean vanilla dagger with no extra android support. This has...

Early learnings in testing with Jetpack Compose

E

When it comes to developing Android applications, ensuring or applications remain stable is vital to providing a good user experience. One of things we can do to help achieve this is by writing automated tests that run checks against the user interface of our application. When it comes to Jetpack Compose, things currently look a little different to how we might be used to writing these kind of...

Exploring Jetpack Compose: Arrangement

E

When it comes to the layout of child components inside of their parents, it is likely we’re going to want to arrange them in some way on both the horizontal and/or vertical axis. For example, our parent may fill the height of the screen, but our child components may only represent a small amount of that height and we may want to arrange that to be at the bottom of the screen. The same applies...

Exploring Jetpack Compose: Android View

E

When it comes to building our UI in jetpack compose, for a lot of applications it will come at a time when our UIs are already build using a mixture of existing solutions – be it XML layouts or custom views. It may even be the case that we have custom views in our current Android project that aren’t quite ready to be converted over to compose just yet, or maybe it doesn’t feel very...