Как стать автором
Обновить

Простой редактор GUI для Android

Разработка под Android *
Вместе с SDK Google предоставила еще и плагин к Eclipse, который весьма помогает в разработке. Однако данный плагин не предоставляет возможности редактировать GUI layouts прямо в Eclipse. Формат Layout файлов (XML) несложен, однако частенько хочется посмотреть, что же получится, если подправить тот или иной параметр. Запуск каждый раз программы на эмуляторе может надоесть даже самым терпеливым. В связи с этим меня весьма заинтересовала данная разработка: DroidDraw. Приложение выполнено в виде Java апплета и позволяет быстро и наглядно создавать несложные графические интерфейсы.
Будем надеяться, что приложение будет развиваться. Ну, или хотя бы появятся более функциональные аналоги.
Всего голосов 7: ↑7 и ↓0 +7
Просмотры 5.6K
Комментарии 3

Раскладки в Silverlight2

Silverlight *
Добро пожаловать в мой уютный бложек свежесозданный блог, посвященый технологии Silverlight.

Эта статья является 3 в цикле. Вот тут есть начало и продолжение.

При построении любого GUI-приложения, содержащего более 5-6 элементов управления, резко встает вопрос их корректного позиционирования и управления их размещением в пределах родительского элемента управления.
Для решения данной проблемы существует несколько подходов. Silverlight унаследовал от WPF вариант с использованием layout-ов (иногда их называют раскладками, иногда и еще хуже). Гибкость системы раскладок позволяет создавать причудливые комбинации элементов управления, комбинируя как абсолютные, так и относительные методы позиционирования и управления размерами компонентов.
Читать дальше →
Всего голосов 38: ↑31 и ↓7 +24
Просмотры 801
Комментарии 19

CSS макеты: фиксированные, резиновые, эластичные. Плюсы и минусы

CSS *
Перевод
Примечание: ниже выложен перевод статьи «CSS Layouts: The Fixed. The Fluid. The Elastic.», в качестве русского аналога термина layout используется макет. В статье рассматриваются два вида «резинового» макета, поэтому один из них для различия обозначен как «эластичный» (elastic, спасибо MTonly за ценный комментарий). Автор резюмирует основные плюсы и минусы каждого из рассматриваемых макетов (способов верстки).

Какой макет верстки (с использованием Каскадных Таблиц Стилей, CSS) можно считать наилучшим? Каждый из них имеет свои хаки (quirks) и свои уникальные плюсы и минусы. Будет ли один из них более удобен для пользователя, чем все остальные? Насколько просто им будет пользоваться? Какие есть у каждого из них проблемы, и как их обходить? Верстается ли один из них проще всех остальных? Есть ли среди них какой-либо ущербный, совершенно непригодный? Скорее всего, многие однозначно ответят на эти вопросы, но я не буду так торопиться. Каждый из этих макетов мне нравится, и каждый применим в том или ином случае, если делать это с умом и внимательно проверять простоту использования и одинаковую доступность для всех категорий пользователей. Все они являются частью уровня представления (presentational layer) для вебсайта, поэтому большинство вопросов по доступности вытекают из корректного использования семантики и общих правил верстки. Далее я опишу свой взгляд на жестко фиксированный (rigid fixed), адаптивный резиновый (adaptable fluid) и расширяемый эластичный (expandable elastic) макеты.
Читать дальше →
Всего голосов 28: ↑25 и ↓3 +22
Просмотры 6.1K
Комментарии 45

Изучаем наличие layout

Разработка веб-сайтов *
Перевод
Примечание: ниже представлен официальный перевод статьи «On having Layout» на русский язык. Статья не является окончательной. Этот перевод отражает 9 версию от 23.10.2007.

UPD текст статьи полностью убран в связи с его неконтролируемыми изменениями с момента публикации. Перепечатка доступна здесь
Всего голосов 45: ↑44 и ↓1 +43
Просмотры 5.8K
Комментарии 49

Используем Adobe Illustrator для создания макета страницы

Дизайн
Перевод
Данное руководство создано для тех, кто уже умеет пользоваться Adobe Illustrator, но пока не знает всех тонкостей работы с ним и хочет познакомиться поближе.

Товарищ CurlyBrace уже сверстал представленный здесь макет, спасибо ему!

Для начала посмотрите на то, что мы будем стараться сделать:



Читать дальше →
Всего голосов 162: ↑139 и ↓23 +116
Просмотры 89K
Комментарии 159

Чиним раскладку Ильи Бирмана для MacOS

Типографика *
Когда я скачал около полугода назад типографскую раскладку Ильи Бирмана — я столкнулся со следующей проблемой: у меня не было «ё» в русской раскладке и, о ужас, «~» и «`» в английской.

В те времена я был ещё под сильным впечатлением от Убунту и первым делом полез править keylayout файлы. Не знаю как точно, но через некоторое время я получил методом проб и ошибок рабочий вариант.

Вчера мне потребовалось повторить все эти процедуры, но вместо ковыряния в конфигах я нашёл утилиту, которая позволяет в оконном интерфейсе создавать и редактировать раскладки (многие, конечно о ней уже знают):
Скачать утилиту можно с её официального сайта: scripts.sil.org/ukelele

Исправленная версия раскладки


Подправленную мною версию можно скачать (11 Кб).

Установка аналогична оригинальной версии:
Скачайте архив и распакуйте его содержимое в каталог /Library/Keyboard Layouts/
После этого включите раскладки в System Preferences → International → Input Menu
  • Russian — Ilya Birman Typography PS/2
  • English — Ilya Birman Typography PS/2

После этого советую перезагрузиться.

Замечание

Если возникнут проблемы — оригинальную раскладку Бирмана, наверное, лучше удалить.
Всего голосов 10: ↑8 и ↓2 +6
Просмотры 3K
Комментарии 9

«Сделайте мне красиво!» Выпуск №24

Чулан
Вашему вниманию очередной выпуск подкаста о веб-разработке «Сделайте мне красиво!»

Сегодня у нас в гостях Вячеслав Олиянчук aka miripiruni

Show notes:


Наши ссылки: RSS и лента на rpod.ru
Всего голосов 30: ↑22 и ↓8 +14
Просмотры 1.2K
Комментарии 1

Razor: вывод секций в мастер-страницах мастер-страниц

ASP *
Всем доброго времени суток. С недавних пор занимаюсь активной разработкой на ASP.NET MVC 3 & Razor «непростого» веб-приложения и вот сегодня наткнулся на проблему, которая опытными разработчиками, может быть, уже исследована и решена, но вот новичкам информация ниже, думаю и надеюсь, окажется полезной.

Описание проблемы


Пусть в приложении есть пара представлений: View.cshtml и ViewWithSide.cshtml, а ещё есть две мастер-страницы: Layout.cshtml и LayoutWithSide.cshtml, причём первая является мастер-страницей для второй. Как можно догадаться по именам файлов, XxxWithSide.cshtml добавляет в странице боковую панель, формат вывода которой определён в мастер странице, а внутренности — в представлении. В главной мастер-странице Layout помимо основной разметки определён вывод секции «navigation», которая задаётся в представлениях.

И вот когда в коде ViewWithSide определена секция «navigation», а в LayoutWithSide нет, потому что эта секция должна обрабатываться «следующей» мастер-страницей (Layout), то при попытке открыть ViewWithSide в приложении будет выдана ошибка: The following sections have been defined but have not been rendered for the layout page "~/Views/Shared/LayoutWithSide.cshtml": «navigation» (Секция «navigation» определена, но нигде не выведена в мастер-странице).

Идея решения этой проблемы довольно проста: нужно передать вывод этой секции «следующей» мастер-странице, а там пусть сами разбираются.
Как это решается и примеры кода есть подкатом
Всего голосов 11: ↑6 и ↓5 +1
Просмотры 21K
Комментарии 5

История Orfo Switcher

История IT
Доброго времени суток, дорогие хаброжители!

Как-то давным давно, в августе 2006-ого года, будучи студентом, я загорелся идеей написать программу, которая бы перенесла клавиши перемещения курсора (стрелки) на клавиатуре из привычного места прямо на алфавитную клавиатуру. Идея фикс была в том, чтобы навигация по редактору, в котором я программировал происходила без отрыва рук от привычного положения «ФЫВА-ОЛДЖ». Достаточно было зажать Caps-Lock и клавиши I,J,K,L превращались в клавиши управление курсором. Это было здорово! Пришлось разобраться с хуками Windows, с особенностью перехвата и подделкой сообщений от клавиатуры, и, несмотря на то, что идея с упрощенной навигацией не прижилась даже у меня самого (сложно было заставить себя использовать новые клавиши), я был рад проделанной работе, потому что у меня уже было все необходимое чтобы создать свой переключатель клавиатуры, который бы заменил бестолковый (как мне тогда казалось) Punto Switcher.
Читать дальше →
Всего голосов 41: ↑37 и ↓4 +33
Просмотры 5.6K
Комментарии 18

Layout без layout'ов

Java *
Библиотека Swing появилась примерно 15 лет назад и все эти 15 лет КАЖДЫЙ кто начинает программировать на Java задаёт один и тот же вопрос:
— Почему я не могу просто добавить кнопки с полями на форму без изучения всех этих LayoutManager'ов?

В стандарной JRE содержится больше десятка классов для компоновки элементов (FlowLayout, GroupLayout и т.п.), постоянно появляются новые компоновщики типа MigLayout но ситуация не улучшается.

Рассмотрим варианты создания форм типа этой:

image
Читать дальше →
Всего голосов 47: ↑31 и ↓16 +15
Просмотры 25K
Комментарии 120

Layout страницы за 5 секунд

CSS *HTML *
www.layzilla.com

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

Можно создавать основу страницы проекта любой сложности.

В будущем сделаем поддержку HTML5.

Мануал для любителей почитать.
Всего голосов 105: ↑98 и ↓7 +91
Просмотры 1.5K
Комментарии 40

WPF layout: Measure и Arrange

.NET *


Общее представление о том, что такое WPF Layout System, можно получить из msdn (1, 2). Там написано, что элементы управления образуют Visual-дерево, что каждый из элементов управления имеет свой определенный прямоугольник, в рамках которого он отрисовывается, что определение этих прямоугольников возлагается на Layout System и выполняется в 2 этапа (measure и arrange) и что WPF — это retained mode graphic system, в отличие от обычных Immediate и в чем преимущества такого подхода.

Однако при чтении msdn возникает ряд вопросов, на которые в документации ответов нет, и можно только догадываться о том, что происходит. Например — что произойдет, если какой-либо дочерний контрол в measure-стадии запросит для себя размер, превышающий переданный ему availableSize? Или — как при необходимости реализовать методы MeasureOverride и ArrangeOverride правильно, чтобы написанный код не противоречил принятым соглашениям о том, как должны выполняться этапы Measure и Arrange ? Влияет ли результат, полученный на этапе Measure, на этап Arrange и отрисовку, или же на отрисовку влияет только вызов Arrange, а Measure — чисто информационный этап?

Попробуем разобраться более детально в том, что происходит за кулисами.
Читать дальше →
Всего голосов 41: ↑35 и ↓6 +29
Просмотры 21K
Комментарии 13

Обучаем HID устройство (читай BT-клавиатуру) работать правильно

Разработка под Android *
Приветствую, хабралюди!
На ДР, мне друзья подарили BT-клавиатуру. Маленькая, беленькая, симпатичная, Удобная!
Подключил ее к своему Android 2.3.5 (SGSII), стал с ее помощью лазить по меню, запускать программы, дошел до Вконтакте и решил написать сообщение… а вот переключить на русский язык не смог, но как оказалось позже, это еще были только цветочки! Но кое-что мне удалось. Интересно как?
Вперед по кат...
Всего голосов 100: ↑93 и ↓7 +86
Просмотры 78K
Комментарии 82

Groundwork — интересный CSS/HTML5 UI фреймворк

CSS *HTML *


Бороздя просторы «бескрайнего», наткнулся на интересный CSS/HTML5 UI фреймворк – Groundwork. Как утверждают его разработчики, он имеет один из самых продвинутых responsive шаблонов в мире. Благодаря невероятной гибкости фреймворка можно получать сайты удовлетворяющие самым современным требованиям.
Читать дальше →
Всего голосов 51: ↑41 и ↓10 +31
Просмотры 25K
Комментарии 21

Justify Grid — новое слово в разметке

Разработка веб-сайтов *CSS *HTML *

Доброго времени суток уважаемые хабражители. На сегодняшний день создание разметки для страницы грубо говоря не автоматизировано. Разметку мы выполняем с помощью float или inline-block (подробнее). Поэтому я хочу поделиться с вами замечательной идей — Justify Grid Framefork.

Проблема


Если говорить о верстке на float, то мы сталкиваемся с проблемой центрирования элемента и нам приходиться скурпулезно указывать все значения ширины и отступов. Эту проблему безусловно решают существующие Grid фреймворки (к примеру 960.gs). Но получается симантически не верная разметка и разработчикам постоянно приходиться использовать .clearfix. Плюс ко всему проблемы могут возникнуть из за дробных пикселей. Если говорить об inline-block, то неудобства появляются из за того, что элементы с этим значением выравниваются по базовой линии, а не по верхнему краю. А если на странице несколько inline-block'ов, каждый из которых расположен с новой строки, то между ними будут некоторые промежутки. Любой пробел повлияет на Ваш layout. Решение есть — CSS Grid Layout или Flexible Box Layout, но эти решения не поддерживаются на большинстве браузеров.
Читать дальше →
Всего голосов 41: ↑33 и ↓8 +25
Просмотры 35K
Комментарии 43

PopulateJS: don't repeat yourself в HTML-разметке

CSS *JavaScript *HTML *
Распространение LESS/SCSS, а также ожидаемые движения в мире браузеров и стандартов, появление jQuery, наконец, вернуло фан в вёрстку HTML-страничек и во фронт-энд разработку.
Но представьте, что вам требуется сверстать раздел в интернет-магазине, раздел блога, или целую главную страницу Хабра? Да, мы делим страницу на отдельные блоки и делаем для них разметку, порождаем множество вложенных блоков, делаем для них CSS/LESS/SCSS. Безусловно, существуют такие замечательные средства как Zen-Coding, шаблонизатор jQuery Templates, а для построения сеток (grids) — всевозможные CSS-фреймворки, наподобие Bootstrap или же Zurb Foundation.

Но часто хочется посмотреть как же ведет себя вёрстка списков, когда в них не один только что свёрстанный элемент, а множество элементов. Наверняка, вы копипастили хотя бы раз в жизни разметку блока, чтобы заполнить страницу контентом, особенно когда под рукой нет запущенной любимой CMS или веб-фреймворка с шаблонизатором. А потом удаляли копипасту. Или что хуже, вы из тех, кто получает «в нарезку» HTML'ки от тех, кто верстает, и вам необходимо удалять эту копипасту самим.

Добро пожаловать под кат, если вам это хорошо знакомо
Всего голосов 25: ↑17 и ↓8 +9
Просмотры 8.4K
Комментарии 18

Custom layouts. Part 2. CellLayout

Разработка под Android *
И снова здравствуйте, коллеги.

И снова я пожаловал к вам с топиком кастомной разметки. На этот раз, я задумал сделать некую “ячейчатую” разметку.
Смысл прост: вся площадь контейнера делится на сетку из квадратных ячеек одинакового размера, и каждый потомок может занять произвольные клетки на этой сетке. Используя подобную разметку можно составлять красивую мозаику из кнопок или картинок, не прибегая к многочисленным вложенным layout’ам. И, поскольку, это специально заточенный для этих целей layout, он будет работать очень шустро.


Читать дальше →
Всего голосов 28: ↑27 и ↓1 +26
Просмотры 22K
Комментарии 16

О вопросах сравнения и оптимизации клавиатурных раскладок

Интерфейсы *
Из песочницы
В данной статье затрагиваются вопросы анализа и синтеза клавиатурных раскладок. Проводится сравнение стандартных и альтернативных раскладок. Также приводится одна из возможных моделей для оптимизации раскладки. Подразумеваются стандартные жесткие зоны для слепого десятипальцевого метода набора.
Тем, кого интересует исключительно модель, можно пропустить первую половину статьи.



Предварительный анализ возможных улучшений раскладки ЙЦУКЕН


Не будем долго описывать традиционно упоминаемые недостатки стандартной раскладки ЙЦУКЕН: 50% всех нажатий производится указательными пальцами, причем часто несколько нажатий подряд производит один из них, а также значительная нагрузка на правый мизинец. Перейдем к характеристике следующего уровня — чередованию рук. По моему скромному мнению (и не только, как будет показано ниже), это важнейшая характеристика, влияющая на скорость набора, поскольку руки могут действовать независимо, а пальцы в пределах каждой руки двигаются в большей степени согласованно.

Читать дальше →
Всего голосов 85: ↑80 и ↓5 +75
Просмотры 36K
Комментарии 56

Scroll Views внутри Scroll Views

Разработка под iOS *Разработка мобильных приложений *Cocoa *
Recovery mode
Перевод
В данной статье я хочу представить OLEContainerScrollView, который является потомком UIScrollView и позволяет вам добавлять несколько scroll views, таблиц (UITableView) или коллекций (UICollectionView) в один контейнер.

Возможное применение



Вы можете использоваться OLEContainerScrollView для достижения следующих целей:
  • Размещение несколько scroll views (или таблиц, или коллекций) один под другим так, чтобы при этом их обычное поведение при прокрутке не пострадало. В случае таблиц или коллекций речь идет о сохранении работоспособности механизма повторного использования ячеек.
  • Превращение одного сложного UITableViewDataSource или UICollectionViewDataSource в несколько простых источников данных путем разделения таблицы или коллекций, состоящей из нескольких секций, на несколько односекционных таблиц или коллекций, расположенных друг за другом.
  • Добавление заголовка или подвала (header или footer) над или под коллекцию без необходимости управлять их разметкой. В таком случае это будут простые UIScrollViews или UIViews.
Читать дальше →
Всего голосов 19: ↑14 и ↓5 +9
Просмотры 11K
Комментарии 2