What Software Company Expect from Junior Android Developer ?

Basic Concept of Object Oriented Programming

If you can solve the problem of same type of code repetition in different class using paradigm of object oriented programming, you will be able to write better code. You will learn more than this while developing different nature of project. You need basic understanding of inheritance, abstraction, Encapsulation, Polymorphism.

/**
* Base activity.
*/
public abstract class BaseActivity extends AppCompatActivity {

private Unbinder unbinder;
/**
* abstract method which returns id of layout in the form of R.layout.layout_name.
*
*
@return id of layout in the form of R.layout.layout_name
*/
protected abstract int getLayout();

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(getLayout());
unbinder = ButterKnife.bind(this);
}
    @Override
protected void onDestroy() {
super.onDestroy();
unbinder.unbind();
}
}

Transform into XML

If you can transform PSD into xml layout using LinearLayout, Relative Layout and Frame Layout then it is the continuous learning process of complex design in application development. Most of the cases we use these view groups to build user interface. Sometimes we need customize views and draw ourself.

Simple Us

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.rajesh.movieapplication.MainActivity">

<GridView
android:id="@+id/gridView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
android:columnWidth="130dp"
android:horizontalSpacing="5dp"
android:numColumns="auto_fit"
android:paddingTop="5dp"
android:scrollbarStyle="outsideOverlay"
android:stretchMode="columnWidth"
android:verticalSpacing="5dp" />
</LinearLayout>

Style And Theme

If you can change the theme of application as per design and customize style of single element, you will be able to develop intuitive user interface.

Screen Rotation

It will stop user to uninstall application, if application persist after rotation of screen. As an developer, you can save instance using saved instance state.

activity state saving
activity state restoring

Localizing Resources and Language

Android will run on many devices in many regions. To reach the most users, your application should handle text, audio files, numbers, currency, and graphics in ways appropriate to the locales where your application will be used.

It’s always a good practice to extract UI strings from your app code and keep them in an external file. Android makes this easy with a resources directory in each Android project.

Material Design Guidelines

if you will be able to follow material design guidelines for different element such as floating action button, toolbar, stepper, user will be able to feel the application.

Supporting Tablets and Handsets

We can show different level of information according to screen available. In tablet there is much more space than handsets. So level of information will be shown more in tablets. Hence we needs to support both tablet and handsets while developing application.

Storage

Android Application usually needs to store information in the file system. As application developer, you can use ORM(Realm,Active Android,Green DAO) for rapid application rather than raw sqlite query.

Debugging

You should be able to debug the application when application shows abnormal behavior. This link list some technique to debug application.

JSON Parsing

Nowadays most of the application stands with the help of API. So as a application developer, you should be able to parse json response got from server. There are some networking library to fetch and serialize json response. eg Retrofit as network library, Gson serializer.

If you are using retrofit as network library and GSON as serializer then will get different tools to generate POJO classes.

Basic UnderStanding of REST

You need to have basic understanding of HTTP protocol to consume REST API. You should have knowledge of HTTP methods GET,PUT,PATCH,POST and HTTP headers.

Syncing Application with Server

You should be able to make application that have the local storage and syncs data with server. Application should show updated data when any records get inserted into database.

Able to Play with Some Library

You need to use free library rather than inventing wheel from scratch. OutMemory is common issue while playing with bitmap in android. you will be able to overcome this issue if you use these open source image library such as -: Picasso, Glide,Fresco etc.