This Weeks Links
Fragmented Podcast 71: UI UX development with GDE Raveesh
In this episode we change the tune and talk with Raveesh Bhalla; Raveesh is a GDE for design specialized in UI/UX.
He starts off by helping us get a good understanding of what UI/UX involves. He then shares his experiences and learnings from having conducted extensive research specifically for Android. What are some good patterns today, what are anti-patterns, what should we watch out for.
TDD Your UI Layer – #uitestsmatter
In this post, Donn Felker aims to dispel some of the controversy surrounding the idea that you cannot TDD your UI layer with a functional testing framework, like Espresso. The post examines the points of each side of the debate and Donn explains why he believes driving your UI development with TDD is achievable.
Merge Multiple Manifest Files
An Android studio project may contain multiple AndroidManifest.xml files, this guide details how the ins and outs of manifest merging work. You will also be shown how you can apply your own merge preferences using defined special XML attributes, to resolve merge conflicts.
Simple Things – Part 3
In this series, Mark Allison, will cover some of the basics of Android Things and guide your through creating a simple weather station. Part 3 steps you through the creation of the weather station app, by showing you how to present the current temperature on the four alphanumeric displays on the Rainbow HAT.
Case Study. Master/Detail Pattern Revisited
In this article, Lucas Urbas showcases a classic design pattern, Master/Detail, and adds in some aspects of Material Design.The article is part of a responsive design series and will show you how to make a base template, that can be reused and expanded.
Android Performance monitoring [Part 1]
This series take a look at Android performance monitoring tools which can be used to help you check for issues with your app. Part 1 provides some tools which will help you identify memory leaks, see your memory allocation and analyse the heap for performance optimization of your app.
How modularisation affects build time of an Android application
Modularising a project can significantly speed up the build process, but only for some configurations. In this post Nikita Kozlov shares an experiment aiming to decrease incremental build time and the theory behind it.
Exploiting Android-Specific Seams for Testing and Flexibility
The key to writing testable Android apps, is creating and exploiting seams. This post takes a look at some Android-specific seams that can be leveraged for increased testability and flexibility in your applications.
Reactive Apps with Model-View-Intent – Part2 – View and Intent
In this second part of this blog post series, Hannes Dorfmann will introduce the basics of the Model-View-Intent pattern used to build Reactive Apps, through a shopping cart example,
Using SnapHelper in RecyclerView
In this post, Amit Shekhar will introduce you to SnapHelper, a helper class that helps in snapping any child view of the RecyclerView. The post will show you how to get started with Snaphelper, so you will have more snapping options than center snapping from LinearSnapHelper.
Developing with Kotlin and testing with Spek
Spek can help you make your tests and test reports more readable. In this post, Josip Žemberi will show you how to get setup before showcasing the use of Kotlin and Spek with Mockito and RxJava in Android Studio.
Presenters are not for persisting
There are many different ways we use Presenters, particularly when it comes to configuring changes during or after a data fetch. With this post, Mike Nakhimovich decided to share his preferred way to structure a data driven application, in the hope it will also work well for you.
Passwordless Authentication With Account Kit
Most forms of Passwordless Authentication are a trade off between User Experience and security, but there are times you may wish to implement it. In this short tutorial, you will be introduced to passwordless authentication using a Facebook Account Ki, shown what it is, why you might want to consider including it, and how to get started.
Android: Manipulating wifi using the WifiManager
In this post Josias Sena, will show you how you can programmatically turn the device wifi on/off or change the wifi connection within an app. The post will help you get started by showing you how to set permissions, create a broadcast receiver and configure it.
Android Tasks and Back Stack
A task is a collection of activities that users interact with when performing a particular job. The activities are arranged in a back stack and changing the launch mode of your Activity Tasks can achieve specific behaviors.This short post and demo provides a few examples of Android Tasks and Back Stack work together.
How to Stage Rollout Features using Firebase Remote Config (Android & iOS)
Staging a Rollout allows you to release a build to an increasing percentage of your users over time and can provide advantages such as reducing and minimizing negative effects on productivity.This post will show you how you can use Firebase Remote Config to rollout individual features within your app.
Reusing features in different flows of your app with Dagger
In this post Manuel Vicente Vivo shares a couple of Dagger solutions to scenarios where you may want to reuse existing features in another part of your app, where the logic is the same for both flows but there is specific logic for each one.
Android resources and attributes cheatsheet
This short post from Pavlo Dudka provides some notes on understanding different syntax when dealing with Android resources and theme attributes.
From Java to Kotlin
This page provides a list of common Java code and how it translates into Kotlin. The code is organised by Basic, Functions and Classes to help you quickly see the differences of handling in each of the languages.
Caster.IO Lesson 156: Using “Intentional” Motion Correctly
In this video, I will show how to use Intentional Motion effectively. The Material Design guideline states: “Maintain a clear focal point during transitions by carefully selecting the number and type of elements shared across the transitions.”
It is important to select the correct elements to Share between Activities. I will show a few different implementations, explaining how to do it correctly. When done effectively, Intentional Motion will guide the user, when done wrong, the transition is chaotic, and distracting.
In this lesson you will learn:
- Details about the term “Intentional Motion”
- A clear understanding of how this pattern can be used correctly
- How to avoid implementing this incorrectly
Caster.IO Lesson 157: Prototyping with Invision and Sketch
Prototyping can help you avoid repeatedly reworking your product’s design by testing them out with users before writing a single line of code.
In this lesson you will learn:
- How to use Craft’s sync functionality
- Prototyping with Invision
Caster.IO Lesson 158: Java Design Patterns: Observer/Observable
In this lesson, we are going to explore the Observer/Observable pattern. The observer pattern is used to help to avoid continuous polling of a data source. This is also known as the publisher and subscriber pattern (pub/sub). You can use the observer pattern to be notified when the data is ready instead of polling from it.
In this lesson you will learn:
- What the Observer pattern is
- What an oberver is.
- What an observable is
- How to create an Observable which will communicate with observers.
- How to implement multiple observers which do different things.
- How to wire them together to have the observable notify all observers when an action occurs.
Lesson 159: Communicating Designs with Zeplin, Sympli and Invision Inspect
One of the most cumbersome elements in a designer’s profession is communicating their designs with developers. Fortunately, we have a wide range of tools that help us out today.
In this lesson, you will learn:
- Communicating design choices with Zeplin and it’s capabilities
- Using Sympli and its’ Android Studio plugin
- The Inspect view of Invision and how it turns the product into the one-stop design communication channel
Lesson 160: Useful Sketch plugins and other apps
The community around Sketch is the biggest reason for the app’s popularity.
In this lesson, we’ll look at:
- Mirroring your designs to your phone in real time with Skala
- Renaming a bunch of layers together with RenameIt
- Removing unused symbols
- Color palette tools like Sip and Material Colors
This is a game for Rainbow HAT for Android Things in which the aim is to find the sequence of the ABC buttons to press, which if followed in correct order, will play out the “do-re-mi” melody. The player’s seek time is measured for an element of competitiveness.
SnapHelper Example for Android Application
A textview that changes its content automatically every few seconds
Proteus : A JSON based LayoutInflater for Android