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

Разработка под iOS *

Популярная мобильная ОС

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

Дайджест недели (мобильная разработка) – #1

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

Привет, Хабр! Каждую неделю, в своем телеграм-канале Mobile Native, я публикую дайджест с интересными и полезными материалами (новости, статьи, инструменты, библиотеки и т.д.) для мобильных разработчиков. Решил попробовать публиковать эту рубрику и на Хабре. Посмотрим, что из этого получится.

Android 🤖

• Dependency Inversion Principle: How Google Developers write code
• Как мы используем фича-флаги в мобильном приложении QIWI Кошелек
• Google запускает бесплатный курс Android Basics with Compose
• Опубликована программа Google I/O
• The first developer preview of Privacy Sandbox on Android
• Google Play запретил разработчикам загружать и обновлять платные приложения в России
• Learn Dagger 2 to Hilt for Android Easily in under 10 Minutes
• Jetpack Compose Dropdown
• S.O.L.I.D Principles (Examples in Kotlin)
• Kotlin-inline, crossline, noinline function and reified: Everything you need to know(Android) — Part 1
• 7 things to keep in mind while building jetpack composable’s.
• Architecture MAD Skills series wrap up
• Топ вопросов работодателю от Android-разработчика
• Isolate Koin Within an Android Module
• Kotlin, обрабатываем исключения в корутинах правильно
• The curious case of crashing Workers
• Material Components Android 1.6.0 Released
• Конвергенция в многомодульном приложении
• Passive Views: keep your UI code simple and stupid
• CI-CD: Firebase App Distribution with Fastlane on Android
• Creating reliable tests for Android notifications

iOS 🍏

• I replaced my native iOS app with a cross platform web app and no-one noticed
• Measuring app performance in Swift
• Types of memory in swift
• Improve Performance in Your iOS Applications — Part 1
• Swift 5.7: Unwrapping Optionals Gets an Improvement
• Clarifying criteria & new timing extension for App Store Improvements process
• Тест-ревью: как прошли два года написания unit-тестов
• Is It Possible to Have a Half-modal View in SwiftUI?
• Swift visitor design pattern
• Two Ways to Unit Test Notification Center in Swift
• Send Events from SwiftUI to UIKit and Vice Versa
• AsyncThrowingStream and AsyncStream explained with code examples
• AttributedString’s Codable format and what it has to do with Unicode
• SwiftUI Supporting External Screens
• Flow Navigation With SwiftUI (Revisited)
• Делаем патч для Pods библиотеки
• Как нативно визуализировать голос в iOS
• 6 Tips to improve Coding of Swift

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

Новости

Как нативно визуализировать голос в iOS

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

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

В статье расскажу, как в iOS нативно визуализировать голос в процессе записи и проведу краткий экскурс в физику звукозаписи.

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

Синхронный вывод на экран распознаваемого текста на Flutter

Разработка под iOS *Dart *Flutter *
Из песочницы

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

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

За основу приложения был взят готовый  example с pub.dev https://pub.dev/packages/speech_to_text/example

Чтение займет не более 5-ти минут
Всего голосов 2: ↑0 и ↓2 -2
Просмотры 737
Комментарии 0

Делаем патч для Pods библиотеки

Ruby *Разработка под iOS *Cocoa *
Из песочницы

Приветствую друзья на связи автор телеграм канала ReactNative - info, недавно столкнулся с одной интересной проблемой, сборка архива для iOS приложения постоянно завершалась такой ошибкой:

error: Abort trap: 6 (in target 'iOSPhotoEditor' from project 'Pods')

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

Round Table: архитектурный UI паттерн для iOS платформы

Разработка под iOS *Swift *

На связи Станислав Потемкин, iOS Tech Lead в компании Jivo.

Большой популярностью вполне заслуженно пользуются некоторые известные архитектурные паттерны, например универсальные MVC, MVP, MVVM, VIPER, и слегка платформенный Clean Swift (VIP).

У каждого из них свои особенности, каждый хорош в той или иной ситуации. Идеального для всех случаев инструмента, как известно, не существует: нужно выбирать с учётом проекта и команды.

На хабре уже была статья многолетней давности с неплохим разбором особенностей большинства этих архитектур, а именно: MVC, MVP, MVVM, VIPER. Плюс также есть статья отдельно про Clean Swift (VIP).

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

В итоге мы решили изобрести свой велосипед исследовать область архитектурного вопроса с нового ракурса, и в последствии пришли к паттерну, который получил наименование Round Table.

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

Почему программистам нужно знать структуры данных и как я сэкономил Uber $22 000 в год

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

Как я оптимизировал аналитику используя структуры данных. Что в итоге сэкономило $22 000

Читать далее
Всего голосов 114: ↑5 и ↓109 -104
Просмотры 17K
Комментарии 58

Как начать писать приложения на ClojureDart

Разработка под iOS *Lisp *Разработка под Android *Clojure *Flutter *

16 апреля зарелизился ClojureDart, а это значит, что для любителей Clojure открылась возможность писать мобильные, веб- и десктоп-приложения на Flutter. Зачем использовать для этого Clojure, как бы очевидно это ни было, выходит за границы фокуса статьи.

На текущий момент инструменты еще не отшлифованы, нет репла(!) и автодополнений для dart-интеропа, но пользоваться можно, и некоторые плюшки кложуры уже показали себя (например, nest-макрос, убирающий проблему вложенности).

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

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

Дайджест интересных материалов для мобильного разработчика #441 (25 апреля — 2 мая)

Блог компании Productivity Inside Разработка под iOS *Разработка мобильных приложений *Разработка под Android *
C праздником и новым дайджестом! В новом выпуске два года Unit-тестов и убыль приложений в Google Play, темная сторона виджетов и бэкенд от Snap, год ATT, четыре всадника джуна и многое другое.

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

Как работает Backend-Driven UI на мобильном клиенте

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

Привет всем, кто хочет изменять интерфейс мобильного приложения до выхода нового релиза, всем, кто хочет без лишних доработок на клиенте проводить А/B-тестирование, и всем, кто хочет забыть о срочных «новых пятничных промоакциях», которые нужны уже в понедельник. В этой статье мы поговорим об основах Backend-Driven UI: рассмотрим абстрактно, как всё работает на бэкенде и на клиенте. 

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

Автоматическое развёртывание инфраструктуры в iOS проекте

Блог компании AliExpress Россия Разработка под iOS *IT-инфраструктура *DevOps *
Tutorial

Рассказываем о том, как автоматизировать процессы онбординга и развёртывания инфраструктуры в iOS проекте с помощью Ansible.

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

Почему ваше приложение могут не пропустить или даже удалить из App Store?

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

Собрал список частых причин, как делать не надо. Некоторые из них основаны и на личном опыте, о других вы могли слышать, или даже использовали сами.

Все пункты перечислены не в порядке значимости или частоте.

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

Тест-ревью: как прошли два года написания unit-тестов

Блог компании Dodo Engineering Разработка под iOS *Разработка мобильных приложений *Тестирование мобильных приложений *

Часто слышу мнение, что unit-тесты не нужны для мобильной разработки: в приложении должно быть минимум логики, основная работа с UI, а его сложно тестировать, да ещё и тесты отнимают время, которое можно было бы потратить на написание фич. 

За этим мнением скрывается простая правда — люди, которые так говорят, не умеют писать тесты. Не умеют писать их быстро; писать там, где нужно; писать так, чтобы была ощутимая польза для бизнеса. Я тоже был таким — понимал, что тесты нужны, но не понимал какие, где и как их писать. 

Рассказываю, что поменялось спустя 2 года и 4 тысячи тестов. 

Читать далее
Всего голосов 17: ↑13 и ↓4 +9
Просмотры 3.5K
Комментарии 9

Простой способ обнаружить retain cycle в UIViewController

Разработка под iOS *Objective C *Отладка *Swift *
Tutorial

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

Apple предлагает отличный инструмент для отладки утечек памяти. Часто для этого используется метод print в deinit.

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

Дайджест интересных материалов для мобильного разработчика #440 (18 — 24 апреля)

Блог компании Productivity Inside Разработка под iOS *Разработка мобильных приложений *Разработка под Android *
В нашем дайджесте снова стейт-машины и исходники Telegram, собственный 3D движок и KMM, чтение кода, пространственная логика, ностальгия Waze и многое другое!

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

Structured concurrency в Swift

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

Примечание переводчиков: В Swift 5.5 появилась новая концепция языка async/await. Мы решили опубликовать перевод статьи, чтобы разобраться с structured concurrency.

За время подготовки перевода оригинал успели переписать, и в статье ниже мы совместили обе версии: сначала идет развернутая версия, а в конце — краткие чек-листы с избранной информацией.

Если у вас есть код, который нужно запускать одновременно с другим кодом, для работы важно выбрать правильный инструмент. В статье мы:

познакомим вас с разными типами параллельных задач, которые вы можете создавать в Swift
покажем, как создавать группы задач
научим отменять выполняемые задачи
разберем, когда может быть предпочтительнее использовать неструктурированные задачи.

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

Стейт-машины в iOS

Блог компании HeadHunter Разработка под iOS *

Бизнес-логика – это сложно. Сложная бизнес-логика — ещё сложнее. А описать всё это в коде – просто жесть. Мы с вами каждый день реализуем тонну разных сценариев с огромным количеством веток развития. Каждую ветку нужно запрограммировать, потом суметь быстро поправить, а когда придёт продакт, еще и поменять ее логику. И если писать код просто как он пишется, можно оказаться в ситуации, когда простой фикс вместо 20 минут занимает 6 дней. Это проблема. 

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

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

Как отследить состояние сетевого соединения в Swift? Привет, нативная реализация, пока, Reachability

Разработка под iOS *Swift *
Перевод
Tutorial

Рассмотрим нативное решение для мониторинга сетевого подключения на iOS с помощью Swift 5 и использования Network Link Conditioner.

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

Дайджест интересных материалов для мобильного разработчика #439 (11 — 17 апреля)

Блог компании Productivity Inside Разработка под iOS *Разработка мобильных приложений *Разработка под Android *
В новом дайджесте гарнитуры смешанной реальности и разработка для встроенных систем на Swift, реакции ВКонтакте и вымышленные языки, Яндекс Go для незрячих, мобильная безопасность, роботы клинической поддержки и многое другое!

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

Производительность встроенных функций высшего порядка в сравнении с циклом for-in в Swift

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

Самые популярные функции высшего порядка - это map, filter и reduce. Мы все используем их, так как думаем, что синтаксис намного лучше, и писать их даже быстрее, чем старый способ for-in loop. Но так ли это на самом деле? Задумывались ли вы когда-нибудь о производительности этих встроенных функций? Они встроенные, поэтому, естественно, они должны быть лучше, не правда ли? Давайте погрузимся в эти функции вместе, чтобы выяснить, так ли это на самом деле.

Спойлер — не всё так однозначно!
Всего голосов 7: ↑5 и ↓2 +3
Просмотры 1.9K
Комментарии 5

[boringssl] Failed to log metrics

Разработка под iOS *

Наверное, каждый iOS разработчик сталкивался с этой проблемой. Любое приложение, которое делает https запросы, получает в лог эти мистические сообщения от boringssl:

[boringssl] boringssl_metrics_log_metric_block_invoke(151) Failed to log metrics

Проблема неотключаемого мусорного логирования от boringssl мучала нас много лет, но, кажется, я нашёл приемлемое решение.

Читать далее
Всего голосов 16: ↑15 и ↓1 +14
Просмотры 2.2K
Комментарии 13

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

Работа

Swift разработчик
126 вакансий
iOS разработчик
83 вакансии