Experience with the hybrid application

Android hybrid
Photo by Balázs Kétyi on Unsplash

Recently we developed an IOS app with the hybrid application approach. We choose the hybrid approach to use our existing web coding skills. The biggest advantage of a hybrid application is that it can convert to different platforms without redoing the code. For example, we can port the code of the IOS app to an Android app. 

The frontend is built upon ionic Angular JS. As everybody knows, Angular is a Javascript framework for maintaining an MVC coding structure to the project. The ionic framework has Angular JS and Cordova support.

The back-end for our app is built with the PHP Codeigniter framework. We added forms to input data to the MySQL database. We also created a web service in Codeigniter to handle the dataflow between the app and the database. 

Error Reporting

Smartphone developers have to deal with a number of errors. Most of these errors are from various devices that are running the app. An error reporting mechanism can give us more feedback into the working of the app like which page encountered the error and what caused the error. We implemented the error reporting with the help of stacktrace.js. It is an excellent library that reports errors at its core level.

In-app purchase issue

We didn’t find any suitable in-app purchase plugin available in Cordova. So we had to add our own Objective C  class in the project that implements all the in-app purchase functionalities. Cordova Javascript code was to execute it for the in-app purchase.  

Submission Issues

We faced multiple problems from the App store during our submission. One was about the App icon not available for different resolutions. The final rejection was about in-app purchase restoring when installing on a new device. 

Overall, our hybrid application development was very exciting and challenging. But for our next project, we chose the native approach because the project demanded more hardware support.

Our Experience With Native Android Application Development

teamwork coding

Photo by Mimi Thian on Unsplash

Recently we had a project to be developed in Android to mimic an IOS app. As we had expertise in both native and hybrid application development, it was a big question of the approach suitable for the current project. We first decided to go with the hybrid approach. But later we decided to go with the native approach considering its benefits. Native app development has the significant advantage of being able to easily access and utilize the built-in capabilities of the device like Camera, Addressbook, and GPS. So the user experience with the app will be superior along with faster performance.

 

A Native Android app development requires good knowledge in Java coding.

Objective

The purpose of the app was to make the Doctor-Patient consultation easy. There were two apps to develop, one app for the doctors and one app for the patients. We were provided with API to get the data shared between Android and iOS apps.

Challenges

For getting data from the API, we decided to use a REST client which is better than writing our own code. Using such a library reduces the coding time and improves the performance of the app. We evaluated Volley and Retrofit for that purpose. After considering various factors we decided to use retrofit REST Client.

One problem we faced was getting push notification delivered to the app. The doctor should get a notification when a patient requests a consultation. We found firebase is the best option to use. Integration was easy by adding the library reference to gradle and coding was easy as expected.

For video chat feature we used OpenTok platform which iOS app was using. Chat with the single user was easy but adding multiple users to the chat was an issue. We resolved it quickly by contacting the OpenTok support team.

Another issue we faced was regarding the image size. The profile image was taking more time to render. We used the Picasso library to improve performance. Picasso handled images, while also taking care of caching and keeping a low memory impact when doing image manipulations.

Smartphone Application Development Using Phonegap

If you are looking for a full fledged framework to create Smartphone Apps in a very short time, Phonegap is the answer. This intuitive framework that could turn a seasoned web developer to an app developer by harnessing their existing web development knowledge. It makes development effort a lot easier  by drastically reducing the development time and cost. It’s the best development approach as far as developing an app that compliments a web site or web application.

 

Recently Phonegap emerged as a powerful framework that brings lot of power to the hands of developers to build powerful apps in a comparatively less time than building device native apps.

 

How does it work?

The Phonegap framework will act as a wrapper that translates the device native commands into a single Javascript file that can be easily linked to a HTML5 file to invoke from your app. Yes, the phonegap features a number of APIs that makes it really easy for one to implement device features into an app.  To cite a basic example, the contacts stored in your device can be managed from your app using the corresponding API. Likewise, the geo-location feature enables you to integrate a full fledged map into your app.

Multi-Platform Deployment

Not yet convinced about using Phonegap for your next smartphone app? Let’s consider the biggest advantage of using Phonegap. It lets you to deploy your app simultaneously targeting multiple platforms that includes Apple, Android,Windows, Blackberry devices. Since the core remains web, it is easy to manage and release future versions.

Building User Interface

You can use Jquery mobile, which is a web framework to create pages in conformance with the smartphone app specification. Jquery mobile can handle different transition effects that are demanded by the app using CSS3 transitions. A Jquery mobile page can be a single page for the whole application or multiple pages loaded into the main interface. This framework lets the app to load HTML5 loaded faster inside the app applying different transition effects as chosen by the programmer.

To conclude, the strategy is to go for Phonegap if you are developing an app for a web site or web application. But if you are looking at a more dynamic development such as required for games, I recommend using the native coding that offers greater performance. There are large number of applications built with this amazing framework. You can browse these apps here.