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

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

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

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

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

Блог компании Productivity Inside Разработка под iOS *Разработка мобильных приложений *Разработка под Android *
В новом дайджесте много корутинов, немного темных тем, экономики приложений, спасения тревожных миллениалов, VPS, Swift и Kotlin. Подключайтесь!

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

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

Новости

С 30 июня Apple не пустит в AppStore приложения без возможности удаления аккаунта

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

А также зачистки всего связанного с пользователем и созданного им контента.

Пользователям AppStore Connect разлетаются письма с просьбой заглянуть на свои App Review Page, чтобы прочесть письмо счастья. Если коротко, то приложения без кнопки создания запроса на удаление аккаунта и всех связанных с ним данных, включая сгенерированный пользователем контент, в AppStore больше не пропустят.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Pull to refresh в SwiftUI

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

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

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

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

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

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

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

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

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

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

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

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

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 483
Комментарии 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
Просмотры 689
Комментарии 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
Просмотры 1.9K
Комментарии 2

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

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

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

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

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

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

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

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

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

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

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

Читать далее
Всего голосов 1: ↑1 и ↓0 +1
Просмотры 1.8K
Комментарии 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.3K
Комментарии 0

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

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

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

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

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

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

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

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


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

19 мая Ozon Tech × Сoffee&Code приглашают на Mobile Meetup: перформанс и Backend-Driven UI

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

Привет! Меня зовут Саша Свиридов, я руковожу отделом мобильной разработки в Ozon. В моей команде чуть больше 80 человек — это Android- и iOS-разработчики и QA-инженеры. Мы делаем основное приложение Ozon для покупателей. Моя команда состоит из семи кроссфункцинальных групп разработки, каждая из которых отвечает за определенный скоуп задач. Спектр наших задач очень широк: мы разрабатываем чаты на сокетах, работаем с картографией, с потоковым видео, пушами, с аналитикой, со сложным UI. Пожалуй, у нас нет только GameDev:)

Всего в Ozon больше 150 мобильных инженеров, которые развивают приложения для покупателей, продавцов, Ozon Fresh, FinTech, курьеров и сотрудников пунктов выдачи заказов. Словом, нам есть что рассказать.

Чем поделимся на митапе:

— Какие метрики собираются и как мы боремся за перформанс приложения.

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

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

— Круглый стол, на котором мы обсудим темы, предложенные вами при регистрации на мероприятие.

Подробнее про наш стек и программу — под катом.

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

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

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

Работа

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