This Weeks Links
Fragmented Podcast Episode 030: Material Design for developers with Mike Wolfson
In this episode we talk to Material Design Master and Google Developer Expert Mike Wolfson. What does Material design mean to us developers? How does one use the numerous support libraries to help with this? What widgets should and shouldn’t we be using? Listen to the show and find out.
Model-View-Intent on Android
Model-View-Intent is a very clean way to deal with application states and UI changes. An unidirectional data flow (cycle), predictable states and immutability are the exciting thing about MVI. Hannes Dorfmann shares these thoughts and others on MVI.
A View Divided: Adding Dividers to Your RecyclerView with ItemDecoration
One common task that isn’t as convenient in RecyclerView is the addition of dividers or offsets between list items, but you can fortunately create your own dividers with ItemDecoration. David Greenhalgh explains.
Explore the new Google Play Developer Policy Center
Google says they have redesigned their Developer Program Policy Center to communicate our policies with greater transparency and clarity. Take a look at what the redesign includes.
Find success on Google Play: What app developers can learn from games
Game developers have had plenty of opportunity to learn about how to improve onboarding, conversion, and ultimately the user Lifetime Value (LTV). So what can app developers learn from game developers? Here are some best practice tips and insights from successful game developers that can be applied to many apps, today.
Introducing Analytics for Google Cast Applications
As a Google Cast developer, you may be wondering how many devices access your application, how many sessions those devices initiate, and how long those sessions play media. Until now, you needed to implement your own instrumentation to get this information. Not anymore!
Indeterminate – Part 3
Indeterminate ProgressBars are a useful tool for communicating to our users that an operation is in progress when we cannot predict how long it is likely to take. In Part-3 we create a custom Drawable which is capable of drawing an arc and has setters to control the start and end points of the arc and the overall rotation.
Indeterminate – Part 4
Indeterminate ProgressBars are a useful tool for communicating to our users that an operation is in progress when we cannot predict how long it is likely to take. Part-4 of this series looks at creating a set of object Animators which will change values over time and therefore create the animations that we require.
A MVP Approach to Lifecycle Safe Requests with Retrofit 2.0 and RxJava
Designing an Android networking architecture that fits into the Model-View-Presenter (MVP) approach can be challenging and confusing to say the least. The purpose of this blog is to shed some light on a networking architecture that can fit easily into the MVP pattern while also allowing our network requests to live beyond the life of an activity/fragment with very little effort.
AndroidDevMetrics – dagger2metrics evolved into metrics for Android development
Dagger2Metrics was a good start to help us look for performance issues in Android apps which we develop. It shows us how much time is needed to initialize particular objects (and their dependencies) in graph, in Dagger 2. But there are much more things to measure than just an object initializations. Miroslaw Stanek introduces an evolution of dagger2metrics and explains why he decided to make this tool a part of something bigger.
Look ma, no flavors: minSdkVersion for multiDex apps
You need MultiDex but you also have minSdk < 21 and you are tired of slow builds? Artem Zinnatullin shows off a great way to achieve this without flavors.
Developers: APIs are crucial to business, but tough to get right
APIs matter, big time, and not offering an API deprives your software or service of a crucial audience. But it’s tough to get an API right because of unintegrated tooling, security issues, and the difficulty of iterating and resolving problems quickly. These and other insights inside.
Research: Insights on the State of App Developers 2016
InMobi surveyed mobile developers across the world to better understand the ever-growing ecosystem. These insights are drawn from over 1,000+ respondents across 155 countries on the latest trends in the mobile app ecosystem, including developer mindshare, platform of choice, revenue models, challenges and motivations, and mobile ad network preferences.
Life and death in the App Store
Since Eugene Kaneko founded Pixite with Scott Sykora in 2009, the company has released eight applications, each has been featured by Apple as a Best New App. Pixite grew along with its cash flow, expanding from two to six employees as it explored ways to link its apps together and grow a loyal base of customers. Then the bottom fell out. Last year downloads flattened, and Pixite’s revenues plunged by a third! Come and take a look at what happened.
Android quality with SonarQube
SonarQube (previously called Sonar) is an open source platform for continuous inspection of code quality. It is not often you hear people talking about SonarQube in combination with Android. Part 1 of this blog post shows what it can do.
Chaining multiple sources with RxJava
After reading Dan Lew’s excellent article about a similar topic and since it’s all the rage in the Android community, Miguel Juárez decided to give Chaining multiple sources with RxJava a go, take a look.
Taming your Github notification emails
If you use GitHub at your company and have more than one project on the go at once, you might start to notice you get a lot, A LOT of emails. This guide will help you get them under control!
Episode 43: Advanced Gradle Plugin Development (Part 2)
In this episode you will learn:
- How to create unit tests for your custom tasks
- How to configure your plugin for distribution
- How to apply your plugin in another project
Episode 44: Background Processing with an IntentService
In this episode you will learn:
- How to offload work to a background worker queue via an IntentService
- How to create the Intent Service by hand
- What the name value means in the super class call of the IntentService
- How to issue multiple requests to the IntentService and have them queued up
- How to use Android Studios New -> Intent Service Wizard to Quickly create an Intent Service
- What the exported value means in the AndroidManifest entry
Episode 45: Visualizing Memory with Android Monitor
In this episode you will learn:
- Use the Android Monitor Memory Visualizer
- How to artificially apply memory pressure
- Visualize memory usage and free memory in your running app
- Visualize Android initiated GC (Garbage Collection) Events
- Force a GC (Garbage Collection) Event from within Android Monitor
The Journey of Android Engineers Tech Talks
Recently, John Rodriguez, Effie Barak, Eric Burke, and Christina Lee gave lightning talks and participated in a panel discussion at our “Journey of Android Engineers” event in Square’s San Francisco office. These talks were recorded and are now available on the Square Engineering YouTube channel. Enjoy!
Performance metrics library for Android development (includes dagger2metrics)
A lightweight library aiming to speed up Android app development by leveraging the new Android Data Binding and taking the best from the Model-View-ViewModel design pattern.
Monokai Theme for Android Studio 2.0
This plugin will help you to set material design icons to your Android project.