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

The first taste of Rust - A simple you tube downloader

Recently, I just learnt Rust and using it to write a simple youtube downloader with reference from node-ytdl . In this blog, I would like to share the code and how did I make it. You can find the full source code here . Install development environment I am using Windows 10 and scoop package manager. Therefore, I use the following commands. Run scoop install rustup-msvc to install rustup . Run setx "%path%;%USERPROFILE%\\scoop\\persist\\rustup\\.cargo\\bin" to add rustup to the path. Restart termial (git-bash in my case) and check the installation with rustup --version; rustc --version; cargo --version Export custom RUST_HOME : export RUSTUP_HOME=$HOME/scoop/persist/rustup/.cargo/bin/rustup Install a toolchain for rustup : rustup toolchain install stable-x86_64-pc-windows-msvc Setup project Run cargo new simple_rust_youtube_downloader --bin && cd simple_rust_youtube_downloader to create and navigate to the project. Add these dependencies to

Prepare Lubuntu 20.04 for software development

Prepare Lubuntu 20.04 for software development ninjahoahong After using windows , macosx , and serveral linux ditributions. For me, Lubuntu is the lightest and easiest to set up and run so far. If you search there will be two domains provide lubuntu which are lubuntu.me and lubuntu.net . You should use lubuntu.me which provide the most updated version of lubuntu . In this blog, I will focus on the additional packages after installation. Create Lubuntu 20.04 bootable usb Download Lubuntu 20.04 iso file. Create bootable usb using balena etcher or unetbootin . Boot to the usb and install Lubuntu . This is a starting screen using lxqt . Additional packages There are packages for apt and snap . I prefer apt since the app installed by snap command will take long time in the first launch. Web browser: brave I usually inst

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