Как стать автором
Обновить
31.5
Карма
0
Рейтинг
Сергей @SynteZZZ

Пользователь

  • Публикации
  • Комментарии

Простейшая 3D игра на libGDX под Android в 200 строк кода

Разработка игрРазработка под Android
Я преподаю в IT школе Samsung программирование под Android для школьников. Программа обучения охватывает множество разнообразных тем. В числе прочих предусмотрен один урок, знакомящий учеников с основами 3D-графики под Android. Стандартный учебный материал этого урока показался мне очень бесполезным по нескольким причинам:
  1. Используется голый OpenGL, а поскольку на практике в программировании игр чаще всего используются готовые движки, то это мало полезно для школьников в контексте их собственных проектов. Кто-то может возразить, что увидеть в деле чистый OpenGL полезно для понимания основ, но здесь вступает в дело 2-й недостаток.
  2. Урок очень непонятный. У типичного школьника, пусть и разбирающегося в программировании, нет достаточной базы, чтобы понимать многое из того, что описано в уроке (например матрицы многие пройдут только уже в ВУЗе).
  3. В конце урока мы приходим к результату — отрисовка 3-х треугольников средствами OpenGL. Это настолько далеко от реальной 3D-игры, что легко может отбить интерес у школьника.

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

Читать дальше →
Всего голосов 24: ↑24 и ↓0 +24
Просмотры64.2K
Комментарии 4

Новости

Показать еще

Ресурсы по поиску качественных иконок.

Чулан
Все когда-нибудь сталкивались с проблемой поиска качественных иконок для различных нужд. Список лучших поисковиков:
Читать дальше →
Всего голосов 57: ↑50.5 и ↓6.5 +44
Просмотры3.1K
Комментарии 24

Включаем Samsung Multi Window в чужом приложении

Разработка под Android
Из песочницы
В новых смартфонах Samsung есть весьма интересная фича — Multi Windows.
Она позволяет запускать одновременно два приложения в одном окне.
К сожалению, кроме Samsung эту фичу пока что мало кто поддерживает.
Но на самом деле её не так уж и сложно добавить к уже существующему приложению.
Читать дальше →
Всего голосов 16: ↑15 и ↓1 +14
Просмотры21.5K
Комментарии 5

Портинга и препроцессинга псто

Разработка под Android
А многим ли из вас, уважаемые, не приходилось задумываться о том, как из одного набора исходников, без лишнего напряжения душевных сил собирать две независимых версии приложения — полную и не очень? Всем, поднявшим руку, скажу: ещё придётся, ой как придётся поломать голову над этим вопросом. Ну, или можно воспользоваться рецептом ниже.
Читать дальше →
Всего голосов 38: ↑20 и ↓18 +2
Просмотры1.2K
Комментарии 32

Большие изменения на Яндексе — платформа «Острова»: интерактивные ответы в результатах поиска

ЯндексВеб-дизайн
Сегодня на конференции YaC/m мы объявили о том, что Яндекс планирует радикальное обновление вида результатов поиска. Во-первых, они меняются идеологически: теперь пользователь будет не просто находить ответы на свои запросы, но и сможет прямо на странице с выдачей решать свои задачи. А во-вторых, поисковые результаты обновятся визуально — дизайн станет частью нашего нового подхода в поиске. 


Текст ниже написал Данила Ковчий, один из авторов платформы «Острова», о которой пойдёт речь дальше. Прямо сейчас он находится на сцене и не может запостить его сам. Дальше повествование пойдёт от его имени.

Презентация Островов на Yet another Conference

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

К делу


Яндекс меняется. Меняется и его основной продукт — поиск. Здесь я буду рассказывать в основном про него, что, как и почему нам пришлось переделать, какие были причины и немножко о последствиях.

Изменения в поиске делятся на два направления:
— блочная выдача;
— контекстно-зависимый интерфейс.
Читать дальше →
Всего голосов 177: ↑165 и ↓12 +153
Просмотры122K
Комментарии 161

Ресурсы, о которых должен знать каждый Android-разработчик

Разработка под Android
Перевод
Сегодня я хочу поделиться с вами моим вольным переводом статьи, написанной Сергеем Повзнером (Sergey Povzner). Сергей ведёт блог bongizmo.com и занимается разработкой туристических гидов под общим названием Citybot.

В то время как Android продолжает свой невероятный рост, всё больше и больше программистов начинают разрабатывать приложения на этой платформе. Если ты начинаешь свой путь сегодня, то ты определенно — счастливчик. За последние годы Android значительно повзрослел и избавился от множества детских болезней. Информации по платформе более чем достаточно. Я же расскажу о самых важных ресурсах.

Статья будет полезна как новичкам, так и опытным разработчикам. Это гид по миру Android-разработки.
Читать дальше →
Всего голосов 133: ↑128 и ↓5 +123
Просмотры186.2K
Комментарии 36

Накладные расходы памяти у коллекций

Java
Мне было интересно, какие коллекции сколько съедают дополнительной памяти при хранении объектов. Я провёл замеры накладных расходов для популярных коллекций, предполагающих хранение однотипных элементов (то есть списки и множества) и свёл результаты на общий график. Вот картинка для 64-битной Hotspot JVM (Java 1.6):

Читать дальше →
Всего голосов 67: ↑64 и ↓3 +61
Просмотры79.4K
Комментарии 14

Браузер Yandex

ЯндексРазработка веб-сайтов
Сегодня был представлен новый браузер Yandex — первый, который мы не просто собрали из готовых составных частей, а спроектировали его внешний вид фактически с нуля, проработав каждую возможную деталь. Теперь можно рассказать о том, почему и как мы это делали.



Над браузером работала команда из нескольких десятков человек, которая тщательно взвешивала все плюсы и минусы каждого решения. Мы должны были понимать, какие из существующих технологий и почему должны быть в браузере от Яндекса. А самой главной задачей было найти и реализовать такие решения, которые бы делали Yandex действительно новым продуктом на высококонкурентном рынке подобных программ.

Читать дальше →
Всего голосов 465: ↑266 и ↓199 +67
Просмотры216.8K
Комментарии 825

Маленькие хитрости Java

Java
Из песочницы
Я уже достаточно много лет занимаюсь разработкой на java и повидал довольно много чужого кода. Как это не странно, но постоянно от одного проекта к другому я вижу одни и те же проблемы. Этот топик — попытка ликбеза в наиболее часто используемых конструкциях языка. Часть описанного — это довольно банальные вещи, тем не менее, как показывает мой опыт, все эти банальности до сих пор актуальны. Надеюсь, статья пригодится многим java программистам. Итак, поехали:

new vs valueOf

//медленно
Integer i = new Integer(100);
Long l = new Long(100);
String s = new String("A");

//быстро
Integer i = Integer.valueOf(100);
Long l = 100L;//это тоже самое что Long.valueOf(100L);
String s = "A";


Старайтесь всегда использовать метод valueOf вместо конструктора в стандартных классах оболочках примитивных типов, кроме случаев, когда вам нужно конкретно выделить память под новое значение. Это связано с тем, что все они, кроме чисел с плавающей точкой, от Byte до Long имеют кеш. По умолчанию этот кеш содержит значения от -128 до 127. Следовательно, если ваше значение попадает в этот диапазон, то значение вернется из кеша. Значение из кеша достается в 3.5 раза быстрее чем при использовании конструктора + экономия памяти. Помимо этого, наиболее часто используемые значения могут также быть закэшированы компилятором и виртуальной машиной. В случае, если ваше приложение очень часто использует целые типы, можно увеличить кеш для Integer через системное свойство «java.lang.Integer.IntegerCache.high», а так же через параметр виртуальной машины -XX:AutoBoxCacheMax=<size>.
Читать дальше →
Всего голосов 141: ↑126 и ↓15 +111
Просмотры260.8K
Комментарии 166

Линейная алгебра для разработчиков игр

Разработка игр
Перевод
Tutorial
Эта статья является переводом цикла из четырёх статей «Linear algebra for game developers», написанных David Rosen и посвящённых линейной алгебре и её применению в разработке игр. С оригинальными статьями можно ознакомиться тут: часть 1, часть 2, часть 3 и часть 4. Я не стал публиковать переводы отдельными топиками, а объединил все статьи в одну. Думаю, что так будет удобнее воспринимать материал и работать с ним. Итак приступим.
Читать дальше →
Всего голосов 314: ↑296 и ↓18 +278
Просмотры599K
Комментарии 61

Введение в Gestures

Разработка под Android
или толкование жестов :)



Сейчас мы на боевом примере поработаем с жестами в среде Android. Приложение будет клиентом сайта Astronomy Picture of the Day by NASA. На этом сайте ребята каждый день выкладывают какую-нибудь замечательную картинку, связанную с астрономией. Жестами мы будем ходить вперед/назад и вызывать диалог выбора даты. А чтобы было еще интересней — напишем его для Honeycomb.

Статья состоит из двух частей: первая — покажет, как создавать жесты с помощью приложения Gestures Builder и выгружать их из эмулятора в отдельный бинарный файл. Во второй части, мы загрузим его в наше приложение и начнем использовать.
Читать дальше →
Всего голосов 35: ↑32 и ↓3 +29
Просмотры15.2K
Комментарии 4

Orchard CMS для разработчика — часть 2

Разработка веб-сайтов
image
В продолжении статьи о разработке для open-source CMS Orchard рассмотрим вывод контента на страницу, обновление модулей и концепцию виджетов. И закончим модуль, позволяющий добавить к сайту на Orchard список пунктов быстрого перехода для закрепленного сайта Internet Explorer 9.
Читать дальше →
Всего голосов 17: ↑10 и ↓7 +3
Просмотры3.4K
Комментарии 3

RoboGuice или «Андроид подсел на инъекции»

Разработка под Android
imageRoboGuice — это библиотека, которая позволяет пользоваться всеми преимуществами Contexts and Dependency Injection при разработке приложений на Андроиде.
Как несложно догадаться, RoboGuice основан на Google Guice.
Сразу оговорюсь, что в качестве перевода слова «injection» я буду использовать слово «инъекция».

Зачем колоться?


Думаю, что у многих читателей сразу возникнет вопрос: «Зачем эти сложности с CDI на мобильной платформе? Наверняка это всё занимает много места и медленно работает.»
Попробую убедить таких читателей в обратном, а именно в том, что CDI на мобильной платформе очень даже жизнеспособен и существенно облегчает жизнь разработчикам.
Читать дальше →
Всего голосов 39: ↑35 и ↓4 +31
Просмотры11.7K
Комментарии 23

Анализ памяти для Android приложений

Разработка под Android
Перевод
В Dalvik есть сборщик мусора, но это не значит, что можно игнорировать управление памятью. Даже наоборот — нужно быть особенно внимательным при использовании памяти, которая, как известно, на мобильных устройствах ограничена. В этой статье будут рассмотрены инструменты, которые значительно помогают следить за тем, как приложение использует память.
Читать дальше →
Всего голосов 64: ↑61 и ↓3 +58
Просмотры39.4K
Комментарии 19

Пишем приложение под Android с поддержкой Cloud to Device Messaging (C2DM)

Разработка под Android
Из песочницы


Здравствуйте, читатели Хабрахабр!

В данном посте я хочу уделить внимание сервису C2DM от компании Google и попытаюсь рассказать, как реализовать поддержку данного сервиса в вашем Android-приложении. Напомню, что C2DM — это специальный сервис, предоставляющий API для отправки сообщений приложениям, установленным на устройствах Android. Использование данного сервиса является незаменимым способом при необходимости передать сообщение пользовательскому приложению, зарегистрированному в системе, но не являющемуся на данный момент активным.

Хотя C2DM является одной из фундаментальных возможностей платформы Android, информации о нем в рунете мало. Попытка изменить данную ситуацию и является одной из задач этого поста.

Под катом я расскажу, как написать простые клиентское и серверное приложения, покажу некоторые «подводные камни», а также дам ссылки на примеры кода.

Читать дальше →
Всего голосов 56: ↑55 и ↓1 +54
Просмотры33.9K
Комментарии 34

Спрайты изображений в ASP.NET легче легкого с помощью NuGet

.NET
Перевод
Я подумал, раз сайт менеджера пакетов NuGet начал наполняться пакетами, то пора бы начать выбирать особо ценные пакеты. Такие пакеты, которые действительно делают полезные вещи, но могут быть пропущены разработчиками. Я собираюсь выискивать такие пакеты среди самых полезных проектов с открытым исходным кодом. Я собираюсь разбираться в том, как собраны эти пакеты, есть ли в них что-то особенно интересное в плане их применения на практике.

Sprite and Image Optimization Preview 3

Начнем с того, что фреймворк Sprite and Image Optimization был обновлен до версии Preview 3. Этот фреймворк – пример того, что Microsoft может планировать для ASP.NET в будущем и вместе с тем, того, что вы можете попробовать использовать уже сегодня. И этот фреймворк стал еще проще, поскольку появился в NuGet.

ScreenClip(3)

Читать дальше →
Всего голосов 55: ↑39 и ↓16 +23
Просмотры3.2K
Комментарии 9

Массовая почтовая рассылка через Exim или как не попасть в спам

Системное администрирование
Из песочницы
Жизнь была прекрасна и все было в этом мире хорошо, пока почта с моего сайта не стала активно посылаться в спам практически всеми крупными почтовыми серверами. Особенно усердствовал в этом Gmail. Частенько меня принимали за спамера в Yandex, реже в mail.ru и rambler.
image
Исходя из совокупности представленных факторов стало понятно, что надо что-то делать с настройками своего почтового сервера Exim. Посмотреть, как это было сделано, приглашаю под хабракат.
Читать дальше →
Всего голосов 88: ↑80 и ↓8 +72
Просмотры93.3K
Комментарии 41

Чек-лист вёрстки. Что можно отдавать клиенту, а что надо переделывать

Разработка веб-сайтовCSSСовершенный кодHTMLIT-стандарты
Идеальная вёрсткаВы PM. Как узнать – готова ли вёрстка к реальному использованию?
Вы заказчик. Как убедиться, что работа выполнена качественно?
Как оценить качество вёрстки?

Когда я стал тим-лидом, а позже PM, передо мной стала задача проверять вёрстку наших проектов. Нужно было выработать формальные, легкопроверяемые критерии, соответствие кода которым, должно было давать некую гарантию, что не будет факапов и ни клиент, ни программеры не сказажут потом “WTF?”.

Клиенту неважно насколько красив ваш код, но ему важен результат. Качественный код нужен фирме, т.к. он надёжней и в будущем его будет легче поддерживать.

Требования должны были быть такие, что соблюсти их легче, создавая качественную вёрстку, а не говнокод. Я составлял такой чек-лист в течении полутора лет. За последние полгода в него не добавилось ничего. Значит самое главное учтено.

Итак что же это за список?

Краткая версия теперь доступна на html5checklist.com (github), где можно вносить pull-request'ы.

История обновлений:
  • 2015/08/11: Актуализировал рекомендации по оптимизации скорости загрузки. Добавил требование поддержки Retina. Дополнил «19. Мелочи» требованием что изображения должны масштабироваться в зависимости от размера окна.
  • 2015/08/10: актуализирован список исключений для CSSLint
  • 2015/07/29: актуализирован пункт №13 «плохо»/«хорошо»
  • 2015/04/08: добавлено требование использования препроцессоров и рекомендация использования систем сборки
  • 2013/04/25: добавлены анализаторами качества кода: CSSLint и JSHint, указан сайт подбора css font stack (спасибо @fliptheweb), мелкие уточнения (работу интерактивных элементов страницы, что не пропадает фон на высоких разрешениях, не должно быть пустых презентационных блоков, при проверках контента — пробовать удалять заголовки, менять местами блоки)
  • 2013/04/24: добавил пункт об минимизации каскада (БЭМ-техники, MCSS, SMACSS), необходимости вписывания в экран моб. устройства, заменил ссылку на проверочный текст отображения стандартного html на код с normalize.css, поправил пример где в рекомендации встречался длинный каскад, упомянул про Opera на Presto и новый уровень семантики — в именах классов BEM.
  • 2012/04/12: отсортировал пункты проверки в порядке важности, выделил главные, дополнил статью подробностями
  • 2011/12/07: дополнил согласно доклада на WSD Минск'2011.
  • 2011/07/19: добавлено про повышение надёжности вёрстки благодаря html5-тэгам, про необходимость favicon/apple-touch-icon, отсутствие багов при ресайзе textarea
  • 2011/06/15: добавил пояснения какие ошибки валидации допустимы, рассказал про отсутствие официальной кнопки «HTML5 Valid» и про официальное лого HTML5 на сайте.


Далее с примерами - как проверить html, даже если вы ничего не понимаете в вёрстке.
Всего голосов 335: ↑318 и ↓17 +301
Просмотры283.1K
Комментарии 244

Тестирование Android приложений

Разработка под Android
Из песочницы

Введение


image
Я уверен, что современных программистов не нужно убеждать использовать юнит тесты. И если при разработке приложений под android, модули не связанные с ним, мы можем протестировать с помощью знакомого всем JUnit'а (не всегда без костылей правда), то как тестировать user interface и использующие его классы? В этом нам помогут инструменты фреймворка android.test.

В данной статье мы напишем небольшое android приложение и протестируем его. Для работы нам будут нужны установленные jdk, android sdk, Eclipse и ADT плагин.
Читать дальше →
Всего голосов 49: ↑44 и ↓5 +39
Просмотры54.1K
Комментарии 6

Хабраиндекс для статей по программированию под Android

Разработка под Android

С чего начать?


Пишем своё первое приложение на Android
Пишем первое приложение для Android
Создаем файловый менеджер
Основы программирования под Android на примере игры Судоку
Создание приложения в стиле Android
Спокойной ночи!

Читать дальше →
Всего голосов 220: ↑204 и ↓16 +188
Просмотры93.4K
Комментарии 43
1

Информация

В рейтинге
5,875-й
Откуда
Москва и Московская обл., Россия
Работает в
Дата рождения
Зарегистрирован
Активность