Android Development

Planning and effective tools as an Android developer’s advantage

 

“Give me six hours to chop down a tree, and I will spend the first four hours sharpening my axe.” – Abraham Lincon

 

To cut a tree, a sharper axe held by a strong person would do a very efficient job. We can’t say this for a blunt axe. In the context of wood chopping, an axe would be a performance multiplier.

The same thing goes for Android developers. It’s important to “sharpen the axe” when given a project with timelines.

If you spend some time planning, you’d figure out how seamless and straightforward execution can be.

Here are a few things I do and the tools I use to help me “sharpen my axe”.

 

Planning

What I do while planning:

  1. When given a go-live date, I target some time before that day (could be a week or two depending on the timeline) and use that as my own date. The objective of this is to help me actually meet the deadline without any form of last-minute pressure.
  2. I break down projects into smaller pieces and connect the dots. For example, if I have to build an e-commerce android app, I define the screens and what they will contain, how to persist data within the app, the obvious dependencies I will need to install and how to structure my tests even before I create a new Android studio project.
  3. I write down my thoughts. Writing down actually helps streamline your thought process a lot more. After breaking down the project into smaller pieces, I write down each task and subtask. At this point, I define what tasks are milestones and what tasks depend on others.
  4. Once I have all the tasks laid out, I use a project management tool to arrange them and then I get to work. After planning, it’s time to design what the screens would look like.

Tools I use while planning:

  1. Project management: Trello / GitHub (depending on the project)
  2. Note taking: Notion

 

Designing screens

During the planning phase, I already had an idea of how many screens my app would need and what would be on them. So now it’s time to design each screen. To do this, I use Figma. But I know a lot of people that use Invision, Zeplin or Adobe XD.

 

Test-driven development

Once planning and UI design are out of the way, it’s time to write some lines in Android studio. However, I advice test-driven development. In this section, I would highlight what I do when I’m actually coding and the tools I use.

When testing, I use JUnit, Espresso and UI Automator.

What I do while coding:

A lot of people say test-driven development requires discipline. Listen to them, it actually does.

Following the test-driven development approach, remember while planning we broke our project down in smaller pieces? Those pieces were actual features of the app. And I like to do test-driven development iteratively, feature by feature.

So how do I do this:

  1. Choose the next feature to implement
  2. Write test cases for the feature (They will fail initially).
  3. Refactor code until those tests pass
  4. Move on to the next feature and repeat 1 – 3 until we are done

10 (+1) Tools & Libraries I use while coding:

  1. Android Studio or IntelliJ Idea. It just has to be one of these IDEs.
  2. Android Arsenal: This is a directory of Android libraries and tools. If your project might require a particular feature and you don’t want to worry about writing boilerplate, this is a good place to come to.
  3. Anko: Anko is an Android library that makes development easier and faster. It is majorly divided into four parts: Commons, Layouts, SQLite & Coroutines.
  4. Source Tree: This tool provides a way to manage Git repositories through a GUI without having to have command line.
  5. Realm is an object-oriented database.
  6. Android Asset Studio: A collection of tools to easily generate assets for an Android app.
  7. Android Emulators & Firebase test lab
  8. JSON Stub: Fake the backend while you develop the frontend.
  9. The Android Documentation.
  10. SemaphoreCI or Travis
  11. Spotify. It’s a great tool. Music helps a lot.

 

With planning, I know exactly what I’m to do when it’s time to get into the code. This means I code faster with the right tools as opposed to jumping right in immediately without having an actual plan to follow.

It’s important to plan and use tools that speed up your productivity since they both work well together. When you plan, you’re able to gather the necessary things to sharpen your axe and cut that big tree down. I hope I have empowered you to plan for your next app. Please let me know how it goes when you do it.

 

 

 

Spread the love

5 thoughts on “Planning and effective tools as an Android developer’s advantage

  1. Great article…just learning about some of the libraries you used for the first time. Do people really do TDD in Android ?

    1. Thanks!
      Yeah actually. It depends on the project and if you’re thinking about scaling. I mean, like TDD helps to stay in scope and prevents you from kind of “over-engineering” your code.

      1. Okay… One day I’ll try it. I’m making a toy app and I want to try Jsonstub as the backend.

Leave a Reply

Your email address will not be published. Required fields are marked *