2024-06-10 Этот текст безнадёжно устарел и обновляться не будет.
Установка SDK, знакомство с SDK, инструменты SDK.
В этой части пробежимся по верхушкам Android Software Development Kit (SDK), посмотрим, как он устроен, какие инструменты в него входят и как с этими инструментами работать. Особо углубляться в детали не будем, лишь поиграемся с отдельными программами, чтобы понять, как там всё работает.
Текст статьи (ссылки, описания, инструкции) актуален на март 2013 года.
2024-06-10 Этот текст безнадёжно устарел и обновляться не будет.
«Этим полукреслом мастер Гамбс начинает новую партию мебели.» Пошлый эпиграф.
Да-да, перед вами очередной цикл статей про разработку приложений для андроида. Однако от других этот цикл отличается двумя вещами: неформальным языком (местами очень неформальным) и полным ламерством автора в собственно разработке под андроид. Думаю, в итоге получится этакий акынский цикл: что вижу, то и пою, так что не ждите особой изощрённости и утончённости, покровы тут не срывают.
Статьи будут регулярно появляться в этом блоге, все они пронумерованы и доступны через тег android tutorial. Структура каждой статьи одинаковая: один абзац с описанием и ключевыми словами, чтобы читатель мог сразу определиться, интересует ли его дальнейшее; затем идёт собственно текст с иллюстрациями; а в конце — краткая аннотация следующей статьи, список ссылок и примечания. Поскольку я буду осваивать андроидное программирование параллельно с написанием текста, текст может показаться слегка бессистемным, но тут ничего не поделаешь. Ещё одна цель проекта — обустройство программного окружения андроид-разработчика в линуксе, надеюсь, что к какому-то моменту это получится сделать.
Информация Что такое программное окружение? В моей терминологии — это среда разработки, документация, набор скриптов и вспомогательных программ, причём не по отдельности, а тщательно подогнанные друг к другу. Также в окружение входят способы собственно написания/изменения кода программы, изменение каких-либо параметров проекта, добавление файлов, короче — действия. Программы и действия, тщательно подогнанные друг к другу, чтобы было удобно и легко двигаться.
Естественно, я буду в этом цикле навязывать моё собственное окружение, ибо за неимением никакого сгодится любое (а гугл как раз никакого и не предлагает). Но вы вольны его изменять под свои требования и желания, естественно.
Да, вы только что прочитали информационный блок, это набор абзацев, отделённых от остального текста и снабжённый отдельным заголовком. Информационные блоки играют роль сносок, очень тесно связанных с основным текстом.
Перевод на русский язык статьи Why Software Projects are Terrible and How Not To Fix Them.
Если вы хороший разработчик и работаете в дурной фирме, вам часто приходят в голову идеи об улучшении рабочего процесса.
Постоянно этот урл забываю
Очередная статья из цикла, посвящённого системам управления проектом (процессом). На этот раз немного структурированного формализма: общий план, сравнения, цели, перспективы. По сути, этот текст — самый первый документ, который пишется перед началом любого проекта. Целью проекта является продукт.
Эту статью можно рассматривать как первый шаг в долгом пути построения системы управления софтварным проектом. Под «софтварным проектом» я имею в виду создание программного продукта. А под «системой управления» — интегрированный набор инструментальных средств, обеспечивающих (и автоматизирующих) различные этапы создания продукта. В статье же пойдёт речь о самых базовых вещах, например, целевой аудитории подобной системы.
У каждого программного проекта есть жизненный цикл. Для разных этапов такого цикла есть средства управления — багтрекеры, системы документирования, тестирования. Однако хочется найти полноценную систему для управления всеми этапами жизненного цикла проекта.
Если совсем упрощать, этапы жизненного цикла такие:
- сбор требований
- проектирование
- реализация
- рецензирование кода
- контроль исполнения задач
- тестирование
- внедрение
- поддержка/сопровождение
Для некоторых этапов есть различные инструментальные средства, например, для автоматизации тестирования есть TestLink, для контроля исполнения задач — разнообразные трекеры, например, Bugzilla, JIRA, Trac; для документирования есть разнообразные WIKI-системы. Есть попытки построить интегрированные решения из нескольких компнентов, например, линейка продуктов компании Atlassian — Confluence, JIRA и другие. Однако полноценного продукта, охватывающего ВСЕ этапы, мне не встречалось вообще.
Далее пойдут мои размышления на тему ожидаемой функциональности от подобного продукта.
Перевод статьи Сары Шерд «Life Cycle of a Silver Bullet», 2003 г.
«Внимание! Выбросьте из головы другие методы оптимизации — мы открыли самый лучший. С нашим методом уровень качества у вас будет расти, а стоимость и время разработки — падать». Практически любой метод оптимизации провозглашается лучшим способом спасти молодой бизнес от проблем. К сожалению, спустя несколько лет этот же самый метод оказывается уже разгромленным и разнесённым в пух и прах, и заменяется новым. В этой притче рассказывается, как это происходит.
У гугла есть отличный поисковик по исходным кодам различных проектов. Фигово только, что в результаты поиска выводятся порциями по десять элементов. Фиксим это при помощи юзерскрипта для оперы.
// ==UserScript==
// @name google codesearch improvements
// @include http://*.google.com/codesearch
// @include http://google.com/codesearch
// ==/UserScript==
(function(){
var e = document.createElement('INPUT');
e.type = 'hidden';
e.name = 'num';
e.value = '100';
document.forms[0].appendChild(e);
})();
Максимальное количество элементов на странице — сто.
Программа Assistant из Qt4 сделана довольно небрежно, например, даже при небольшом количестве открытых табов переключаться между ними очень неудобно. Поэтому фиксим это.
- В файле
centralwidget.h
исправляем параметры строки табов. Нам не нужны табы по ширине всего заголовка, обойдёмся скрыванием части заголовка за многоточием, этот параметр классаQTabBar
называетсяelideMode
, для нас подойдёт значениеQt::ElideMiddle
. Теперь табы будут при необходимости «сжиматься» и исчезнет дико неудобная кнопка прокрутки табов. - Также можно добавить кнопку закрытия на каждый таб.