Development Barn

2019.11.19 What’s new

Android

In case you want to learn about Android Development

Advice

Framework

AnDevCon: Android Internals Overview - Marko Gargenta.mov

Recycler View

Drag and Swipe with RecyclerView

Enter animation and LayoutAnimation

RecyclerView — More Animations with Less Code using Support Library ListAdapter

SortedList

DiffUtil

SnapHelper

Multiple item types

Improving scrolling behavior of nested RecyclerViews - Part 1

Optimizing Nested RecyclerView

Animation

Get Animated (Android Dev Summit ‘18)

Exploring Meaningful Motion on Android

Synchronously Animating Toolbar, TabLayout, FloatingActionButton and StatusBar Background Colors on Android

An Introduction to Icon Animation Techniques

Make a moving Gradient Background in Android

Beautiful animations using Android ConstraintLayout

Make your app shine #3: How to reveal an activity with circular revelation

Polishing UI: Android StateListAnimator

StateListAnimator — a Powerful Little Tool for Elevation Animation

Scroll your Bottom Navigation View away with 10 lines of code

TransitionDrawable — Small Gems of the Android Framework

Smoothly reacting to keyboard visibility changes in Android

One still surprisingly valid reason to use the old Animation (API 1+)

Playing with Material Design Transitions ✨ - How to make material design transitions between two screens?

AnimatedIcons: Strikethru

Desgin and Style

Best Practices for Themes and Styles (Android Dev Summit ‘18)

Good to great UI animation tips

Spantastic text styling with Spans

Styling internationalized text in Android

Mastering Android Themes

Understanding how to declaratively style text on Android

AppCompat — Age of the vectors

Why would I want to fitsSystemWindows?

Night Theme => AppCompat — DayNight

Vector illustration basics for Android developers - Part 1: Primitive Shapes

Material shadows on Android by Sebastiano Poggi, JetBrains EN

Custom View

Official Documentation

Mastering the Android Touch System

How to make a swipe button

Creating an Extendable Floating Action Button in Android

How I drew custom shapes in bottom bar

How we implemented 3D cards in Revolut

Creating Custom Views in Android

Android: Why your Canvas shapes aren’t smooth

Background Execution

Modern background execution in Android

Things to consider before running background tasks

Android Handler Internals

Exploring Android Processes

Exploring Android Thread Priority

Executor Framework- Understanding the basics

Understanding CPU and I/O bound for asynchronous operations

Background Work on Chinese ROMs

Why your Push Notifications never see the light of day

Google’s reply to WorkManager on Chinese ROMs. Only applys to ForegroundService and other

Android Studio

50 Android Studio Tips, Tricks & Resources you should be familiar with, as an Android Developer

Android Studio Debugger

How to check dependencies updates. There’re three ways: new experimental structure dialog, use android lint and a plugin .

Deep dive into .idea folder in Android Studio

Split layouts into subfolders in Android Studio

Gradle

Using Gradle build cache with Kotlin

Gradle Tips and Tricks for Android(includes kotlin-dsl, resolving dependencies conflicts, apk splits, buildConfigField, externalNativeBuild, buildTypes configuration, gradle properties, offline mode, product flavors, dependency graph)

How to Include an External .aar File Using Gradle?

How to manage dependencies in a multi module project?

Build Time

Build your Android app Faster and Smaller than ever

How I reduced my Android build times by 89%

Faster Android Build Times

Kotlin DSL

Migrating Android build scripts from Groovy to Kotlin DSL

Kotlin + buildSrc for Better Gradle Dependency Management

ADB

ADB Commands — Part III

Dagger2(Always read the newets posts)

Official Doc

[HOW-TO] Android Dagger (2.11–2.17) Butterknife (8.7-8.8) MVP (Part 1)

Dagger 2 on Android: The Official Guidelines You Should Be Following

Clean Android Application class with Dependency Injection: AppInitializers

Dagger 2 Generated Code.

Understanding Dagger 2 Multibindings + ViewModel

Injection into Android Component’s Constructors is real

Kotlin+Dagger best practices/documentation

Rx

Reactive.how

Reactive Programming with RxAndroid in Kotlin: An Introduction

The Missing RxJava 2 Guide to Supercharge Your Android Development

Implement Search Using RxJava Operators

Android RxJava 2 JUnit test - getMainLooper in android.os.Looper not mocked RuntimeException

APK

Playing APK Golf - Reducing an Android APK’s size by 99.99%

Reducing APK size by using ABI Filters and APK split

android-keystore-password-recover

Proguard Hell

Troubleshooting ProGuard issues on Android

Reading ProGuard’s Outputs

Feeding ProGuard’s inputs: where are all of these rules coming from?

How Proguard Works

Practical ProGuard rules examples

Security

Secure data in Android

Secure data in Android — Encryption

How to pass large data between server and client (android) securely?

Securing Network Data Tutorial for Android

Bang! Bang! You have been hacked.

How to retrieve an Unique ID to identify Android devices ?

Performing OAuth on Android with Custom Tabs

Securing API Keys using Android NDK (Native Development Kit)

Licenses

How open source licenses work and how to add them to your projects

How to Choose Licnese

Including Open Source Notices (Including an activity showing all libraries licenses. However, This official library doesn’t work very well)

OSS

Things I wish I knew when I started building Android SDK/Libraries

The beginner’s guide to contributing to a GitHub project

Removing sensitive data from a repository

Guide to publishing your Android Library via JitPack

Publishing your Android, Kotlin or Java library to jCenter from Android Studio

Publishing an Android library to MavenCentral in 2019

Release

Did you get one of these Google Play Developer Policy Violation Emails?

Clean your status bar like a pro!

Demo mode doc

Enhance Your Google Play Store Description With Rich Formatting & Emojis

Best Languages for App Localization

Test

Understanding and Mastering the World of Android Testing (Part 1)

Mocking Kotlin classes with Mockito — the fast way

Architecture

Google I/O 2018 app — Architecture and Testing

A Guided Tour inside a clean architecture code base.

Building a Shazam Clone Part 1 (Design) — Building Android Apps Series

Kotlin Clean Architecture

Modularization - Lessons learned

MVWTF: Demystifying Architecture Patterns

Performance

Performance Improvements for Search on The Yelp Android App

Advanced JSON parsing techniques using Moshi and Kotlin

Continuous Integration

Cloud Continuous Integration on Android with Kotlin Project

Archiecture Components

5 common mistakes when using Architecture Components

Room

7 Pro-tips for Room

Understanding migrations with Room

Room 🔗 RxJava

Java

Modern DateTimes on Android

Kotlin

Kotlin Sequences: An Illustrated Guide

An Illustrated Guide to Covariance and Contravariance in Kotlin

The Ins and Outs of Generic Variance in Kotlin

Coroutines

KotlinConf 2017 - Deep Dive into Coroutines on JVM by Roman Elizarov

KotlinConf 2017 - Deep Dive into Coroutines on JVM by Roman Elizarov

Kotlin Coroutines patterns & anti-patterns

Easy Coroutines in Android: viewModelScope

Framework Classes

Context

Mastering Android context

Enumerating Resources in Android

Activity

Android “launchMode” (Visualized)

The Android Launch Mode Animated CheatSheet

Finally understanding how references work in Android and Java

The (Complete) Android Splash Screen Guide

The Android Lifecycle cheat sheet — part I: Single Activities

The Journey Of Launching An Android Activity

Seamless Android app launch animations using Intent Source Bounds

DataBinding

Android Data Binding: RecyclerView

Custom attributes using BindingAdapters in Kotlin

Views

Android ImageView ScaleType: A Visual Guide

Scrolling Behavior for Appbars in Android

AppCompat View Inflation

Media

Audio Focus

PIP

Making magic moments with picture in picture (Three more links at the end of the article)

Vibrate

The Correct Way to Vibrate

Google Play In-App Purchase

Exploring the Play Billing Library for Android

Marketing

Downloading apps is emojinal 🚀 - a simple hack to get more downloads

How to make money Building Mobile Apps

Programming

Best of Fluent 2012: /Reg(exp){2}lained/: Demystifying Regular Expressions

A Programmer’s Introduction to Unicode

Leetcode Pattern 1 BFS + DFS == 25% of the problems — part 1

Understanding SOLID Principles: Open Closed Principle

Demystifying Dynamic Programming

My favorite examples of functional programming in Kotlin(powerset in the middle of the article)

Other

Generic

Why not GUI application terminate like console application?

Why is Python so slow?

Server

Capture all passwords trying to ssh into my server!

Create your first safe server that’s ready for production

Configure SSH Keys Authentication With PuTTY And Linux Server In 5 Quick Steps

Disable a user’s login without disabling the account

A fast and easy Docker tutorial for beginners (video series)

Getting Started with Docker on Your VPS

WSL

How to use proxy in WSL?

Website to API

WrapAPI

toapi

hicrawler

scrapinghub

Hexo

Use Hexo and deploy to GitHub Pages

Using Git Submodules to Manage Your Custom Hexo Theme

Next Theme Wiki

Encryption

PGP Guide

Game

From Zero to Game Designer: how to start building video games even if you don’t have any experience

magictools

Thoughts

Optimize Your Programming Decisions for the 95%, Not the 5%

More links at any time

😍