Posted by Jake Wharton on March 31, 2021 After ~5 years of existing and ~4 years as an open source project, our AssistedInject library has been deleted. Mourn not, however, for the same functionality is now available directly in Dagger and InflationInject got its own repo. (Psst. Know Dagger but don’t know what assisted or inflation […]
It’s been more than 6 years since I wrote an original version of this prime table generator. That was back at the very beginning of my coding career, after learning C and SDL in the first semester of university. An archived version of that original project is available here, including the sources, 120 lines of […]
In our previous article about Jetpack Compose, we shared our initial impressions and recommended some learning resources. This time, we’ll take Compose out for a spin by building a basic chat UI implementation with it! Stream now provides a native Jetpack Compose Chat SDK instead of the approach you see in this article. Check out […]
Android’s current UI toolkit is over 10 years old now… Do stop me if you’ve heard this before 😉 As you most certainly already know, Jetpack Compose is the hot new thing for Android UI development. Its promise is to save us by making all the pain points of the old View system and XML […]
I’ve seen this fancy clock on Reddit a few days ago. Seeing how I took this week to get started with Jetpack Compose, I figured it would be fun to attempt re-implementing that clock with our new Android UI toolkit. A couple hours ago, I’ve seen that Aurimas Liutikas already created a Compose implementation of […]
One of the many things I was constantly amazed about during my first few weeks at Square/Cash App was seeing how fast this team shipped code. All members of the Android team (and likely other platforms as well) were merging to the main git branch multiple times every day. This was in stark contrast to […]
This is an updated version of an article published two years ago on blog.autsoft.hu. This new version supports non-Android libraries, uses command line GPG handling instead of a specific Windows GUI app, includes new best practices, and uses GitHub Actions for its CI integration. Update, April 2021: addressed new Sonatype infra, moved to using AGP […]
02 Feb 2021 • 3 min read Every Disposable holds a strong reference to the observer it binds. This can lead to surprising memory leaks. Consider the following example: class TacoViewModel : ViewModel() { var compositeDisposable = CompositeDisposable() fun loadTaco(activity: Activity) { compositeDisposable.add( Single.just(Taco()) .subscribe { taco -> // Handle taco… println(“Taco created in […]
Your browser does not support theaudio element. Download Anvil is a Kotlin compiler plugin that makes your life a tad bit easier when using Dagger 2. In this episode we talk to Ralf Wondratschek from Square who created the library and open sourced it for all of us. After touching on some of the basics, […]
Preview! Heads up: most things covered in this post are in a preview state of some sort. If you want the full technical details on this topic, you can jump to KEEP-226 and its design proposal instead of reading this article. JDK15 introduced a version of sealed classes and interfaces (see JEP 360) in a […]