Developing Android applications

Weekly review:

The first task, which I did, was choosing IDE for developing applications android. With Ilya we decided to test different IDE. I have focused on Eclipse. The reasons of choosing  this IDE are:

1) Most tutorials use Eclipse

2) I had some difficulties with installing virtual machine on Android Studio

3) To better understand Android Studio, you should have some basic knowledge on Eclipse(particularly Eclipse for Android application)

Then I started learning Android from http://developer.android.com/training/index.html. At first glance, their tutorials are not easy to understand. But later by analysing other sources, I found it quite interesting. Large database of this course can give full explanation for each part of development. For example, when they explain creating linear layout, they give link to read what layout is. Also other tutorial uses http://developer.android.com/training/index.html as foundation for their lessons. For example: http://developer.alexanderklimov.ru/android/.  Another effective course to learn is video tutorials from New Boston on You-Tube. Here is a link. http://www.youtube.com/watch?v=SUOWNXGRc6g&list=EC2F07DBCDCC01493A

Later I decided to learn XML and Java. From w3school tutorials, I understood that XML used in web and XML used in Android are different,  However previous knowledge  of HTML gave enough understanding of XML. So, I started to observe Java and came to decision that programmer is not obligated to have full understanding of language. Tutorials which I studied are from  http://mobile.tutsplus.com/tutorials/android/java-tutorial/. Another good source to learn is http://see.stanford.edu/see/lecturelist.aspx?coll=824a47e1-135f-4508-a5aa-866adcae1111, where you can get full explanation of Java. I found Java very similar to C/C++ and did not have problems with it's syntax. The method I liked in my tutorial is intanceof(which I have not met in C/C++). This method checks for what type object belongs.

  1. void checkforTextView(View v)

  2. {

  3. if(v instanceof TextView)

  4. {

  5. // This is a TextView control

  6. } else {

  7. // This is not a TextView control

  8. }

  9. }  So it detects that object v is TextView type subclass. By using Ctr+Shift+O command we can automatically import missing classes.

The problem which I met was running application. We have method for testing our application:

First is running emulator of any type phone with pure Android OS. Advantage of this method that we can control all properties phone. On the other hand, it is very slow. Even turning on the virtual phone takes minimum 30 minutes. Also there always occur small errors.

Next method is running app on real devices. I tried to run my application on my phone(Galaxy S3) and did not succeed on it. I turned on developer options on my phone but when application runs it did not see device. Since I work on Ubuntu I don't need to install extra usb drivers as Windows user will do.

In addition, I only downloaded Eclipse and SDK from developer.android.com and did not installed it by terminal.(I have already installed jre and java).

Comments