Vinsol Ranked Among The Top iOS & Android App Development Companies In 2019

$200 Billion. That’s the number that mobile app economy is poised to register globally in 2021. From $50 Billion in 2012, various forms of monetization models in the smartphone industry have contributed to an immense surge in the ecosystem of consumers, enigmatic product innovations, and the profession of app development itself.

Read more


Building your first app - Should it be on iOS or Android

Whether you have a great idea to serve the general population or a quirky resolution to a problem that a particular set of audience faces, making a mobile app has become a necessity for a number of businesses.

Smartphones enable us to access unlimited information, make connections, and use the internet on-the-go to work on complex production tasks. Some of us would argue that the global smartphone market is oversaturated, but we believe in facts that prove this otherwise. It is because a lot of unimaginable ways are being invented for ease of doing business and mobile apps have a huge potential in the future to make our lives better.

Read more


Communication patterns for application components

Activities, services, fragments, helper classes etc. are main components of Android applications but its tricky to establish communication between these components. It’s tricky when one cares about writing reusable code – loosely coupled, plug-n-play-able. The goal here is to avoid tight coupling.

Tight coupling - Components keep references of each other and call methods on them directly. In the code below, we are keeping a reference of MagazineActivity inside MenuFragment. So, MenuFragment is tightly coupled with MagazineActivity i.e., it cannot function without MagazineActivity.

Read more


Fragment view state retention: A dirty solution

This is the last part of this 6 part series about Fragment Oriented Architecture in Android applications. In the previous post I talked about managing sessions in fragment oriented application. In this post I am going to talk about retaining view hierarchy of a Fragment after removing it from container and then coming back to it by popping the backstack.

(Sample application's source code and README)

When a fragment gets replaced by another fragment and the transaction is added to back stack, the expectation after a popBackStack() is to return to the previous fragment with its UI state intact. Activity backstack takes care of this expectation quite cleanly until a low-memory situation occurs. But in case of fragments, this isn't the default behaviour. In a vanilla implementation, the replaced fragment's view-hierarchy would get recreated upon returning back to it. Reason is that during a replace operation, all the destructive life-cycle methods get called till onDestroyView(), which wipes out the view-hierarcy. Upon returning back, all the constructive lifecycle methods right from onCreateView() get called, thus, recreating the view-hierarchy totally afresh. Reason for this flow is to keep 'Fragments' memory friendly. Without the view-hierarchy, a fragment is just a java object with a bunch of instance variables.

Read more


Session Management

This is the fifth part of a 6 posts series on Fragment oriented application architecture. In the previous post I talked about efficiently handling back button press inside fragment. In this part I am going to talk about session management in Fragment oriented application, by explaining integration of Facebook SDK.

(Sample application's source code and README)

In a fragment oriented application, we can conveniently manage all session related code in the activity and all its fragments would utilise it. Facebook SDK is quite in sync with this approach. Implementation of Facebook session is closely bound to an activity. And then this session is accessible throughout the application. As has been discussed before, if an application requires to sign in from different portions of it, it will be way more convenient to have those portions as parts of the same activity. So that the authentication code need not be duplicated.

Read more