Pull to refresh
  • by relevance
  • by date
  • by rating

VoiceOver на iOS: каждый контрол ведёт себя по-разному

Dodo Engineering corporate blogDevelopment for iOSDevelopment of mobile applicationsAccessibility
Привет, Хабр! Недавно я говорил про адаптацию приложений для незрячих и неподвижных людей. И не договорил!

Сегодня расскажу, как изменить поведение контролов с помощью accessibilityTraits и сделать жизнь незрячих чуть удобней. Знать работу этих трейтов (traits) важно, чтобы не писать свои костыли.


Читать дальше →
Total votes 16: ↑16 and ↓0 +16
Views2.3K
Comments 7

Назад в будущее мобильных телефонов II

DesignGadgetsOld hardwareCellular communication
«Единственный шанс исправить настоящее — только в прошлом.» Док Эммет Браун

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

Начнем с самого культового телефона.

Nokia 3310, 2000 год



Читать дальше →
Total votes 29: ↑24 and ↓5 +19
Views32.4K
Comments 103

Особенности региональных конференций. Зачем спикеру выезжать за МКАД?

IT-People corporate blogConferences
Прошлым летом мы проводили встречу программных директоров DUMP, которые, к тому же, часто являются спикерами разных IT-конференций. И один из них сказал: «Раньше ты сам искал конференции и подавал заявки, года 3 назад уже ездил туда, куда тебя позвали, а теперь каждую неделю приходит приглашение где-то выступить».

Конференций и митапов в Москве достаточно, чтобы стать знаменитым спикером, не покидая пределов МКАД. Ну, хорошо, можно съездить на зарубежные конференции, если позовут :) Какой профит ехать на Урал, в Сибирь или Поволжье? Хм. Спросили у тех, кто уже знаменит, но всё ещё ездит


Читать дальше →
Total votes 6: ↑5 and ↓1 +4
Views1.1K
Comments 0

VoiceOver на iOS: решение типовых проблем

Dodo Engineering corporate blogDevelopment for iOSDevelopment of mobile applicationsAccessibilityMobile applications design
Когда берёшься адаптировать приложение для незрячих, часто что-то идёт не так: то порядок собьётся, то фокус не туда встанет. С другой стороны, есть UX, который легко пропустить, потому что не знаешь про возможные проблемы. В этой статье будем разбираться с типовыми проблемами и их решением.


Читать дальше →
Total votes 10: ↑10 and ↓0 +10
Views1.6K
Comments 0

Война с тормозами. Оптимизация количества рендеров компонентов в React Native

Development of mobile applicationsReactJS
🔥 Technotext 2020 🔥 Technotext 2020
Привет, Хабр! Меня зовут Камо Сперцян, я занимаюсь React Native разработкой в Profi.ru. Если вы решили воспользоваться технологией React Native для быстрой доставки продуктовых фич и сосредоточились на скорости разработки, то, скорее всего, столкнётесь с проблемами производительности. По крайней мере так случилось с нами. Через полгода активной разработки производительность нашего приложения упала ниже критического уровня — всё дико тормозило. Поэтому мы взялись за оптимизацию — убирали все «тормоза» во время запуска, переходов между экранами, отрисовки экранов, реакций на действия пользователя. В результате за три месяца довели пользовательский опыт до нативного уровня. В этой статье хочу рассказать о том, как мы оптимизировали приложение на React Native и решали проблему многократных ререндеров компонентов.



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

Мы используем React Native в паре с Redux. Часть советов связана с этой библиотекой. Также в примере я использую библиотеку Redux-thunk — для имитации работы с сетью.
Читать дальше →
Total votes 11: ↑11 and ↓0 +11
Views4.5K
Comments 12

Model-Widget-WidgetModel, или какой архитектурой пользуется Flutter-команда в Surf

Surf corporate blogDevelopment of mobile applicationsDartFlutter

Привет, меня зовут Артём. Я руководитель Flutter-разработки в Surf и со-ведущий FlutterDev подкаста.


Flutter-отделу в Surf уже больше года. За это время мы сделали несколько проектов: от маленьких служебных, до полноценных е-коммерс и банкинга. Как минимум, многие из вас уже могли видеть приложение аптеки «Ригла». В статье я расскажу про недавно вышедший пакет mwwm — архитектуру, на которой построены все наши проекты.


Читать дальше →
Total votes 5: ↑5 and ↓0 +5
Views4.7K
Comments 13

Детальный разбор навигации в Flutter

ProgrammingDevelopment for iOSDevelopment for AndroidDartFlutter

image


Flutter набирает популярность среди разработчиков. Большенство подходов в построении приложений уже устоялись и применяются ежедневно в разработке E-commerce приложений. Тема навигации опускают на второй или третий план. Какой API навигации предоставляет Фреймворк? Какие подходы выработаны? Как использовать эти подходы и на что они годятся?


Введение


Начнём с того, что такое навигация? Навигация — это метод который позволяет перемещаться между пользовательским интерфейсом с заданными параметрами.
К примеру в IOS мире организовывает навигацию UIViewController, а в Android — Navigation component. А что предоставляет Flutter?



Экраны в Flutter называются route. Для перемещениями между route существует класс Navigator который имеющий обширный API для реализации различных видов навигации.

Читать дальше →
Total votes 5: ↑4 and ↓1 +3
Views9.8K
Comments 10

6 объединяющих операторов Swift Combine, которые вам следует знать

OTUS corporate blogDevelopment for iOSSwift
Translation
Перевод статьи подготовлен в преддверии старта продвинутого курса «iOS-Разработчик».




В этой статье мы рассмотрим шесть полезных операторов объединения в Combine. Мы сделаем это на примерах, экспериментируя с каждым из них в Xcode Playground.

Исходный код доступен в конце статьи.

Ну что ж, без лишних разглагольствований, давайте приступим.
Читать дальше →
Total votes 2: ↑2 and ↓0 +2
Views2.8K
Comments 1

10 вещей, о которых нужно помнить при переходе с React на React Native

EPAM corporate blogDevelopment of mobile applicationsReactJS
Translation
Сегодня веб-разработчики проявляют большой интерес к мобильной разработке, иногда не представляя, что это совершенно иной мир. Однако работать с React-Native разработчикам React немного проще, но с некоторыми оговорками. В этом посте я расскажу, с чем мобильные разработчики могут столкнуться в «путешествии» от React к React Native.


Читать дальше →
Rating 0
Views3.4K
Comments 0

How I’m creating a digital mini-guitar

Self Promo
image

In this article, I’ll try to describe roughly how I’m creating a device, from the idea to realization of the usable prototype.

My name is Dmitriy Dudarev. I develop electronics, and really enjoy creating different portable devices. I also enjoy music. Half a year ago, I borrowed acoustic guitar from my friend, so that I could learn to play it from lessons on Youtube and tablatures. It was a hard work. Maybe, I did something wrong, or tried not so hard, or fine motor skills prevented multiplication in my predecessors’ community. In any case, I couldn’t achieve anything but sounds of raspy strings. My resentment was strengthened by constant string detune. And others didn’t really enjoy much listening my uneven Nothing else matters for thousand times.
But, going through all these tortures, I haven’t forgotten the main rule of electronics engineer. If something exists, you can put microcontroller there. Or, at least, make a portable electronic modification.
Read more →
Total votes 4: ↑4 and ↓0 +4
Views759
Comments 0

Таким DevFest еще не был. Встретимся в онлайне 17 октября

Google Developers corporate blogCommunity managementConferences


Привет, Хабр! Меня зовут Алиса и я развиваю GDG сообщества в Петрозаводске и Калининграде.

Не будем вдаваться в рассуждения о том, как в этом году изменилась жизнь и каким квестом стала организация чего-либо в офлайне. Поговорим о другом — чему мы научились, как объединили силы сообществ GDG России и Минска и что готовим к DevFest Russia & Belarus 2020.
Читать дальше →
Total votes 10: ↑10 and ↓0 +10
Views446
Comments 2

Стоп рефакторинг. Kotlin. Android

Development of mobile applicationsDevelopment for AndroidKotlin
Tutorial

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

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

Читать далее
Total votes 12: ↑11 and ↓1 +10
Views6.6K
Comments 6

Не мешай ему взрослеть: как оптимизировать «растущее» приложение, чтобы оно оставалось удобным для пользователя

Development of mobile applicationsGame developmentUnity3D
Sandbox

Привет, Хабр! Меня зовут Андрей Романенков, я работаю ведущим программистом в IntellectoKids. Мы создаем образовательные приложения для дошкольников. 

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

Но есть одно но.

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

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

Читать далее
Total votes 4: ↑3 and ↓1 +2
Views1.8K
Comments 1

Как увеличить срок хранения мобильного приложения? 6 проверенных способов

Development for iOSDevelopment for Android
Sandbox

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

Читать далее
Total votes 14: ↑7 and ↓7 0
Views2.6K
Comments 24

Автоматизация тестирования мобильных приложений. Часть 1: проверки, модули и базовые действия

Badoo corporate blogProgrammingDevelopment for iOSDevelopment for AndroidMobile applications testing

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

Читать далее
Total votes 28: ↑26 and ↓2 +24
Views3.6K
Comments 1

Автоматизация тестирования мобильных приложений. Часть 2: предусловия, верификация элементов и независимость шагов

Badoo corporate blogProgrammingDevelopment for iOSDevelopment for AndroidMobile applications testing

Меня зовут Дмитрий Макаренко, я Mobile QA Engineer в Badoo и Bumble: занимаюсь тестированием новой функциональности в наших приложениях вручную и покрытием её автотестами. 

За последние два года подход к автоматизации тестирования в нашей компании сильно изменился. Количество людей, активно вовлечённых в разработку тестов, увеличилось с десяти до 40 человек. А любая новая функциональность в приложениях теперь обязательно должна быть покрыта тестами до релиза. 

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

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

Читать далее
Total votes 18: ↑18 and ↓0 +18
Views1.6K
Comments 0

История одного видео редактора

PHPJavaScriptDevelopment of mobile applicationsReactJS

Эта история берет начало у истока 2019 года, когда я заметил, что мое бесполезное пребывание в интернете, социальных сетях и смартфоне стало критичным и я решил вовлечь себя в собственный эксперимент цифровой детоксикации. К слову сказать данный опыт продолжался ориентировочно пол года и он очень сильно повлиял на мои современные взгляды.

В тот момент я искал кнопочный телефон, чтобы заменить им смартфон, который отнимал уйму времени. Так ко мне попал matrix-фон Nokia 8110 с KaiOS на борту и именно с этого момента когда я клал трубку после очередного разговора, приятели шутили, что мне опять звонил тот самый бог сновидений Морфеус.

Читать далее
Total votes 10: ↑9 and ↓1 +8
Views4.3K
Comments 3