А неплохо всегда иметь под рукой приложение, выполняющее определенные функции. Пусть и не всегда очень сложное, но что-то такое, чего, почему-то не нашлось в 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). Так вот, правильнее будет так:
- Сперва создаём переменную типа “текстовое поле”:
TextView mylabel1;
- Потом ей присваиваем элемент по его id:
mylabel1 = (TextView)findViewById(R.id.label1);
- Потом элементу присваиваем строковый ресурс извлекаемый из файла ресурсов по другому name ресурса:
mylabel1.setText(getString(R.string.txtLitlAdmin));
- При этом у нас должен быть ресурс в strings.xml с name, который мы извлекали.
...
<string name="txtLitlAdmin">Litl-admin.ru</string>
...
И вот такая бодяга постоянно. Нельзя даже кнопочку обозвать “OK”. Надо создать строковый ресурс, присвоить ему значение “OK”, а тексту кнопки ссылку на этот ресурс. ) Вот такая специфика.
Ощутимая разница между простым примером на Delphi и этим? Думаю, да. ) А в остальном – весьма прикольно.
Если не секрет, какую приложуху пишешь?
Вообще хочу планировщик с органайзером, для сравнения цен и совместной работы