Authorhitherejoe

Exploring Android 12: Splash Screen

E

With the Android 12 beta now available, we’re starting to learn more about the new features that the latest version of Android gives to us. One of the things that caught my eye here is the introduction of a Splash Screen API – not only providing a standardised way for apps to present splash screens within their apps, but also improve the user experience when it comes to launching apps...

Exploring the Material Navigation Rail

E

There was a lot of exciting news announced at Google I/O this week – one of the things I had been looking forward to was hearing about large screen experiences. While these devices and design principles have existed side-by-side for some time, it’s always felt like support for developers has never quite fully been accessible. However, with some of the announcements at I/O this week...

Modular Navigation with Jetpack Compose

M

A large amount of mobile apps will need some form of Navigation, allowing users to move between different parts of an application. When implementing these requirements within Android Apps, applications have either rolled their own solutions, relied on traditional intents or the fragment manager, or explored the option of the Navigation Component over recent years. Throughout the alpha...

Exploring Android 12: Unified rich content API

E

With the announcement of the first Android 12 Developer Preview announced yesterday, I started to take a dive into some of the API changes and the new things we’ll be getting our hands on. One of these things was the new unified rich content API, providing a simplified way of transferring media between applications. You may have previously used Image Keyboard Support when using or...

Getting started with Apollo GraphQl on Android

G

GraphQL is becoming a common technology being used to build APIs. When it comes to clients consuming these APIs, there are a collection of tools available to make this process smoother – one of these tools being Apollo Android. This library allows you to take your graphQL schema and generate a type-safe API to execute operations against. If you’ve previously used tools such as...

Server Driven UI, Part 2: The GraphQL API

S

In the last article, we dived into the Concept of server driven UI – if you haven’t taken a look at that blog post yet, it will serve as a useful reference for the concepts mentioned throughout this post – so I would recommend checking it out. In this article I want to dive into building the GraphQL API for Compose Academy that is being used to serve the UI to its clients. With a...

Getting our apps ready for Jetpack Compose

G

Since the announcement of Jetpack Compose, followed by the developer and alpha releases of the framework, excitement has been building around getting this into our apps. With the migration to Compose, we will see huge improvements in developer productivity, application stability and maintainability, as well as other side affects in things such as hiring (who wouldn’t want to work on a team...

Exploring Jetpack Compose: @Preview annotation

E

The ability to Preview Jetpack Compose composables within Android Studio is possibly one of my favorite things about this new way of building apps. Previews allow us to build, style and polish our composables without needing to run our app. The annotation offers a range of ways in which our previews can be configured, so I wanted to take a few moments to show you exactly what it can do so that we...

Exploring Jetpack Compose: Card

E

The Card composable is a surface that can be used to present content and actions focused on a single topic. If you’re enjoying my posts on Jetpack Compose, check out some details on the book I’m writing on Compose! When it comes to displaying a Card, there is a single composable function that can be used to do so. @Composable fun Card( modifier: Modifier = Modifier, shape: Shape =...

Server Driven UI, Part 1: The Concept

S

I’ve recently been having some conversations with developers from the community about GraphQL and how it is being used in their work, with the aim to influence some of the changes we are making in our stack at Buffer. During one of these chats with Maria Neumayer, there was some experience shared of designing GraphQL schemas to represent the presentation of screens in an app. This approach...