Unit testing is essential to expediting your development time and minimizing regression issues that reach QA or even production. In this article, we'll examine how to utilize Mockito, Robolectric to expedite various aspects of unit testing. Outside of unit tests it's important to also test the UI to assert current state after a sequence of simulated user gestures or input utilizing Espresso. Finally, we'll cover how to maximize our code reuse for our Espresso tests by adhering to Jake Wharton's Robot Pattern.
In this article we'll take a look at the concept of dependency injection, how it can improve your code, and using the Dagger2 framework to implement dependency injection into your Android code.
Realm is the newest kid on the block regarding mobile databases. Realm is that it is not an ORM (Object Relational Mapping) built on top of SQLite but rather it's own persistence engine. This article is an exploration of why I chose it for the DebugRank app.
This article covers how I utilized MVP in the architecture of the DebugRank app. First I’ll cover what MVP is at a high level, then I’ll provide some code snippets of what each layer looks like in Android. Afterwards I’ll cover the use cases, who, what, and when to use MVP, and finally some Q&A.
HackerRank is the go to tool for enhancing algorithm skills. It's a website that allows you to perform coding exercises with any popular programming language at varying levels of difficulty. But what if you want to improve your code review and debugging skills? This is where DebugRank comes into play, a native Android app built to challenge your ability to find and fix bugs in existing code. DebugRank gamifies debugging code by giving you a time limit to add that extra challenge.
Inspect our apps' performance by viewing the heap and tracking memory allocations in both DDMS (Dalvik Debug Monitor Server) and Android Studio.
In this blog post I look at how to profile my app's method execution time using DDMS Method Profiling. I also cover installing and launching DDMS and analyzing test results.
Profiling is especially important on mobile apps because of the tight resource constraints. By using profiling tools you can measure method execution time, monitor the full heap space, and track memory allocations in real time. In this first blog post I will mention the available profiling tools and how to enable developer options on your device before I dive deeper into Android profiling in parts 2 and 3.