Как стать автором
Обновить
105.97
Рейтинг

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

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

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

Оптимизируй или сдохни: профилирование и оптимизация Jetpack Compose

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

В Google Play сыпятся жалобы на зависания и заторможенность вашего новенького-свеженького приложения на Compose? Вам пригодятся советы из данной статьи, чтобы это исправить.

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

Новости

Как мы собрали решение для пассажиров: транспортный процессинг и вот это вот все

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

Всем привет. Наш банк занимаемся не только финансами: есть куча проектов в других областях. Например, транспортный проект — GorodPay. Он стартовал лет 8 назад как бизнесовое решение для перевозчиков, а теперь вышел за рамки B2C. 

Мы сделали так, что в общественном транспорте Санкт-Петербурга, Екатеринбурга, Воронежа и ещё примерно 30 городов России можно не только купить билет за наличку или проехать по проездному, но и расплатиться банковской картой.  

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

Читать далее
Рейтинг 0
Просмотры 432
Комментарии 4

Как выбрать язык программирования и начать карьеру: советы от разработчика, занимающегося наймом

Блог компании Leader-ID Разработка веб-сайтов *Программирование *Разработка мобильных приложений *Разработка под Windows *

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

Читать далее
Всего голосов 21: ↑15 и ↓6 +9
Просмотры 4.2K
Комментарии 7

Разбираемся с оптимизацией FlatList и миграцией на FlashList

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

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

Читать далее
Рейтинг 0
Просмотры 673
Комментарии 0

Android vs iOS: кто быстрее покорит Эверест?

Блог компании Sportmaster Lab Разработка под iOS *Разработка мобильных приложений *Разработка под Android *Swift *Kotlin *
Мегапроект

Привет всем мобильным разработчикам! Мы одинаково любим Android и iOS. Но у каждого свои предпочтения. Предлагаем определить фаворита в дружеском поединке. Для этого перенесёмся в Гималаи и покорим Эверест. Выберите команду и постарайтесь дать как можно больше правильных ответов, чтобы добраться до вершины первыми. На весь тест 10 минут.

Взобраться на Эверест
Всего голосов 15: ↑10 и ↓5 +5
Просмотры 3.9K
Комментарии 12

Как настроить Charles

Блог компании CleverPumpkin Тестирование IT-систем *Разработка мобильных приложений *

Приложение Charles Proxy - большой помощник и тестировщику, и разработчику. Мы хотим рассказать вам про функции «Чарльза», показать, как им пользуемся в своей работе. Но для начала поможем разобраться с приложением и правильно его настроить.

Читать далее
Всего голосов 5: ↑5 и ↓0 +5
Просмотры 1.6K
Комментарии 7

Сколько стоит kapt в многомодульном проекте

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

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


Спойлер. Я был шокирован цифрами.


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

VK Cup: место встречи чемпионов

Блог компании VK Спортивное программирование *JavaScript *Разработка мобильных приложений *Go *

Привет, Хабр! Я к вам с хорошими новостями: 28 ноября стартовала регистрация на чемпионат VK Cup! В этом году он посвящён только разработке (но не расстраивайтесь — дизайнерский трек мы перенесли в программу чемпионата VK Design Cup).

Классическое олимпиадное программирование пройдёт на площадке Codeforces — регистрируйтесь. К остальным трекам – мобильной разработке, машинному обучению и разработке на Go и JavaScript можно присоединиться на платформе All Cups.

Все полезные подробности о чемпионате — уже восьмом — читайте под катом.

Читать далее
Всего голосов 12: ↑11 и ↓1 +10
Просмотры 817
Комментарии 0

IT's Tinkoff Mobile Meetup в Челябинске

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

Всем привет! Я Рустам Гумеров, ведущий разработчик в компании Тинькофф. В сентябре в Челябинске мы провели митап мобильных разработчиков, где я и мой коллега Михаил Стручков выступали с докладом.

Поговорили про core-решения для мобильных команд, послушали доклады спикеров, а еще поиграли в настолки и неформально пообщались на афтепати. Подготовил для вас обзор докладов — внутри вся подкопотная UI-библиотек, добро пожаловать под кат! 

Узнать подробности
Всего голосов 9: ↑8 и ↓1 +7
Просмотры 662
Комментарии 2

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

Блог компании Productivity Inside Разработка под iOS *Разработка мобильных приложений *Разработка под Android *
В нашем новом дайджесте снова история уменьшения размера приложения, Android System Design и проектирование для больших экранов, мобильные таблицы, сообщения об ошибках, «антивирусный» Mastodon и многое другое!

В нашем Telegram-канале Mobile Insights, еще больше материалов для разработчиков — подключайтесь!

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

Олдскульные HTML-шаблоны снова в моде! htmx и другие средства борьбы с javascript fatigue

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

Отрисовка страничек на сервере, похоже, снова начинает приобретать популярность (нет, я не имею в виду React SSR).

Сторонники оппозиции растущему влиянию javascript, наконец, смогли направить усилия в нужное русло - и в результате родился фреймворк htmx! Поговорим о том, как он работает, а также, какие ещё фреймворки используют серверные шаблоны в 2022.

Также поговорим о divkit - аналоге html для мобилок, недавно выпущенный Яндексом в опен-сорс - Вы, наверно, догадались, какое отношение может иметь одно к другому.

Читать
Всего голосов 22: ↑17 и ↓5 +12
Просмотры 3.8K
Комментарии 19

Core Data в современном интерьере SwftUI. Взаимосвязь объектов. Динамический @FetchRequest. часть 2

Разработка под iOS *Разработка мобильных приложений *Функциональное программирование *Swift *
В первой части этой статьи мы рассмотрели основы работы с Core Data в SwiftUI на примере шаблонного приложения, предложенное Apple. Это было тривиальное приложение, в котором всего лишь один объект Core Data с одним единственным атрибутом, и тем не менее было показано, что давая объектам Core Data дополнительную функциональность с помощью „синтаксического сахара“ в расширении extension их классов class, автоматически генерируемых Xcode, можно добиться комфортной работы с Core Data в SwiftUI. Эти классы являются миниатюрными ViewModels для наших SwiftUI Views, так как они реализуют протоколы ObservableObject и Identifiable. И Apple научила их прекрасно «играть» на поле реактивности SwiftUI.

Во второй части статьи я хочу показать, что роль автоматически генерируемых Xcode классов class для объектов Core Data существенно возрастает при работе с реальными взаимосвязанными объектами — рейсами Flights, аэропортами Airports и авиакомпаниями AirLines, которые мы получаем в интернете на сайте компании FlightAware и размещаем в локальной базе данных Core Data.

Создаваемое в этой части статьи приложение с именем CoreDataSwiftUIFlights является сильно упрощенной модификацией реального приложения Enroute из стэнфордских курсов CS193P 2020, которое оперативно подкачивает данные с сервера FlightAware и требует от вас платной подписки на сервис FlightAware .

Однако, просто зарегистрировавшись на сайте компании FlightAware, вы можете бесплатно получить временной срез любой интересующей вас информации о рейсах Flights, аэропортах Airports и авиакомпаниях Airlines в JSON формате. Эти данные размещаются в Core Data с учетом взаимосвязей этих объектов, и вы можете не просто видеть всю информацию о рейсах, но и делать различные запросы к ней с помощью фильтров и сортировать ее нужным вам способом.



Код находится на Github.
Читать дальше →
Всего голосов 1: ↑1 и ↓0 +1
Просмотры 381
Комментарии 0

Core Data в современном интерьере SwftUI. Некоторые уточнения и заблуждения. часть 1

Разработка под iOS *Разработка мобильных приложений *Функциональное программирование *Swift *
Фреймворк Core Data, разработанный Apple для постоянного хранения данных на своих платформах, эффективно работающий даже с очень большими объемами данных, используется очень давно, с версии iOS 3 и macOs 10.4, так что прошло где-то порядка 10 лет с того момента, когда Apple впервые представила фреймворк Core Data. Когда это произошло, языка программирования Swift вообще не было в проекте, так что Core Data была спроектирована с ориентацией на Objective-C и, конечно, это отразилось на её API.



Но на WWDC 2019 был впервые представлен SwiftUI, который предложил нам новую парадигму конструирования UI, он был предложен для iOS 13 и полностью опирался на Swift, его корни — это Swift, хотя он использует UIKit “под капотом” и полностью зависит от UIKit на iOS, по крайней мере на данный момент, и от AppKit на macOS. Конечно, он это скрывает, как только может, он сконструирован и реализован с прицелом на Swift. Более того, Swift сам был существенно доработан с целью поддержки SwiftUI и стал ещё более мощным и интересным.

Но дело даже не в возрастном различии фреймворков, a в том, что Core Data принципиально связана с объектно-ориентированным программированием ( классы, наследование, делегирование и все такое), a суперсовременный SwiftUI основан на декларативном функциональном программировании (структуры, протокольно-ориентированное программирование) и имеет реактивную природу, которая воплощается в использовании архитектуры MVVM.
Читать дальше →
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 529
Комментарии 0

Шифруем CoreML

Информационная безопасность *Разработка под iOS *Разработка мобильных приложений *Objective C *Swift *
Из песочницы

ML модель, как и многие другие формы интеллектуальный собственности, можно украсть и использовать для своих целей без ведома авторов. В случае с CoreML большинство моделей зашиты внутри приложения. Достаточно взять Jailbreak девайс, прочитать содержимое бандла и вытащить модель. Подобрать инпут модели уже дело техники и некоторого количества времени. В свое время на практике подобный подход я использовал для сравнения качества нашей ML модели с моделями конкурентов. В этой статье я хотел бы поделиться возможными способами шифрования CoreML моделей.

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Просмотры 1.7K
Комментарии 9

Истории

Deep Dive Into Deep Link. Часть 5. Нюансы: port, mime, path, диспетчеризация, обратная совместимость

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

Приветствуем вас на в заключительной части Deep Dive Into Deep Link! Вот уже пятая статья цикла, а мы до сих пор не со всем разобрались. Сегодня мы ответим на вопросы:

- Почему способности path паттерны такие ограниченные?

- Как происходит диспетчеризация deep link, как его делают библиотеки навигации и мы?

- Как можно сломать обратную совместимость?

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

«Оживляем» наше iOS-приложение с помощью Live Activity

Блог компании OTUS Разработка под iOS *Разработка мобильных приложений *Swift *
Перевод

В то время как Android-устройства в целом ушли в направлении простых вырезов в экране под фронтальную камеру или даже подэкранных фронталок, Apple создала совершенно новый пользовательский опыт благодаря своему новому пространству для размещения камеры — «челке» (the notch). Сегодня мы с вами обсудим, как реализовать нечто подобное в iOS.

Виджеты, которые Apple представила в iOS 14, позволяют нам просматривать информацию прямо на наших главных экранах.

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

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Просмотры 1.2K
Комментарии 1

Удалённая сборка Android проектов на сервере прямо из Android Studio

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

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

Бывает довольно обидно, когда в работу поступает задача, решение которой очевидно, фикс проблемы делается за пару минут, но чтобы проверить что всё исправлено нужно переключать ветки, пересобирать проект, потом переключаться обратно и пересобирать исходную ветку. Это может занимать очень много времени. Или бывает так, что находясь “в потоке” нужно что-то быстро проверить, но увидеть вступили ли изменения в силу можно только пересобрав и перезапустив проект, а если что-то пойдёт не по плану, или по каким-то причинам кэш сборки не отработает и проект будет собираться почти "на холодную"? Подобные, казалось бы, мелочи могут занимать огромное количество времени в течение дня, отвлекают, мешают сосредоточиться и продуктивно использовать рабочее время. Особенно много времени тратится если рабочий компьютер далеко не самый производительный, или если вы пользуетесь ноутбуком, не ориентированным на выполнение тяжёлых сборок. 

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

Интересующихся приглашаю под кат.

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

Загружаем dSYM в Firebase Crashlytics через Xcode Cloud

Разработка под iOS *Разработка мобильных приложений *Xcode *Swift *
Из песочницы

Всем привет, в этой статье я бы хотел поделиться опытом о том, как наша команда столкнулась со сложностями загрузки dSYM в Firebase Crashlytics, и как мы эти сложности решили. Важно сказать пару слов о нашем стеке: все зависимости установлены через Swift Package Manager, мы используем Xcode 14, а в качестве CI и CD используем Xcode Cloud с первых дней его релиза.

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

Пользовательские истории в разработке

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

Пользовательская история (User story) описывает тип пользователей, чего они хотят и почему. Этот инструмент помогает создать упрощенное описание требований, но при этом таковым не является. Требования — это другой инструмент, с более сложной структурой и описанием.

Обычно User story используют при разработке по методологии Agile. На этапе дискавери-фазы обычно разбивают разработку продукта на пользовательские истории, а не на характеристики или требования.

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

Месячная заруба с Apple. Встраиваем On-Demand Resources. Часть 1

Разработка под iOS *Разработка мобильных приложений *
Из песочницы

Поведаю вам историю в двух частях о том, как мы боролись с модерацией Apple на протяжении месяца, победили их, но всё равно решили играть по их правилам. В первой части я дам вам предысторию и способ внедрения On-Demand Resources. Во второй статье поговорим о том, как эти ресурсы связать с WKWebView и не сойти с ума.

Если ваше приложение использует WKWebView для большего, нежели открытие ссылок, то рано или поздно вы можете столкнуться с реджектом по причине Guideline 4.7 - Design - HTML5 Games, Bots, etc. Это настигло и нас в приложении Zaruba.

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

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

Работа