Search
Write a publication
Pull to refresh
0
0
Шелестов Александр @shelestov

User

Send message

Пишем живые обои с часами

Reading time4 min
Views25K
ClockНедавно я решил разобраться, как делать живые обои для андроида, а разбираться лучше всего на хорошем примере — таком, который потом пригодится. Я всегда хотел удобные часы. Для андроида уже существует достаточное количество подобных обоев, но обычно они рисуют большие часы в каком-нибудь фиксированном углу экрана и перекрываются виджетами, которых у меня немало. Мне хотелось, чтобы часы были разбросаны по всему экрану, тогда вероятность увидеть их будет выше.
Как сделать такое читайте дальше

Как не надо разрабатывать на Zend Framework

Reading time8 min
Views8.1K

Здравствуйте! На днях подвернулась работа — дописать сайт на zend framework. Программист, который начал разрабатывать этот проект не успевал в сроки, не выполнял требования заказчика и в итоге его заменили. Открыв первый раз исходный код я ужаснулся от того количества ошибок, которые допускал разработчик и ведь он утверждал заказчику что является опытным специалистом. Далее я попытаюсь рассказать про некоторые ошибки, которые были им допущены. Данный материал будет полезен начинающим ZF-программистам, в качестве инструкции того как делать нельзя
Читать дальше →

Формы в Zend Framework

Reading time6 min
Views13K
Меня часто спрашивают, какой мой любимый компонент в Zend Framework, и я всегда отвечаю: «Forms» (формы).
В парадигме модель-представление-контроллер формы всегда играют непростую роль. Конечно, форма — это всего лишь HTML,
но для меня это нечто более абстрактное.
По сути, форма — это HTML, средствами которого пользователь вводит и получает данные, но кроме этого форма еще выполняет
нормализацию, проверку, фильтрацию данных и вывод сообщений об ошибках, если они есть.
Это может потребовать довольно-таки значительного объема кода.

Читать дальше →

Zend Framework советы и трюки

Reading time6 min
Views3.8K
Zend Framework советы и трюки

Перевод статьи Zend Framework tips and tricks.
автор: Juozas devBlog

Приятно использовать хорошие инструменты, однако Вы должны быть уверены, что используете их должным образом, а не просто кодировать «вроде работает, ну и ладно». По этой причине я и решил написать список вещей, которые я всегда держу в голове, когда принимаю на поддержку чей-то проект или консультирую как начать.

Большинство рекомендаций фокусируется на легкости тестирования, легкости поддержки и других хороших практиках кодирования. Если Вы не знакомы с этими рекомендациями, советую начать читать как можно скорее. Уверен, что Вы совершаете описанные здесь ошибки и даже не подозреваете, как вы ошибаетесь. Поверьте, очень скоро Вы значительно улучшите свои навыки разработки.
Читать дальше →

Autoloading in Zend Framework (Автозагрузка классов в Zend Framework)

Reading time8 min
Views6.7K
Вечер добрый уважаемое хабрасообщество. Представляю вашему вниманию свой перевод статьи из серии Learning Zend Framework.

Сразу хочу оговориться, что я не являюсь экспертом в области английского языка и не претендую на 100% правильный перевод, хотя в последнее время задался целью изучить его как можно лучше, ибо хочу свободно разговаривать, читать, писать.

Поэтому, если вы найдете какие то неточности в моем переводе, если я что то перевел или интерпретировал неправильно, свяжитесь со мной, я исправлю свои ошибки и буду вам весьма признателен.

Итак собственно перевод:
Далее...

Введение в Zend Framework

Reading time17 min
Views107K
Update (2014): Это статья 2007 года, которая, к моему удивлению, до сих пор пользуется спросом. По этой причине я обновил её в соответствии с новыми правилами оформления постов на Хабре, и добавил подсветку синтаксиса для примеров кода. Если кому-то захочется что-то добавить или исправить, исходник текста с хабра-разметкой выложен в открытый доступ: gist.github.com/dreikanter/2b4ee996d7a775e707d7

Аннотация от переводчика


PHP — один из самых широко распространенных языков разработки веб-приложений и при этом один из самых спорных. Я очень часто видел негативное отношение к этой технологии, да и недостатки, провоцирующие это отношение — не для кого не являются секретом. Тем не менее, PHP активно эволюционирует и во многих отношениях постепенно становитс лучше. Одним из серьезных шагов его развития, на мой взгляд, является появление MVC-фреймворков, призванных систематизировать процесс разработки веб-приложений и приучить к порядку разработчиков, которым зачастую здорово не хватает силы воли, чтобы при всей предоставляемой языком свободе, сохранить грамотную и красивую инфраструктуру разрабатываемого ПО (сразу уточню, что последнее утверждение субъективно и основано исключительно на виденном мной коде различных программных решений).

В последнее время я активно заинтересовался архитектурой MVC и сделал свою собственную реализацию фреймворка на этой концепции для PHP4. Совсем недавно на глаза попался первый официальный релиз Zend Framework, о котором я давно слышал, но все руки не доходили с ним поиграть. Для PHP существуют и другие подобный библиотеки, но в данном случае привлек бренд.
Читать дальше →

ListView внутри ScrollView

Reading time2 min
Views17K
В работе над проектом возникла необходимость отрисовать лейаут такого вида: сверху компактным блоком располагаются детали топика, а под ними – список комментариев к этому топику. Сначала оно было реализовано естественным образом: лейаут деталей топика, а под ним – список. Позже ТЗ поменялось, и получилось, что нужно заголовок скролить вместе со списком.

Первым побуждением было сделать то, что вынесено в заголовок: поместить ListView внутрь ScrollView. Получившаяся штука отображалась некорректно, что заставило меня зарыться поглубже в гугл.
Читать дальше →

Создание композитных компонентов на Android

Reading time8 min
Views40K
Приветствую всех Хабра-жителей и Андроид-ценителей!
Композитный в нашем случае означает «состоящий из нескольких», но вы это и так знаете.
Итак, есть Задача:
  • Необходимо вывести блок данных, включающий в себя текст, картинки, кнопки и т.д.
    (В нашем случае это будет короткий анонс передачи по ТВ)
  • дизайн блока нарисован специально нанятым дизайнером и вам нельзя отсупать от него ни на пиксель
  • Это блок может иметь какую-то внутреннюю логику работы и компоненты могут влиять друг на друга (у нас «внутренней логикой», будет установка символа "*" в заголовок передачи и смена цвета фона если была нажата кнопка «Буду смотреть»)
  • Таких блоков может быть много и информация для них получается уже в процессе работы приложения
  • как всегда, в процессе работы, дизайн может быть пересмотрен, и вам надо быстро внести изменения в программу не переписывая все с самого начала


Читать дальше

Процессы и потоки в Android: пишем AsyncTask правильно

Reading time7 min
Views123K
Продолжаю свои повествования об Android. И в этот раз хочу поделиться ценной информацией о процессах и потоках, которая должна быть хорошо усвоена и всегда оставаться под рукой во избежании ошибок и недопонимания при написании приложений. В конце статьи приведу пример реализации AsyncTask, который загружает в ImageView картинку по нажатию на кнопку.
Читать дальше →

Платное и бесплатное приложения: два в одном

Reading time3 min
Views12K


О том, как непросто создать приложение с поддержкой In-App Purchase на хабре уже рассказывали (здесь и здесь), — слишком много кода для такой простой функциональности.

Даже поддержка оплаты через PayPal внедряется намного проще.

Но благодаря Robot Media SL и open-source библиотеки Android Billing Library, наша жизнь упрощается. Намного упрощается.
Читать дальше →

Разработка производительных приложений

Reading time9 min
Views5.7K

Производительные приложения



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

Несмотря на то, что здесь будут описаны микрооптимизации, они практически никогда не смогут повредить вашему приложению. Выбор правильных алгоритмов и структур данных всегда должны быть первыми приоритетами, но этот аспект рассматриваться не будет.
Читать дальше →

Пишем игру для Android c помощью AndEngine. Часть 2

Reading time6 min
Views11K
Всем привет!
Как и обещал, вторая часть статьи.
Во избежание недопонимания, перед прочтением ознакомьтесь с первой частью статьи.
Уже ознакомились? Тогда добро пожаловать под кат где я познакомлю читателя с игровыми объектами.
Читать дальше →

импорт товаров с картинками в Ubercart

Reading time3 min
Views4.5K
Ubercart — это программный модуль с открытым исходным кодом, полностью интегрирующий Интернет-магазин с CMS Drupal. Ubercart считается одним из лучших в мире решений для электронной коммерции.

Как правило много вопросов вызывает массовый импорт товаров с картинками.
В моем случае был excel файл со списком товаров и их атрибутами (наименование, описание, цены, авторы, ссылки на картинки и т.п.).
Excel файл в чистом виде довольно таки трудно скормить для импорта, поэтому я сохранил его в виде *.csv файла.
Я щас опишу что дальше с ним делать:)
Читать дальше →

Fragments API в Android 3.0

Reading time8 min
Views26K
В Android 3.0 введена новая концепция фрагментов, которая служит для упрощения работы с интерфейсом под разные размеры экранов. Данный топик является переводом статьи с android-developers.blogspot.com. В ней рассмотрены преимущества фрагментов, а также приведен простой, но законченный пример приложения, работающего по этому принципу.

Важная цель Android 3.0 — упростить написание программ, которые должны масштабироваться в зависимости от размеров экрана. Для этого в платформе Android уже доступны следующие средства:
  • С самого начала, UI-фреймворк был спроектирован для использования layout managers, которые позволяют описывать интерфейс так, чтобы он «подгонялся» к размерам. Примером этого является ListView, высота которого изменяется в зависимости от размера экрана, который варьируется между соотношениями QVGA, HVGA, and WVGA.
  • В Android 1.6 была введена новая концепция плотности экрана, позволяющая приложениям легче масштабировать размеры между разными разрешениями, в то время как экраны имеют почти один и тот же физический размер. Разработчики незамедлительно начали использовать эту особенность, когда были введены телефоны с высоким разрешением, такие как Droid.
  • Также в Android 1.6 разработчикам стали доступны размеры экрана, при помощи их классификации: «small» для соотношения QVGA, «normal» для HVGA и WVGA, и «large» для более больших экранов. Разработчики могут использовать систему ресурсов для выбора между различными layout'ами, в зависимости от размера экрана

Читать дальше →

Java сертификация — прохождение SCJP и SCBCD

Reading time8 min
Views84K
Не нашел на хабре статей, в которых бы авторы описывали сертификации по Java и делились своим опытом подготовки и ощущениями от сдачи.
В некоторой степени хотел бы заполнить пробел этой статьей. Под катом – мое мнение по вопросу – сдавать или не сдавать сертификации, краткий обзор сертификаций по Java, а так же собственный опыт и ощущения от регистрации, подготовки и сдачи Java сертификаций SCJP и SCBCD.
читать далее

AndroidDev #1. Создаем файловый менеджер

Reading time10 min
Views71K


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

Читать дальше →

F3: маленький PHP-фреймворк с огромными возможностями

Reading time7 min
Views27K


Хочу представить вашему вниманию легковесный PHP-фреймворк, на который я недавно наткнулся и который сразу же полюбил.

Fat-Free чем-то похож на известный Ruby-фреймворк Sinatra. Автор Fat-Free помешан на минимализме и чистоте кода, что положительно отразилось на этом простом каркасе для разработки самых разнообразных приложений.

Fat-Free состоит из одного файла и весит всего 55KB. При этом фреймворк обладает таким функционалом: специфический и довольно удобный шаблонизатор, гибкое кеширование, автоматическая защита от спама, интегрированные средства для юнит тестов, профайлер кода.

Он настолько маленький и быстрый, что даже может использоваться для контроля траффика Web-сервера.

Это, также, единственный фреймворк, который защищает Ваше приложение от хотлинкинга и DoS атак.
Читать дальше →

Как учить детей программированию: Kodu Game Lab теперь доступен для PC

Reading time2 min
Views70K
Я уже писал про обучение детей программированию на основе Лого. Однако возможен и другой, ещё более “симпатичный” подход – это визуальное программирование, в котором вообще не надо писать текст. Причём визуальное – это не обязательно рисование блок-схем! Например, можно исходить из понятия объекта, который находится в разных состояниях и реагирует на внешние события.

В Майкрософт также задумываются над проблемами обучения детей, в частности, уже писалось про проект Kodu Game Lab. Kodu – это интерактивная среда создания трехмерных игр, доступная одновременно на Xbox 360 и на ПК. Я решил написать о ней подробнее, поскольку начиная с сегодняшнего для любой желающий может скачать и попробовать версию для ПК.

image image
Читать дальше →

Статистика Google Analytics на вашем сайте. Часть вторая. Использование GAPI

Reading time2 min
Views11K
С момента публикации первого топика о создании хабраподобной статистики (которую, кстати, почему-то тут не обновляют) с импортированием данных из Google Analytics прошел ровно год.

image

Весь этот год все работало, статистика обновлялась, графики рисовались… пока все не сдохло. Как это и присуще гуглу, сдохло оно не сразу у всех, а потихоньку, в течение недели. При беглой диагностике проблемы выяснилось, что она заключается в гугловой авторизации. Учитывая, что скрипт авторизации мною был заимствован, разбираться в нем не было никакого желания, и тут до меня дошло — ведь Google выпустил API для аналитикса! Поэтому было решено не обрабатывать напильником существующую версию, а просто получить данные цивилизованно, посредством API, тем не менее, оставив при этом «структуру» и основные моменты предыдущей версии.
Читать дальше →

Information

Rating
Does not participate
Location
Арзамас, Нижегородская обл., Россия
Date of birth
Registered
Activity