Useful libraries for Android UI development

Posted on Updated on

Hi All..Here I would like to share some  important libraries round the corner that are far well useful for the application development. The following are few of them listed, but unfortunately I couldn’t sort it in a proper order. Anyways I will be making it more informative till then have a look

  • Universal image Loader: I placed this library on the top because this one has helped me lot and moreover the configuration is quite easy and additionally with less or in fact causing no app crash. This library could be useful while loading images in listview or gridview from a URL. Here’s the project website https://github.com/nostra13/Android-Universal-Image-Loader
  • Android amazing list-view: This library is used to create list-view with section headers. Android doesn’t have support for section headers in list-view. Hope this would be more useful while creating list-view with section headers in Android. Additionally item pagination is also available. More info https://code.google.com/p/android-amazing-listview/
  • Android wheel: Are you bored of using the standalone date picker in android but love to use date or time picker similar to iphone?? Here ends your search! Use this simple library to create pickers similar to Iphone. More information: https://code.google.com/p/android-wheel/
  • Actionbar-Sherlock: Create actionbar in all versions of android. Actionbars are available from API level 11 onwards. this library would be useful for creating action bar in apps with API level <11. For more info: https://github.com/JakeWharton/ActionBarSherlock

This is for the time being more will be updated soon. Keep visiting..!!

Service- Does it serves as a background thread?

Posted on Updated on

Services are one of the important application components in Android that helps to execute long running operations in background. In fact what I thought was, Services would execute as a background thread without interrupting the main thread. But soon I found that my assumption was wrong, in fact Service also run in the main thread of the application  where the UI operations occur. Therefore, if we perform a long task in onStartCommand() method, it will block the main thread the end result is, unresponsive application . So to avoid the problem, you have to execute the complex task into a separate thread. this can be achieved with the help of

  • Asynctask
  • Declaring seperate Thread

Additionally there two memory management techniques as well. Declaring the return statement in onStartCommand() method.

START_STICKY: Notifies the OS to recreate the service after it has enough memory and call onStartCommand() again with a null intent.

START_NOT_STICKY: Notifies the OS  not to recreating the service again.

Statistics- Developer Console

Image Posted on

Untitled

2012 in review

Posted on

The WordPress.com stats helper monkeys prepared a 2012 annual report for this blog.

Here’s an excerpt:

600 people reached the top of Mt. Everest in 2012. This blog got about 7,100 views in 2012. If every person who reached the top of Mt. Everest viewed this blog, it would have taken 12 years to get that many views.

Click here to see the complete report.

Google Play Developer merchants in India

Posted on

Recently android developers in India has got something to celebrate, Google has added support for setting up merchant account in India so that developers can upload paid app to play store now onward. No need to setup Paypal or in app purchases to sell your apps. Simple follow the steps given in the Google Merchant website. Here are the links that will lead you to the same

www.google.com/merchants/

https://support.google.com/googleplay/android-developer/?hl=en#topic=15867

Threat to mobile developers and server side programmers

Posted on Updated on

Well, its year 2012 we all know that technology has no limits especially in the field of IT. We can see innovations emerging from every nook and corner. In the case of IT the programming world has expanded like anything  where we can find new programming languages being developed for every single piece of software or for large systems. Anyways today I would like to share some interesting stuff that may pose threat to mobile developers and server side programmers. First I would discuss about the threat that mobile developers gonna to face in future.

  • In fact I would rather say mobile developers are the one who is gonna to get a hard kick on their back. Nowadays there are many cross platform SDK’s available online. The benefit of using cross platform SDK’s are many. One of the advantage is that the code can be executed on different platforms such as iOS, Android, Blackberry, Windows mobile etc. Another advantage is that the developer need not to know indepth of mobile programming. Apart from these advantages there are disadvantages as well. The apps created using cross platform SDK are poor in performance. Say for example the touch events, scrolling etc. They couldn’t directly access the core hardware layers of the device. In short cross platform SDKs are more focused for web developers rather than mobile developers. Such SDK’s are not using any native functionality provided by the OS vendors. Rather they use Javascript, HTML5, JQuery for the development. Mobile development knowledge is only required for integrating the components. Some of the popular cross platform SDK’s are PhoneGap, Titanuim, Sencha Touch etc. These are only few examples you could find many other on web. I am rather confused why people prefer cross platform SDKs when you could get fully function native SDK from their respective developers. Lets see what happens next.
  • Ok lets dive  into server side programming and see whats gonna to hamper their future. First of all let me say I am not a server side programmer and I doubt whatever things that I am gonna to say is right or wrong. Yes, lets continue. Rrecently I came across a SDK known as “Parser”. For more info https://parse.com/. I am not elongating much, in short the SDK allows our application data to be stored on cloud rather than on servers. This SDK is meant for mobile developers who need not to know the server side programming such as PHP, JQuery whatever.  Knowledge in mobile development is mandatory. You have complete control over your application data. Only thing you have is an account in parse. It supports mobile OSes such as Android,iOS  and Windows. The SDK has got a very good documentation where you can get started with your server side coding for your app.  Maybe it might have disadvantages as well.

END NOTE:

Whatever cross platform SDKs or ready made clouds are available still the native technologies on which the systems are built are more suitable at any situations.

Iphone development from the view of an Android Developer

Posted on Updated on

Well, it’s been long that I have published posts in here. Things happen when people are engaged in other work or maybe not having time to manage things or being lazy all time whatever. Ok anyways this time I have come up with an interesting topic which may give some idea on how iphone programming is similar to android.  

First of all let’s start with the application structure of both the platforms

 (Iphone Project Files )                                                                                                                                             (Android Project Files)

When you first create an iphone project in XCODE the following default directories are created

  • Classes: Contains the class files required for the project (Same as src folder in android). The class files are of three types
    • .h file: Header file
    • .m file: Objective-C source file
    • .xib file: Interface Builder file (Same as the XML layout file found in the res->layout folder in android project)
    • Other Sources: Contains the main file required for the project. The app starts by executing the main file.
    • Resources: Contains the resources required for the project such as Image, Sound, Video etc (Same as the res and asset folder in android).
    • Frameworks: Contains the package required for the project (Same as lib file in android)
    • Products: Contains the final compiled app ending with extension .app whereas for android the final product name ends with .apk extension(Same as the apk file generated in bin folder of android project)

Android project contains a file named “AndroidManifest.xml” which forms the skeleton of an android app. It contains information about the SDK version, permissions, Class names, app version etc. In an iphone app there is no such file named manifest. Instead all the above said parameters are defined in a neatly but complicated user interface known as BUILD SETTINGS.

 

Now let’s discuss about the application life cycle in both the platforms because life cycle methods defines how the application should behave according to various conditions. In iphone project two files are created along with the class files known as ClassnameAppDelegate.h and the corresponding counterpart .m file. The app delegate has two roles in here, it defines the various lifecycle of an app and also acts as the Application object class same how we declare variables and getter/setter methods in android application class. The various lifecycle methods defined in iphone appdelegate class are

•             – (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

•             – (void)applicationWillResignActive:(UIApplication *)application : Same as onRestart() in android

•             – (void)applicationDidEnterBackground:(UIApplication *)application: Same as onPause() in android

•             – (void)applicationWillEnterForeground:(UIApplication *)application: Same as onResume() in android

•             – (void)applicationDidBecomeActive:(UIApplication *)application: Same as onStart() in android

•             – (void)applicationWillTerminate:(UIApplication *)application: Same as onDestroy() in android

Other similarities as of development scenario. Both the OSes have excellent IDEs and SDKs for development with rich in features and the appropriate emulators and simulators. When the variable declaration and coding style comes both the programming languages differs a lot. Objective-C is actually a highly customized C programming language. In fact apple might have developed such a customized language so that it won’t hamper the smooth functioning of iphone nor to cause any memory overflow or CPU load.  Now in the case of declaring variables and methods iphone uses datatypes declared in Foundation class (jus google out regarding Foundation class too lazy to explain thats why J ). For example for declaring a String variable we use “NSString *variable;

Now defining a method the syntax in Java is “functionName(String  value);” but as of Objective-C the syntax is [self functionName:NSString *value];

Now regarding access specifiers. In java we use private, public and protected. In objective-C we use the same notations except for @ symbol as prefix i.e, @public, @private and @protected.

If we say about exception handling Objective-C applies the same syntax as that of java. i.e,

@try
{
//some code
}
@catch
{
//catch block
}
@finally
{
//finally exececute some code
}

Another similarity is the use of “this” pointer. In Objective-C the “this” pointer is declared as “self” and every overriden methods in java are defined in delegates in objective-c. Say for example if you have ListView in android and the ListView will have set of predefined overridden methods similarly in the case of iphone say for example the overridden methods for a Tableview are defined in their corresponding delegates.

One more important factor to be considered while programming in iphone. Iphone doesn’t have automatic garbage collection technique. So this means whatever variable you have declared should be released after use otherwise beware of MEMORY OVERFLOW.

Hope my little briefing might have helped you in understanding the similarities and differences in both the platforms in some way or the other. So keeping visiting my blog  for more updates. Happy coding!!