Most applications are delivered to users over the web or mobile interfaces today. Users are spread out across geographies and access these from many different browsers and mobile devices, with varying form-factors. In addition, most apps consume third-party APIs to incorporate some functionality, and in turn provide APIs and SDKs for use by other third-party apps. In such an environment, for your apps to be intuitive, fast and responsive needs careful system design and architecture.
At GS Lab, we use a UX design led approach.
GS Lab designers and engineers adhere to current app-development best practices to ensure the best user experience. Most applications use flat design, which makes development faster and simpler. A flat design also speeds up performance by keeping stylesheet elements to a minimum, and eliminating unnecessary graphics for visual effects. In addition, we adopt a responsive design philosophy to ensure your app looks good on desktops, tablets as well as smart-phones with varying screen sizes for their browsers. Beginning with a minimalist mobile-first interface, CSS elements are incorporated for progressively enhanced rich interfaces possible with larger screen sizes and additional interaction like touch and mouse.
Native mobile applications are necessary for developing highly interactive user experiences, and to utilize specific device capabilities not accessible through the browser (ex. GPS, address-book, etc). Here again, we evaluate a pure native strategy vs. a mix of 'HTML5 + native' strategy depending on the level of code reuse required across platforms (HTML5) and device-specific interactivity (native).
It is imperative for most modern applications to be delivered over content delivery networks (CDN) to provide good performance to their users located all across the globe. We have extensive expertise working with leading CDNs like Akamai and Amazon Cloudfront. Judicious use of browser-caching and CDN provide significant speedup for end users of your application. We also adopt systematic versioning of all resource URLs to ensure your users are not stuck with stale data as your product evolves rapidly rendering cached CDN URLs obsolete during releases.
Almost all current applications use third-party APIs heavily for analytics, visual aesthetics, logging, social sharing and other peripheral functionality. While the integration is important, a failure of any third-party service should not render your application unusable. We adopt graceful degradation elements in the design to ensure your users continue to get pages and screens quickly, without experiencing application hangs in case of such failures. A development discipline of separating out third-party functionality from core logic, proper sequencing of AJAX requests with timeouts and callbacks makes this possible.