Разработки приложений под мобильные платформы (тема 1)

А неплохо всегда иметь под рукой приложение, выполняющее определенные функции. Пусть и не всегда очень сложное, но что-то такое, чего, почему-то не нашлось в Google Play маркете и подобных репозиториях.

О чём я говорю? О разработке своих приложений под привычную уже платформу. Для кого-то это iOS, для кого-то (как, например, для меня) – это Android. Поэтому дальнейшую информацию буду приводить именно для неё.

Android – разработка Google на базе ядра операционной системы Linux. Но нельзя сказать, что Linux там полноценный. Весьма специфичный, надо сказать. Это становится понятным, когда сталкиваешься с разработкой софта под платформу.

Я попробовал кое-что поколбасить, немного получилось. Далеко не всё. Нужно выделить в расписании некоторые часы для прохождения уроков разработки под Android (благо их полно на просторах Интернета). Хотя, многие люди заказывают разработку мобильных приложений у сторонних организаций, нам-то интереснее сделать самостоятельно.

Итак, некоторые презабавные факты, которые понял я:

Писать придётся на языке Java. Java он похож на C++, а тот, в свою очередь, чем-то на PHP. Да вообще многие языки похожи друг на друга, это радует. Изучив один более-менее, становится легче писать что-то и на другом.

Придётся поставить кое-какой софт. Безусловно JRE (Java Runtime Environment) – среда выполнения, и JDK (Java Development Kit) – комплект разработчика. Всё это добро нужно качать с сайта Oracle.

Далее – среда разработки. Тут кому как. Сам вендор рекомендует Android Studio – весит почти гигабайт. Ну раз рекомендует, будем ставить.

Что ещё нужно запомнить? Ах да, отладка. Можно использовать виртуальное устройство с Android – весьма неплохо. Создать несколько машин с разными разрешениями экрана, объемами памяти. А можно подключить свой планшет и использовать его в качестве платформы отладчика. Приложение будет закачиваться и запускаться на реальное железо.

По программированию. Среда весьма тормозная, да, прошли времена турбопаскаля. Тут лучше иметь неплохое железо, побольше памяти.

Во! Все константы хранятся как константы, в особом файле. Вообще, там всё хранится в особых местах, к структуре проекта ещё нужно будет привыкнуть. И мы привыкнем, но потом.

Структура проекта: каталоги manifest (декларация), java (программный код), res (ресурсы).

Ресурсы бывают разные. Картинки, строки, размеры, цвета, меню. Есть так называемые layout (аналог формы в Delphi). То есть рисуется layout, с элементами управления. Другое окно программы – другой layout и т.д.

Как я уже говорил, всё хранится в ресурсах. То есть в Delphi можно было запросто сделать так:

label1.text := ‘Litl-admin.ru’;

присваивая текстовому полю новый текст. Здесь так не прокатит. Нет, можно сделать, но редактор хмурит брови и кричит “Хардкод!”.

У каждого элемента есть свой id (как name в Delphi). Так вот, правильнее будет так:

  1. Сперва создаём переменную типа “текстовое поле”:
    TextView mylabel1;
  2. Потом ей присваиваем элемент по его id:
    mylabel1 = (TextView)findViewById(R.id.label1);
  3. Потом элементу присваиваем строковый ресурс извлекаемый из файла ресурсов по другому name ресурса:
    mylabel1.setText(getString(R.string.txtLitlAdmin));
  4. При этом у нас должен быть ресурс в strings.xml с name, который мы извлекали.
    ...
    <string name="txtLitlAdmin">Litl-admin.ru</string>
    ...

И вот такая бодяга постоянно. Нельзя даже кнопочку обозвать “OK”. Надо создать строковый ресурс, присвоить ему значение “OK”, а тексту кнопки ссылку на этот ресурс. ) Вот такая специфика.

Ощутимая разница между простым примером на Delphi и этим? Думаю, да. ) А в остальном – весьма прикольно.

Интересно? Поделись с другом
Litl-Admin.ru

Comments:

Comments: 2
  1. PrihoD

    Если не секрет, какую приложуху пишешь?

    1. litladmin (author)

      Вообще хочу планировщик с органайзером, для сравнения цен и совместной работы

Leave a Reply