Wednesday, March 24, 2010

Android Options menu: Internals (eng)

Android applications (Activities) can have own menus next types:
  • Options menu - the main menu of application, is displayed when user clicks Menu button
  • Сontext menu - the context menu, is shown when user makes long click on some control
Сontext menu looks like a simple List view dialog and there is a possibility to change its view by using Android themes. I have been investigated an ability to manage the Options menu view and would like to share results in this post.

Android Options menu: Internals

Как и во всех платвормах, приложения (Activity) на Андроиде могут иметь свои собственные меню двух видов:
  • Options menu - главное меню программы, появляется при нажатии клавиши Menu.
  • Сontext menu - контекстное меню, появляется при длительном нажатии на каком-либо элементе управления.
Сontext menu представляет собой обычный List view диалог и есть возможность менять его вид, используя темы. Я исследовал возможность управление видом Options menu и хочу поделиться в этом посте полученными результатами.

Tuesday, March 16, 2010

Android SDK: first impression (eng)

I have started learning the Android SDK. And I'd like to share my impressions about this technology that is new for me.

So, what I liked:
  • There is used the Java programming language, although Android does not support established Java standards (SE or ME) - it just uses Java syntax and provides a lot of Java standards classes (streams, threads, collections etc)
  • The familiar development environment (eclipse) with Android plug-in (ADT) that does all routine work automatically. For example, it automatically generates classes from defined .aidl files. There are also built-in widgets (layout) editor, manifest file editor that allows editing it as raw XML data as by clicking to necessary buttons :)
  • Simple, clear for understanding documentation. To start developing something for Android it is enough to read the "Android fundamentals" article on developer.android.com.
  • There are supported all famous platforms: Windows, Linux, Mac OS X. For example, In iPhone I don't like the necessity for developing only on Mac OS.
  • Good Virtual devise with an ability to customize device features. There is a set of SDK tools to monitor/control the device - it is possible to view info about each running process, cause Garbage collector etc.

What I didn't like:
  • The virtual device is starting too slow. For example, iPhone emulator starts immediately with already loaded operation system. Like the "true" device, the Android starts with black screen of terminal :) The good news is that it is enough to start device at once and after work with it, eclipse connects automatically to this device each time. But not skilled developers often close virtual device window and each time have to wait until it starts :)
  • Virtual device works slowly sometimes
  • Sometimes eclipse don't allow to debug application, and it needs to restart it.
In general, developing for Android is an interesting and very promising direction.

Android SDK: first impression

Недавно начал изучать Андроид. И решил поделиться своими впечатлениями как новичка в этой сфере.

Итак, что понравилось:
  • Используется язык программирования Java, хотя в Андроиде не поддерживается полностью какой-либо стандарт Java (SE или ME) - просто используется синтаксис этого языка + большая куча классов (стримы, потоки, коллекции)
  • Привычная среда разработки (eclipse) со встроенным плагином для Андроида (ADT),, который делает всю рутинную работу автоматически. Например автоматически генерит классы из aild файлов. Также есть встроенный редактор лайаутов + редактор манифест файла, который позволяет как править этот XML файл руками, так и заполнять его, кликая мышкой по кнопочкам :)
  • Простая и понятная документация. Чтобы начать что-то писать под Андроид достаточно прочитать статью "Android fundamentals" на developer.android.com.
  • Поддерживаются все известные платформы: Windows, Linux, Mac OS X. В программировании под iPhone мне не нравится то, что необходимо писать только под маками.
  • Хороший эмулятор с возможностью настраивать конфигурацию девайса. В дистрибутиве идет набор тулзов для управления девайсом - есть возможность просмотреть инфу по каждому процессу, принудительно вызвать сборщик мусора и пр.

Что не понравилось:
  • Дефайс стартует довольно-таки долго. iPhone эмулятор например стартует мгновенно, без загрузки системы. Андроид же стартует как полноценный девайс с черного экрана :) Радует то, что достаточно один раз его загрузить и потом просто eclipse к нему все время коннектится. Но по неопытности многие закрывают эмулятор после запуска своего приложения и потом опять ждут пока он загрузится :)
  • Девайс иногда тормозит
  • Eclipse иногда тупит и отказывается дебажить приложение, приходится его перезапускать.
В общем, тема интересная и довольно перспективная.