This is the second post in a series on we went about optimizing a fully functional professional service platform solution using Ionic 2 (Angular 2) for our production mobile app. (First Part)
“We always like to learn something new! We are always looking for the opportunity to learn new technologies as not just a challenge, but to be more productive.”
SherpaDesk is a new startup focused specifically on helping out professional services, especially IT guys. SherpaDesk allows small to medium sized organizations to easily track customer support issues, log billable and non-billable time and monitor project profitability while either at the desk or on their mobile devices. SherpaDesk provides the ease of use and flexibility necessary for organization needing to stay in touch with their customers.
We originally developed the first mobile app using jQuery Mobile. The solution became clunky and slow, essentially making it very difficult to use. Next we thought, let’s try to switch to vanilla JS and Phonegap. This eventually didn’t workout as it became difficult to maintain support across several platforms. We were needing to support iOS, Android and Windows Phone, web app, Chrome extension and even an Apple iWatch.
Having exhausted (and be exhausted) by these methods, Eugene started looking for any SDK, which help him to focus on productivity and functionality of the app, supports the capability of easily supporting multiple platforms and be ready to go right out of the box.
We started explore these options back in December 2015 and at that time Angular2 was just in alpha stage, however looked very promising. Our team is comprised of mostly C# developers, so we liked the idea of its typescript support and component architecture. Still Angular2 was a little too premature solution as there wasn’t really any useful components written yet. To create a fully functional hybrid app, we decided to go with Ionic 2, which is a built on top of Angular 2. This gave us with the best case scenario providing us with a full ecosystem to build exciting hybrid apps.
Ionic 2 offers components and templates just as native developers have access. We used a whole list of Ionic’s 2 functions including side menus, navigation, list views, popups, action sheet, modals, slide box, form inputs, loading, platform, and written some custom components (i.e. select list, tickets list). The complete redesign and refactoring of the app was completed in just two months! Winning!
Results of releasing the new production app have been amazing:
- Loading time improved 1400% (10 sec -> 700 ms)
- Site size decreased 600% (3Mb -> 500 Kb)
- User interaction response speed improved 2000% (2 seconds -> 100ms)
Users love the new design and layout. We have seen engagement with the app significantly increase with each new iteration. We have also seen a lot of lot of discussions asking if there are any apps built on Angular 2 and Ionic 2 SDK capable of production. Our results shows definitively that it is now time to build production apps with Ionic 2.
SherpaDesk offers customer support solutions, time tracking and billing for more than 100K users. Our platform is a complex and integrates with multiple plugins to build it.
For example we used the standard ones that most Cordova developers use, such as SafariViewController/InAppBrowser, StatusBar, and Google Analytics, as well as some non-standard ones, such as AppPreferences for keeping LocalStorage persistence.
We use embedded and minified templates to speed up the loading of pages and reducing flicking in the WebView.
We have always been a hybrid app team because we believe in code sharing for our apps and they help us get code out there as soon as possible. We want to use our skill set to develop high-quality apps. Ionic 2 and Cordova help us do that.
“We think that the best thing about developing hybrid apps is the ability to get to market quickly and then iterate quickly.”
We hear a lot of talk about the need for companies – large and small – to be transparent to their customers as a prerequisite to success. Today’s focus on the customer experience and customer satisfaction suggest that full transparency with your clients creates stronger and more profitable relationships that allow you deliver on your revenue goals. However, what does “being transparent” really mean?
Whether you are tracking your own time or following up to make sure your team is tracking their time correctly, it’s a lot of work. However, when you rely on accurate hours tracking to get paid it has to get done and done right.