App development guide

Android app development - key resources

  • Link to Github repository
  • Link to Playstore app
  • We use Android studio for development
  • The application is supported on mobile and tablet devices, it is optimized for mobile devices.
  • Minimum API level: Kitkat
  • Design Paradigm: Material design

How to set up Inteleheath Android App

  1. Clone the Android app repo from Github
  2. Open project in Android Studio
  3. Put "google-services.json" file in app folder of this project. This is a Google Services Gradle plugin for enabling Google APIs or Firebase services in your Android application. Learn more about it here. This file can be found pinned to the #tech-android channel on Slack.
  4. Now we need to add some mind maps into the application. There are three main mind maps for Past Medical History, Family History and Physical Exams and several other mind maps for complaints. All complaint mind maps have to be put into a directory called "engines" under the assets folder. Create an "engines" folder in assets directory and put these complaint json files in it.
  • Abdominal Pain.json
  • Back & Neck pain.json
  • Diarrhea.json
  • Fever.json
  • Sick child (under 5years).json

4. Put three json files in assets directory patHist.json, famHist and physExam.json

You can get the demo json files pinned as a zip folder to the #tech-android channel on Slack. The naming of these files is important. For more on this, see the HxGuide section of this documentation.

5. Clean, build and run the project.

Design Paradigm

What is material? https://material.io/guidelines/

Conventions

While developing for the Android application it is important to follow the following conventions with respect to directory structure and naming conventions. Directory contents are organized by function.

Naming Conventions

  • For all package names – small_case_seperate_words_with_underscores
  • For all POJO classes – CamelCase (this includes all models)
  • For Activities – ActivityNameActivity
  • For Presenters – ActivityNamePresenter
  • For Contracts – ActivityNameContract
  • For Services – ServiceNameService
  • For Content Providers – ContentProviderNameProvider
  • For Database Helpers – NameDatabaseHelper
  • For Utilities – NameUtils
  • For Adapters – NameViewTypeAdapter