care-inno-color@3x

Because of our deep expertise in Health Sciences, Care Innovations came to us to integrate Bluetooth into their critical, React Native app designed for remote patient-monitoring. But when we saw their codebase was written in Javascript, we knew there’d be more to this project.

Preventative Medicine

Dynamic / Static

To understand why, you have to understand a little bit about codebases.

In code, types classify values, and determine valid operations and rules for that type. For instance, all names conform to a name type, and all dates to a date type. In a dynamically typed language like Javascript, types aren’t classified until run time. Which means rules aren’t classified.

3 iphones showing the how to log into the Health Harmony app, the view of the app's dashboard and an input screen for documenting a person's weight

Which means the only way to check for errors is to inspect the code while it is running. Which means scripts can compile even if they contain errors that will ultimately prevent the script from running properly. Or at all.

And while dynamically typed languages can make programming faster in the beginning, they require the engineer to keep all types in their head. That works OK on a small project with few changes. But on a huge project with literally hundreds of files, you end up spending an inordinate amount of time digging through the codebase to figure out what things are.

That guesswork slows development and increases the risk of catastrophic errors down the line.

Statically typed languages, like Typescript, define and automate correctness. They check the source code, not the running state, and by doing so detect problems that might otherwise derail a project. In a statically typed language, a script will not compile at all if it contains errors.

“BiTE was hired to integrate Bluetooth into our React Native app. They left having drastically improved the app’s accessibility, combined two separate apps into a single codebase, and converted major portions of the code to Typescript, something we’d wanted done for a long time.”

care-inno-white@3x
marcus-grindstaff@3x

Marcus Grindstaff
Chief Operating Officer

3 iphones showing the how to log into the Health Harmony app, the view of the app's dashboard and an input screen for documenting a person's weight

Defense / Offense

Javascript created a codebase that necessitated defensive work. A constant game of 20 questions, Care Innovations was forced to spend time searching for errors we knew could be detected before they happened.

We specialize at taking codebases in disarray, applying the strictest standards, and transforming them into safe, stable code. So before we could make sure any of the oximeters and blood pressure monitors worked, we knew we had to convert the Javascript codebase into Typescript.

It turned out Care Innovations had been wanting that for a long time and were thrilled to make it happen.

Safety Check

Translating the dynamic into the static was a big job. It took guesswork and investigation and trial and error, but by doing so we gave definition to the undefined, and solidified the fluid. So features could be developed more easily and more safely, bugs could be fixed without us worrying something else was broken in the process, and the codebase could be scaled and refactored without requiring another game of 20 questions.

For a health sciences company, accuracy and safety are paramount. And that’s true whether we’re talking about life-saving clinical trials or codebases that run them. By converting to Typescript, we made the code safer.

Care Innovations was so happy with the way we integrated into their team and rehabbed their code, that what started as a short, urgent project to integrate Bluetooth turned into a long, happy relationship.

Read more about our Health Sciences expertise.

laptop displaying code next to an iphone showing a screen to input blood pressure data

How Can We Help With Your Next Mobile Project

Contact us to discuss your next app, request a proposal, or put us right to the task of carrying your software to the finish line.