iFactr

One Framework. Infinite Flexibility.

Most cross-platform frameworks are made possible by enforcing a least common denominator approach. This makes it difficult, if not impossible, for many enterprise applications to be developed in that manner and still successfully meet the business requirements and provide a great user experience. That forces developers and organizations to make sacrifices and compromises. But not with iFactr.

With iFactr, developers can build 100% cross-platform applications, delivered as native, web, and/or hybrid apps, that also have the flexibility to add to the shared cross-platform code with platform-specific code that has total access to the entire set of native APIs available on that particular device or platform.

Deliver Web, Native, and Hybrid Apps from a Single .NET Code Base

With iFactr, you don’t have to choose between native, web, or hybrid architectures as you can have them all. Your apps can either be delivered as native apps that take advantage of platform-specific native controls and APIs, web apps using HTML5 accessible through the browser, or hybrid apps that provide a combination of native and web.

Execute Business Logic Natively on the Device or Remotely on the Server

This architecture also allows developers to choose whether business logic is compiled natively to each specific platform and executes natively on the local device, or if the logic is compiled on the server and executes remotely. In either case, the UI can also be delivered either through native UI controls or through HTML5/Hybrid design.

Develop Cross-Platform Apps with Platform-Specific Optimizations

With iFactr, cross-platform development is not an all-or-nothing proposition. You have the ability to develop an app for multiple platforms with a single code base, but if you need to use platform-specific APIs, reuse a third-party SDK, integrate with hardware, or optimize the user experience for a particular device or OS, you have the ability to also write platform-specific code.


With iFactr, you have the flexibility to create your user interface with the abstract iFactr UI that. Otherwise, you can create your UI, or parts of your UI, using platform-specific native user interface components like those provided by Apple’s CocoaTouch APIs for iOS via Xamarin’s MonoTouch, Google’s Android APIs via Xamarin’s Mono for Android, or Microsoft’s Windows Phone or Windows 8 APIs. You also have the flexibility to create parts of your app using cross-platform HTML5 frameworks like Sencha Touch or JQuery Mobile. This flexibility allows developers to create some screens using iFactr’s UI abstraction, but where there is a need for more control or platform-specific user experience optimizations, developers can create other screens using platform-specific native APIs or cross-platform HTML5 frameworks.

As for data integration and synchronization for offline function, there is also significant flexibility. With the iFactr Data stack, you get an easy-to-use strongly-typed LINQ-to-Objects data provider that provides cacheing and queuing for disconnected transactional integrity with any standards-based RESTful web service using XML or JSON. That allows organizations to get enterprise-grade data synchronization without having to install any proprietary middleware using just their existing web services infrastructure. But for those organizations that don’t have existing web services, iFactr Server provides an integration back-end in-the-cloud, on-premise, or with a physical appliance. Additionally, iFactr Data supports integration with Microsoft Windows Azure Mobile Services as well as SAP’s Sybase Unwired Platform.

Abstract Application Model

A powerful toolbox of controls to enable sharing of your business logic and data access code across platforms. You write once and deploy to whichever platforms you choose. URI-based routing and navigation brings the flexibility to support complex workflows and deployment to the native device, the web, or anywhere in between.

Business Logic

Shared Business Logic

Data Access

Shared Data Access

URI Based Navigation and Workflow

Platform Specific Deployment

Custom URI Schemes/Deep Linking

Abstract Utility Interfaces

The iFactr Abstract Utility Interfaces give you access to all the functions you need to secure and deploy your applications, without the need to learn the details of every platform. Things like device storage, encryption, logging, network access, and analytics are all available from your shared application code. So as new devices enter the market — and your environment — your applications just work. We worry about the new platform details so you don’t have to.

Local Storage

Local Storage

Multi Threading

Multi Threading

Application Configuration

Application Configuration

User Settings

User Settings

Application Logging

Application Logging

Session Settings

Session Settings

Data Serialization

Data Serialization

Network Access

Network Access

Application Analytics

Application Analytics

iFactr Data Client

Data Synchronization

Data Synchronization

Data Caching

Data Caching

Transaction Queuing

Transaction Queuing

Disconnected

Full Disconnected Support

iFactr Data Server

Reflection Based API

Reflection Based API

HTML5 Cache Manifest

HTML 5 Cache Manifest

Hosting Options

Hosting Options

Cloud  |  On-Site  |  Appliance

The iFactr Cache and Queue manage all interactions with data services on the server. Retrieval requests are handled by the Cache, including durable persistence, resource pre-fetch, and the refresh of stale objects. Transaction requests are managed by the Queue, including connection management, requests for execution, and transaction conflict resolution.
The server is the source of truth. Any item in the cache will reflect a valid state, as available from the server at the time of the request. The client application can request a refresh, but cannot directly modify the Cache. Any new data, or changes to an item on the client is sent to the server for processing before the Cache will be refreshed with updated information.

Available Features by Platform

In order for iFactr to have all of the capabilities and flexibility that it does, there is a lot that goes on under the hood. This table outlines some of the high-level features and their corresponding availability by platform. The platform-specific APIs and integrations describe code that must target a single platform, while the abstract UI elements, form fields, and integrations describe code that can be shared across multiple platforms and delivery architectures.

Platform-Specific UI APIs
Native UI Support
HTML5 Support
Apple CocoaTouch APIs
Google Android APIs
Microsoft Windows Phone SDK
Microsoft WPF and Silverlight
Microsoft Windows 8 SDK
Abstract UI Element API
Application Menus
Searchable Lists
Panels & Blocks
Icons & Images
Navigation Tabs
Buttons
Styling
Advanced Theming
Tablet Form Factor
Form Fields
Date Picker
Text Fields
Select Lists
On/Off Switch
Composite Forms
Data Validation
Platform Specific Integration
Accelerometer
Audio/Video Record & Playback
Barcode Scanning
Camera
Compass
Contacts
Geolocation
Magnetic Strip
Abstract Integration Interface
Accelerometer
Audio/Video Record & Playback
Barcode Scanning
Camera
Compass
Contacts
Geolocation
Magnetic Strip
Data Synchronization
Offline Data Access
Disconnected Transactions
RESTful Web Services
iFactr Data Server
Azure Mobile Services
Sybase Unwired Platform