How we helped a tech leader build an automated healthcare app for care teams
Medcorder is a mobile app for recording and sharing medical information. Medcorder mobile app helps patients record, store, transcribe, and share their physician encounters in order to better understand what their doctors are telling them.
Evrone focuses on using proven technologies to complete intricate, high-load projects for large enterprises and facilitate fast start-up launches. Our engineers closely monitor advances in technology and apply the innovations that show the most convincing results. This approach led Evrone to expand our tech stack to include the Dart programming language and the Flutter framework, both of which we employed in the development of a healthcare mobile app for our client.
Evrone’s client, David Weekly, is a tech-savvy, Silicon Valley veteran. He has over 5 years of technical experience as a seasoned product management leader at Google and Facebook, an award-winning startup mentor, and a founder & Board Member at Hacker Dojo. Inspired by his own personal experience, he commissioned the development of an application to improve the quality of doctor-patient interaction.
When Weekly’s father fell seriously ill, his family was subject to a deluge of information about the various treatment options available. Like many patients and their families, Weekly’s family found it difficult to process all of the details and treatments recommendations and accurately convey them to other family members. Concerned that they might miss important details, they began recording the conversations they had with doctors. The recordings were then emailed to family members for discussion, after which a decision would be made on treatment. This family care-team approach proved remarkably efficient. So Weekly came up with the idea that would, with Evrone’s engineering help, become Medcorder, an application designed to automate the methods Weekly’s family employed.
Evrone developed Medcorder’s concept, its design, and an MVP. As an experienced tech leader, the client knew he wanted the app created using the Google stack (Google Cloud, Google Firebase, Google Storage, and Google Speech Recognition), coupled with an innovative, cross-platform framework for mobile app development — Google Flutter. The Evrone team had extensive experience developing with React Native and was enthusiastic about creating a product with a multi-platform framework. The client emphasized the importance of quick realization and flexibility with regard to changes, so a framework like this was just what was needed.
Getting to know Flutter
Flutter is an open-source SDK designed by Google for the development of iOS and Android apps. It uses the Dart programming language, compiling this into binary, platform-specific code, ensuring the high performance of all apps developed. By the time the Medcorder project took off, Flutter was still at the pre-alpha stage. This posed certain challenges and risks, but Evrone was committed to trying out this new technology and bringing the idea to life.
As the project progressed, Flutter grew and changed in an extremely dynamic way. Keeping the toolkit up-to-date was a kind of kung fu in its own right. Fortunately, the goal of Google’s engineers was to make the learning curve of the platform a gradual one, providing developers with thorough documentation and a wide range of resources. The documentation features specific sections where users can learn the platform’s basics in a manner tailored to their particular field of expertise.
Interface and framework
Flutter supports two basic options out of the box: Material Design Widgets and Cupertino Widgets (iOS-style widgets), and users always have the option to develop a custom UI as well. The Evrone team used the Material Design option as a reference point to develop a custom UI for Medcorder. We found that, unless developers focus on such minor nuances, such as custom scrolling, UI development is fast with this framework. Since Flutter is an open-source framework, there are already a rapidly growing number of ready-made solutions, available for anyone to use in their projects. However, at the time of Medcorder development, there were no ready-to-use plugins for audio recording and playing. So the client came up with the idea of the development of the audio recording plugin as an open source contribution and Evrone created it, using Objective C for iOS and Java for Android. The Custom Audio Plugin is now publicly available.
Benefits of Flutter
Based on the experience, Evrone highly recommends using Flutter in start-ups for MVPs where quickly ascertaining the viability of the business model is paramount. Design options are limited if developers only use the out-of-the-box Material Design or Cupertino Widgets. However, Flutter makes it easier to experiment with the interface, resulting in less time wasted on dead-end solutions. Flutter also provides:
- Increased app speed thanks to the high-speed rendering offered by Google.
- A single code base for iOS and Android, removing the need to apply the same edits twice.
- Identical interfaces on Android and iOS, eliminating the need for separate testing of user scenarios on each platform. However, different interfaces for each platform can be created, if desired.
- Easy app integration with Google Services and Google Cloud.
- Advanced tools, based on Android Studio and Visual Studio Code, as well as thorough documentation.
Like other cross-platform tools, Flutter does not address system-specific tasks such as contact management, Bluetooth, sound settings, or text messaging. Plugins will need to be found or developed for these tasks. However, the community of developers using Flutter is growing and publishing more and more of their open-source projects all the time, so many of these tasks will no doubt be addressed before long.
While Medcorder was in development, Flutter went all the way from pre-alpha to stable release, finally seeing the light of day early in December 2018. Upgrades to newer versions of the toolkit proved tricky to work with, and this was when Evrone’s extensive experience with native mobile app development came in handy. Resolving certain dependencies would have been impossible without a good understanding of Gradle for Android and CocoaPods for iOS. However, as new modules and plugins were released, issues became much easier to resolve.
The Evrone team developed several iterations of Medcorder, first coming up with a design, then building the app and the backend serverless architecture. Some of the iterations came about due to frequent Flutter updates as the framework grew. The first MVP looked like a smart notebook that enabled the user to make an audio recording of their visit to the doctor, get a transcript of the conversation, make notes and comments, and add photos of test results. Then it was determined that care-teams would be the most valuable users of the app, so a social function was added, along with a new identity and design, that gave users the ability to chat within the app.
The final result
After multiple iterations and additions, Medcorder was transformed into a platform for interaction between the patient, their doctor, and the patient’s family. In June 2018, the app was published as a free resource to download and use. Medcorder was such a success, that the client eventually quit his job with Google to focus on further development of the app, securing substantial funding for the project with a $2.5 million seed round. A health crisis can be difficult for patients and their families to navigate, but Medcorder is making it easier by helping patients and their care-teams better understand treatment options and make more informed decisions.
Evrone has proven that they are a valuable ally for startups looking to quickly make their ideas a reality. The Evrone team leverages the most effective technology solutions to turn the client’s product vision into a working MVP, shortening the time to market and providing a valuable opportunity to determine the product’s best-served audience. Click here to see what else Evrone can do to help your startup succeed.