Pull to refresh
20
0
Ряжских Дарья Юрьевна @darja

User

Send message

Превращаем html в нативные компоненты

Reading time7 min
Views19K
Доброго дня! Мы, мобильные разработчики компании surfingbird, решили попробовать написать небольшой цикл статей о том с какими трудностями мы сталкиваемся в процессе разработки мобильных приложений (android, ios), и как мы их решаем. Первый пост мы решили посвятить проблеме webview. Сразу оговорюсь, что решили мы эту проблему несколько кардинально… Для того чтобы было более понятно, придется рассказать пару слов о собственно том, чем мы занимаемся. Мы агрегируем контент из различных источников (парсим оригинальные статьи), выделяем значимую часть (контент) и на основе оценок пользователя и всяких сложных алгоритмов рекомендуем их конечному пользователю ну и конечно просто отображаем в более удобном виде.

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

Но при использовании webview для отображения контента мы столкнулись с рядом сложностей. Этот компонент тяжело поддается кастомизации и довольно тяжел и даже, я бы сказал, глючен. Настал день, когда мы поняли, что не хотим больше видеть webview вообще. Но избавиться от него, учитывая то, что контент у нас отдается в html — оказалось не так-то просто. Поэтому мы решили превратить html в нативные компоненты.

image
Как избавиться от webview
Total votes 26: ↑22 and ↓4+18
Comments11

Что такое утечки памяти в android, как проверить программу на их отсутствие и как предотвратить их появление

Reading time14 min
Views87K
В этой статье для начинающих android-разработчиков я постараюсь рассказать о том, что такое «утечки памяти» в android, почему о них стоит думать на современных устройствах, выделяющих по 192МБ на приложение, как быстро найти и устранить эти утечки в малознакомом приложении и на что нужно обращать особое внимание при разработке любого приложения.


Конечная цель этой статьи — ответ на простой вопрос:
Куда нажать, чтобы узнать, какую строчку в приложении поправить?

Читать дальше →
Total votes 65: ↑64 and ↓1+63
Comments36

Текст с разметкой в android.widget.TextView

Reading time15 min
Views65K
Недавно мне понадобилось сделать довольно хитроумный чат в приложении под Android. Помимо собственно информации требовалось передавать пользователям дополнительную функциональность в контексте определенного сообщения: имя автора сообщения по нажатию на него должно вставляться в текстовое поле ответа, а если это сообщение о только что созданном игровом сеансе, пользователи должны иметь возможность присоединиться к игре по клику и так далее. Одним из главных требований была возможность создавать сообщение, содержащее несколько ссылок, что и задало направление исследований.
Читать дальше →
Total votes 34: ↑31 and ↓3+28
Comments2

Развитие правого полушария головного мозга или как я учился рисовать

Reading time4 min
Views87K
Сразу дискламер: я редко пишу посты на широкую аудиторию, и более правильного ресурса для этого текста в рамках моего кругозора не нашлось. Тем не менее, если кто-то найдет это интересным, значит не зря… Поехали.

С чего все началось



Как-то я услышал от одного человека мысль о том, чтобы заниматься бизнесом, ему приходится «выращивать в себе Мистера Хайда», типа некая альтернатива его личности способна придумать что-то такое, что не способен придумать он сам. Конечно же, он шутил, по большей части, и тогда я этому значение не придал. Вспомнил эту точную метафору лишь, когда сам решил, что мне нужно развивать креативность, умение продуктивно фантазировать, придумывать нестандартные решения.
Читать дальше...
Total votes 163: ↑156 and ↓7+149
Comments84

Mac OS X глазами Windows-юзера

Reading time7 min
Views269K
Т.к. моя работа в последнее время связана с разработкой под iOS, мне периодически приходится пересекаться с Mac OS. В этой статье я расскажу о своих впечатлениях об этой системе глазами человека, который всю свою сознательную жизнь провел за виндами.

Сразу скажу — что Mac OS — это не обязательно Apple. Т.к. есть такие проекты, как «Хакинтош», которые позволяют ставить эту OS на любые компьютеры. Конечно, в этом случае вам понадобится нефиговый бубен (особенно если у вас АМД), но факт остается фактом — это возможно. Правда, не всегда гладко. Например, я ставя хакинтош на свой AMD, два дня сидел в гугле в поисках сначала сборки, потом драйверов и прочих фиксов. Кстати, один критичный баг, когда весь флэш-контент (в т.ч. и видео) периодически фризился в браузере — я не поборол. Но про установку макоси на PC я распространяться не буду — это тема для целого отдельного топика.

Есть у меня опыт и работы с родной Mac OS на Mac Mini (кстати, несмотря на свою дороговизну — эта машинка определенно обладает своим очарованием! особенно когда понимаешь, что эта алюминиевая коробочка чуть больше роутера размером может тягаться с огромным шумным компом 3-летней давности).

Итак, начнем…

Плавность и красота.

Читать дальше →
Total votes 425: ↑258 and ↓167+91
Comments900

Оказывается, в Windows тоже есть перенаправления, пайпы, свой /dev, /dev/null, /etc/fstab, grub.cfg

Reading time5 min
Views92K
Разделы можно пропускать без ущерба для понимания, ровно как и любые непонятные/неинтересные места в них.

Перенаправления


Как обычно:

echo foo > bar
echo foo 2> bar
echo foo > bar 2>&1

Читать дальше →
Total votes 201: ↑136 and ↓65+71
Comments137

Разработка под Android, грабли большие и не очень

Reading time4 min
Views47K
Ниже я попробую описать ряд неприятных особенностей с которыми может столкнуться разработчик для платформы Android. Не все они являются особенностью именно операционной системы Android, но так или иначе шансы встретиться с ними есть.
Читать дальше →
Total votes 99: ↑95 and ↓4+91
Comments58

Tips and Tricks по программированию на Android

Reading time5 min
Views7.2K
Tips and Tricks
Летом друг подкинул пару заказов по разработке для Android. Первое это streaming проигрыватель видео для одного французского телевидения, второе — простенькая игрушка.
Во время разработки (мой первый опыт разработки на Android и на Java), я уяснил несколько правил, которые нужно соблюдать для корректной и устойчивой работы программ, которыми хочу поделится…
Читать дальше →
Total votes 91: ↑75 and ↓16+59
Comments44

Борьба с утечками памяти в Android. Часть 1

Reading time6 min
Views49K
Этой статьей мы открываем цикл статей на Хабре о нашей разработке под Android.
Согласно докладу компании Crittercism от 2012 года, OutOfMemoryError — вторая по распространенности причина «крашей» мобильных приложений.
Честно говоря, и в Badoo эта ошибка была в топе всех крашей (что неудивительно при том объеме фотографий, которые просматривают наши пользователи). Борьба с OutOfMemory — занятие кропотливое. Мы взяли в руки Allocation Tracker и начали играться с приложением. Наблюдая за данными зарезервированной памяти, мы выявили несколько сценариев, при которых выделение памяти росло с подозрительной стремительностью, забывая при этом уменьшаться. Вооружившись несколькими дампами памяти после этих сценариев, мы проанализировали их в MAT (http://www.eclipse.org/mat/).
Результат был занимательный и позволил нам в течение нескольких недель снизить количество крашей в разы. Что-то было специфично для нашего кода, но также выявились типичные проблемы, присущие большинству Android приложений.
Сегодня поговорим о конкретном случае утечки памяти. О нем многие знают, но часто закрывают на это глаза (а зря).
Читать дальше →
Total votes 59: ↑55 and ↓4+51
Comments18

Как мы внедряли INDE в наше Android приложение

Reading time7 min
Views6.4K

Применение готовых библиотек в приложениях освобождает программистов от непроизводительного труда по изобретению велосипедов, сокращает время выхода приложения на рынок и благотворно сказывается на его функциональности. Все эти тезисы мы можем проиллюстрировать на своем собственном примере. В этой статье мы опишем процесс внедрения библиотеки Intel INDE (Integrated Native Developer Experience) для работы с видео в Android в наше существующее приложение Together Video Camera, приведем примеры реализации функционала в соответствии с конкретными нуждами приложения и опишем сложности разработки до и после INDE.
Читать дальше →
Total votes 14: ↑14 and ↓0+14
Comments1

Мёртвая «Ксюша» и пыльный чайник. Почему «АвтоматическийСтол» — корпорация зла

Reading time14 min
Views165K
Помните начало фильма «Джиперс Криперс» — Каждую 23 весну, на протяжении 23 дней, оно ест?



Так вот…. Каждый год, в одно и то же время, компания Autodesk, выпускает новую версию всех своих продуктов, и обрубает поддержку старых. Тем самым вынуждая пользователей каждый год обновлять лицензии (расценка продукции — гляньте одним глазком.). И всё бы ничего, если бы компания реально думала о пользователях, а не о расширении рынка для сбыта своих программ.


Пример отличного дизайна — как глюк программы превратить в логотип.

Я начал писать эту статью сильно возмущенный нынешней ситуацией с 3ds max, но по мере того как я собирал материал и читал различные форумы — я стал понимать, что проблема глобальней чем просто с одним графическим пакетом. Сразу оговорюсь, я пишу с точки зрения одного человека, а не производственной компании. И начну я, пожалуй, именно с:
Читать дальше →
Total votes 239: ↑225 and ↓14+211
Comments142

Работа с графическими объектами в Android

Reading time4 min
Views13K

Нажав кнопку «Далее», вы найдете перевод четырех небольших учебных материалов, посвященных различным техникам обработки и генерации изображений в Android; в трех из них имеется исходный код тестовых программ и справочный материал к нему. На наш взгляд, эти пособия могут оказаться полезными всем, кто занимается разработкой приложений и игр под Android.
Под катом находятся следующие статьи:
  • Пример кластеризованного шейдинга в Android
  • Знакомство с RenderScript. Учебное пособие
  • Знакомство с OpenCL для Android. Учебное пособие
  • Тесселяция для OpenGL ES 3.1 на Android
Читать дальше →
Total votes 20: ↑20 and ↓0+20
Comments0

Трансокеанические подводные кабели связи

Reading time7 min
Views239K
И вновь привет, хабр.

Вчера мной был опубликован материал касательно прокладки компанией Google собственного оптоволоконного кабеля связи по дну Тихого океана, который свяжет дата-центры компании в штате Орегон, США, с Японией. Казалось бы, это огромный проект стоимостью $ 300 млн и длинной в 10 000 км. Однако, если копнуть немного глубже станет ясно, что данный проект является выдающимся только потому, что это будет делать один медийный гигант для личного использования. Вся планета уже плотно опутана кабелями связи и под водой их намного больше, чем кажется на первый взгляд. Заинтересовавшись этой темой я подготовил общеобразовательный материал для любопытствующих.


Читать дальше →
Total votes 128: ↑121 and ↓7+114
Comments35

Выжимаем максимум из DDMS

Reading time6 min
Views35K
DDMS (Dalvik Debug Monitor Server) — безумно полезный инструмент для отладки приложений, который идет в комплекте с Android SDK, о котором почему-то особо и не сказано на хабре, впрочем как и в примерах google он представлен в очень скромном виде. Я бы хотел раскрыть его возможности и показать на что он способен. Вкратце:
  • изучать информацию о работающих потоках;
  • анализировать heap на количество свободной и занятой памяти;
  • анализировать какие объекты чаще создаются, их размер и другое (Allocation tracker);
  • находить проблемные участки кода, которые долго работают и требуют оптимизации (Method profiling). Это я советую знать всем.

Об этих вещах будет рассказано в рамках данной статьи. И для справки, менее интересное, что довольно тривиально и о чем НЕ будет рассказано в рамках данной статьи:
  • работать с файловой системой эмулятора или устройства;
  • находить информацию об ошибках (привет LogCat);
  • эмулировать звонки/смс/местоположение;
  • использовать инструмент Network Statistics.


Если заинтересовались, прошу под кат.
Total votes 34: ↑34 and ↓0+34
Comments6

Глубокое погружение в определение местоположения

Reading time8 min
Views24K
Этот пост является переводом топика из блога android-developers. Далее повествование ведется от Рето Майера, автора книги Professional Android 2 Application Development. Он пишет о том, как можно улучшить приложения, использующие местоположение, в смысле кэширования результатов, скорости работы и так далее.

Без разницы, ищете ли вы место, где бы поесть, или ближайшее место велосипедов Boris Bike, всегда есть задержка при получении данных местоположения от GPS и заполнении абстрактного списка результатов в вакууме. Когда вы находитесь в месте, где хотели бы получить контекстную информацию, то часто вы сталкиваетесь с отсутствием подключения к данным.

Вместо того, чтобы грозить кулаком в небо, я написал open-source приложение, которое включает в себя советы и рекомендации по сокращению времени между открытием приложения и просмотром актуальной информации о близлежащих местах, вкупе с разумным обеспечением offline режима работы. И всё это, сохраняя использование аккумулятора на возможном минимуме.
Читать дальше →
Total votes 35: ↑33 and ↓2+31
Comments1

Новый SwipeRefreshLayout из библиотеки Android support — «потяните чтобы обновить»

Reading time3 min
Views44K
Тихо и незаметно вместе с обновлением библиотеки Android support до версии 19.1 в нее прокрался новый компонент, который часто бывает нужным и полезным в быту. Сей совсем крохотный росчерк я посвящаю ему, SwipeRefreshLayout.

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

Очень похоже, что компонент был создан для GoogleNow, а потом перекочевал в support lib (очень похожа анимация).
Читать дальше →
Total votes 41: ↑39 and ↓2+37
Comments7

10 анти-паттернов навигации в Android

Reading time4 min
Views80K


В данной статье мы рассмотрим 10 анти-паттернов навигации в Android, которые допускают многие новички (и не только) в создании интерфейсов Android-приложений.

Читать дальше →
Total votes 116: ↑107 and ↓9+98
Comments26

Еще раз об архитектуре Android приложения или джентльменский набор библиотек

Reading time6 min
Views57K
Вот надумал написать обзор библиотек с помощью которых легко и удобно писать приложения под Android.
Список вырисовывается такой:

Если заинтересованны прошу под кат.
Читать дальше →
Total votes 69: ↑62 and ↓7+55
Comments82

Процесс тестирования мобильных приложений

Reading time4 min
Views137K
Тестирование – очень важный этап разработки мобильных приложений.

Стоимость ошибки в релизе мобильного приложения высока. Приложения попадают в Google Play в течении нескольких часов, в Appstore несколько недель. Неизвестно сколько времени будут обновляться пользователи. Ошибки вызывают бурную негативную реакцию, пользователи оставляют низкие оценки и истерические отзывы. Новые пользователи, видя это, не устанавливают приложение.

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

Поэтому в отделе тестирования у нас работает 8 человек (0,5 тестировщика на программиста), за его развитием и процессами следит выделенный тест-лид.

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


Читать дальше →
Total votes 48: ↑44 and ↓4+40
Comments22

Pixel-perfect верстка Android макетов

Reading time7 min
Views56K
Разрабатывать интерфейс Android приложений — непростая задача. Приходится учитывать разнообразие разрешений и плотностей пикселей (DPI). Под катом практические советы о верстке макетов дизайна Android приложений в Layout, который совпадает с макетом на одном устройстве а на остальных растягивается без явных нарушений дизайна: выхода шрифтов за границы; огромных пустых мест и других артефактов.

UPD: Пост спорный, но много ценных советов в комментариях


Читать дальше →
Total votes 87: ↑60 and ↓27+33
Comments83

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity