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

Разработка мобильных приложений *

Android, iOS, Windows Phone и прочие

Сначала показывать
Порог рейтинга
Уровень сложности

Без теории к практике: как уловить радиоволну инклюзивного дизайна, опираясь на опыт реальных людей

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров305

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

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

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

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

«Универсальный дизайн» — концепт, придуманный американским архитектором Рональдом Л. Мейсом. Он выделил 7 принципов «универсального дизайна», которые описывают, как создать хорошие условия для людей разного возраста и способностей. Он верил, что простой доступ к зданиям и свобода движения сделают жизнь проще для всех. Селвин Голдсмит переформулировал цитату Мейса в своей книге «Проектирование для инвалидов». Он придумал концепт «свободного дизайна». Затем эти термины стали известны как «инклюзивный» и «доступный дизайн». Так чем они отличаются?

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии2

Новости

Малоизвестные фичи SwiftUI

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров378

Я уже 2 месяца прохожу обучение в онлайн‑школе и у нас на этой неделе был открытый урок, нужно было подготовить доклад на тему «Малоизвестные фичи или особенности языка Swift»

Так вот — я решила погуглить этот вопрос, подготовилась, написала код. Но когда дело дошло до самого выступления, оказалось, что говорить ртом — это не так‑то и просто. Да и в целом выступать, даже в Zoom.

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

Читать далее
Всего голосов 1: ↑1 и ↓0+3
Комментарии2

Три пути к Flutter: истории разработчиков, которые справились

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров2.1K

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

Статья может быть полезна всем, кто ищет дорожные карты этого пути: с чего начать и какие скилы освоить, чтобы начать карьеру в мире Flutter, какие могут быть подводные камни и особенно — на что обратить внимание молодым специалистам.

Читать далее
Всего голосов 7: ↑7 и ↓0+9
Комментарии15

Внедрение электронной цифровой подписи в мобильное приложение на Android

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров972

Привет, Хабр!

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

Читать далее
Всего голосов 5: ↑4 и ↓1+6
Комментарии6

Истории

Битва титанов: натив, кроссплатформа и PWA — ищем плюсы и минусы на каждом этапе разработки

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1.4K

Привет, Хабр. Мы уже сравнивали натив и PWA в этой статье, но без кроссплатформы эта картина действительно была неполной. Поэтому мы запарились, разложили разработку на этапы и на каждом нашли честные плюсы и минусы каждой технологии. Погнали.

Читать далее
Всего голосов 12: ↑10 и ↓2+10
Комментарии12

React Native полностью переделан

Время на прочтение3 мин
Количество просмотров12K

После 6 лет разработки команда React Native представила полностью переписанную архитектуру фреймворка (0.76) – самое значительное обновление с момента создания React Native. Это результат масштабной работы над улучшением производительности, стабильности и возможностей платформы.

Читать дальше →
Всего голосов 21: ↑19 и ↓2+18
Комментарии6

Кастомный Date and Time picker как в Telegram на Kotlin Jetpack Compose

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров2.6K

Вдохновившись классными колесиками для выбора времени и даты напоминаний Telegram я захотел сделать на одном из своих пет‑проектов что‑то подобное. Первой мыслью было — найти этот код в исходниках Telegram, но т.к. скорее всего, у них это написано на Java, я решил не играть в лотерею и не тратить время на раскопки в Java‑коде, потому что я хотел сделать это на «реактивном ранце».

Читать далее
Всего голосов 5: ↑3 и ↓2+3
Комментарии7

Мобильная разработка за неделю #561 (21 — 27 октября)

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров1.2K
В этом выпуске ключевые изменения в UIKit и восстановление удаленных сообщений в Telegram, самые весёлые TODO из Android-фреймворка и короткий путь с Senior-ами, инфляция званий, сравнение доходов App Store и Google Play, Yolo на пятирублёвой монете и многое другое. Подключайтесь!

Читать дальше →
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Как я преодолел отказ в модерации App Store: история приложения YoloPrice

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров2.3K

Привет, я разрабатываю мобильное приложение YoloPrice: оно в реальном времени сравнивает цены на нужный товар во всех ведущих маркетплейсах и магазинах страны.
Когда я столкнулся с тем, что моё обновление не стала пропускать модерация, то первым делом пошёл искать информацию о том, был ли у кого-то подобный опыт, но на русскоязычных ресурсах такой информации не было, поэтому решил поделиться. 

В этой статье речь пойдёт не о первичной модерации, когда приложение совсем новое. Мой кейс в том, что модерация App Store начала отклонять новые версии приложения, которое до этого спокойно существовало в App Store уже пару месяцев и имело 1000+ установок, то есть все базовые требования к приложению были соблюдены.
Возможно, кто-то мог пожаловаться на него, или попался новый модератор, истинную причину мы не узнаем, но я расскажу подробно, по каким пунктам отклоняли новые версии и как я с этими пунктами в итоге справился.

Читать далее
Всего голосов 8: ↑7 и ↓1+7
Комментарии16

Честно и по делу: смотрим на F+ R570E с российской системой на борту

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров9.3K

Друзья! Несмотря на то, что статья может показаться на певый взгляд рекламной, это не так. Я давно слежу за Linux на мобильных системах и в частности, за Sailfish-подобными ОС. Недавно я самолично написал в компанию F+ и попросил какой-нибудь смартфон на Авроре для статьи и, на моё удивление, представители компании согласились! Что из себя представляет R570E, каковая Аврора с точки зрения обычного пользователя и разработчика и есть ли у этой системы, по моему мнению, перспективы? Читайте в сегодняшней статье!

Читать далее
Всего голосов 47: ↑44 и ↓3+53
Комментарии62

Азартная разработка iOS приложения игры 2048 с ChatGPT

Уровень сложностиПростой
Время на прочтение32 мин
Количество просмотров1.2K

Я хочу поделиться с вами опытом создания "с нуля" iOS приложения известной игры 2048 с элементами ИИ (искусственного интеллекта) в SwiftUI с помощью ChatGPT .

Мне хотелось написать игру 2048 именно на SwiftUI, пользуясь его прекрасной и мощной анимацией и приличным быстродействием , a также  предоставить в распоряжения пользователя не только “ручной” способ игры, когда Вы руководите тем, каким должен быть следующий ход: вверх, вниз, влево и вправо, но и ряд алгоритмов с оптимальной стратегией (метода Монте-Карлостратегий поиска по деревьям (Minimax, Expectimax) ), позволяющих АВТОМАТИЧЕСКИ выполнять ходы - вверх, вниз, влево и вправо - и добиться  плитки с числом 2048 и более (эти алгоритмы и называют алгоритмами “искусственного интеллекта” (ИИ). 

2048 - это очень известная игра, и мне не нужно было объяснять ChatGPT ее правила, он сам всё про неё знает. Кроме того, оказалось, что ChatGPT прекрасно осведомлен об ИИ алгоритмах для игры 2048, так что мне вообще не пришлось описывать ChatGPT контекст решаемой задачи. И он предлагал мне множество таких неординарных решений, которые мне пришлось бы долго выискивать в научных журналах.

Полный протокол взаимодействия с ChatGPT при создании iOS приложения игры 2048 представлен в 3-х постах на моем сайте: 

iOS приложения игры 2048 в SwiftUI  с ChatGPT 4-o. Часть 1. Введение. Логика игры 2048.

iOS приложения игры 2048 в SwiftUI  с ChatGPT 4-o. Часть 2. Анимация и UI.

iOS приложение игры 2048 в SwiftUI с ChatGPT. Часть 3. ИИ (AI) для игры 2048.

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

Читать далее
Всего голосов 7: ↑4 и ↓3+6
Комментарии8

iOS 18 для разработчиков: Ключевые изменения в UIKit

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров2.9K

Привет! Меня зовут Лена, я работаю iOS-разработчиком в KTS. Недавно вышла новая версия iOS 18, и я решила подробно изучить все нововведения, чтобы понять, какие новые возможности она предлагает разработчикам.

В этой статье расскажу о самых интересных обновлениях в UIKit — новый TabBar, анимации, совместимость UIKit/SwiftUI и многое другое, а также поделюсь своими впечатлениями от их практического применения.

Читать далее
Всего голосов 25: ↑25 и ↓0+28
Комментарии0

Как работать с разрешениями для чтения и записи файлов в Android 13+ на примере React Native

Время на прочтение10 мин
Количество просмотров1K

В МойОфис мы разрабатываем iOS- и Android-приложения цифрового рабочего пространства Squadus с помощью кроссплатформенного фреймворка React Native. В функциональность нашего приложения входит загрузка и отправка различных вложений другим пользователям.

В какой-то момент мы получили фидбек, что пользователи с Android не могут отправить медиафайлы и посмотреть превью. Наши доблестные QA-инженеры выяснили, что проблема напрямую связана с тем, какая именно версия Android стоит у пользователей. Сложности начинались с версии 13 — оказалось, что Android добавил новые Permissions для повышения безопасности приложений.

Под катом рассказываю, как работают новые Permissions, как Android рекомендует реализовывать запрос к пользователю, и каким образом наша команда решила проблемы при реализации новых разрешений. Думаю, наш опыт будет интересен специалистам, погруженным в тему Permissions на Android, да и вообще всем React Native и Android разработчикам, так как особенности версионирования разрешений будут жить с нами ещё долго.

Читать далее
Всего голосов 17: ↑17 и ↓0+19
Комментарии6

Ближайшие события

7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань

Крутить или не крутить?

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров4.7K

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

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

Читать далее
Всего голосов 7: ↑5 и ↓2+5
Комментарии3

Основы View и ViewGroup. Создаём интерфейсы в Android-приложениях

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров1.2K

Всем привет!

Я — Дарья Касьяненко, эксперт Центра непрерывного образования факультета компьютерных наук НИУ ВШЭ.

Сейчас мир Android‑разработки активно меняется, но многие из используемых технологий остаются актуальными, и их стоит знать каждому начинающему разработчику. Мой коллега Даниел Цуркан, эксперт и преподаватель курса «Android‑разработчик на Kotlin» Центра непрерывного образования ФКН, подробно расскажет о компонентах View и ViewGroup, которые лежат в основе построения пользовательских интерфейсов Android‑приложений.

Эта статья станет полезной как для тех, кто только начинает свой путь в Android‑разработке, так и для junior‑разработчиков, которые хотят углубиться в детали создания интерфейсов на базе View и ViewGroup. В статье разберем ключевые особенности, с которыми сталкиваются разработчики при создании пользовательских интерфейсов с использованием View, рассмотрим актуальность этого подхода для разработки визуальной части Android‑приложений, а в качестве наглядного примера — создадим экран авторизации пользователя.

Читать далее
Всего голосов 1: ↑1 и ↓0+3
Комментарии5

Как человеческий фактор может стать секретным оружием в руках QA

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров2.5K

Усталость, осень, плохое настроение — очень важно учитывать в работе человеческий фактор . Если мы не проанализировали, на что он влияет, как мы можем понять критичность того, что мы им не управляем? И как им вообще управлять? Разберёмся вместе с Surf QA Team.

Читать дальше
Всего голосов 6: ↑4 и ↓2+4
Комментарии0

Изменение модели данных CoreData для iOs приложения с iCloud синхронизацией

Уровень сложностиСредний
Время на прочтение2 мин
Количество просмотров400

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

Итак, поехали!

Читать далее
Всего голосов 3: ↑3 и ↓0+5
Комментарии0

Встречаем yx_scope: DI-фреймворк для работы со скоупами в открытом доступе

Уровень сложностиСредний
Время на прочтение21 мин
Количество просмотров3.1K

Для больших проектов не всегда хватает одного модуля: иногда надо пошарить какие‑нибудь классы или UI‑элементы. Так со временем проект дробится на много мелких модулей, которые так или иначе связаны разного рода зависимостями. И если за этим не следить, то рано или поздно структура проекта может стать запутанной.

Наша команда разрабатывает приложение Яндекс Про, которым пользуются водители и курьеры. Из‑за многомодульности разные команды использовали разные подходы к связыванию зависимостей — в основном это getIt, injectable и riverpod. Но у всех решений были свои недостатки. К тому же то, что в одном проекте используется несколько подходов, сильно усложняло взаимодействие команд.

Сложности подтолкнули нас к поиску собственного решения, которое удовлетворяло бы всем нашим требованиям. И теперь мы готовы поделиться им с комьюнити: наше решение — это группа библиотек yx_scope.

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

Читать далее
Всего голосов 15: ↑15 и ↓0+20
Комментарии12

Objective-C не кусается: как перестать бояться Legacy и стать настоящим iOS-ниндзя

Уровень сложностиПростой
Время на прочтение23 мин
Количество просмотров3K

Всем привет! Меня зовут Сергей, и я работаю разработчиком мобильных приложений. Также мы с ребятами развиваем международное комьюнити Coffee&Code, а сам я частый гость на встречах в Санкт-Петербурге.

Хочу поговорить о теме, которая волнует многих разработчиков: использование старых технологий в iOS-разработке, таких как Objective-C. Тут возникает очень насущный вопрос, являются ли он легаси?

Читать далее
Всего голосов 27: ↑25 и ↓2+27
Комментарии14

Внедряем снепшот-тестирование, или пять стадий принятия неизбежного

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров1.3K

Привет, Хабр! Меня зовут Дмитрий Сурков, я iOS-разработчик приложения для среднего и малого бизнеса ПСБ. У нас есть практика проводить технические дни, на которых мы вносим улучшения в наше приложение. Одним из таких улучшений оказалось внедрение снепшот-тестов для компонентов дизайн-системы. В статье расскажу, как мы прошли все стадии принятия и обрели покой и умиротворение.

Читать далее
Всего голосов 8: ↑8 и ↓0+12
Комментарии4
1
23 ...

Вклад авторов

Работа

iOS разработчик
17 вакансий
Swift разработчик
19 вакансий