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 ...

Blogger Post Template

The easiest way to start using a template is that you visit your own typical blog and change to HTML tag and copy the blog to the Settings --> Post, comments, and sharing --> Post Template. Then remove the real text and replace it with the template text. For example, this blog's template is: Reference: https://support.google.com/blogger/answer/154172?visit_id=1-636349071961278260-2951406294&rd=1 - ninjahoahong

How does virtual reality (VR) work?

Today, I learned a basic of how VR works and want to share you my short summary: VR feel can be achieved by using head mounted displays to show different 2D pictures (different angles, depth) to each of a user' eyes to immerse the feeling of staying in a 3D world to the user. The immersion can be increased by increasing the field of view (typical field of view is 100 to 110 degree).  FPS requires at least 60fps for the user to feel okay. Different trackings such as head tracking, motion tracking, and eye tracking decide when to show which pictures provide more complete VR experience. After learning this basic, I am interested in making some experiments with VR application for Android phones and tablets. I will share those learning experience after the experiments. References: http://www.androidauthority.com/virtual-reality-work-702049/ https://www.wareable.com/vr/how-does-vr-work-explained