This Weeks Links
Fragmented Podcast 68: Talking Buck with Uber engineer Gautam Korlam
We kick off 2017 talking to Uber Engineer Gautam. In first part of this 2 part series, Gautam talks to us about the Uber Android app, the complexity in the architecture, the scaling challenges, the pain points Android developers faced working on such a massive app.
Christmas Voice – Part 2
This series explores the core function of an open source app, Christmas Voice, which allows users to sound like Santa Clause or an Elf. The post task a look at the core functions: Recording, modification and playback of the audio. Part 2 looks at audio playback and applying the audio transformations.
Sending Data With Retrofit 2 HTTP Client for Android
Retrofit turns your HTTP API into a Java interface. In this tutorial, Chike Mgbemena, is going to show you why you should use Retrofit, how to integrate it in your project and carry out Post, Put, Delete and Cancel requests.
The Do’s and Don’ts of writing test cases in Android
While it is almost impossible to build a perfect, bug free product, tests provide an extra level of confidence about the apps we build. In this post, Anshul Jain shares some of his best practice advice for writing test cases, for both unit and instrumentation tests.
Understanding Android Core: Looper, Handler, and HandlerThread
How much do you know about threads in Android? This article will takes us on a journey into Android’s core, where Android manages asynchronous programming with Looper, Handler, and HandlerThread.
Scrolling Behavior for Appbars in Android
AppBar scrolling behavior can help improve the way the contents of your pages are presented to your users. This post will help you understand and implement elevation in scrolling, sizing the flexible spaces and show you how to anchor specific elements.
Flutter II: Material Design
Flutter is a Material Design oriented technology which lets you write native apps running up to 60fps on both iOS and Android with the same codebase! The second post in this series you will take a look at some of the easy to use tools this framework provides to create Material Design based applications.
JobsLooking to hire an Android Dev? Look no further, post your job in the Android Dev Digest for one to four weeks. Reach over 15,000 Android professionals. Learn More |
Discovering the Android API – Part 1
This new series takes a look into some of the lesser known API’s of the Android platform. Part 1 introduces Spell Checker, Text Recognizer, TimingLogger, MediaProjection and PDF Creation APIs.
Introducing Dev Tiles — Quick Settings Tiles for Android Developers
Tired of searching for developer options in Android that keep being moved around? In this post, Mustafa Ali introduces an app he has created for his fellow Developers, which provides quick access tiles to commonly used developer options.
Android Wear packaging
This article will show you how to tune your build config, to take into consideration some real-world scenarios. You will learn how to integrate a Android Wear module into a project with requirements such as Multi-dimensions flavors, Signing and Build types.
Building an Android App from the Command Line
Writing a Hello World app with the Android Studio wizard will typically generate a folder with over 1000 files in it. This post looks at building this basic app from the command line to find out what actually happens behind the scenes and which of all these files are really necessities.
Simpler Android apps with Flowless 1.0-RC1 (or Flow 1.0-alpha2)
Square’s Flow provides a basic way to integrate a custom backstack into a view hierarchy. This post aims to help you better understand how to use Flowless, and how to create a simple MVP-based application without needing to using fragments.
ConstraintLayout: It Can Do What Now?
This link contains summary notes, a slideshow and a video of Nicolas Roard discussing his creation, ConstrainLayout, it’s goal, improvements, performance and how it compares to RelativeLayout.
What should we Unit Test?
If you are stuck wondering if you should Unit Test or more precisely where to start testing, this may just be the post you are looking for. The post explores what to do when: you’ve got old code that breaks often, when you think your code will change and new functionality is complicated.
Snowfall effect in React Native
In this post, Cường Lê will show you how you can render a snowfall effect in a simple view using React Native, so that it will work on both Android and iOS.
An adventure with Kotlin – Part II
The second part of this multi-part blog post shares a direct hands-on development overview experience of using only Kotlin and the standard Android SDK.
Videos
Caster.IO Lesson 144: Sketch – Designing our first interface
We’ve learned a few principles as well as some of the features of Sketch. Now let’s put these things into practice by designing a simple calendar application.
In this lesson you will learn:
- Creating an interface using symbols from the Material Design template
- You will also create your own symbols and elements
- How to duplicate symbols when required
- You will learn how to override symbols contents
Caster.IO Lesson 145: Sketch – Creating responsive variants of our interface
Responsive design is a key requirement for good products. We’ll create a landscape variant of the interface from our previous video.
In this lesson you will learn:
- Considering changes required for landscape designs
- Reusing existing symbols with slight modifications to fit the new dimensions
Caster.IO Lesson 146: Mockito: Stubs – Matching on any parameters of a given type
This lesson describes how you can configure stubs to match on user-defined objects, as opposed to those classes built into Java.
Mockito has built-in matchers for the likes of anyString(), anyInt(), anyBoolean() and so on, but what happens when you need to match on a class you wrote yourself?
We describe the use of the any() matcher which matches on any types and any values, including nulls. Additionally, we describe the use of the overloaded any(Foo.class) matcher, which requires an instance of the user-defined class Foo to match; this will not match on nulls.
In this lesson you will learn:
- How to let a stub respond when you pass null as a parameter
- Configuring a stub to match on anything (any type and any value) passed as a parameter, which includes nulls
- Configuring a stub to match on only instances of a specific class, which excludes nulls
- The differences in syntax required when using Java 7 vs Java 8
Caster.IO Lesson 147: RxJava fromCallable – Converting slow methods into an Observable
This lesson describes how you can easily take any expensive method and wrap the call inside an RxJava Observable.
Once you start using RxJava, you will want all slow methods to return an Observable to enable you to use all of the benefits of RxJava. However, this isn’t always possible. Sometimes, you can’t change what a method returns, but you still want to use the power of RxJava. This is a typical problem in working with legacy code.
We describe Observable.fromCallable() and how we can use this to wrap any method in an Observable so that we can defer the execution of an expensive method until the correct time, and so that we can control which threads are used to execute the method.
We provide an example project where we use Observable.fromCallable() to execute a slow method on a background thread and return the result on the Android main thread.
We describe why simply using Observable.just() can’t help us solve this problem.
In this lesson you will learn:
- How to convert a simulated “read database” operation into an Observable
- Why Observable.just() and Observable.from() doesn’t solve this problem
- How to create an Observable using Observable.fromCallable()
- Observable.fromCallable() lets you wrap an expensive method call
- The expensive method call will only happen when something subscribes
- How to clean up the syntax using Java 8 / Retrolambda
- Example project reading a value from a database with the use of fromCallable() to do the read in a background thread.
Open Source
ABTesting
Solution to Remote config Firebase in reactive way
screenshott
[Android Library] Take a screenshot of the device screen , programmatically!