Skip to main content

Working with Android legacy code

In this blog, I would like to share my experience of working with Android legacy code which work well for me so far.

First of all, when I get into an Android project which contains legacy code. I will ask about the current situation of the application:

  • Current features
  • Current know issues
  • Current patterns are being used in the projects
  • Current overall structures
  • Current way of working of the team
  • Current parts in which contain legacy code
  • Current UI tests
  • Current Unit tests

Then I spent some times to get familiar with the current features by getting a phone and try out the current features and the known issues and take notes of those things. In my experience, the applications can be complicated that even the ones who develop it don't know all the features and known issues of it. Therefore, taking note and comparing with the transferred knowledge is a good way to start understanding the application. Now, hopefully, I have a good idea of what I am dealing with. Then I run the tests if there are any.

Next, I write UI tests to cover all the features by clicking through the applications and checking the visibility of elements of individual screens. These type of screen tests save the developers a lot of typing time on the mobile phones.

Finally, I will add unit tests gradually to the code base whenever touching a feature which didn't have enough tests.

Some useful commands and files I used: code reviews tools to read through all PRs, string resource files, icon drawable filesgit grep and git blame/Android Studio's annotate.

Please feel free to left me some comments or questions.

- ninjahoahong

Comments

Popular posts from this blog

My books review: "The retrospective handbook"

Overview: The retrospective handbook is a useful collection of tips for preparing and running retrospective for agile teams. The central point of facilitating a retrospective is the preparation. All the details - even the smallest details such as how much paper is available or what the colours of the using pens - play an important role in running a successful retrospective. In such preparation, the most important preparation is the relationship. It requires team members to have high trust with each other to address any problems in great details and find the most suitable solution for those problems. My impression: The tips for running remote retrospective would be really useful for anyone especially startups in my opinion. All the startups I have worked for so far have had some foreign teams either external or internal to save operating money. In addition, there are a lot of remote work to save office renting space and almost all of those startups followed the agile method.

My books review: Money for the rest of us

Overview: The "Money for the rest of us" book is a list of 10 questions serve as a guideline to invest. It is light book with not many pages and can be read during commute time. The book does not require audiences to have any special knowledge. My impression: The author, Mr. David, is very friendly and patient to answer my questions. The 10 questions are greatly explained by the author, and I think they provide a good starting point. However, I think anyone who wants to invest should build their own checklist and a general guideline for different situations. When a general guideline is in place, the decisions need to respect the guideline in order to make consistent decision. Consistency , in my opinion, is the most important in the long run as it provide information for constant feedback and improvements. Overall, I think this is a good book that helps improving my decision making process. - ninjahoahong

Scripting with Java

I think Java is quite verbose for scripting. However, it can also be fun. I wrote a very simple experiment of ls command. You should try it out. Download file ls and chmod +x ls then you can run ./ls . There are no flags/options supported.😆 - ninjahoahong