Как стать автором
Поиск
Написать публикацию
Обновить
145.39

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

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

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

ООП: худшее, что случалось с программированием

Уровень сложностиСложный
Время на прочтение20 мин
Количество просмотров107K

В этой статье попробуем разобраться, почему ООП — худшее, что было придумано в программировании, как оно стало таким популярным, почему опытные программисты Java (C#, C++ и т.п.) в принципе не могут считаться крутыми инженерами, а код на Java - хорошим.

Читать далее

ОС «Аврора» — веб-сервер в кармане

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

Привет, читатель!

В начале июня я опубликовал обзор смартфона с ОС «Аврора». После этого взялся изучать документацию к SDK, решил написать пару небольших приложений и портировать один проект на телефон. В процессе понял, что для выполнения команд, просмотра файлов и доставки пакетов требуется консоль. В какой-то момент стало любопытно покопаться и посмотреть, какие приложения есть в репозиториях «Авроры» и с чем из этого можно поиграться. Выбор оказался весьма широк, но самым интересным для меня был исполнитель интерпретируемого языка. Если вам интересно, какой код можно запустить со смартфона на «Авроре» и какие могут возникнуть нюансы, прошу под кат!
Читать дальше →

Бизнесу не нужно внедрять ИИ. Рассказываю, как ИИ-хайп ослепил российские компании

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

На связи Владимир Макеев, СЕО Surf. Я активно слежу за развитием ИИ и сам тестирую разные решения для ускорения разработки. И вот, что заметил: вокруг сотни государственных инициатив и прорывных кейсов внедрения ИИ. Есть даже национальная стратегия, которая подразумевает, что уже через 5 лет компании в 95% отраслей должны внедрить ИИ.

Компании думают, что затеряются в веках, если срочно не прикрутят нейросети. А после внедрения ИИ-решений презентуют невероятные бизнес-результаты. Рассказываю, почему всё работает не так, как нам хотелось бы.

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

Как построить свою ферму устройств и упростить работу с устройствами и эмуляторами: делимся опытом создания DeviceHub

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

Без качественного и ответственного тестирования не может быть сложного продукта. Для такого тестирования нужен большой парк устройств. Это позволит находить баги до релиза и выдавать качественный продукт. А ещё — максимально оперативно реагировать на обращения пользователей в поддержку и обеспечивать ещё большую стабильность в работе.

Читать далее

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

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

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

Читать далее

Особенности построения графиков Qt в «Авроре»

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

Привет, читатель! Графики — это удобно. Нередко при разработке они нужны мне для визуализации процесса или демонстрации критичных событий. А еще их можно использовать, чтобы отобразить изменения погоды в течение дня, колебания курса валюты или диаграмму нагрузки и доступности сервера. В большинстве случаев для построения графиков есть готовые инструменты в самой операционной системе, но если вы это читаете, то в «Авроре» я ничего такого не нашел. Как я решал проблему и с какими подводными камнями столкнулся, рассказываю под катом.
Читать дальше →

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

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

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

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

Читать далее

Как создать веб-приложение со своей картой: подключение API v3 Яндекс Карт

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

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

Если вам тоже пришлось «вшить» в свое веб-приложение карты, запаситесь терпением. В инструкции рассказываем, как это сделать и настроить тестовое окружение с IDE в облаке. Подробности под катом!
Читать дальше →

Все знают, какие приложения установлены у вас в телефоне

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

Ещё несколько лет назад любое приложение, установленное на устройство с Android, могло без разрешений видеть все остальные приложения.

В 2022 году, с выпуском Android 11, Google удалила этот доступ для разработчиков приложений. Согласно новой политике видимости пакетов, приложения должны видеть другие приложения только в том случае, если те необходимы для их базовой функциональности. Кроме того, разработчики должны явным образом объявлять эти приложения в обязательном для всех приложений Android файле конфигурации AndroidManifest.xml.

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

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

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

Читать далее

Потоки под капотом: как работают многопоточность и синхронизация в iOS

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

Привет! Я Александр Сычев, iOS‑эксперт в KTS. В этой статье поговорю о потоках.

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

В данной статье мы рассмотрим детали этой темы, а именно:

проанализируем работу потоков;

выявим скрытые механизмы, обеспечивающие их функционирование;

определим, какую пользу практикующим iOS‑разработчикам приносит понимание внутреннего устройства потоков.

Читать далее

Об анатомии крэшей на iOS «по-взрослому»

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

Привет, Хабр. Меня зовут Давид Чупреев. Я разработчик мобильных приложений в команде Core iOS ОК. 

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

Читать далее

Google Firebase Studio – облачная AI-платформа для разработки приложений

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

Представьте, что вы можете разработать и задеплоить полностью работающее приложение, просто описав его словами. Google задает новый тренд в разработке программного обеспечения, представив Firebase Studio — платформу с интегрированным ИИ-ассистентом Gemini, способным автоматизировать значительную часть задач. В этой статье мы разберемся, почему некоторые сми называют Firebase Studio «убийцей Cursor», и покажем, как можно воплощать идеи в функциональные приложения буквально за несколько минут. Подробности под катом.
Читать дальше →

Tracer спустя год: новые фичи и возможности инструмента для аналитики ошибок в мобильных приложениях

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

Tracer — модульный инструмент для аналитики ошибок в мобильных приложениях от OK.Tech, который мы представили год назад. За это время в Tracer зарегистрировалось более 1400 организаций и 5000 пользователей. Сейчас решение обрабатывает более 1 млрд событий в день и обслуживает приложения, которые имеют суммарный DAU в 20 млн пользователей. Опыт наших клиентов показывает, что Tracer успешно справляется с поставленными задачами, но мы всё равно не останавливаемся на достигнутом.

Меня зовут Кирилл Попов. Я руководитель направления Android-разработки в ОК. В этой статье я расскажу, какие возможности получил инструмент за последний год, и что мы планируем реализовывать в перспективе.

Читать далее

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

Урок ценой $115 000: чему меня научила разработка продукта с нуля

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

Последние пару лет в свободное от Настоящей Работы время я в роли CTO/соло-бэкендера участвовал в создании Stry — фитнес-стартапа с подписной моделью. Теперь, когда наша команда официально объявила о прекращении дальнейшего развития проекта, пришло время порефлексировать и поделиться полученным опытом. В этой статье я в двух словах представлю продукт, детально опишу архитектуру проекта и расскажу о наших (моих?) основных технических успехах и неудачах. Поехали!

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

Читать далее

Нейроисследования в работе UX-редактора: выводы учёных, которые улучшат тексты вашего продукта

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

Привет всем. Это Маша Русскова — UX-редактор Домклик. Я отвечаю за интерфейсные тексты. На пересечении нейробиологии, маркетинга и дизайна начинается поле для дискуссии о том, насколько исследования когнитивных функций применимы к пользовательскому опыту. Делюсь подборкой интересных исследований о текстовом наполнении интерфейсов, результаты которых можно запросто использовать для проектирования ваших цифровых продуктов. Даже если в вашей команде нет UX-редактора. Поехали?

Читать далее

App Intents: новые возможности для разработчиков в iOS 18

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

Привет! Меня зовут Настя Ищенко. Я — iOS-разработчик в KTS.

Эта статья поможет узнать, что такое App Intents и как их использовать для создания сложных сценариев, которые расширят возможности вашего приложения. А еще я расскажу об обновлениях фреймворка App Intents, представленных на WWDC24.

Читать далее

Почему программное обеспечение движется только вперёд

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

В случае масштабных систем не происходит ни откатов, ни запланированных переходов (cut-over) — ваше ПО движется только вперёд.

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

BDUI: эволюция динамических интерфейсов

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

Привет, Хабр! В России набирает популярность новый подход к созданию пользовательских интерфейсов — Backend Driven UI (BDUI). В нём сервер задаёт структуру и поведение интерфейса, а приложение просто отображает его на экране.

BDUI уже используют в своих приложениях многие коллеги из индустрии. Меня зовут Елена Зеликсон, я старший инженер по тестированию в VK. О том, какие преимущества у этого решения и как его применять, подробнее расскажу в этой статье.

Читать далее

Расширяем возможности VK DeviceHub: как мы добавляли поддержку iOS для собственной фермы мобильных устройств

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

Привет, Хабр. Меня зовут Даниил Смирнов. Я руководитель команды Android Core R&D в VK.

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

Читать далее

Для чего я написал собственный аудиопроигрыватель

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

Как и у многих, у меня накопилось слишком много подписок: некоторые у Apple (iCloud, Apple Music), другие потерялись на разных платформах (например, на Netflix — я и забыл, что всё ещё плачу за него). На самом деле, я регулярно пользовался Apple Music (а ранее Spotify), но потоковая музыка оказалась больше удобством, чем необходимостью. При наличии тщательно подобранной локальной библиотеки я ничего особо не потерял.

Поначалу я думал, что просто продолжу использовать iCloud Music Library для синхронизации музыки между устройствами, но после отмены подписки на Apple Music синхронизация перестала работать. Оказалось, за эту функцию нужно платить. Строго говоря, её можно вернуть при помощи iTunes Match (24,99 $ в год). Match просто хранит AAC-копии с битрейтом 256 кбит/с; ваши исходные файлы остаются на месте, если вы не захотите удалить их. На современных Mac всё это делается в приложении Music. При отсутствии подписок синхронизация с облаком отключается и остаётся лишь синхронизация по кабелю/Wi-Fi.

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

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