При написании программ часто возникает необходимость передачи данных между окнами, активити или представлениями. Например, в Android, чтобы передать простые данные между активити, рекомендуется использовать Extras. Однако возникает необходимость передавать не только простые переменные, но еще и объекты, да так, чтобы сам объект был общим для всех активити в приложении.
Подобная ситуация у меня возникла при использовании объекта класса SoundPool. Его используют для воспроизведения коротких звуков с минимальной задержкой, например, эффекты в играх. Чтобы получить доступ к звукам с минимальной задержкой, необходимо эти звуки записать в память. Сама загрузка происходит не очень быстро, особенно если звуков много, поэтому загружать их для каждого активити не очень грамотно.
Читать далее...
Не стоит пугаться столь сложного заголовка статьи, состоящего из одних терминов. Задача чтения XML документов по протоколу HTTP встречается довольно часто. Решение, приведенное в данной статье можно использовать при написании ПО, которое активно работает с любым веб-сервисом. Например, такая программа может проводить авторизацию по логину и паролю в веб-сервисе, получение новостей в отдельном окне, возможность оставлять комментарии к записям и т.д..
Читать далее...
Накипело! Сегодня нашей фирме заказчик устроил что-то типа собеседования. Ну мы то пришли "чисто поржать", однако некоторые вещи очень сильно меня задели. Теперь для них у нас будут специальные цены (за моральный ущерб и трату нашего времени), требуемых им свободных специалистов в городе все равно пока что нету, да и они для меня не очень важны. И эта встреча напомнила про мое отношение к собеседованиям вообще.
Читать далее...
В этой статье будет рассмотрен способ наложения звукового файла на видео. Данная реализация основана на использовании фреймворка AV Foundation, который входит в стандартный состав iOS (начиная с версии 2.2). Полученный результат нужно сделать доступным для просмотра с телефона, для этого мы сохраним его в camera roll на iPhone или iPad.
Читать далее...
В первом посте этого блога хотелось бы написать о том, какие записи будут здесь публиковаться. Вообще блог создан для того, чтобы делиться с программистским миром полезными советами. Допустим работаю я над проектом в оффлайне, и у меня возникает загвоздка с написанием кода. Я пытаюсь найти ее решение: сначала смотрю документацию, потом гуглю, затем ищу реализации и так по кругу. В итоге проблема решается определенным образом. Поскольку решение было собрано с многих источников и еще добавлены мои соображения, то человеку, который снова столкнется с этой проблемой, придется вновь пройти все эти "круги ада". Чтобы такого не произошло, я постараюсь сформулировать задачу и вывести для нее решение.
Читать далее...