Instantiate test data with Instantiator
Hannes Dorfmann
by
2y ago
I have noticed that most of the unit tests I write are testing how my code transforms data or business logic. My class or business logic just needs data as input (thus I need some test data to write unit tests). For example, most of my android apps load a list of items from the backend and then the android app is transforming that data into some state object or front-end specific domain objects ..read more
Visit website
SwipeBack
Hannes Dorfmann
by
3y ago
SwipeBack for Android Activities does pretty the same as the android “back-button” does, but in a really intuitive way by using a swipe gesture The Samsung Galaxy Nexus was one of the first device without hardware buttons for “back”, “home” and “app switching (multitasking)” but used the androids navigation bar on screen (introduced in Android 4 ..read more
Visit website
Perfectionism vs. Excellence
Hannes Dorfmann
by
3y ago
Perfectionism is not the same thing as striving for excellence. How does one differentiate from the other and why does it matter? How does it related to software engineering? These are the questions that I want to answer by looking at a very concrete example from the world of software engineering: Code Reviews ..read more
Visit website
Finding the right abstraction (when working with Strings)
Hannes Dorfmann
by
3y ago
Finding the right abstraction is hard. In this blog post, I would like to share a technique that works well for us (my android teammates and me) when dealing with String resources on android. An abstraction layer for Strings? Why do we even need an abstraction to simply work with Strings on Android ..read more
Visit website
Flowing in the Deep - Event Streams in Kotlin
Hannes Dorfmann
by
3y ago
The Kotlin team introduced a new type called Flow which looks similar to RxJava’s Observable or Flowable. Have you ever wondered what’s the difference between Flow and RxJava? How does Flow work under the hood? How is it connected to Coroutines? How do you write your own operator? What about Kotlin Coroutine Channels ..read more
Visit website
Testing By Design
Hannes Dorfmann
by
3y ago
Together with my friend Kostiantyn Tarasenko we talked about testing android apps. Building an efficient and maintainable test suite for an app is challenging. Design patterns like MVP or MVVM help decouple responsibilities so that it becomes easier to write testable code. What is the next level though? How can we get more out of our tests ..read more
Visit website
Advanced Model-View-Intent: The Missing Guide
Hannes Dorfmann
by
3y ago
Together with my friend Kostiantyn Tarasenko we talked about Model-View-Intent (MVI) and were sharing some tips that worked well for us. We also introduced a library to help us build state machines with RxJava called RxRedux ..read more
Visit website
Reactive Apps with Model-View-Intent - Part 8: Navigation
Hannes Dorfmann
by
3y ago
In my previous blog post we discussed how the Coordinator pattern can be applied on Android. This time I would like to show how this can be used in Model-View-Intent. If you don’t know yet what the Coordinator pattern is I highly recommend to go back and read the introdcution ..read more
Visit website
In-App Navigation with Coordinators
Hannes Dorfmann
by
3y ago
Over the last years we have established best practices for writing android apps: clean architecture, architectural patterns like MVP, MVVM, MVI, Repository pattern and so on. But what about in-app navigation? In this blog post I would like to talk about the Coordinator pattern and how we could apply this pattern in android development to organize our in-app navigation code ..read more
Visit website
Demystifying RxJava by reimplementing it from scratch
Hannes Dorfmann
by
3y ago
There are no slides available because it was actually a live coding session where we reimplemented RxJava’s basic of observers, subscriber and operators ..read more
Visit website

Follow Hannes Dorfmann on FeedSpot

Continue with Google
Continue with Apple
OR