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

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

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

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

[Async/await] Проблемы Swift 5.4

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

Всем привет! Меня зовут Никита, я работаю в компании Технократия и занимаюсь iOS-разработкой. С сегодняшнего дня мы начинаем регулярный выпуск статей, в которых я буду рассказывать о современном подходе к написанию асинхронного кода в Swift. 

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

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

Новости

Спасаем тревожных миллениалов от необходимости звонить: как в приложении для заказа пиццы появился чат

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

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

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

Читать далее
Всего голосов 26: ↑22 и ↓4 +18
Просмотры 3.4K
Комментарии 9

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

Блог компании Productivity Inside Разработка под iOS *Разработка мобильных приложений *Разработка под Android *
В новой еженедельной подборке готовность SwiftUI и тяжелые зависимости, Android в докере и обсуждение новинок Flutter, выживание при росте аудитории, вопрос с кодинг интервью, интеграция API и многое другое!

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

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

Золотые правила “weak self”

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

Захват self в замыкании — обычная вещь в Swift, которая скрывает множество нюансов. Нужно ли делать его weak, чтобы избежать цикла ссылок? И является ли проблемой сделать его weak постоянно?

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

Pull to refresh в SwiftUI

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

На момент публикации - 10 мая 2022, SwiftUI имеет всего лишь refreshable(action:) модификатор для List компонента, чтобы пользователь имел возможность обновить контент на экране (так называемый pull to refresh). Очевидно, что если разработчику потребуется отобразить список в виде отличном, от того, который предоставляет List (например, в несколько колон), то, к сожалению, придется смириться с тем, что контент на экране обновить с помощью pull to refresh будет нельзя. Или же все-таки можно?...

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

Координация навигации по вью в SwiftUI с помощью паттерна Flow Coordinator

Блог компании OTUS Разработка под iOS *
Перевод

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

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

Регулировка contentOffset с помощью UICollectionViewLayout

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

Один из распространенных UI элементов в iOS является UICollectionView.

Часто при построении таких коллекций возникает необходимость обновления данных, например добавления новых ячеек в коллекцию.

Рассмотрим простой пример - список новостей, вертикальный UICollectionView. При пролистывании списка вниз, необходимо подгружать старые новости. В данном случае все просто - нужно обновить данные и выполнить один из методов:

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

Kotlin Multiplatform Mobile — совместное управление состоянием пользовательского интерфейса

Блог компании OTUS Разработка под iOS *Kotlin *
Перевод

В своей предыдущей статье я рассказал о том, почему считаю, что мы можем значительно улучшить управление UI State (состояние пользовательского интерфейса) между View (представление) и ViewModel (модель представления) в Android, используя архитектуру Model-View-Intent (модель-представление-намерение) (MVI) с помощью Finite State Machine (машина с конечным числом состояний. конечный автомат) (FSM).

В этой статье я подскажу вам шаги, необходимые для модернизации этого решения до уровня Kotlin Multiplatform Mobile (KMM), где можно воспользоваться общим исходным кодом, содержащим MVI+FSM, так что обе платформы — Android и iOS — могут унаследовать его преимущества, отвечая только за платформозависимые реализации: UI/UX.

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

О чём расскажут на Mobius 2022 Spring: декларативный UI, глубокие ссылки и многое другое

Блог компании JUG Ru Group Разработка под iOS *Разработка мобильных приложений *Разработка под Android *Конференции

Мобильным разработчикам давно знакома конференция Mobius, но в этот раз она пройдёт в необычном формате. В конце мая поучаствовать можно будет в онлайне (как в предыдущие два года), а вот в июне будет ещё и офлайн-день в Петербурге.

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

И сейчас, когда большинство тем докладов уже известно, расскажем Хабру, о чём именно они будут.

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

Асинхронный код синхронно: как устроено юнит-тестирование в СберМаркете

Блог компании СберМаркет Разработка под iOS *TDD *Swift *

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

Я выступал с этим докладом на iOS Meetup | СберМаркет Tech, здесь его сжатая версия.

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

Правильно подключаем тяжелые зависимости к Xcode проекту через Swift Package Manager

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

В этой статье я расскажу о проблемах с которыми я столкнулся при подключении тяжелых зависимостей к iOS проекту с помощью Swift Package Manager и о способе их решения.

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

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

Блог компании Productivity Inside Разработка под iOS *Разработка мобильных приложений *Разработка под Android *
В нашем новости дайджеста анонсы с Google I/O 2022 и выселение Carthage из git, загадочный WorkManager и замена натива веб-приложением, регрессионное тестирование, вопросы с собеседования, миллиарды уведомлений в месяц и многое другое. Подключайтесь!

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

Особенности разработки для WatchOS приложений для здоровья

Разработка под iOS *Xcode *Swift *Носимая электроника

Достаточно плотно разработкой программного обеспечения для часов я занимаюсь с 2017 года. За этот период сменилось 4 версии WatchOS (5, 6, 7, 8). Появилось больше функционала и исправлено множество баг с внедрением каждой новой версии Swift. Complications стали более самостоятельной частью приложения.

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

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

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

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

Главным событием этой недели было Google I/O, на которой представили некоторые нововведения, зарелизили ряд новых версий библиотек и инструментов. Из интересного: вышла вторая Beta Android 13, запустили сервис Google Play SDK Index, представили Flutter 3, выложили исходники приложения Now in Android. Все ссылки в дайджесте.

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

Android 🤖

• 13 Things to know for Android developers at Google I/O!
• Google Play SDK Index
• Что нового в инструментах Android-разработки
• Что нового в Jetpack Compose (Beta 1.2)
• Now in Android - a new, open source, real-world sample app
• Вышла вторая Beta Android 13
• Android Lint. Подборка
• Fragula – swipe-to-dismiss extension for navigation component library for Android
• Письмо счастья: как мы разделили наши сборки для AppGallery и Google Play
• Compose performance
• Jetpack DragAndDrop Released 1.0.0
• Here's a productivity hack to save tens of engineering hours* when working with Jetpack Compose!
• Android Studio Chipmunk Released
• Understand Proguard Generated Files and Manually De-obfuscate Stacktrace
• Build a Custom IntelliJ Code Inspection Plugin
• How To Use Android’s Proto DataStore With Kotlin Support
• The Guide To Your First Annotation Processor with KSP (And Becoming A Kotlin Artist)
• Airbnb uses Jetpack Compose to empower devs to do their best work

iOS 🍏

• Apple отключила оплату в App Store со счёта мобильного у «Мегафона», Yota и Tele2
• Write Beautiful Code With Swift Result Builder
• Modeling errors in Swift
• A flexible way to handle and alert errors in SwiftUI
• How do we use SwiftUI in the Medium iOS application
• Заполнители типа в Swift: что это такое и когда их следует использовать
• On iOS applications architecture
• 5 актуальных расширений Xcode для оптимизации разработки
• 10 Tips and Tricks for Swift Developers
• How to Read Websites in SwiftUI — Data Scraping in iOS
• Swift: A few tips for improving code quality
• SSL/Certificate Pinning — iOS 14.0 Never easy before
• Clean Architecture: iOS App
• Creating hex-based colors in UIKit, AppKit and SwiftUI
• Core Data Relationship in Swift 5— made simple
• Building a document scanner in SwiftUI
• Bottom Sheet, shall we drop the formalities?
• Introduction to Dependency Injection with Needle - The Uber Way
• SwiftUI Still Isn’t Production-Ready

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

Заполнители типа в Swift: что это такое и когда их следует использовать

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

Заполнители типа (type placeholders) — это новая языковая фича, представленная в Swift 5.6 (Xcode 13.3).

Сама концепция очень проста - вместо указания конкретного типа мы можем поставить _ (заполнитель типа), который предписывает компилятору самому определить заполняемый тип.

В следующем примере я использую заполнитель типа для name, который впоследствии разрешается в String.

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

Выселяем Carthage из git, или Как мы связали Carthage + Rome + S3 в нашем проекте

Блог компании VK Разработка под iOS *Управление разработкой *


Сегодня для управления внешними зависимостями мы используем Carthage, это один из популярных в iOS-среде инструментов. Он умеет собирать зависимости из кэша, но не управлять его организацией и хранением. Для этого нужно задействовать сторонние инструменты, и мы расскажем, как решали задачу по работе с удалёнными зависимостями. Наш опыт может быть полезен всем, кто захочет пройти этот тернистый путь интеграции remote cache через связку Rome + Carthage + S3.
Читать дальше →
Всего голосов 40: ↑39 и ↓1 +38
Просмотры 824
Комментарии 6

Дайджест недели (мобильная разработка) – #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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Работа

Swift разработчик
110 вакансий
iOS разработчик
84 вакансии