I can see my home screen, but when I tap on it nothing happens. Why?

There could be a couple reasons this is occurring:

  • You have enabled Global Instructions, but haven’t designed the canvas for those. When the Global Instructions canvases are enabled but haven’t been designed, they’ll appear transparent. To check if you have Global Instructions enabled, go into your app in the Platform, select “App Stores” on the left, and select “App Settings”. Under the “Basic Info” section, you can see whether you’ve enabled Global Instructions (check box). If they are enabled, you’ll want to go into “App Blocks” > Global Instructions > Phone Canvases to design them.
  • You’ve added buttons to the home canvas but haven’t navigated them to other app blocks. To check this, go into your app in the platform, and go to the home canvas. Click on the buttons. To the right of the canvas section, under properties, you’ll see “Navigation”, and a drop-down showing which app block that button is navigating to. If it says “None”, you’ll want to select an app block from the drop-down, then send yourself a new test build to try again.


There are specific colors on our company website that I want to be able to use in my app. How can I get those?

Go into your app in the Platform, and select “Libraries” from the menu on the left-hand side, then select “Color Palette”. You can enter a website into the Web Address field, and click “Get Colors”. Once the Available Colors appear, you can drag and drop the ones you want to use into the Application Colors spots, and click save. When you go to design your phone canvas and go to select colors, you will see the default colors from the Platform on the bottom, and the colors you selected along the top. You may go into Libraries > Color Palette any time to add/change the colors.


I have downloaded a test app to my iPhone 5 (or higher), but I noticed that there are black bars at the top and bottom of the screen. Why am I seeing this?

The screen dimensions for iPhone 4 and iPhone 5 (or higher) are different (640x960 and 640x1136, respectively). Therefore, when uploading your splash (loading) images, you’ll want to make sure to upload two versions of the images – one for each size. If you have not uploaded splash images, it will default to the smaller size.


Can I put my logo in the Navigation Bar across the top?

No, you cannot. However, if you would like your logo across the top, you can choose a navigation method without the Navigation Bar, and create a banner ad with your organization’s name and logo to go across the top of the screen.


I changed the spelling of a word on the Home Screen; do I have to create a new build of the app?

Yes, any change to the home screen (including changing spelling, images, or adding navigation) requires a new build to reflect the changes.


Why is data mapping before designing the canvas important?

Data Mapping is an important step during the creation of many AppBlocks.  Primarily, this step will allow you to map each data field to a "field type" and/or "input type" (defined below).  If any changes are made to the data mapping (i.e. you change a field from “Long Text” to “Long Text with HTML”, you’ll need to remove that field from the canvas and then add it back. The data mapping step is important for several other reasons as well.

  1. Determine how data is displayed in the app.  e. Is it text or an image?  Does the text need to wrap?
  2. Determine the features that will be available for the page. e. If phone number, then it should be tap-to-call.
  3. Determine how each field is shared for the Social Sharing feature. e. Share the "title" field to Facebook as "description".


How do I sent push notifications to all my users?

You’ll first need to make sure you have push notification credentials set up; this must be done before we can launch/build your app for distribution. For iOS, this is created in your Apple Developer account; for Android, this is obtained through the Google Cloud Messaging Platform. Push notifications can only be sent in live apps, not test apps.

To send push notifications, go into your app in the Platform, and under AppBlocks on the lefthand side, click Push Notifications. Click “Add New Alert”. On this screen, you can enter the message you’d like to send, and select which date and time you would like to send it. You can also select “Now” to push the notification immediately. You can decide whether you want badges to show (on iPhone, these are the small red circles indicating the user has a notification). When the user first launches your app, they can decide whether they want to receive push notifications from your app; only those that have elected to receive notifications will receive the push notifications.

What is the difference between local alerts and push notifications?

Local alerts are specific to the individual user, and are sent based on a pre-determined date set by the user (for example, weekly alerts based on pregnancy milestones, determined by the user’s due date).  As each user’s due date will be different, each user will receive alerts at different times.

Push notifications are sent to all app users on the same date and time. For example, an internal employee app may use push notifications to remind all employees of upcoming company meetings or events.

Can I make it so users can dial 911 from the app?

You can, but we don’t recommend it for a few reasons:

  1. It’s not efficient; if a user needs to call 911, they aren’t going to take time to open a separate app
  2. If the user is in a bad coverage area and the call to 911 through the app fails, we don’t want to be held responsible for any repercussions from not being able to dial out
  3. If the app is opened on a tablet, we don’t want the user to think they can dial 911 from the tablet if needed; tablets cannot make phone calls


Can I use a Flyout Menu and Tabs at the same time for Navigation?

No, you can only use one option. However, you can create a similar effect in a couple ways:

  1. Use a flyout menu, and then create buttons on the homescreen to function similar to tabs. (keep in mind that the buttons will disappear once the user navigates away from the home page, unless you place the buttons again on individual pages)
  2. Use tabs, and have a “Menu” tab that then opens to a Menu – List appblock, from which you can navigate to other parts of the app (keep in mind that you cannot navigate back to the Home Screen in a Menu- List like you can with a flyout menu)

When using Tabs as navigation, is there a limit to how many tabs I can have?
Yes, 5 tabs is the maximum amount you are allowed. The first tab will default to navigate to the home screen.

I created tabs, but they’re not working. Why is that?

This could happen for a couple reasons:

  1. Make sure you’ve navigated your tab to an appblock in the app. If the tab is not navigated to anything, nothing will happen when you tap it.
  2. Make sure you’ve selected an icon for the tab; there must be an icon on the tab for it to work.

Can I upload my own icons to put on the tabs?

No, you must use the ones we have available in the Platform.

App Blocks

FLEX – List of Locations

I want our app to show users all of our locations, including the user’s proximity to each location. How do I do this?

Begin by creating a CSV file in Excel, containing all your locations and important information (phone number, address, office hours, etc.). Include one column for Latitude, and one for Longitude. To find the latitude and longitude for each location, go to a website, such as latlong.net, and enter each address, then add the information to your CSV.

In your app in the Platform, select “Add New AppBlock” > Flex AppBlock, and select List Type of “List of Locations”. Upload your CSV. Once the CSV is uploaded, you should be able to go into Data Mapping in the AppBlock and see all of the information you pulled in, including Proximity (Latitude & Longitude will not show up in Data Mapping, however, they factor into Proximity, which will be available when you design the canvases). On the canvas, the Proximity will show as 1.00 miles by default; on the user’s phone, the app will use the phone’s location to give the exact proximity. Design List and Detail canvases as needed.


We have dozens of locations, but only want the app to show users the locations most relevant to them; how can we do this?

When you create your Flex – List of Locations, under Global Configuration, you can set a limit for how many results the user will see, or set a radius limit (i.e. user will only see locations within 10 miles of their current location). Make sure you design the Empty List Canvas, in case there are no locations within the radius of the user. You can simply put a message that says, for example, “There are no locations within X miles of you.”.


FLEX – Basic

I want to be able to organize the items in my Flex- Basic list into categories; how do I do this?

You can create categories by using Folders. To do this, in the configuration of your Flex – Basic AppBlock, select that you would like to organize your items into folders. Click on Libraries > Folders. Create one folder for all your categories (for example, Departments). Within that folder, add individual folders for each individual category (for example, Cardiology, Surgery, Oncology). In App Office, you can now assign a specific folder to each item.

To create these categories in a CSV file, you’ll create a column called Classifications (case sensitive, must be capital C and the rest lower case). In that column, next to each entry, you’ll enter the name of the parent folder, a ~ symbol, and the individual folder you want that entry to show up under. For example, if you have your physicians organized by department, an entry in the Classifications column might look like Departments~Cardiology.

When you go to the Canvases, you will see a Folders canvas; you can design this canvas similar to they way you design the List View. When the user navigates to this appblock, they will see the folder view first, and then can decide which category they want to click into.

I want users to be able to search by name or keywords in the Directory appblock. How can I do this?

Make sure that you assign keywords to your data via the AppOffice or through .csv upload utilizing a "Keywords" column to make the data searchable. If you want users to be able to search by name, enter the name elements into the Keywords column, next to the corresponding entry, separated by a pipe symbol (i.e. to be able to search for Jane Doe, you would enter “Jane|Doe” into the Keywords column). If Jane Doe is, for example, an OB/GYN, you can add keywords, separated by pipe symbols, so she will show up when users search those words as well (i.e. “OB/GYN|pregnancy”).

Can I make a list view shareable?

No, you can only share detail views.

I want my folders to show up in alphabetical order. How do I organize them this way?

In the Folders screen in the Platform, you can drag and drop your folders to arrange their order. Simply click and hold on the folder you want to move, and drag it until a blue line appears in the spot you want to move it to. If you’re doing a Dynamic Build, you will not need to create a new build to see this change reflected. Simply refresh the app, and you’ll see the changes.

FLEX – Virtual Photo Booth

What’s the difference between the List – Photo Gallery appblock, and the Flex – Virtual Photo Booth?

Photos taken and uploaded to the app using the Photo Gallery will be sent to a central server, and will be visible to all users of the app. With this option, you can require image approval by an admin before photos go live in the app, to reduce chances of inappropriate photos being posted. An example for using this option might be an internal employee app, where employees can share photos from company events with everyone using the app. The Photo Gallery also has the capability for users to view photos by swiping left and right.

The Flex- Virtual Photo Booth functions similarly, however with a few other options. You have the option to keep photos on a user’s phone, so they are only visible to that user; this could be a great option for a pregnancy app, where an expectant mother can take photos of her growing baby bump. The Virtual Photo Booth also gives you the ability to add photo overlays.


Native Plug-In (NPI)

 I created a copy of an app containing an NPI, but the NPI isn’t working. Why is this?

When you build an app from a blueprint (or copy another app) that contains an NPI (Native Plug-In), the NPI code does not copy over. You’ll have to go into the original app and download the iOS and Android codes, as well as copy the configuration details, then go into the NPI appblock in your new app and attach the codes and copy & paste the configuration details. You’ll have to create a new test build for the changes to take effect in the app.

Local Applet

The data from the contraction timer and the diaper tracker is getting crossed in the app; why is that?

When you have both applets in the same app, you need to change the Data Key so the information is being stored in different places. To do this, go into the Configuration for the applet in the Platform, and click on the Customize tab. In the Data Key field (at the bottom), you’ll need to edit the Data Key slightly. It defaults to saying “DEFAULT”, so you can change one to “DEFAULT2”, or customize it however you wish.


 I’ve sent myself a test build of my app, but can’t install it on my phone. Why?

There are a couple things you’ll want to check before you can install a test build on your phone.

  • Make sure you’ve uninstalled all previous test builds from your phone. Installing test builds on top of one another can affect the functionality.
  • When you first download a test build on iOS, you may get an “Untrusted Developer” message. Go to your Settings > General > Device Management, and select “Trust MobileSmith, Inc.”. The app should then install.
  • On Android, after you click “Download”, you’ll need to go into the Downloads folder on your phone, select the app, and click “Install”. The app should then install.

Under what circumstances do I need to submit a new build to see changes I’ve made take effect?

The following changes will require a new test build, or an update to the app stores, to take effect:

  • Any changes to the Home Canvas
  • Changes to Registration Page
  • Adding a new functionality, to an interior page, by pointing a button to an AppBlock that did not previously exist in the app
  • Updating the NPI AppBlock
  • Updating an AppBlock’s display name
  • Updating the navigation bar
  • Updating the content for a “user creates content” list AppBlock
  • Any changes other than content when built in Static Mode.

What is the difference between a Static Build and a Dynamic Build?

A Dynamic Build allows you to see changes made to your app (aside from those changes listed above, which always require a new build), in real-time. Instead of creating a new build of the app, you simply have to close out of the app and go back in to see the changes.

A Static Build requires a new build every time you make a change, aside from editing content. For example, if you rearrange a canvas in Static mode, you will have to create a new build to see the changes reflected in the app.

What is the difference between a distribution build and an enterprise build?

A distribution build is a build that will be available publicly in the app stores. An enterprise build is for internal apps which will not be available for public download. iOS requires separate certificates for enterprise builds and distribution builds.


How often do I have to update certificates with iOS?

You have to update your provisioning profiles (there is an individual one for each app) annually, based on the date you created the app. The global certificate needs to be updated whenever you renew your account.



Can I collect patients’ PHI (personal health information) in my app?

You can, however, MobileSmith’s policy is that we do not want to have PHI stored on our servers. PHI is any bit of information that would allow someone to pinpoint a specific person using that information (e-mail address, first AND last name, etc.). If you must collect this type of information, there are a couple ways we can do this:

  • Create an input page with REST calls, so the patient’s information is sent to your servers and not stored on ours
  • If it must be stored on our server, the first step would be to execute a BAA agreement. You can work with your Client Success Representative to determine what will work best for your needs

Why do I need a privacy policy? Can you guys provide one for us to use?

The need for the privacy policy came from Android. Here are 2 articles we found about them that expand a bit on what Android is looking for.



Here are links to privacy policies in a few mobile apps.   The privacy policy needs to address metrics collected, usage data and any personal information shared directly with your organization through the app (registration, form submission to email, photo gallery, data collected in REST calls, etc.).  




Many of our clients simply link to their website privacy policy and that seems to satisfy Android’s requirements.