How do you determine how much time you need to build a piece of software?

We sometimes need to know roughly how long something will take before we start working on it. This is basic product management.“This new feature will take more than four months to add to our product? Maybe we have better things to do with our time, then.” The viability of a new project, product or feature is (in part) derived from the initially estimated cost of building it.

Opening screens from other screens in Android apps is straight forward: create an Intent object, stuff some parameters into it, use it to launch the other Activity, and dig out the passed parameters at the other end.

Unfortunately, if you blindly follow Googles standard examples of how to do this, you will end up sprinkling potential bugs around your codebase. Let’s look at how to tighten it up a bit.

Your company is developing an Android app. Along the way you want to distribute test builds of the app. The designer needs to do user testing out in the field, the backend developer wants to end-to-end-test the whole system from the app… oh and by the way: the CEO wants to check in periodically as well.

If you were building a web-app it would be easy: just email a link to everyone. Distribution happens every time they reload their browser. However, with native apps you need to periodically push out new versions of the app to their phones.