158: Building High Performance Audio on Android


Download

In this show, Donn and Kaushik talk to Don Turner about how to build high-performance audio apps on Android.

We dive deep into history of audio on Android, some of the problems that the platform faced. Then look into the tools that we now have to solve those problems so that developers like you can build killer audio apps.

Enjoy.

Shownotes

Sponsors 🙏

Contact

157: Effective Java Item# 20 – Prefer interfaces to abstract classes


Download

In this episode, Donn talks about Item #20 in the Effective Java book (third series) by Joshua Bloch. He discusses why you should think about using interfaces over abstract classes, how they can add mixin like behavior to retrofit existing classes with new behavior, default methods, skeleton implementations and more.

Enjoy.

Sponsors 🙏

Contact

156: Increase App Engagement with Android Q


Download

With the release of Android Q we now have the settings panel and all its glory. This panel, while most likely overlooked as a minor feature, is actually a diamond in the rough.

Why?

Simply because it’s going to lower the abandonment rate of your app and increase the engagement of your app at the same time. Donn talks about this in depth in this episode.

Enjoy.

Shownotes

Sponsors 🙏

Contact

155: Naming conventions for RxJava Observables

Download

The Android community has come to use Rx pretty heavily but surprisingly there hasn’t been any one convention that’s won, when it comes to how we name our functions that return Observables. getUser(), user(), userUpdates() ? In this mini-episode dutifully does the yak-shaving for you and discusses what some options are and what the community has been gravitating towards.

Enjoy.

Shownotes

Upday’s convention:

Options

// option 1
fun getUser(): Single<User>
// yuck

// option 2
fun user(): Observable<User>
// but what does this mean?

// option 3
fun user(): Single<User>
fun userUpdates(): Observable<User>
// or
fun userStream(): Observable<User>
// this is looking good

// option 4 (upday style)
fun userOnce(): Single<User>
fun userStream(): Observable<User>
fun userOnceAndStream(): Observable<User>

Stay tuned for a future episode, where we discuss more details and more complicated cases to handle (like emitting a list of user, policies for fetching the first user as quickly as possible etc.).

Also #FinishNotation.

Sponsors 🙏

Contact

154: Developer Growth: Start Writing


Download

Growing as a developer is important for you, your career and your future. One of the best ways to grow your career is to start writing.

Donn recommends starting a blog or contributing to a blog. The process of writing will expose your weak points in your comprehension of a topic. Refining your communication skills through writing and putting thoughts out into the universe via a blog will broaden your skills as a developer.

Ultimately, writing is about communication and communication is the cornerstone of success in much of anything. In this episode, Donn walks you through why you should start writing to help you grow as a developer.

Enjoy.

Sponsors 🙏

Contact