Search for answers or browse our knowledge base.
Branding the Vantiq iOS Mobile App
0 out of 5 stars
| 5 Stars | 0% | |
| 4 Stars | 0% | |
| 3 Stars | 0% | |
| 2 Stars | 0% | |
| 1 Stars | 0% |
This document provides guidance to a developer interested in customizing or rebranding the Vantiq iOS app. The following sections discuss likely operations necessary to develop a new iOS app based on the Vantiq version with the goal of submitting the new app to the Apple App Store.
Please note: this document assumes the reader is an experienced iOS developer. Additionally, if customizing more than just images, the developer should be comfortable developing in Objective-C.
Fork the Vantiq iOS App Repository
The Vantiq iOS app GitHub repository may be found here. (This is a private repository so you must contact Vantiq in order to obtain access to it.) In order to maintain the ability to track changes in the Vantiq-maintained app version, the developer should fork the repository. There are many sources of information for learning how to keep a forked repository up to date with the original. Here is one summary.
Open Xcode Workspace
The iOS project makes use of several third-party CocoaPods pods for some of its functionality. Consequently, the project uses the Xcode Workspace Vantiq-ios.xcworkspace rather than the Xcode project Vantiq-ios.xcodeproj. The workspace is located in the Vantiq directory of the GitHub repository.
There is an additional workspace, Vantiq-ios plus Watch.xcworkspace, that has hooks for a companion Apple Watch app. This is an older version of the Vantiq app and is not currently in use.
Modify the Project Settings
In order to submit the branded app to the Apple App Store, the developer must modify several settings in the Vantiq-ios target. In the Xcode Project Navigator, navigate to the Vantiq-ios target and select the General tab. Review and modify all appropriate properties (e.g. Display Name, Signing Team, App Icons, Launch Images, etc.).
Replace Vantiq Related Images
The Vantiq app contains a Vantiq logo PNG format image with three scaled sizes for branding purposes. These images are used in the app’s Launch Screen and in at least two more views (Choose Server and Select Namespace). The base image is 150px x 43px (Vantiq-150×43.png) with a transparent background. There are two additional sizes of this image (@2x, @3x) to support Retina displays. These images are found in the Vantiq/Vantiq-ios/Images directory of the GitHub repository.
The easiest way to provide new brand-specific logos is to simply create similarly sized images using the same names as currently exist (i.e. Vantiq-150×43.png, Vantiq-150×[email protected] and Vantiq-150×[email protected]) and replace the files found in the Images directory.
Change Fonts and Colors
There are two files related to overall app font and color use.
Branding.h, found in the Vantiq/Vantiq-ios/Utilities directory, contains the definitions for the two different app Navigation Bar components (background, text and controls) in addition to the list cell background color. This file also contains the names of the bold and regular size fonts used throughout the app. The Vantiq version uses a font imbedded in the app, Source Sans Pro.
Branding.m, found in the same directory as Branding.h, uses the constants found in Branding.h but contains some additional programmatic options such as default font sizes.
Consumer Mode
Consumer Mode is a special type of branding that bypasses the normal Vantiq authentication views by specifying a dedicated Vantiq server URL, namespace and Public Client name. This allows the branded app to display a Public Client which implements self-registration. Once the Public Client has run and the user has authenticated, Consumer Mode also specifies a single dedicated, private Client to be run. No other functionality found in the existing Vantiq mobile app is available.
There is one file related to Consumer Mode, Settings.m, found in the Vantiq/Vantiq-ios/Settings Xcode folder. To enable Consumer Mode, return YES in the isConsumerMode function. To specify the dedicated Vantiq server URL, the namespace that contains the Public and private Client, and the Public and private Client names, alter the return values in the consumerServer, consumerNamespace, consumerPublicClientName and consumerPrivateClientName.
0 out of 5 stars
| 5 Stars | 0% | |
| 4 Stars | 0% | |
| 3 Stars | 0% | |
| 2 Stars | 0% | |
| 1 Stars | 0% |
-
Getting Started
-
- Advanced Collaboration Tutorial
- Analytics Tutorial
- App Component Tutorial
- Application Deployment Tutorial
- Assembly Tutorial
- Autopsy Debugger Tutorial
- Catalogs Tutorial
- Client Builder Tutorial
- Client Component Tutorial
- Collaboration Tutorial
- Conversation Widget Tutorial
- Floor Plan
- GenAI Builder Tutorial
- Source Tutorial
- Stateful Services
- System Modeler Tutorial
- Testing the Debugging Tutorial
- Testing the Introductory Tutorial
- Testing the Source Tutorial
- User and Namespace Administration Tutorial
- Show Remaining Articles ( 5 ) Collapse Articles
-
Product Documentation
-
-
-
- ‘On Assets Loaded’ Event
- ‘On Data Arrived’ Event
- ‘On End’ Event
- ‘On Network Status Changed’ Event
- ‘On Start’ Event
- abort()
- addEventHandler()
- adjustPopupSizeAndPosition()
- Basic Information
- cancelSpeaking()
- children
- clearInterval()
- clearTimeout()
- clearValidationErrors()
- clone()
- closePopup()
- confirmCustom()
- confirmCustomEx()
- copyMatchingData(obj:any):void
- createClientEventDataStream()
- createDataChangedDataStream()
- createOutboundServiceEventDataStream()
- createPagedQueryDataStream()
- createPublishEventDataStream()
- createResourceEventDataStream()
- createResponseObject()
- createSourceEventDataStream()
- createTimedQueryDataStream()
- data
- data
- DataObject
- DataStream
- deleteAll()
- deleteOne()
- deleteOne()
- errorDialog()
- execute()
- execute()
- executePublic()
- executePublic()
- executeStreamed()
- executeStreamed()
- executeStreamedPublic()
- executeStreamedPublic()
- formatMsg()
- generateUUID()
- getCollaborationContext()
- getCurrentPage()
- getCurrentPopup()
- getDataStreamByName()
- getDataStreamByUUID()
- getDeviceId()
- getDeviceName()
- getDocumentAssetLabelList()
- getDocumentAssetList()
- getDocumentUrl()
- getGroupNames()
- getLocation()
- getName()
- getProfileNames()
- getRequestParameters()
- getStateObject()
- getUsername()
- getUserRecord()
- getWidget()
- goToPage()
- Http
- infoDialog()
- initializePropertyToDefaultValue(propertyName:string):void
- initializeToDefaultValues():void
- insert()
- insert()
- instance
- isNetworkActive
- isPaused:boolean
- isPublic
- localeCountryCode
- localeLanguageCode
- localeVariantCode
- logout()
- markupImage()
- modifyClientEvent()
- modifyDataChanged()
- modifyPagedQuery()
- modifyPublishEvent()
- modifyResourceEvent()
- modifyServiceEvent()
- modifySourceEvent()
- modifyTimedQuery()
- name:string
- navBarBackgroundColor
- navBarForegroundColor
- navBarIcon
- navBarIconHeight
- navBarIconWidth
- navBarShowControls
- navBarTitle
- navBarTitleFontFamily
- navBarTitleFontSize
- navBarTitleFontWeight
- overrideLocale
- Page
- patch()
- playAudio()
- playVideo()
- popupPage()
- publish()
- publish()
- publishToServiceEvent()
- query()
- recordAudio()
- recordVideo()
- remove():void
- restart():void
- returnToCallingPage()
- scanBarcode()
- select()
- select()
- selectOne()
- selectOne()
- sendClientEvent()
- sendLocation()
- setInterval()
- setTimeout()
- setVantiqHeaders()
- setVantiqUrlForResource()
- setVantiqUrlForSystemResource()
- showDocument()
- showHttpErrors()
- showMap()
- speakText()
- startBLEScan()
- stopGeofencing()
- takePhoto()
- terminate()
- terminateWithDialog()
- update()
- update()
- uploadDataURL()
- uploadDocument()
- upsert()
- upsert()
- uuid:string
- validate()
- Show Remaining Articles ( 129 ) Collapse Articles
-
-
- Android Post-Installation Instructions
- Authentication Functions
- Database Functions
- Installation Instructions
- iOS Post-Installation Instructions
- Miscellaneous Functions
- Prerequisites
- Procedure Execution Functions
- Publishing Functions
- Sample iOS AppDelegate.m File
- User Creation Functions
- Vantiq Functionality for React Native Apps
-
-
- Accumulate State
- Analytics
- Answer Question
- App Activity Tasks
- App Builder Guide - Introduction
- App Builder Overview
- Assign
- Build and Predict Path
- Cached Enrich
- Chat
- Close Collaboration
- Collaborations in Apps
- Compute Statistics
- Convert Coordinates
- Creating an App
- DBScan
- Delay
- Dependency Management
- Dwell
- Enrich
- Error Handling
- Escalate
- EscalateState
- Establish Collaboration
- Event Redelivery
- Event Stream
- Filter
- GenAI Flow
- Get Collaboration
- Interpret Conversational Language
- Join
- K-Means Cluster
- Limit
- Linear Regression
- Log Stream
- Loop While
- Merge
- Notify
- Optional Imports
- Polynomial Fitter
- Predict Paths By Age
- Procedure
- Process Intent
- PublishToService
- PublishToSource
- PublishToTopic
- Rate
- Recommend
- RecordEvent
- Reliable Apps
- Run TensorFlow Model On Document
- Run TensorFlow Model On Image
- Run TensorFlow Model On Tensors
- Sample
- SaveToType
- Split By Group
- Submit Prompt
- Threshold
- Time Difference
- Track
- Track Motion
- Tracking Progress
- Transformation
- Unwind
- VAIL
- VisionScript
- Window
- Within Tracking Region
- YOLO From Images
- Show Remaining Articles ( 54 ) Collapse Articles
-
-
-
- Broker Service
- Catalog Operations
- Catalog Procedures
- Connect to Catalog
- Create Entry
- Create Entry
- Custom Operations
- Disconnect from Catalog
- Host Catalog
- Integrating Applications With the Catalog
- Managing Catalog
- Managing Event Types
- Publisher Service
- Register
- Remove Entry
- Repair Catalog
- Resolve
- Subscriber Service
- Unhost Catalog
- Unregister
- Utilities
- Show Remaining Articles ( 6 ) Collapse Articles
-
- AMQP Reference Guide
- CHATBOT Reference Guide
- Email Reference Guide
- Enterprise Connectors Reference Guide
- External Source Reference Guide
- Google Cloud Pub/Sub Reference Guide
- KAFKA Reference Guide
- MQTT Reference Guide
- Push Notification Reference Guide
- Remote Reference Guide
- SMS Reference Guide
- Video Reference Guide
-
-
-
Articles
-
- Build Your Own Tools
- Cache Services
- Camel Assemblies
- Client to Component Conversaion
- Discovering Current Session Information
- Dynamic Client Content
- Dynamic Map View Widget
- Filters
- GenAI Builder Tools
- Generative AI Functions (Tools)
- Generative AI with Collaborations
- How-To Video Shorts: Managing AI Conversations
- How-To Videos: AI Design Model Assistant
- How-To Videos: AI Documentation Search
- Managing AI Conversation
- Production Applications Best Practices
- Public Clients
- Security Secrets
- Service Event Handlers
- Sharing Resources
- Streaming AI Output
- Transformations
- Using the Video Sources
- Web-Based APIs
- Show Remaining Articles ( 9 ) Collapse Articles
-
- How To Video Shorts - LLM Playground
- How To Video Shorts: Client Layouts
- How To Video Shorts: AI Tools (Functions)
- How To Video Shorts: Analytics and ComputeStatistics
- How To Video Shorts: Calling Procedures by Properties
- How To Video Shorts: Client CSS
- How To Video Shorts: How to Create a Built-In Source
- How To Video Shorts: Invite Other Users to Your Namespace
- How To Video Shorts: Multi-Modal Example
- How To Video Shorts: SplitByGroup
- How To Video Shorts: The Vantiq API
- How To Video Shorts: The Vantiq IDE
- How To Video Shorts: The Vantiq Version Control System
- How To Video Shorts: Using Generative AI in Applications
- How To Videos - Maintaining AI Conversations in Collaborations