[ Articles ]
Embed a SearchBar into a TopAppBar in Jetpack Compose
Search is a key part of providing an intuitive user experience in many apps. Let's look at how to embed a SearchBar into a TopAppBar to create a polished search experience.
Installing and running Swift tools with enforced versions
When working on Swift projects we want to ensure that tools such as SwiftLint or Sourcery are easy to use and that all developers are using the same version. Let's look at some different options and how we can enforce consistent versioning.
Authorization and retrying of web requests for OkHttp and Retrofit
Most remote APIs require some form of authorization in order to access them. We will explore using OkHttp Interceptors and Authorizers to authorize our web requests for use with OkHttp and Retrofit.
Manage automation tasks using Swift Package Manager
To perform automation tasks on Swift projects, such as linting and code formatting, we often need to use command line tools or run scripts. Let's install them and manage it all with Swift Package Manager instead!
The power of lazy properties in Kotlin
Kotlin makes creating properties that are initialized on first access very simple. We will go through different options for creating them and how they can be really useful in our Kotlin code.
Uploading a file with progress in Kotlin
How to monitor progress during a file upload may not be immediately obvious, when using Retrofit and OkHttp. We will build an implementation that uses a callback and then how to wrap it into a Kotlin Coroutines Flow.
Simplified launching of Android Activities
A generic extension function that makes launching Android Activities much simpler.
Protecting secrets in an Android project
Managing secret values in a way that doesn't make them easy to extract can be difficult. We will explore techniques we can apply to keep them out of source control and how to secure access to them.
Enforcing type safety of IDs in Kotlin
Entities in our codebases will commonly need identifiers or IDs to refer to them with. We will have a look at the different options for them and how to make them type-safe, allowing our code to be safer and less error-prone.
The power of sealed classes in Kotlin
Modelling a type that can come in different forms, each with their own state, is a really handy language feature. We will look into how and when Kotlin sealed classes can be used and look at some use cases for them!