Pull to refresh

Создание собственной View под Android – может ли что-то пойти не так?

Reading time28 min
Views46K
«Дело было вечером, делать было нечего» — именно так родилась идея сделать вью с возможностью зума, распределяющую юзеров по рангам в зависимости от кол-ва их очков. Так как до этого я не имел опыта в создании собственных вьюшек такого уровня, задача показалась мне интересной и достаточно простой для начинающего… но, *ох*, как же я ошибался.

В статье я расскажу о том, с какими проблемами мне пришлось столкнутся как со стороны Android SDK, так и со стороны задачи (алгоритма кластеризации). Основная задача статьи – не научить делать так называемыми “custom view”, а показать проблемы, которые могут возникнуть при их создании.

Тема будет интересна тем из вас, кто имеет мало (или не имеет вовсе) опыта в создании чего-то подобного, а также тем, кто хочет словить лулзов с автора в сто первый раз уверовать в «гибкость» Android SDK.
Читать дальше →

Записываем видео из Google Street View

Reading time8 min
Views29K
Некоторое время назад стала популярной тема Hyperlapse/time-lapse видео. В первую очередь, благодаря небезызвестному ресурсу http://hyperlapse.tllabs.io/

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

Весёлые табы в MAC OS X или история про тот самый Tab View

Reading time5 min
Views14K
Привет всем!

История началась с того, что мне понадобилось написать приложение под Mac OS X. Все реже можно увидеть статьи по поводу разработок под desktop, да еще и под Mac OS X, но эта тема именно об этом.

Я уже писал много чего на QT, а тут встала задача использовать исключительно Cocoa.

Существует определенная аура святости вокруг продуктов apple, ну и я наивно подпал под нее от моего макбука. Мне казалось что с пользовательским интерфейсом особых проблем не будет, ну разве что какие-то мелочи, которые встречаются везде (ох, как я ошибался).

Вот в проекте я дошел до разработки пользовательского интерфейса и тут мне понадобился классический шаблон Tab View. Продолжение читайте уже под катом.

Подробности

Как сделать TG Instant View из страницы Notion

Level of difficultyEasy
Reading time2 min
Views2.3K

Notion хорош для быстрого набрасывания статей/туториалов/дайджестов.

Telegram хорош для ведения тематического канала.

А Instant View в телеграме хорош, быстр и удобен при просмотре ленты, особенно в условиях плохо интернет-соедиения.

В этой статье я покажу, как настроить шаблон для IV на основе страницы Notion.

Читать далее

Acer представила игровой монитор SpatialLabs View Pro 27, поддерживающий стереоскопическое 3D и объёмный звук

Reading time2 min
Views2.2K

Acer представила игровой монитор SpatialLabs View Pro 27, поддерживающий стереоскопическое 3D и объёмный звук.

Читать далее

Мой подход к Class Based Views

Reading time5 min
Views9.4K
Люк Плант (Luke Plant) — программист-фрилансер с многолетним стажем, один из ключевых разработчиков Django.

Когда-то я писал о своей неприязни к Class Based Views (CBV) в Django. Их использование заметно усложняет код и увеличивает его объём, при этом CBV мешают применять некоторые достаточно распространённые шаблоны (скажем, когда две формы представлены в одном view). И судя по всему, я не единственный из разработчиков Django, придерживающийся такой точки зрения.

Но в этом посте я хочу рассказать об ином подходе, который я применил в одном из проектов. Этот подход можно охарактеризовать одной фразой: «Создавайте свой собственный базовый класс».
Читать дальше →

Google прекратит поддержку отдельного приложения Street View и удалит его из магазинов приложений

Reading time1 min
Views1.9K

Google уберёт отдельное приложение Street View из магазинов в «ближайшие недели» и прекратит его поддержку в марте 2023 года. Об этом сообщает The Verge со ссылкой на пресс-секретаря компании Мэдисон Гувейю.

Читать далее

Custom view на Compose

Reading time6 min
Views10K

В июле Google выпустил стабильную версию Compose. Это вызвало большой интерес в сообществе. Все вокруг стали поговаривать, что эта технология захватит Android-разработку, и скоро все будут писать на Compose.

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

В этой статье покажу, как можно реализовать рыночный график со скроллом и зумом на Compose.

Читать далее

Применение Materialized Views в организации ETL-процессов

Reading time9 min
Views33K

Приветствую! Меня зовут Жумабаев Султан, и в ПГК я работаю инженером данных на проекте «Цифровой вагон». Могу уверенно сказать, Oracle сегодня — одно из самых популярных и надежных хранилищ, хотя рынок и предлагает множество новых современных разработок. В этой статье я расскажу про использование Materialized Views для организации ETL-процессов в рамках проекта.

Читать далее

Андроид — кастомные View или ToggleButton 4x4

Reading time5 min
Views16K
Рано или поздно любого начинающего андроид-разработчика перестает удовлетворять стандартный набор элементов управления. При этом имеется в виду как внешний вид, так и функциональность. И если с внешним видом все более или менее понятно, все достаточно легко кастомизируется, то функционала часто не хватает.

Когда (уже достаточно давно) в одном из своих проектов я столкнулся с необходимостью выбора в настройках одного из трех параметров, решение было очевидно — RadioButton. Но по ряду причин, типа экономии места на экране и некоторых других, возникло желание использовать нечто вроде ToggleButton. Поскольку стандартный Toggle имеет лишь два состояния, был использован костыль в виде программной обработки некоей циклично меняющейся переменной, в зависимости от которой менялись свойства стандартного элемента вроде обычной Button или ImageButton – уже даже не помню. Способ вполне работоспособный, однако не без греха. Первый и самый главный – нарушается Генеральная линия партии, призывающая к раздельному хранению ресурсов и программного кода. Ну и при большом количестве подобных элементов управления код теряет всю свою изящность и привлекательность. Инкапсуляция, опять же, жутко страдает. Посему было решено создать кастомный элемент.
Читать дальше →

Знакомьтесь, object-view-box

Reading time3 min
Views5.6K

Всем привет! Меня зовут Лихопой Кирилл и я - фронтенд-разработчик в компании idaproject. Сегодня я представляю вам перевод статьи о новой CSS-фиче, которую, я уверен, многие ждали. И это - object-view-box, которое позволит нам обрезать и масштабировать фотографии не прибегая к “костылям” в виде фонового изображения или доп. элементов.

Итак, знакомьтесь - object-view-box!

В этой статье я познакомлю вас с новым CSS-свойством object-view-box , которое было предложено Jake Archibald еще год назад. Оно позволяет нам обрезать и изменять размер таких HTML-элементов, как <img> или <video>.

Читать далее

Google Maps Street View выглядит по новому

Reading time1 min
Views2.1K
Вчера в Google Maps появились серьёзные улучшения в сервисе Street View. Всё дело в маленьком зелёном человечке. Теперь пользователи могут перетаскивать маленькую человеческую фигурку, названную «Pegman», на любую улицу, подсвечиваемую в процессе перетаскивания синим цветом, и увидеть её так называемый предварительный просмотр. Когда Pegman «приземляется» (стоить только перетащить его на нужное место и отпустить кнопку), карта превращается в детальный, фотографический просмотр улицы с направляющими ориентирами, который можно развернуть на всю ширину браузера. В процессе виртуальной прогулки можно менять угол просмотра, так, будто сам стоишь на этой улице.

Понятно, что пока это не везде работает, я смотрел на примере Парижа, но однозначно захватывает. В этом ролике показано как это выглядит и как этим пользоваться.

Модуль для иерархических представлений (View) для Коханы

Reading time4 min
Views1.6K
Речь пойдет о первом моем модуле для фреймворка Kohana.

image
Признаюсь честно, при первом и последующих взглядах на этот фреймворк он мне очень понравился. Но как известно нет ничего идеального. Как мне показалось, одно из самых слабых мест в Кохане — довольно примитивные представления (View). По сути они предствляют из себя plain-php файл с экспортированными в глобальную область видимости переменными и доступным по ссылке $this контроллеру. Это очень удобно, когда вам нужно представление для вывода данных, нет ничего лишнего, можно сосредоточиться на коде. Но когда нам нужно вывести макет страницы со сложным расположением элементов, которые могут меняться от раздела к разделу… Что делать? Собирать все из мелких вьюшек в контроллере? Не удобно, особенно если контроллеров много — не дай бог, например, поменяется количество столбцов в разметке, придется в каждом контроллере перераспределять блоки с контентом по столбцам. Наверное по этому в версии 2.4 появится (я надеюсь) модуль интеграции со Смарти.
Читать дальше →

Представления (VIEW) в MySQL

Reading time10 min
Views471K
В комментариях Хабра упоминались вопросы по использованию представлений. Данный топик является обзором представлений, появившихся в MySQL версии 5.0. В нем рассмотрены вопросы создания, преимущества и ограничения представлений.

Что такое представление?


Представление (VIEW) — объект базы данных, являющийся результатом выполнения запроса к базе данных, определенного с помощью оператора SELECT, в момент обращения к представлению.

Представления иногда называют «виртуальными таблицами». Такое название связано с тем, что представление доступно для пользователя как таблица, но само оно не содержит данных, а извлекает их из таблиц в момент обращения к нему. Если данные изменены в базовой таблице, то пользователь получит актуальные данные при обращении к представлению, использующему данную таблицу; кэширования результатов выборки из таблицы при работе представлений не производится. При этом, механизм кэширования запросов (query cache) работает на уровне запросов пользователя безотносительно к тому, обращается ли пользователь к таблицам или представлениям.
Читать дальше →

Google и Bungie создали интерактивный мир игры Destiny с использованием Street View

Reading time1 min
Views19K


Очень интересная идея пришла в голову ребятам из Bungie — компании, создавшей игру Destiny. Совместно с разработчиками Google был создан интерактивный мир, основанный на сервисе Google Street View.

При помощи этой разработки можно выйти за пределы Земли, и посмотреть, что делается на Луне, Марсе или Венере. Само собой, все, что можно видеть, имеет отношение к игровому миру Destiny: юниты, мобы, внутриигровые объекты — все это выглядит, как настоящее.
Читать дальше →

Urban Jungle Street View: растения побеждают города

Reading time1 min
Views13K


Порой, среди стартапов, проектов, рассчитанных на улучшение и повышение производительности человека, повышению эффективности использования средств определенными организациями и прочими практичными ресурсами, встречаются проекты just for fun.

Надо сказать, такие проекты, порой, становятся своеобразной отдушиной в ежедневной работе как для создателей, так и для посетителей. Именно таким проектом является Urban Jungle Street View, сервис, где на фотографии городов в Google Street View накладываются изображения растений и камней. В результате получается нечто вроде постапокалиптичных городов, какими их изображают некоторые художники.

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

Drupal Views Attach

Reading time1 min
Views2.1K
В процессе разработки проекта на Drupal встала задача вывести все ноды, ссылающиеся на данную при помощи node reference. Нашёлся замечательный модуль Views Attach, позволяющий прицепить к определённому типу View и передать ему id текущей ноды параметром. Модуль подошёл идеально.

Не так давно понадобилось почти то же, но чуть сложнее: прицепить к определённому типу View, выводящий ноды заданного типа содержащие определённый термин таксономии. Пробежавшись по существующим модулям нужного не нашлось, но вспомнился Views Attach. А так как параметры View хорошо-бы было сделать полностью настраиваемыми — решил интегрировать данный модуль с Token, что сегодня и осуществил.

В итоге при помощи данного решения можно, например:
1. Отобразить при просмотре ноды 10 нод с сходными терминами таксономии.
2. Отобразить 10 нод заданного полем cck типа.
3. Отобразить отмеченные флагом ноды, ссылающиеся на данную.
4. …

Забрать патч можно в трэкере проекта.

Давайте сделаем переиспользуемый компонент tree view в Angular

Reading time6 min
Views9.5K

Я разрабатываю несколько Angular-библиотек, поэтому люблю делать простые и легко переиспользуемые решения для разработчиков. Недавно один из подписчиков в Твиттере спросил меня, как сделать компонент, который выводил бы его данные в виде иерархического дерева — tree view. 

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

Дисклеймер: эта статья-туториал рассчитана на аудиторию изучающих Angular. Если вы понимаете, как сделать рекурсивный тип, рекурсивный компонент и преобразовать в нем данные, переданные функцией-обработчиком, можете ее пропустить.

Давайте сделаем

Model-View-Intent и индикатор загрузки/обновления

Reading time9 min
Views6.3K

Добрый день! Многие Android-приложения загружают данные с сервера и в это время показывают индикатор загрузки, а после этого позволяют обновить данные. В приложении может быть с десяток экранов, практически на каждом из них нужно:


  • при переходе на экран показывать индикатор загрузки (ProgressBar) в то время, как данные грузятся с сервера;
  • в случае ошибки загрузки показать сообщение об ошибке и кнопку "Повторить загрузку";
  • в случае успешной загрузки дать пользователю возможность обновлять данные (SwipeRefreshLayout);
  • если при обновлении данных произошла ошибка, показать соответствующее сообщение (Snackbar).

При разработке приложений я использую архитектуру MVI (Model-View-Intent) в реализации Mosby, подробнее о которой можно почитать на Хабре или найти оригинальную статью о MVI на сайте разработчика mosby. В этой статье я собираюсь рассказать о создании базовых классов, которые позволили бы отделить описанную выше логику загрузки/обновления от остальных действий с данными.

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

Google Street View работает как машина времени

Reading time2 min
Views33K


Отъездив 19 миллионов километров по дорогам всего мира, автомобили Google Street View с 2007 года собрали огромный архив фотографий. Глупо было бы удалять старые снимки, ведь со временем они приобретают историческую ценность. Более того, нужно сделать эти фотографии доступными для просмотра, решила компания Google и разработала «машину времени» — отдельный ползунок, который переносит вас в прошлое, показывая каждый снимок, сделанный на этом месте за прошедшие семь лет. Функция доступна в десктопной версии Google Maps, пока лишь для небольшого количества аккаунтов.
Читать дальше →
1
23 ...