The RouteBoxer port shows what changes when browser code has to become a library that other projects can pick up.

Reuse in software is often accidental. A helper written for one project gets copied into the next one, and then into the one after that. It keeps working until the platform changes, at which point every copy has to be fixed separately.
RouteBoxer is a small library for covering the area around a route with bounding boxes. It began life as a helper for maps in the browser. The Android version was not copied from anywhere. It was written as a library from the first commit, which changed several decisions along the way.

Offering both a compiled artifact and an importable source module is the part teams skip most often. It costs little and it removes the main reason developers abandon a small library, which is not being able to change the one line they disagree with.

The most useful line in the paper is not about code structure. The authors report that the number of boxes grows exponentially as the requested distance increases. A caller who doubles the corridor width does not get twice the work, and without that fact written down they will find out in production.
The general lesson for anyone porting an algorithm across platforms is that the algorithm is usually the easy part. The platform API, the packaging, and an honest note about how the inputs scale are what determine whether the port gets used. A library that hides those costs is a library that gets ripped out later.
Pinandito, A., Saputra, M.C., Perdana, R.S. (2016). RouteBoxer library for Google Android platform. 2016 IEEE Asia Pacific Conference on Wireless and Mobile (APWiMob).